diff --git a/code/application/source/sf_app/tools/blue/bin/autopoint b/code/application/source/sf_app/tools/blue/bin/autopoint new file mode 100755 index 000000000..4e056106f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/bin/autopoint @@ -0,0 +1,836 @@ +#! /bin/sh +# +# Copyright (C) 2002-2023 Free Software Foundation, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# This file is meant for authors, maintainers, co-maintainers or installers +# of packages which are internationalized with the help of GNU gettext. For +# further information how to use it consult the GNU gettext manual. + +progname=$0 +package=gettext-tools +version=0.22 +archive_version=0.22 + +# Set variables +# - gettext_datadir directory where the data files are stored. +prefix="/home/payton/blue" +datarootdir="${prefix}/share" +: ${gettext_datadir="${datarootdir}/gettext"} +: ${AUTOM4TE=autom4te} + +# func_tmpdir +# creates a temporary directory. +# Sets variable +# - tmp pathname of freshly created temporary directory +func_tmpdir () +{ + # Use the environment variable TMPDIR, falling back to /tmp. This allows + # users to specify a different temporary directory, for example, if their + # /tmp is filled up or too small. + : ${TMPDIR=/tmp} + { + # Use the mktemp program if available. If not available, hide the error + # message. + tmp=`(umask 077 && mktemp -d "$TMPDIR/gtXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" + } || + { + # Use a simple mkdir command. It is guaranteed to fail if the directory + # already exists. $RANDOM is bash specific and expands to empty in shells + # other than bash, ksh and zsh. Its use does not increase security; + # rather, it minimizes the probability of failure in a very cluttered /tmp + # directory. + tmp=$TMPDIR/gt$$-$RANDOM + (umask 077 && mkdir "$tmp") + } || + { + echo "$0: cannot create a temporary directory in $TMPDIR" >&2 + { (exit 1); exit 1; } + } +} + +# Support for relocatability. +func_find_curr_installdir () +{ + # Determine curr_installdir, even taking into account symlinks. + curr_executable="$0" + case "$curr_executable" in + */* | *\\*) ;; + *) # Need to look in the PATH. + save_IFS="$IFS"; IFS="${PATH_SEPARATOR=':'}" + for dir in $PATH; do + IFS="$save_IFS" + test -z "$dir" && dir=. + for exec_ext in ''; do + if test -f "$dir/$curr_executable$exec_ext"; then + curr_executable="$dir/$curr_executable$exec_ext" + break 2 + fi + done + done + IFS="$save_IFS" + ;; + esac + # Make absolute. + case "$curr_executable" in + /* | ?:/* | ?:\\*) ;; + *) curr_executable=`pwd`/"$curr_executable" ;; + esac + # Resolve symlinks. + sed_dirname='s,/[^/]*$,,' + sed_linkdest='s,^.* -> \(.*\),\1,p' + while : ; do + lsline=`LC_ALL=C ls -l "$curr_executable"` + case "$lsline" in + *" -> "*) + linkdest=`echo "$lsline" | sed -n -e "$sed_linkdest"` + case "$linkdest" in + /* | ?:/* | ?:\\*) curr_executable="$linkdest" ;; + *) curr_executable=`echo "$curr_executable" | sed -e "$sed_dirname"`/"$linkdest" ;; + esac ;; + *) break ;; + esac + done + curr_installdir=`echo "$curr_executable" | sed -e 's,/[^/]*$,,'` + # Canonicalize. + curr_installdir=`cd "$curr_installdir" && pwd` +} +func_find_prefixes () +{ + # Compute the original/current installation prefixes by stripping the + # trailing directories off the original/current installation directories. + orig_installprefix="$orig_installdir" + curr_installprefix="$curr_installdir" + while true; do + orig_last=`echo "$orig_installprefix" | sed -n -e 's,^.*/\([^/]*\)$,\1,p'` + curr_last=`echo "$curr_installprefix" | sed -n -e 's,^.*/\([^/]*\)$,\1,p'` + if test -z "$orig_last" || test -z "$curr_last"; then + break + fi + if test "$orig_last" != "$curr_last"; then + break + fi + orig_installprefix=`echo "$orig_installprefix" | sed -e 's,/[^/]*$,,'` + curr_installprefix=`echo "$curr_installprefix" | sed -e 's,/[^/]*$,,'` + done +} +if test "no" = yes; then + exec_prefix="${prefix}" + bindir="${exec_prefix}/bin" + orig_installdir="$bindir" # see Makefile.am's *_SCRIPTS variables + func_find_curr_installdir # determine curr_installdir + func_find_prefixes + # Relocate the directory variables that we use. + gettext_datadir=`echo "$gettext_datadir/" | sed -e "s%^${orig_installprefix}/%${curr_installprefix}/%" | sed -e 's,/$,,'` +fi + +# func_trace_autoconf macro configure.ac +# traces an Autoconf macro call and outputs the arguments to stdout, +# using autom4te. +func_trace_autoconf () +{ + echo '\ +dnl replace macros which may abort autom4te with a no-op variant +m4_pushdef([m4_assert]) +m4_pushdef([m4_fatal]) +m4_pushdef([m4_warn]) +m4_pushdef([m4_errprintn]) +m4_pushdef([m4_exit]) +m4_pushdef([m4_include]) +m4_pushdef([m4_esyscmd]) +' \ + | "$AUTOM4TE" --no-cache --language=Autoconf-without-aclocal-m4 \ + --trace="$1":\$% - "$2" 2>/dev/null +} + +# func_trace_sed macro configure.ac +# traces an Autoconf macro call and outputs the arguments to stdout, +# using sed. +func_trace_sed () +{ + sed_extract_arguments=' +s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,; +/'"$1"'(/ { + ta + :a + s/)/)/ + tb + s/\\$// + N + ba + :b + s,^.*'"$1"'([[ ]*\([^]"$`\\)]*\).*$,\1,p +} +d' + sed -e "$sed_extract_arguments" "$2" +} + +# func_usage +# outputs to stdout the --help usage message. +func_usage () +{ + echo "\ +Usage: autopoint [OPTION]... + +Copies standard gettext infrastructure files into a source package. + +Options: + --help print this help and exit + --version print version information and exit + -f, --force force overwriting of files that already exist + -n, --dry-run print modifications but don't perform them" +# echo "\ +# -V version copy the infrastructure of the specified gettext version +# (dangerous)" + echo " +Report bugs in the bug tracker at +or by email to ." +} + +# func_version include_config_details +# outputs to stdout the --version message. +# Inputs: +# - include_config_details true or false +func_version () +{ + echo "$progname (GNU $package) $version" + if $1; then + echo "This binary is configured to use a versions archive in dirxz format." + echo + fi + echo "Copyright (C) 2002-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law." + echo "Written by" "Bruno Haible" +} + +# func_fatal_error message +# outputs to stderr a fatal error message, and terminates the program. +func_fatal_error () +{ + echo "autopoint: *** $1" 1>&2 + echo "autopoint: *** Stop." 1>&2 + exit 1 +} + +# Nuisances. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +# Command-line option processing. +# Removes the OPTIONS from the arguments. Sets the variables: +# - force yes if --force was given, empty otherwise +# - ver gettext version if -V was given, empty otherwise +# - doit false if --dry-run was given, : otherwise +{ + force= + ver= + doit=: + + while test $# -gt 0; do + case "$1" in + -n | --dry-run | --dry-ru | --dry-r | --dry- | --dry | --dr | --d ) + shift + doit=false ;; + -f | --force | --forc | --for | --fo | --f ) + shift + force=yes ;; + --help | --hel | --he | --h ) + func_usage; exit 0 ;; +# -V ) # Some people put a space between -V and the version number. +# shift +# if test $# = 0; then +# func_usage 1>&2 +# exit 1 +# fi +# ver=$1; +# shift ;; +# -V*) # Some people omit the space between -V and the version number. +# ver=`echo "X$1" | sed -e 's/^X-V//'` +# shift ;; + --version-without-config ) + # Print version output without build dependent details. + func_version false + exit 0 ;; + --version | --versio | --versi | --vers | --ver | --ve | --v ) + func_version true + exit 0 ;; + -- ) # Stop option prcessing + shift; break ;; + -* ) + echo "autopoint: unknown option $1" 1>&2 + echo "Try 'autopoint --help' for more information." 1>&2 + exit 1 ;; + * ) + break ;; + esac + done +} + +# Command-line argument processing. +# Analyzes the remaining arguments. +{ + if test $# -gt 0; then + func_usage 1>&2 + exit 1 + fi +} + +srcdir=`pwd` +# The current directory is now $srcdir. + +# Check integrity of package: A configure.in/ac must be present. Sets variable +# - configure_in name of configure.in/ac file. +if test -f configure.ac; then + configure_in=configure.ac +else + if test -f configure.in; then + configure_in=configure.in + else + # KDE specific convention: configure.in.in + if test -f configure.in.in; then + configure_in=configure.in.in + else + func_fatal_error "Missing configure.ac or configure.in, please cd to your package first." + fi + fi +fi + +# Select the method for Autoconf macro tracing. func_trace_autoconf +# is more accurate than func_trace_sed, but it only works with +# autoconf >= 2.69. +if echo "AC_PREREQ([2.69])" \ + | "$AUTOM4TE" --no-cache --language=Autoconf-without-aclocal-m4 - 2>&1; then + func_trace=func_trace_autoconf +else + func_trace=func_trace_sed +fi + +# func_version_prereq required_version version +# compares the required version and the latest archive version. +func_version_prereq () +{ + req="$1" + ver="$2" + echo "m4_if(m4_version_compare([$ver], [$req]), [-1], [m4_exit([1])])" \ + | "$AUTOM4TE" --language=M4sugar >/dev/null +} + +# If AM_GNU_GETTEXT_REQUIRE_VERSION is used and archive_version is newer than +# that, use archive_version. +xreq=`func_trace_sed AM_GNU_GETTEXT_REQUIRE_VERSION "$configure_in"` + +# Need to use func_trace_sed instead of $func_trace, since +# AM_GNU_GETTEXT_VERSION is not a standard Autoconf trace. +xver=`func_trace_sed AM_GNU_GETTEXT_VERSION "$configure_in"` + +# Prefer AM_GNU_GETTEXT_REQUIRE_VERSION over AM_GNU_GETTEXT_VERSION if both are +# specified. +if test -n "$xreq" && test -n "$xver"; then + echo "autopoint: using AM_GNU_GETTEXT_REQUIRE_VERSION instead of AM_GNU_GETTEXT_VERSION" +fi + +if test -n "$xreq"; then + if func_version_prereq "$xreq" "$archive_version"; then + ver="$archive_version" + else + func_fatal_error "gettext version $xreq or newer is required" + fi +else + if test -z "$xver" && test -f intl/VERSION; then + xver=`cat intl/VERSION | LC_ALL=C sed -n -e 's/^.*gettext-\([-+_.0-9A-Za-z]*\).*$/\1/p'` + fi + + # Check whether the -V option and the version number in configure.in match. + # At least one of the two must be given. If both are given, they must agree. + + if test -n "$xver"; then + if test -n "$ver"; then + if test "X$ver" != "X$xver"; then + func_fatal_error "Version mismatch: specified -V $ver but the package uses gettext version $xver" + fi + else + ver="$xver" + fi + fi +fi + +if test -z "$ver"; then + func_fatal_error "Missing version: please specify in $configure_in through a line 'AM_GNU_GETTEXT_VERSION(x.yy.zz)' the gettext version the package is using" +fi + +# Check whether the version number is supported. +case "$ver" in + 0.10.35 | 0.10.36 | 0.10.37 | 0.10.38 | 0.10.39 | 0.10.40 | \ + 0.11 | 0.11.1 | 0.11.2 | 0.11.3 | 0.11.4 | 0.11.5 | \ + 0.12 | 0.12.1 | \ + 0.13 | 0.13.1 | \ + 0.14 | 0.14.1 | 0.14.2 | 0.14.3 | 0.14.4 | 0.14.5 | 0.14.6 | \ + 0.15 | \ + 0.16 | 0.16.1 | \ + 0.17 | \ + 0.18 | 0.18.1 | 0.18.2 | 0.18.3 | \ + 0.19 | 0.19.1 | 0.19.2 | 0.19.3 | 0.19.4 | 0.19.5 | 0.19.6 | 0.19.7 | 0.19.8 | \ + 0.20 | 0.20.2 | \ + 0.21 | 0.21.1 | \ + 0.22 ) + ;; + *) + func_fatal_error "The AM_GNU_GETTEXT_VERSION declaration in your $configure_in + file requires the infrastructure from gettext-$ver but this version + is older. Please upgrade to gettext-$ver or newer." + ;; +esac + +# Check in which directory config.rpath, mkinstalldirs etc. belong. +auxdir=`"$func_trace" AC_CONFIG_AUX_DIR "$configure_in"` +if test -n "$auxdir"; then + auxdir="$auxdir/" +fi + +# Check in which directory the *.m4 macros belong. +macrodirs=`"$func_trace" AC_CONFIG_MACRO_DIR_TRACE "$configure_in"` +if test -z "$macrodirs"; then + macrodirs=`"$func_trace" AC_CONFIG_MACRO_DIR "$configure_in"` +fi +for arg in $macrodirs; do + m4dir="$arg" + break +done + +if test -z "$m4dir" && test -f Makefile.am; then + # A package using automake. + # Extract the macro directory name from Makefile.am. + aclocal_amflags=`grep '^ACLOCAL_AMFLAGS[ ]*=' Makefile.am | sed -e 's/^ACLOCAL_AMFLAGS[ ]*=\(.*\)$/\1/'` + m4dir_is_next= + for arg in $aclocal_amflags; do + if test -n "$m4dir_is_next"; then + m4dir="$arg" + break + else + if test "X$arg" = "X-I"; then + m4dir_is_next=yes + else + m4dir_is_next= + fi + fi + done +fi + +if test -z "$m4dir"; then + m4dir=m4 +fi + +# Check whether to omit the intl/ directory. +omitintl= +# Need to use func_trace_sed instead of $func_trace, since +# AM_GNU_GETTEXT is not a standard Autoconf trace. +xargs=`func_trace_sed AM_GNU_GETTEXT "$configure_in"` +save_IFS="$IFS"; IFS=: +for arg in $xargs; do + if test 'external' = "$arg"; then + omitintl=yes + break + fi +done +IFS="$save_IFS" + +if test -z "$omitintl"; then + case "$ver" in + 0.1[0-9] | 0.1[0-9].* ) ;; + *) func_fatal_error "AM_GNU_GETTEXT without 'external' argument is no longer supported in version $ver" ;; + esac +fi + +# Check in which directory or directories the po/* infrastructure belongs. +configfiles=`"$func_trace" AC_CONFIG_FILES "$configure_in"` +# PO directories have a Makefile.in generated from Makefile.in.in. +# Treat a directory as a PO directory if and only if it has a +# POTFILES.in file. This allows packages to have multiple PO +# directories under different names or in different locations. +sed_remove_Makefile_in='s,/Makefile\.in$,,' +podirs=`for f in $configfiles; do case "$f" in */Makefile.in) echo $f;; esac; done | sed -e "$sed_remove_Makefile_in"` +if test -z "$podirs"; then + # If we cannot get the list of PO directories from configure.ac, assume the + # common default. + podirs="po" +fi + +# Set up a temporary checkout directory. +# Set variables +# - work_dir directory containing the temporary checkout +work_dir=tmpwrk$$ +mkdir "$work_dir" || { + if test -d "$work_dir"; then + func_fatal_error "directory $work_dir already exists" + else + func_fatal_error "cannot create directory $work_dir" + fi +} + +# We support three archive formats. +# +# Format | Size (KiB) for gettext-0.17 | Extra tools needed | +# -------+-----------------------------+--------------------+ +# dir | 3000 | -- | +# cvs | 356 | cvs | +# git | 484 | git | +# -------+-----------------------------+--------------------+ + +case "dirxz" in + dir*) + # The archive of different versions is very large (unless xz compression is + # used), but using it does not require special tools. + case "dirxz" in + dirgz) gzip -d -c < "$gettext_datadir/archive.dir.tar.gz" ;; + dirbz2) bzip2 -d -c < "$gettext_datadir/archive.dir.tar.bz2" ;; + dirxz) xz -d -c < "$gettext_datadir/archive.dir.tar.xz" ;; + esac \ + | (cd "$work_dir" && tar xf - "gettext-$ver") + if test `find "$work_dir" -type f -print | wc -l` = 0; then + rm -rf "$work_dir" + func_fatal_error "infrastructure files for version $ver not found; this is autopoint from GNU $package $version" + fi + mv "$work_dir/gettext-$ver" "$work_dir/archive" + ;; + + cvs) + # We distributed the many different versions of the files in a CVS + # repository. This guaranteed a good compression rate: + # + # Including version size in KB of + # "du autopoint-files/archive" + # 0.10.35 240 + # 0.10.36 428 + # 0.10.37 436 + # 0.10.38 488 + # 0.10.39 500 + # 0.10.40 528 + # 0.11 720 + # 0.11.1 740 + # 0.11.2 748 + # 0.11.3 804 + # 0.11.4 864 + # 0.11.5 880 + # 0.12 1032 + # 0.12.1 1032 + # 0.13 1220 + # 0.13.1 1236 + # 0.14 1296 + # 0.14.1 1300 + # 0.14.2 1420 + # 0.14.3 1428 + # 0.14.4 1464 + # 0.14.5 1508 + # 0.14.6 1580 + # 0.15 1760 + # 0.16 1808 + # 0.16.1 1812 + # 0.17 2128 + # 0.18 2656 + # + # The requirement that the user must have the CVS program available is not + # a severe restrictions, because most of the people who use autopoint are + # users of CVS. + # + # But the CVS format is now deprecated, because "cvs init" does not work in + # all circumstances + # (see ) + # and we are not allowed to distribute the cvs infrastructure files + # ourselves + # (see ). + # + # Check availability of the CVS program. + (cvs -v) >/dev/null 2>/dev/null || func_fatal_error "cvs program not found" + + # Set up a temporary CVS repository. + # We need the temporary CVS repository because any checkout needs write + # access to the CVSROOT/history file, so it cannot be under $gettext_datadir. + # We need the temporary checkout directory because when --force was not + # given, we need to compare the existing files with the checked out ones. + # Set variables + # - cvs_dir directory containing the temporary repository + cvs_dir=tmpcvs$$ + # Use an umask of 077, to avoid attacks that work by overwriting files in + # the "$CVSROOT"/CVSROOT directory. + (umask 077 && mkdir "$cvs_dir") || { + if test -d "$cvs_dir"; then + func_fatal_error "directory $cvs_dir already exists" + else + func_fatal_error "cannot create directory $cvs_dir" + fi + } + CVSROOT="$srcdir/$cvs_dir" + unset CVS_CLIENT_LOG + unset CVS_CLIENT_PORT + unset CVS_IGNORE_REMOTE_ROOT + unset CVS_LOCAL_BRANCH_NUM + unset CVS_NOBASES + unset CVS_PASSFILE + unset CVS_PASSWORD + unset CVS_PROXY_PORT + unset CVS_RCMD_PORT + unset CVS_RSH + unset CVS_SERVER + unset CVS_SERVER_SLEEP + CVS_SIGN_COMMITS= + export CVS_SIGN_COMMITS + unset CVS_SSH + unset CVS_VERIFY_CHECKOUTS + unset CVS_VERIFY_TEMPLATE + unset CVSIGNORE + unset CVSREAD + unset CVSREADONLYFS + unset CVSUMASK + unset CVSWRAPPERS + + # Need to pass -d "$CVSROOT", because there may be a CVS directory in the + # current directory. + cvs -d "$CVSROOT" init + gzip -d -c < "$gettext_datadir/archive.cvs.tar.gz" | (cd "$cvs_dir" && tar xf -) + + cd "$work_dir" + cvsver=gettext-`echo "$ver" | sed -e 's/\./_/g'` + (cvs -d "$CVSROOT" checkout -r"$cvsver" archive > /dev/null) 2>&1 | grep -v '^cvs checkout: Updating' + find archive -name CVS -type d -print | xargs rm -rf + cd .. + rm -rf "$cvs_dir" + # Check that really all CVS directories are gone, otherwise we would overwrite + # the contents of the user's CVS directories. + if test `find $work_dir/archive -name CVS -type d -print | wc -l` != 0; then + rm -rf "$work_dir" + func_fatal_error "failed to remove all CVS subdirectories" + fi + if test `find $work_dir/archive -type f -print | wc -l` = 0; then + rm -rf "$work_dir" + func_fatal_error "infrastructure files for version $ver not found; this is autopoint from GNU $package $version" + fi + ;; + + git) + # Check availability of the git program. + (git --version) >/dev/null 2>/dev/null || func_fatal_error "git program not found" + mkdir "$work_dir/archive" + gzip -d -c < "$gettext_datadir/archive.git.tar.gz" | (cd "$work_dir/archive" && tar xf -) + (unset GIT_CONFIG + unset XDG_CONFIG_HOME + unset HOME + GIT_CONFIG_NOSYSTEM=1; export GIT_CONFIG_NOSYSTEM + cd "$work_dir/archive" && git checkout -q "gettext-$ver" + ) || { + rm -rf "$work_dir" + func_fatal_error "infrastructure files for version $ver not found; this is autopoint from GNU $package $version" + } + (cd "$work_dir/archive" && rm -rf .git .gitignore) + ;; +esac + +# func_destfile file +# determines the destination file, relative to the package's top level +# directory, for a given file name, relative to archive. +# Sets variables +# - destfile relative destination file name, or +# empty if the file shall be omitted +# - sharedowner yes if the file is not only owned by GNU gettext but may +# be installed by automake or other tools, otherwise empty +# - allpodirs yes if the file is to be installed in every dir in $podirs +func_destfile () +{ + # There are five categories of files: + # ABOUT-NLS -> top level directory + # config.rpath mkinstalldirs -> $auxdir + # m4/* -> $m4dir/ + # intl/* -> intl/ + # po/* -> + sharedowner= + allpodirs= + case `echo "$1" | sed -e 's,[^/]*$,,'` in + "" ) + case "$1" in + config.rpath ) destfile="$auxdir$1" ;; + mkinstalldirs ) destfile="$auxdir$1" sharedowner=yes ;; + * ) destfile="$1" ;; + esac + ;; + m4/ ) destfile=`echo "$1" | sed -e "s,^m4/,$m4dir/,"` ;; + intl/ ) if test -n "$omitintl"; then destfile=""; else destfile="$1"; fi ;; + po/ ) destfile=`echo "$1" | sed -e "s,^po/,,"` allpodirs=yes ;; + * ) destfile="$1" ;; + esac +} + +# func_compare existingfile gettextfile +# compares the existing file and the file from gettext, and decides whether the +# existing file should be overwritten with the file from gettext. Returns 0 if +# it should be overwritten, or 1 if it should be skipped. +sed_extract_serial='s/^#.* serial \([^ ]*\).*/\1/p +1q' +func_compare () +{ + if cmp -s "$1" "$2"; then + false + else + case "$2" in + *.m4) + # For interoperability with gnulib. gnulib often has newer versions of + # the *.m4 files than the latest gettext release. Don't overwrite a + # newer version from gnulib with an older version from the gettext + # release. The version can be retrieved from the first line, which + # looks like this: # file.m4 serial NN ... + existing_serial=`sed -n -e "$sed_extract_serial" < "$1"` + gettext_serial=`sed -n -e "$sed_extract_serial" < "$2"` + if test -n "$existing_serial" && test -n "$gettext_serial" \ + && test "$existing_serial" -ge "$gettext_serial" 2> /dev/null; then + false + else + true + fi + ;; + *) + true + ;; + esac + fi +} + +# If some files have been locally modified and we have not been requested +# to overwrite them, then bail out. This is better than leaving a source +# package around where half of the files are locally modified and half are +# original - too great risk of version mismatch. +if test -z "$force"; then + mismatch= + func_tmpdir + mismatchfile="$tmp"/autopoint.diff + for file in `find "$work_dir/archive" -type f -print | sed -e "s,^$work_dir/archive/,," | LC_ALL=C sort`; do + func_destfile "$file" + if test -n "$destfile"; then + func_compare_to_destfile () + { + finaldestfile="$1" + if test -f "$finaldestfile"; then + if func_compare "$finaldestfile" "$work_dir/archive/$file"; then + if test -n "$sharedowner"; then + echo "autopoint: warning: File $finaldestfile has been locally modified." 1>&2 + else + echo "autopoint: File $finaldestfile has been locally modified." 1>&2 + mismatch=yes + diff -c "$work_dir/archive/$file" "$finaldestfile" | sed -e "1s,$work_dir/archive/,," >> "$mismatchfile" + fi + fi + fi + } + if test -n "$allpodirs"; then + for dir in $podirs; do + func_compare_to_destfile "$dir/$destfile" + done + else + func_compare_to_destfile "$destfile" + fi + fi + done + if test -n "$mismatch"; then + rm -rf "$work_dir" + func_fatal_error "Some files have been locally modified. Not overwriting them because --force has not been specified. For your convenience, you find the local modifications in the file '$mismatchfile'." + fi + rm -rf "$tmp" +fi + +# func_mkdir_for to +# ensures the directory that would the given file exists. +# 'to' is a relative pathname, relative to the current directory. +func_mkdir_for () +{ + base=`echo "$1" | sed -e 's,/[^/]*$,,'` + if test "X$base" != "X$1" && test -n "$base"; then + func_mkdir_for "$base" + # Recompute base. It was clobbered by the recursive call. + base=`echo "$1" | sed -e 's,/[^/]*$,,'` + test -d "$base" || { echo "Creating directory $base"; mkdir "$base"; } + fi +} + +# func_copy from to +# copies a file. +# 'from' is a relative pathname, relative to the current directory. +# 'to' is a relative pathname, relative to the current directory. +func_copy () +{ + if $doit; then + func_mkdir_for "$2" + rm -f "$2" + echo "Copying file $2" + cp "$1" "$2" + else + echo "Copy file $2" + fi +} + +# func_backup to +# makes a backup of a file that is about to be overwritten or replaced. +# 'to' is a relative pathname, relative to the current directory. +func_backup () +{ + if $doit; then + if test -f "$1"; then + rm -f "$1~" + cp -p "$1" "$1~" + fi + fi +} + +# Now copy the files. +for file in `find "$work_dir/archive" -type f -print | sed -e "s,^$work_dir/archive/,," | LC_ALL=C sort`; do + func_destfile "$file" + if test -n "$destfile"; then + func_copy_to_destfile () + { + finaldestfile="$1" + mustcopy= + if test -f "$finaldestfile"; then + if func_compare "$finaldestfile" "$work_dir/archive/$file"; then + if test -n "$force"; then + # Overwrite locally modified file. + mustcopy=yes + fi + # If --force is not specified, don't overwrite locally modified files + # for which GNU gettext is a shared owner. + fi + else + mustcopy=yes + fi + if test -n "$mustcopy"; then + func_backup "$finaldestfile" + func_copy "$work_dir/archive/$file" "$finaldestfile" + fi + } + if test -n "$allpodirs"; then + for dir in $podirs; do + func_copy_to_destfile "$dir/$destfile" + done + else + func_copy_to_destfile "$destfile" + fi + fi +done + +# That's it. +rm -rf "$work_dir" +exit 0 diff --git a/code/application/source/sf_app/tools/blue/bin/bluemoon b/code/application/source/sf_app/tools/blue/bin/bluemoon new file mode 100755 index 000000000..32c18cc60 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/bluemoon differ diff --git a/code/application/source/sf_app/tools/blue/bin/bluetoothctl b/code/application/source/sf_app/tools/blue/bin/bluetoothctl new file mode 100755 index 000000000..df47a9066 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/bluetoothctl differ diff --git a/code/application/source/sf_app/tools/blue/bin/btattach b/code/application/source/sf_app/tools/blue/bin/btattach new file mode 100755 index 000000000..4822ccfee Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/btattach differ diff --git a/code/application/source/sf_app/tools/blue/bin/btmon b/code/application/source/sf_app/tools/blue/bin/btmon new file mode 100755 index 000000000..c880fa1f6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/btmon differ diff --git a/code/application/source/sf_app/tools/blue/bin/dbus-cleanup-sockets b/code/application/source/sf_app/tools/blue/bin/dbus-cleanup-sockets new file mode 100755 index 000000000..65f991132 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/dbus-cleanup-sockets differ diff --git a/code/application/source/sf_app/tools/blue/bin/dbus-daemon b/code/application/source/sf_app/tools/blue/bin/dbus-daemon new file mode 100755 index 000000000..648978ffa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/dbus-daemon differ diff --git a/code/application/source/sf_app/tools/blue/bin/dbus-launch b/code/application/source/sf_app/tools/blue/bin/dbus-launch new file mode 100755 index 000000000..8b326190a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/dbus-launch differ diff --git a/code/application/source/sf_app/tools/blue/bin/dbus-monitor b/code/application/source/sf_app/tools/blue/bin/dbus-monitor new file mode 100755 index 000000000..b44f46d5c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/dbus-monitor differ diff --git a/code/application/source/sf_app/tools/blue/bin/dbus-run-session b/code/application/source/sf_app/tools/blue/bin/dbus-run-session new file mode 100755 index 000000000..b61553899 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/dbus-run-session differ diff --git a/code/application/source/sf_app/tools/blue/bin/dbus-send b/code/application/source/sf_app/tools/blue/bin/dbus-send new file mode 100755 index 000000000..17d5d6242 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/dbus-send differ diff --git a/code/application/source/sf_app/tools/blue/bin/dbus-test-tool b/code/application/source/sf_app/tools/blue/bin/dbus-test-tool new file mode 100755 index 000000000..f980a725d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/dbus-test-tool differ diff --git a/code/application/source/sf_app/tools/blue/bin/dbus-update-activation-environment b/code/application/source/sf_app/tools/blue/bin/dbus-update-activation-environment new file mode 100755 index 000000000..0c13b9f13 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/dbus-update-activation-environment differ diff --git a/code/application/source/sf_app/tools/blue/bin/dbus-uuidgen b/code/application/source/sf_app/tools/blue/bin/dbus-uuidgen new file mode 100755 index 000000000..e0a9bc78d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/dbus-uuidgen differ diff --git a/code/application/source/sf_app/tools/blue/bin/envsubst b/code/application/source/sf_app/tools/blue/bin/envsubst new file mode 100755 index 000000000..023badde9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/envsubst differ diff --git a/code/application/source/sf_app/tools/blue/bin/gapplication b/code/application/source/sf_app/tools/blue/bin/gapplication new file mode 100755 index 000000000..619604827 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/gapplication differ diff --git a/code/application/source/sf_app/tools/blue/bin/gdbus b/code/application/source/sf_app/tools/blue/bin/gdbus new file mode 100755 index 000000000..4684e4dc2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/gdbus differ diff --git a/code/application/source/sf_app/tools/blue/bin/gdbus-codegen b/code/application/source/sf_app/tools/blue/bin/gdbus-codegen new file mode 100755 index 000000000..3fd64d88e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/bin/gdbus-codegen @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 + +# GDBus - GLib D-Bus Library +# +# Copyright (C) 2008-2011 Red Hat, Inc. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General +# Public License along with this library; if not, see . +# +# Author: David Zeuthen + + +import os +import sys + +srcdir = os.getenv('UNINSTALLED_GLIB_SRCDIR', None) +filedir = os.path.dirname(__file__) + +if srcdir is not None: + path = os.path.join(srcdir, 'gio', 'gdbus-2.0') +elif os.path.basename(filedir) == 'bin': + # Make the prefix containing gdbus-codegen 'relocatable' at runtime by + # adding /some/prefix/bin/../share/glib-2.0 to the python path + path = os.path.join(filedir, '..', 'share', 'glib-2.0') +else: + # Assume that the modules we need are in the current directory and add the + # parent directory to the python path. + path = os.path.join(filedir, '..') + +# Canonicalize, then do further testing +path = os.path.abspath(path) + +# If the above path detection failed, use the hard-coded datadir. This can +# happen when, for instance, bindir and datadir are not in the same prefix or +# on Windows where we cannot make any guarantees about the directory structure. +# +# In these cases our installation cannot be relocatable, but at least we should +# be able to find the codegen module. +if not os.path.isfile(os.path.join(path, 'codegen', 'codegen_main.py')): + path = os.path.join('/home/payton/blue/share', 'glib-2.0') + +sys.path.insert(0, path) +from codegen import codegen_main + +sys.exit(codegen_main.codegen_main()) diff --git a/code/application/source/sf_app/tools/blue/bin/gettext b/code/application/source/sf_app/tools/blue/bin/gettext new file mode 100755 index 000000000..5f716c57c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/gettext differ diff --git a/code/application/source/sf_app/tools/blue/bin/gettext.sh b/code/application/source/sf_app/tools/blue/bin/gettext.sh new file mode 100755 index 000000000..22985cd4a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/bin/gettext.sh @@ -0,0 +1,135 @@ +#! /bin/sh +# +# Copyright (C) 2003, 2005-2007, 2011, 2018-2023 Free Software Foundation, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . +# + +# Find a way to echo strings without interpreting backslash. +if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + echo='echo' +else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + echo='printf %s\n' + else + echo_func () { + cat < +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law." + echo "Written by" "Bruno Haible" + } + if test $# = 1; then + case "$1" in + --help | --hel | --he | --h ) + func_usage; exit 0 ;; + --version | --versio | --versi | --vers | --ver | --ve | --v ) + func_version; exit 0 ;; + esac + fi + func_usage 1>&2 + exit 1 + ;; + esac +fi + +# eval_gettext MSGID +# looks up the translation of MSGID and substitutes shell variables in the +# result. +eval_gettext () { + gettext "$1" | (export PATH `envsubst --variables "$1"`; envsubst "$1") +} + +# eval_ngettext MSGID MSGID-PLURAL COUNT +# looks up the translation of MSGID / MSGID-PLURAL for COUNT and substitutes +# shell variables in the result. +eval_ngettext () { + ngettext "$1" "$2" "$3" | (export PATH `envsubst --variables "$1 $2"`; envsubst "$1 $2") +} + +# eval_pgettext MSGCTXT MSGID +# looks up the translation of MSGID in the context MSGCTXT and substitutes +# shell variables in the result. +eval_pgettext () { + gettext --context="$1" "$2" | (export PATH `envsubst --variables "$2"`; envsubst "$2") +} + +# eval_npgettext MSGCTXT MSGID MSGID-PLURAL COUNT +# looks up the translation of MSGID / MSGID-PLURAL for COUNT in the context +# MSGCTXT and substitutes shell variables in the result. +eval_npgettext () { + ngettext --context="$1" "$2" "$3" "$4" | (export PATH `envsubst --variables "$2 $3"`; envsubst "$2 $3") +} + +# Note: This use of envsubst is much safer than using the shell built-in 'eval' +# would be. +# 1) The security problem with Chinese translations that happen to use a +# character such as \xe0\x60 is avoided. +# 2) The security problem with malevolent translators who put in command lists +# like "$(...)" or "`...`" is avoided. +# 3) The translations can only refer to shell variables that are already +# mentioned in MSGID or MSGID-PLURAL. +# +# Note: "export PATH" above is a dummy; this is for the case when +# `envsubst --variables ...` returns nothing. +# +# Note: In eval_ngettext above, "$1 $2" means a string whose variables set is +# the union of the variables set of "$1" and "$2". +# +# Note: The minimal use of backquote above ensures that trailing newlines are +# not dropped, not from the gettext invocation and not from the value of any +# shell variable. +# +# Note: Field splitting on the `envsubst --variables ...` result is desired, +# since envsubst outputs the variables, separated by newlines. Pathname +# wildcard expansion or tilde expansion has no effect here, since the words +# output by "envsubst --variables ..." consist solely of alphanumeric +# characters and underscore. diff --git a/code/application/source/sf_app/tools/blue/bin/gettextize b/code/application/source/sf_app/tools/blue/bin/gettextize new file mode 100755 index 000000000..88ca6359d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/bin/gettextize @@ -0,0 +1,1313 @@ +#! /bin/sh +# +# Copyright (C) 1995-1998, 2000-2023 Free Software Foundation, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# This file is meant for authors or maintainers which want to +# internationalize their package with the help of GNU gettext. For +# further information how to use it consult the GNU gettext manual. + +progname=$0 +package=gettext-tools +version=0.22 +archive_version=0.22 + +# Set variables +# - gettext_datadir directory where the data files are stored. +prefix="/home/payton/blue" +datarootdir="${prefix}/share" +: ${gettext_datadir="${datarootdir}/gettext"} +: ${AUTOM4TE=autom4te} + +# func_tmpdir +# creates a temporary directory. +# Sets variable +# - tmp pathname of freshly created temporary directory +func_tmpdir () +{ + # Use the environment variable TMPDIR, falling back to /tmp. This allows + # users to specify a different temporary directory, for example, if their + # /tmp is filled up or too small. + : ${TMPDIR=/tmp} + { + # Use the mktemp program if available. If not available, hide the error + # message. + tmp=`(umask 077 && mktemp -d "$TMPDIR/gtXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" + } || + { + # Use a simple mkdir command. It is guaranteed to fail if the directory + # already exists. $RANDOM is bash specific and expands to empty in shells + # other than bash, ksh and zsh. Its use does not increase security; + # rather, it minimizes the probability of failure in a very cluttered /tmp + # directory. + tmp=$TMPDIR/gt$$-$RANDOM + (umask 077 && mkdir "$tmp") + } || + { + echo "$0: cannot create a temporary directory in $TMPDIR" >&2 + { (exit 1); exit 1; } + } +} + +# Support for relocatability. +func_find_curr_installdir () +{ + # Determine curr_installdir, even taking into account symlinks. + curr_executable="$0" + case "$curr_executable" in + */* | *\\*) ;; + *) # Need to look in the PATH. + save_IFS="$IFS"; IFS="${PATH_SEPARATOR=':'}" + for dir in $PATH; do + IFS="$save_IFS" + test -z "$dir" && dir=. + for exec_ext in ''; do + if test -f "$dir/$curr_executable$exec_ext"; then + curr_executable="$dir/$curr_executable$exec_ext" + break 2 + fi + done + done + IFS="$save_IFS" + ;; + esac + # Make absolute. + case "$curr_executable" in + /* | ?:/* | ?:\\*) ;; + *) curr_executable=`pwd`/"$curr_executable" ;; + esac + # Resolve symlinks. + sed_dirname='s,/[^/]*$,,' + sed_linkdest='s,^.* -> \(.*\),\1,p' + while : ; do + lsline=`LC_ALL=C ls -l "$curr_executable"` + case "$lsline" in + *" -> "*) + linkdest=`echo "$lsline" | sed -n -e "$sed_linkdest"` + case "$linkdest" in + /* | ?:/* | ?:\\*) curr_executable="$linkdest" ;; + *) curr_executable=`echo "$curr_executable" | sed -e "$sed_dirname"`/"$linkdest" ;; + esac ;; + *) break ;; + esac + done + curr_installdir=`echo "$curr_executable" | sed -e 's,/[^/]*$,,'` + # Canonicalize. + curr_installdir=`cd "$curr_installdir" && pwd` +} +func_find_prefixes () +{ + # Compute the original/current installation prefixes by stripping the + # trailing directories off the original/current installation directories. + orig_installprefix="$orig_installdir" + curr_installprefix="$curr_installdir" + while true; do + orig_last=`echo "$orig_installprefix" | sed -n -e 's,^.*/\([^/]*\)$,\1,p'` + curr_last=`echo "$curr_installprefix" | sed -n -e 's,^.*/\([^/]*\)$,\1,p'` + if test -z "$orig_last" || test -z "$curr_last"; then + break + fi + if test "$orig_last" != "$curr_last"; then + break + fi + orig_installprefix=`echo "$orig_installprefix" | sed -e 's,/[^/]*$,,'` + curr_installprefix=`echo "$curr_installprefix" | sed -e 's,/[^/]*$,,'` + done +} +if test "no" = yes; then + exec_prefix="${prefix}" + bindir="${exec_prefix}/bin" + orig_installdir="$bindir" # see Makefile.am's *_SCRIPTS variables + func_find_curr_installdir # determine curr_installdir + func_find_prefixes + # Relocate the directory variables that we use. + gettext_datadir=`echo "$gettext_datadir/" | sed -e "s%^${orig_installprefix}/%${curr_installprefix}/%" | sed -e 's,/$,,'` +fi + +# func_trace_autoconf macro configure.ac +# traces an Autoconf macro call and outputs the arguments to stdout, +# using autom4te. +func_trace_autoconf () +{ + echo '\ +dnl replace macros which may abort autom4te with a no-op variant +m4_pushdef([m4_assert]) +m4_pushdef([m4_fatal]) +m4_pushdef([m4_warn]) +m4_pushdef([m4_errprintn]) +m4_pushdef([m4_exit]) +m4_pushdef([m4_include]) +m4_pushdef([m4_esyscmd]) +' \ + | "$AUTOM4TE" --no-cache --language=Autoconf-without-aclocal-m4 \ + --trace="$1":\$% - "$2" 2>/dev/null +} + +# func_trace_sed macro configure.ac +# traces an Autoconf macro call and outputs the arguments to stdout, +# using sed. +func_trace_sed () +{ + sed_extract_arguments=' +s,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,; +/'"$1"'(/ { + ta + :a + s/)/)/ + tb + s/\\$// + N + ba + :b + s,^.*'"$1"'([[ ]*\([^]"$`\\)]*\).*$,\1,p +} +d' + sed -e "$sed_extract_arguments" "$2" +} + +# func_usage +# outputs to stdout the --help usage message. +func_usage () +{ + echo "\ +Usage: gettextize [OPTION]... [package-dir] + +Prepares a source package to use gettext. + +Options: + --help print this help and exit + --version print version information and exit + -f, --force force writing of new files even if old exist + --po-dir=DIR specify directory with PO files + --no-changelog don't update or create ChangeLog files + --symlink make symbolic links instead of copying files + -n, --dry-run print modifications but don't perform them + +Report bugs in the bug tracker at +or by email to ." +} + +# func_version +# outputs to stdout the --version message. +func_version () +{ + echo "$progname (GNU $package) $version" + echo "Copyright (C) 1995-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law." + echo "Written by" "Ulrich Drepper" +} + +# func_fatal_error message +# outputs to stderr a fatal error message, and terminates the program. +func_fatal_error () +{ + echo "gettextize: *** $1" 1>&2 + echo "gettextize: *** Stop." 1>&2 + exit 1 +} + +# Nuisances. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +# Command-line option processing. +# Removes the OPTIONS from the arguments. Sets the variables: +# - force 1 if --force was given, 0 otherwise +# - intldir yes if --intl was given, empty otherwise +# - podirs list of directories specified with --po-dir +# - try_ln_s : if --symlink was given, false otherwise +# - do_changelog false if --no-changelog was given, : otherwise +# - doit false if --dry-run was given, : otherwise +{ + force=0 + intldir= + podirs= + try_ln_s=false + do_changelog=: + doit=: + + while test $# -gt 0; do + case "$1" in + -c | --copy | --cop | --co | --c ) # accepted for backward compatibility + shift ;; + -n | --dry-run | --dry-ru | --dry-r | --dry- | --dry | --dr | --d ) + shift + doit=false ;; + -f | --force | --forc | --for | --fo | --f ) + shift + force=1 ;; + --help | --hel | --he | --h ) + func_usage; exit 0 ;; + --intl | --int | --in | --i ) + shift + intldir=yes ;; + --po-dir | --po-di | --po-d | --po- | --po | --p ) + shift + if test $# = 0; then + func_fatal_error "missing argument for --po-dir" + fi + case "$1" in + -*) func_fatal_error "missing argument for --po-dir" ;; + esac + podirs="$podirs $1" + shift ;; + --po-dir=* ) + arg=`echo "X$1" | sed -e 's/^X--po-dir=//'` + podirs="$podirs $arg" + shift ;; + --no-changelog | --no-changelo | --no-changel | --no-change | --no-chang | --no-chan | --no-cha | --no-ch | --no-c ) + shift + do_changelog=false ;; + --symlink | --symlin | --symli | --syml | --sym | --sy | --s ) + shift + try_ln_s=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v ) + func_version + exit 0 ;; + -- ) # Stop option prcessing + shift; break ;; + -* ) + echo "gettextize: unknown option $1" 1>&2 + echo "Try 'gettextize --help' for more information." 1>&2 + exit 1 ;; + * ) + break ;; + esac + done + # podirs defaults to "po". + test -n "$podirs" || podirs="po" +} + +# Warn about deprecated options. +if test -n "$intldir"; then + func_fatal_error "The option '--intl' is no longer available." +fi + +# Require automake 1.9 or newer. +have_automake19= +if (aclocal --version) >/dev/null 2>/dev/null; then + aclocal_version=`aclocal --version | sed -n -e 1p | sed -e 's/^[^0-9]*//'` + case $aclocal_version in + 1.9* | 1.[1-9][0-9]* | [2-9]*) have_automake19=yes ;; + esac +fi +if test -z "$have_automake19"; then + func_fatal_error "You need the 'aclocal' program from automake 1.9 or newer." +fi +min_automake_version=1.9 + +# Command-line argument processing. +# Analyzes the remaining arguments. +# Sets the variables +# - origdir to the original directory, +# - srcdir to the package directory, and cd-s into it. +{ + if test $# -gt 1; then + func_usage 1>&2 + exit 1 + fi + origdir=`pwd` + if test $# -eq 1; then + srcdir=$1 + if cd "$srcdir"; then + srcdir=`pwd` + else + func_fatal_error "Cannot change directory to '$srcdir'." + fi + else + srcdir=$origdir + fi +} + +# The current directory is now $srcdir. + +# Check integrity of package: A configure.in/ac must be present. Sets variable +# - configure_in name of configure.in/ac file. +test -f configure.in || test -f configure.ac || + func_fatal_error "Missing configure.in or configure.ac, please cd to your package first." +configure_in=NONE +if test -f configure.in; then + configure_in=configure.in +else + if test -f configure.ac; then + configure_in=configure.ac + fi +fi + +# Check whether the --force option is needed but has not been specified. +if test $force -eq 0; then + if test -d intl; then + func_fatal_error "intl/ subdirectory exists: use option -f if you really want to delete it." + fi + for podir in $podirs; do + if test -f "$podir/Makefile.in.in"; then + func_fatal_error "$podir/Makefile.in.in exists: use option -f if you really want to delete it." + fi + done + if test -f ABOUT-NLS; then + func_fatal_error "ABOUT-NLS exists: use option -f if you really want to delete it." + fi +fi + +# Select the method for Autoconf macro tracing. func_trace_autoconf +# is more accurate than func_trace_sed, but it only works with +# autoconf >= 2.69. +if echo "AC_PREREQ([2.69])" \ + | "$AUTOM4TE" --no-cache --language=Autoconf-without-aclocal-m4 - 2>&1; then + func_trace=func_trace_autoconf +else + func_trace=func_trace_sed +fi + +# Check in which directory config.rpath etc. belong. +auxdir=`"$func_trace" AC_CONFIG_AUX_DIR "$configure_in"` +if test -n "$auxdir"; then + auxdir="$auxdir/" +fi + +# Check in which directory gettext.m4 etc. belong. +macrodirs=`"$func_trace" AC_CONFIG_MACRO_DIR_TRACE "$configure_in"` +if test -z "$macrodirs"; then + macrodirs=`"$func_trace" AC_CONFIG_MACRO_DIR "$configure_in"` +fi +for arg in $macrodirs; do + m4dir="$arg" + break +done + +# For simplicity we change to the gettext source directory. +cd "$gettext_datadir" || + func_fatal_error "gettext source directory '${gettext_datadir}' doesn't exist" + +# Variables which keep track what has been modified. +added_directories= +removed_directory= +added_extradist= +added_acoutput= +removed_acoutput=" intl/intlh.inst" + +# Variable: +# - please accumulates instructions for the user. +please= + +# Variable: +# - date current date, for use in ChangeLog entries. +date=`date +%Y-%m-%d` + +# func_copy from to +# copies a file. +# 'from' is a relative pathname, relative to the current directory. +# 'to' is a relative pathname, relative to $srcdir. +func_copy () +{ + if $doit; then + rm -f "$srcdir/$2" + echo "Copying file $2" + cp "$1" "$srcdir/$2" + else + echo "Copy file $2" + fi +} + +# func_linkorcopy from absfrom to +# links or copies a file. +# 'from' is a relative pathname, relative to the current directory. +# 'absfrom' is the corresponding absolute pathname. +# 'to' is a relative pathname, relative to $srcdir. +func_linkorcopy () +{ + if $doit; then + rm -f "$srcdir/$3" + ($try_ln_s && ln -s "$2" "$srcdir/$3" && echo "Symlinking file $3") 2>/dev/null || + { echo "Copying file $3"; cp "$1" "$srcdir/$3"; } + else + if $try_ln_s; then + echo "Symlink file $3" + else + echo "Copy file $3" + fi + fi +} + +# func_backup to +# makes a backup of a file that is about to be overwritten or replaced. +# 'to' is a relative pathname, relative to $srcdir. +func_backup () +{ + if $doit; then + if test -f "$srcdir/$1"; then + rm -f "$srcdir/$1~" + cp -p "$srcdir/$1" "$srcdir/$1~" + fi + fi +} + +# func_remove to +# removes a file. +# 'to' is a relative pathname, relative to $srcdir. +func_remove () +{ + if $doit; then + echo "Removing $1" + rm -f "$srcdir/$1" + else + echo "Remove $1" + fi +} + +# func_ChangeLog_init +# func_ChangeLog_add_entry line +# func_ChangeLog_finish +# manage the ChangeLog file, relative to $srcdir. +func_ChangeLog_init () +{ + modified_ChangeLog= +} +func_ChangeLog_add_entry () +{ + if $doit; then + if test -z "$modified_ChangeLog"; then + echo "$date gettextize " > "$srcdir/ChangeLog.tmp" + echo >> "$srcdir/ChangeLog.tmp" + modified_ChangeLog=yes + fi + echo "$1" >> "$srcdir/ChangeLog.tmp" + else + modified_ChangeLog=yes + fi +} +func_ChangeLog_finish () +{ + if test -n "$modified_ChangeLog"; then + if $doit; then + echo >> "$srcdir/ChangeLog.tmp" + if test -f "$srcdir/ChangeLog"; then + echo "Adding an entry to ChangeLog (backup is in ChangeLog~)" + cat "$srcdir/ChangeLog" >> "$srcdir/ChangeLog.tmp" + rm -f "$srcdir/ChangeLog~" + cp -p "$srcdir/ChangeLog" "$srcdir/ChangeLog~" + else + echo "Creating ChangeLog" + fi + cp "$srcdir/ChangeLog.tmp" "$srcdir/ChangeLog" + rm -f "$srcdir/ChangeLog.tmp" + else + if test -f "$srcdir/ChangeLog"; then + echo "Add an entry to ChangeLog" + else + echo "Create ChangeLog" + fi + fi + fi +} + +# func_poChangeLog_init +# func_poChangeLog_add_entry line +# func_poChangeLog_finish +# manage the $podir/ChangeLog file, relative to $srcdir. +func_poChangeLog_init () +{ + modified_poChangeLog= +} +func_poChangeLog_add_entry () +{ + if $doit; then + if test -z "$modified_poChangeLog"; then + echo "$date gettextize " > "$srcdir/$podir/ChangeLog.tmp" + echo >> "$srcdir/$podir/ChangeLog.tmp" + modified_poChangeLog=yes + fi + echo "$1" >> "$srcdir/$podir/ChangeLog.tmp" + else + modified_poChangeLog=yes + fi +} +func_poChangeLog_finish () +{ + if test -n "$modified_poChangeLog"; then + if $doit; then + echo >> "$srcdir/$podir/ChangeLog.tmp" + if test -f "$srcdir/$podir/ChangeLog"; then + echo "Adding an entry to $podir/ChangeLog (backup is in $podir/ChangeLog~)" + cat "$srcdir/$podir/ChangeLog" >> "$srcdir/$podir/ChangeLog.tmp" + rm -f "$srcdir/$podir/ChangeLog~" + cp -p "$srcdir/$podir/ChangeLog" "$srcdir/$podir/ChangeLog~" + else + echo "Creating $podir/ChangeLog" + fi + cp "$srcdir/$podir/ChangeLog.tmp" "$srcdir/$podir/ChangeLog" + rm -f "$srcdir/$podir/ChangeLog.tmp" + else + if test -f "$srcdir/$podir/ChangeLog"; then + echo "Add an entry to $podir/ChangeLog" + else + echo "Create $podir/ChangeLog" + fi + fi + fi +} + +# func_m4ChangeLog_init +# func_m4ChangeLog_add_entry line +# func_m4ChangeLog_finish +# manage the $m4dir/ChangeLog file, relative to $srcdir. +func_m4ChangeLog_init () +{ + if test -n "$using_m4ChangeLog"; then + modified_m4ChangeLog= + created_m4ChangeLog= + fi +} +func_m4ChangeLog_add_entry () +{ + if test -n "$using_m4ChangeLog"; then + if $doit; then + if test -z "$modified_m4ChangeLog"; then + echo "$date gettextize " > "$srcdir/$m4dir/ChangeLog.tmp" + echo >> "$srcdir/$m4dir/ChangeLog.tmp" + modified_m4ChangeLog=yes + fi + echo "$1" >> "$srcdir/$m4dir/ChangeLog.tmp" + else + modified_m4ChangeLog=yes + fi + else + line="$1" + line=`echo "$line" | sed -e "s%^ \\* % * $m4dir/%"` + func_ChangeLog_add_entry "$line" + fi +} +func_m4ChangeLog_finish () +{ + if test -n "$using_m4ChangeLog"; then + if test -n "$modified_m4ChangeLog"; then + if $doit; then + echo >> "$srcdir/$m4dir/ChangeLog.tmp" + if test -f "$srcdir/$m4dir/ChangeLog"; then + echo "Adding an entry to $m4dir/ChangeLog (backup is in $m4dir/ChangeLog~)" + cat "$srcdir/$m4dir/ChangeLog" >> "$srcdir/$m4dir/ChangeLog.tmp" + rm -f "$srcdir/$m4dir/ChangeLog~" + cp -p "$srcdir/$m4dir/ChangeLog" "$srcdir/$m4dir/ChangeLog~" + else + echo "Creating $m4dir/ChangeLog" + created_m4ChangeLog=yes + fi + cp "$srcdir/$m4dir/ChangeLog.tmp" "$srcdir/$m4dir/ChangeLog" + rm -f "$srcdir/$m4dir/ChangeLog.tmp" + else + if test -f "$srcdir/$m4dir/ChangeLog"; then + echo "Add an entry to $m4dir/ChangeLog" + else + echo "Create $m4dir/ChangeLog" + created_m4ChangeLog=yes + fi + fi + fi + fi +} +using_m4ChangeLog=yes + +if test -f "$srcdir/intl/Makefile.in"; then + removed_acoutput="$removed_acoutput intl/Makefile" +fi +if test -d "$srcdir/intl"; then + # Remove everything inside intl except for RCS and CVS subdirs and invisible + # files. + if $doit; then + echo "Wiping out intl/ subdirectory" + (cd "$srcdir/intl" && + for f in *; do + if test CVS != "$f" && test RCS != "$f"; then + rm -rf "$f" + fi + done) + else + echo "Wipe out intl/ subdirectory" + fi + removed_directory=intl +fi + +$do_changelog && func_ChangeLog_init + +for podir in $podirs; do + test -d "$srcdir/$podir" || { + if $doit; then + echo "Creating $podir/ subdirectory" + mkdir "$srcdir/$podir" || func_fatal_error "failed to create $podir/ subdirectory" + else + echo "Create $podir/ subdirectory" + fi + added_directories="$added_directories $podir" + } +done + +# Create the directory for config.rpath, if needed. +# This is for consistency with autoreconf and automake. +# Note that $auxdir is either empty or ends in a slash. +test -d "$srcdir/$auxdir" || { + if $doit; then + echo "Creating $auxdir subdirectory" + mkdir "$srcdir/$auxdir" || func_fatal_error "failed to create $auxdir subdirectory" + else + echo "Create $auxdir subdirectory" + fi +} + +# Now copy all files. Take care for the destination directories. +for file in *; do + case $file in + ABOUT-NLS) + func_linkorcopy $file "$gettext_datadir/$file" $file + ;; + config.rpath) + func_linkorcopy $file "$gettext_datadir/$file" "$auxdir$file" + ;; + esac +done + +# Tell the user what to put into configure.ac, if it is not already there. +external= +# Need to use func_trace_sed instead of $func_trace, since +# AM_GNU_GETTEXT is not a standard Autoconf trace. +xargs=`func_trace_sed AM_GNU_GETTEXT "$srcdir/$configure_in"` +save_IFS="$IFS"; IFS=: +for arg in $xargs; do + if test 'external' = "$arg"; then + external=yes + break + fi +done +IFS="$save_IFS" +if test -z "$external"; then + please="$please +Please use AM_GNU_GETTEXT([external]) in order to cause autoconfiguration +to look for an external libintl. +" +fi + +# Tell the user to remove invocations of macros that no longer exist. +if sed -e 's,#.*$,,; s,^dnl .*$,,; s, dnl .*$,,' "$srcdir/$configure_in" | grep AM_GNU_GETTEXT_INTL_SUBDIR >/dev/null; then + please="$please +Please remove the invocation of AM_GNU_GETTEXT_INTL_SUBDIR. +" +fi + +# Copy files to po/ subdirectory. +cd po +for podir in $podirs; do + $do_changelog && func_poChangeLog_init + for file in Makefile.in.in; do + same=no + if test -f "$srcdir/$podir/$file"; then + if cmp -s $file "$srcdir/$podir/$file"; then + same=yes + fi + else + added_acoutput="$added_acoutput $podir/Makefile.in" + fi + if $do_changelog && test $same = no; then + if test -f "$srcdir/$podir/$file"; then + func_poChangeLog_add_entry " * $file: Upgrade to gettext-${version}." + else + func_poChangeLog_add_entry " * $file: New file, from gettext-${version}." + fi + fi + func_backup "$podir/$file" + func_linkorcopy $file "$gettext_datadir/po/$file" "$podir/$file" + done + for file in *; do + case $file in + Makefile.in.in) + # Already handled above. + ;; + Makevars.template) + func_linkorcopy Makevars.template "$gettext_datadir/po/Makevars.template" "$podir/Makevars.template" + if test -f "$srcdir/po/Makevars"; then + LC_ALL=C sed -n -e 's/[ ]*\([A-Za-z0-9_]*\)[ ]*=.*/\1/p' < "$srcdir/$podir/Makevars" | LC_ALL=C sort > "$srcdir/$podir/Makevars.tmp1" + LC_ALL=C sed -n -e 's/[ ]*\([A-Za-z0-9_]*\)[ ]*=.*/\1/p' < "$gettext_datadir/po/Makevars.template" | LC_ALL=C sort > "$srcdir/$podir/Makevars.tmp2" + missingvars=`LC_ALL=C comm -13 "$srcdir/$podir/Makevars.tmp1" "$srcdir/$podir/Makevars.tmp2"` + rm -f "$srcdir/$podir/Makevars.tmp1" "$srcdir/$podir/Makevars.tmp2" + if test -n "$missingvars"; then + please="$please +Please update $podir/Makevars so that it defines all the variables mentioned +in $podir/Makevars.template. +You can then remove $podir/Makevars.template. +" + fi + else + please="$please +Please create $podir/Makevars from the template in $podir/Makevars.template. +You can then remove $podir/Makevars.template. +" + fi + ;; + *) + same=no + if test -f "$srcdir/$podir/$file"; then + if cmp -s $file "$srcdir/$podir/$file"; then + same=yes + fi + fi + if $do_changelog && test $same = no; then + if test -f "$srcdir/$podir/$file"; then + func_poChangeLog_add_entry " * $file: Upgrade to gettext-${version}." + else + func_poChangeLog_add_entry " * $file: New file, from gettext-${version}." + fi + fi + func_backup "$podir/$file" + func_linkorcopy $file "$gettext_datadir/po/$file" "$podir/$file" + ;; + esac + done + if test -f "$srcdir/$podir/cat-id-tbl.c"; then + func_remove "$podir/cat-id-tbl.c" + $do_changelog && func_poChangeLog_add_entry " * cat-id-tbl.c: Remove file." + fi + if test -f "$srcdir/$podir/stamp-cat-id"; then + func_remove "$podir/stamp-cat-id" + $do_changelog && func_poChangeLog_add_entry " * stamp-cat-id: Remove file." + fi + if test ! -f "$srcdir/$podir/POTFILES.in"; then + if $doit; then + echo "Creating initial $podir/POTFILES.in" + echo '# List of source files which contain translatable strings.' > "$srcdir/$podir/POTFILES.in" + else + echo "Create initial $podir/POTFILES.in" + fi + $do_changelog && func_poChangeLog_add_entry " * POTFILES.in: New file." + please="$please +Please fill $podir/POTFILES.in as described in the documentation. +" + fi + $do_changelog && func_poChangeLog_finish +done + +m4filelist=' + build-to-host.m4 + gettext.m4 + host-cpu-c-abi.m4 + iconv.m4 + intlmacosx.m4 + lib-ld.m4 lib-link.m4 lib-prefix.m4 + nls.m4 + po.m4 progtest.m4' + +# All sorts of bugs could occur if the configure file was remade with the wrong +# version of gettext.m4 et al. (because then the configure and the po/Makefile.in.in +# don't fit together). It is therefore important that the package carries the +# right versions of gettext.m4 et al. with it. +if test -f "$srcdir/Makefile.am"; then + # A package using automake. + + # Determine whether it's using automake 1.8 or newer. + have_automake18= + if (aclocal --version) >/dev/null 2>/dev/null; then + aclocal_version=`aclocal --version | sed -n -e 1p | sed -e 's/^[^0-9]*//'` + case $aclocal_version in + 1.[8-9]* | 1.[1-9][0-9]* | [2-9]*) have_automake18=yes ;; + esac + fi + + if test -z "$m4dir"; then + # Extract the macro directory name from Makefile.am. + aclocal_amflags=`grep '^ACLOCAL_AMFLAGS[ ]*=' "$srcdir/Makefile.am" | sed -e 's/^ACLOCAL_AMFLAGS[ ]*=\(.*\)$/\1/'` + m4dir_is_next= + for arg in $aclocal_amflags; do + if test -n "$m4dir_is_next"; then + # Ignore absolute directory pathnames, like /usr/local/share/aclocal. + case "$arg" in + /*) ;; + *) + test -z "$m4dir" || m4dir="$arg" + macrodirs="$macrodirs $arg" + ;; + esac + m4dir_is_next= + else + if test "X$arg" = "X-I"; then + m4dir_is_next=yes + else + m4dir_is_next= + fi + fi + done + for arg in $macrodirs; do + m4dir="$arg" + break + done + fi + + if test -z "$m4dir"; then + m4dir=m4 + m4dir_defaulted=yes + fi + + # Decide whether to use $m4dir/ChangeLog, or to use ChangeLog instead. + if test -d "$srcdir/$m4dir" && test -f "$srcdir/ChangeLog" && test ! -f "$srcdir/$m4dir/ChangeLog"; then + # The programmer has no $m4dir/ChangeLog so far. Don't introduce one. + using_m4ChangeLog= + fi + + # Update the *.m4 files and the corresponding Makefile.am. + $do_changelog && func_m4ChangeLog_init + added_m4dir= + added_m4files= + if test -d "$srcdir/$m4dir"; then + : + else + if $doit; then + echo "Creating directory $m4dir" + mkdir "$srcdir/$m4dir" + else + echo "Create directory $m4dir" + fi + added_m4dir=yes + fi + for file in $m4filelist; do + same=no + if test -f "$srcdir/$m4dir/$file"; then + if cmp -s "${datarootdir}/aclocal/$file" "$srcdir/$m4dir/$file"; then + same=yes + fi + else + added_m4files="$added_m4files $file" + fi + if $do_changelog && test $same = no; then + if test -f "$srcdir/$m4dir/$file"; then + func_m4ChangeLog_add_entry " * $file: Upgrade to gettext-${version}." + else + func_m4ChangeLog_add_entry " * $file: New file, from gettext-${version}." + fi + fi + func_backup "$m4dir/$file" + func_linkorcopy "${datarootdir}/aclocal/$file" "${datarootdir}/aclocal/$file" "$m4dir/$file" + done + missing_m4Makefileam= + if test -n "$added_m4files"; then + if test -f "$srcdir/$m4dir/Makefile.am"; then + if $doit; then + echo "Updating EXTRA_DIST in $m4dir/Makefile.am (backup is in $m4dir/Makefile.am~)" + func_backup "$m4dir/Makefile.am" + rm -f "$srcdir/$m4dir/Makefile.am" + if grep '^EXTRA_DIST[ ]*=' "$srcdir/$m4dir/Makefile.am~" > /dev/null; then + sed -e "s%^\(EXTRA_DIST[ ]*=\) \\?%\\1$added_m4files %" < "$srcdir/$m4dir/Makefile.am~" > "$srcdir/$m4dir/Makefile.am" + $do_changelog && func_m4ChangeLog_add_entry " * Makefile.am (EXTRA_DIST): Add the new files." + else + (cat "$srcdir/$m4dir/Makefile.am~"; echo; echo "EXTRA_DIST =$added_m4files") > "$srcdir/$m4dir/Makefile.am" + $do_changelog && func_m4ChangeLog_add_entry " * Makefile.am (EXTRA_DIST): New variable." + fi + else + echo "Update EXTRA_DIST in $m4dir/Makefile.am" + $do_changelog && func_m4ChangeLog_add_entry " * Makefile.am (EXTRA_DIST)." + fi + else + # $m4dir/Makefile.am is not needed any more when aclocal 1.8 or newer + # is used. + if test -z "$have_automake18"; then + if $doit; then + echo "Creating $m4dir/Makefile.am" + echo "EXTRA_DIST =$added_m4files" > "$srcdir/$m4dir/Makefile.am" + else + echo "Create $m4dir/Makefile.am" + fi + $do_changelog && func_m4ChangeLog_add_entry " * Makefile.am: New file." + added_acoutput="$added_acoutput $m4dir/Makefile" + else + missing_m4Makefileam=yes + fi + fi + fi + if test -n "$added_m4dir" && test -z "$missing_m4Makefileam"; then + added_directories="$added_directories $m4dir" + fi + $do_changelog && func_m4ChangeLog_finish + # automake will arrange for $m4dir/ChangeLog to be distributed if a + # $m4dir/Makefile.am exists. If not, we need to add it to Makefile.am's + # EXTRA_DIST explicitly. + if test -n "$created_m4ChangeLog" && test -n "$missing_m4Makefileam"; then + added_extradist="$added_extradist $m4dir/ChangeLog" + fi + + # Update the top-level Makefile.am. + modified_Makefile_am= + # func_modify_Makefile_am changelog_comment + # assumes a modified copy of $srcdir/Makefile.am in $srcdir/Makefile.am.tmp + # and replaces the original Makefile.am file with the modified one if + # the two files differ. Then it removes the modified copy. + func_modify_Makefile_am () + { + if cmp -s "$srcdir/Makefile.am" "$srcdir/Makefile.am.tmp"; then + : + else + if test -z "$modified_Makefile_am"; then + if $doit; then + echo "Updating Makefile.am (backup is in Makefile.am~)" + func_backup Makefile.am + else + echo "Update Makefile.am" + fi + fi + if $doit; then + rm -f "$srcdir/Makefile.am" + cp "$srcdir/Makefile.am.tmp" "$srcdir/Makefile.am" + fi + if $do_changelog; then + if test -z "$modified_Makefile_am"; then + func_ChangeLog_add_entry " * Makefile.am $1" + else + func_ChangeLog_add_entry " $1" + fi + fi + modified_Makefile_am=yes + fi + rm -f "$srcdir/Makefile.am.tmp" + } + + if test -n "$added_directories"; then + if grep '^SUBDIRS[ ]*=' "$srcdir/Makefile.am" > /dev/null; then + sed -e "s%^\(SUBDIRS[ ]*=\) \\?%\\1$added_directories %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp" + added_directories_pretty=`echo $added_directories | sed -e 's/ /, /g'` + func_modify_Makefile_am "(SUBDIRS): Add $added_directories_pretty." + else + (cat "$srcdir/Makefile.am"; echo; echo "SUBDIRS =$added_directories") > "$srcdir/Makefile.am.tmp" + func_modify_Makefile_am "(SUBDIRS): New variable." + fi + fi + if test -n "$removed_directory"; then + sed -e '/^SUBDIRS[ ]*=/ { + :a + s%\([ ]\)'"$removed_directory"'[ ]%\1% + s%[ ]'"$removed_directory"'$%% + tb + :b + s%\\$%\\% + tc + bd + :c + n + ba + :d + }' < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp" + func_modify_Makefile_am "(SUBDIRS): Remove $removed_directory." + fi + if test -n "$added_directories"; then + if grep '^DIST_SUBDIRS[ ]*=' "$srcdir/Makefile.am" > /dev/null; then + sed -e "s%^\(DIST_SUBDIRS[ ]*=\) \\?%\\1$added_directories %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp" + added_directories_pretty=`echo $added_directories | sed -e 's/ /, /g'` + func_modify_Makefile_am "(DIST_SUBDIRS): Add $added_directories_pretty." + fi + fi + if test -n "$removed_directory"; then + sed -e '/^DIST_SUBDIRS[ ]*=/ { + :a + s%\([ ]\)'"$removed_directory"'[ ]%\1% + s%[ ]'"$removed_directory"'$%% + tb + :b + s%\\$%\\% + tc + bd + :c + n + ba + :d + }' < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp" + func_modify_Makefile_am "(DIST_SUBDIRS): Remove $removed_directory." + fi + if test -n "$m4dir_defaulted"; then + if grep '^ACLOCAL_AMFLAGS[ ]*=' "$srcdir/Makefile.am" > /dev/null; then + sed -e "s%^\(ACLOCAL_AMFLAGS[ ]*=\) \\?%\\1 -I $m4dir %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp" + func_modify_Makefile_am "(ACLOCAL_AMFLAGS): Add -I $m4dir." + else + (cat "$srcdir/Makefile.am"; echo; echo "ACLOCAL_AMFLAGS = -I $m4dir") > "$srcdir/Makefile.am.tmp" + func_modify_Makefile_am "(ACLOCAL_AMFLAGS): New variable." + fi + # Also update Makefile.in and, if existent, Makefile. Otherwise they + # would take into account the new flags only after a few rounds of + # "./configure", "make", "touch configure.in", "make distclean". + if $doit; then + for file in Makefile.in Makefile; do + if test -f "$srcdir/$file"; then + func_backup $file + rm -f "$srcdir/$file" + sed -e "s%(ACLOCAL)%(ACLOCAL) -I $m4dir%" < "$srcdir/$file~" > "$srcdir/$file" + fi + done + fi + fi + if test -n "$added_extradist"; then + if grep '^EXTRA_DIST[ ]*=' "$srcdir/Makefile.am" > /dev/null; then + sed -e "s%^\(EXTRA_DIST[ ]*=\)%\\1$added_extradist %" < "$srcdir/Makefile.am" > "$srcdir/Makefile.am.tmp" + added_extradist_pretty=`echo $added_extradist | sed -e 's/ /, /g'` + func_modify_Makefile_am "(EXTRA_DIST): Add $added_extradist_pretty." + else + (cat "$srcdir/Makefile.am"; echo; echo "EXTRA_DIST =$added_extradist") > "$srcdir/Makefile.am.tmp" + func_modify_Makefile_am "(EXTRA_DIST): New variable." + fi + fi + # Extract the aclocal options name from Makefile.am. + aclocal_options= + for arg in $macrodirs; do + aclocal_options="$aclocal_options -I $arg" + done + please="$please +Please run 'aclocal$aclocal_options' to regenerate the aclocal.m4 file. +You need aclocal from GNU automake $min_automake_version (or newer) to do this. +Then run 'autoconf' to regenerate the configure file. +" + + # Also create $m4dir/Makefile.in from $m4dir/Makefile.am, because automake + # doesn't do it by itself. + if $doit; then + case "$added_acoutput" in + *" $m4dir/Makefile") + (cd "$srcdir" && automake "$m4dir/Makefile") 2>/dev/null || + please="$please +Please run 'automake $m4dir/Makefile' to create $m4dir/Makefile.in +" + ;; + esac + fi +else + please="$please +Please add the files +$m4filelist +from the ${datarootdir}/aclocal directory to your aclocal.m4 file. +" +fi + +modified_configure_in= +# func_modify_configure_in changelog_comment +# assumes a modified copy of $srcdir/$configure_in in $srcdir/$configure_in.tmp +# and replaces the original configure.in/ac file with the modified one if +# the two files differ. Then it removes the modified copy. +func_modify_configure_in () +{ + if cmp -s "$srcdir/$configure_in" "$srcdir/$configure_in.tmp"; then + : + else + if test -z "$modified_configure_in"; then + if $doit; then + echo "Updating $configure_in (backup is in $configure_in~)" + func_backup $configure_in + else + echo "Update $configure_in" + fi + fi + if $doit; then + rm -f "$srcdir/$configure_in" + cp "$srcdir/$configure_in.tmp" "$srcdir/$configure_in" + fi + if $do_changelog; then + if test -z "$modified_configure_in"; then + func_ChangeLog_add_entry " * $configure_in $1" + else + func_ChangeLog_add_entry " $1" + fi + fi + modified_configure_in=yes + fi + rm -f "$srcdir/$configure_in.tmp" +} + +if test -n "$added_acoutput"; then + if grep '^AC_CONFIG_FILES(' "$srcdir/$configure_in" > /dev/null; then + sedprog=' +ta +b +:a +n +ba' + sed -e "s%^\\(AC_CONFIG_FILES([^])\\,]*\\)%\\1$added_acoutput%$sedprog" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" + added_acoutput_pretty=`echo $added_acoutput | sed -e 's/ /, /g'` + func_modify_configure_in "(AC_CONFIG_FILES): Add $added_acoutput_pretty." + else + if grep '^AC_OUTPUT(' "$srcdir/$configure_in" > /dev/null; then + sed -e "s%^\\(AC_OUTPUT([^])\\,]*\\)%\\1$added_acoutput%" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" + added_acoutput_pretty=`echo $added_acoutput | sed -e 's/ /, /g'` + func_modify_configure_in "(AC_OUTPUT): Add $added_acoutput_pretty." + else + please="$please +Please add$added_acoutput to the AC_OUTPUT or AC_CONFIG_FILES invocation in the $configure_in file. +" + fi + fi +fi +if test -n "$removed_acoutput"; then + for file in $removed_acoutput; do + tag= + sedprog='{ + s%\([[ ]\)'"$file"'[ ]%\1% + s%\([[ ]\)'"$file"'\([]),]\)%\1\2% + s%[[ ]'"$file"'$%% + :a + tb + :b + s%\\$%\\% + tc + bd + :c + n + s%\([ ]\)'"$file"'[ ]%\1% + s%\([ ]\)'"$file"'\([]),]\)%\1\2% + s%[ ]'"$file"'$%% + ba + :d + }' + sed -e '/^AC_CONFIG_FILES(/'"$sedprog" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" + if cmp -s "$srcdir/$configure_in" "$srcdir/$configure_in.tmp"; then + sed -e '/^AC_OUTPUT(/'"$sedprog" < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" + if cmp -s "$srcdir/$configure_in" "$srcdir/$configure_in.tmp"; then + : + else + tag=AC_OUTPUT + fi + else + tag=AC_CONFIG_FILES + fi + if test -n "$tag"; then + func_modify_configure_in "($tag): Remove $file." + else + rm -f "$srcdir/$configure_in.tmp" + if test "$file" != intl/intlh.inst; then + please="$please +Please remove $file from the AC_OUTPUT or AC_CONFIG_FILES invocation +in the $configure_in file. +" + fi + fi + done +fi +sed -e 's%sed -e "/POTFILES =/r po/POTFILES" po/Makefile\.in > po/Makefile *;* *%%' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" +func_modify_configure_in "(AC_OUTPUT): Remove command that created po/Makefile." +sed -e '/^\(dnl \|\)AC_LINK_FILES(\$nls_cv_header_libgt, \$nls_cv_header_intl)$/d' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" +func_modify_configure_in "(AC_LINK_FILES): Remove invocation." +# AM_GNU_GETTEXT_VERSION may not be present, when AM_GNU_GETTEXT_REQUIRE_VERSION is used. +if grep '^AM_GNU_GETTEXT_VERSION(' "$srcdir/$configure_in" >/dev/null; then + sed -e 's/^AM_GNU_GETTEXT_VERSION([^()]*)/AM_GNU_GETTEXT_VERSION(['"$archive_version"'])/' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" + func_modify_configure_in "(AM_GNU_GETTEXT_VERSION): Bump to $archive_version." +fi +$do_changelog && func_ChangeLog_finish + +# Recommend replacement for deprecated Makefile variables. +use_libtool=`cat "$srcdir/$configure_in" | grep '^A[CM]_PROG_LIBTOOL'` +for file in `(cd "$srcdir"; find . -name Makefile.am -print; find . -name Makefile.in -print) | sed -e 's,^\./,,'`; do + if test -f "$srcdir/$file"; then + if test `echo "$file" | sed -e 's,^.*/,,'` = Makefile.in && grep automake "$srcdir/$file" >/dev/null 2>&1; then + continue; + fi + # INTLLIBS is deprecated because it doesn't distinguish the two + # cases: with libtool, without libtool. + if grep '@''INTLLIBS''@' "$srcdir/$file" >/dev/null; then + if test -n "$use_libtool"; then + please="$please +Please change $file to use @""LTLIBINTL""@ or @""LIBINTL""@ instead of +@""INTLLIBS""@. Which one, depends whether it is used with libtool or not. +@""INTLLIBS""@ will go away. +" + else + please="$please +Please change $file to use @""LIBINTL""@ instead of @""INTLLIBS""@. +@""INTLLIBS""@ will go away. +" + fi + fi + # DATADIRNAME is deprecated because we install only .gmo files nowadays, + # which can be stored in the platform independent $prefix/share hierarchy. + if grep '@''DATADIRNAME''@' "$srcdir/$file" >/dev/null; then + please="$please +Please change $file to use the constant string \"share\" instead of +@""DATADIRNAME""@. @""DATADIRNAME""@ will go away. +" + fi + # INSTOBJEXT is deprecated because we install only .gmo files nowadays, + # no catgets .cat catalogs. + if grep '@''INSTOBJEXT''@' "$srcdir/$file" >/dev/null; then + please="$please +Please change $file to use the constant string \".mo\" instead of +@""INSTOBJEXT""@. @""INSTOBJEXT""@ will go away. +" + fi + # GENCAT is deprecated because we install no catgets catalogs anymore. + if grep '@''GENCAT''@' "$srcdir/$file" >/dev/null; then + please="$please +Please change $file to use the constant string \"gencat\" instead of +@""GENCAT""@. @""GENCAT""@ will go away. Maybe you don't even need it any more? +" + fi + # POSUB is deprecated because it causes "./configure --disable-nls", "make", + # "make dist" to create a buggy tarfile. + if grep '@''POSUB''@' "$srcdir/$file" >/dev/null; then + please="$please +Please change $file to use the constant string \"po\" instead of +@""POSUB""@. @""POSUB""@ will go away. +" + fi + fi +done + +# Recommend replacement for deprecated configure variables. +if grep '\$nls_cv_header_' "$srcdir/$configure_in" >/dev/null; then + please="$please +Please stop using \$nls_cv_header_intl or \$nls_cv_header_libgt in the +$configure_in file. Both will go away. Use or \"gettext.h\" instead. +" +fi + +# Recommend fetching config.guess and config.sub. +if test -f "$srcdir/$auxdir"config.guess && test -f "$srcdir/$auxdir"config.sub; then + : +else + please="$please +You will also need config.guess and config.sub, which you can get from the CVS +of the 'config' project at https://savannah.gnu.org/. The commands to fetch them +are +\$ wget 'https://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess' +\$ wget 'https://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub' +" +fi + +if $doit; then + echo "$please" + echo "You might also want to copy the convenience header file gettext.h" + echo "from the $gettext_datadir directory into your package." + echo "It is a wrapper around that implements the configure --disable-nls" + echo "option." + echo + count=`echo "$please" | grep '^$' | wc -l` + count=`echo "$count" | sed -e 's/[ ]//g'` + case "$count" in + 1) count="paragraph";; + 2) count="two paragraphs";; + 3) count="three paragraphs";; + 4) count="four paragraphs";; + 5) count="five paragraphs";; + *) count="$count paragraphs";; + esac + echo "Press Return to acknowledge the previous $count." + # Read from /dev/tty, not stdin, so that gettextize cannot be abused by + # non-interactive tools. + read dummy < /dev/tty +fi + +exit 0 diff --git a/code/application/source/sf_app/tools/blue/bin/gio b/code/application/source/sf_app/tools/blue/bin/gio new file mode 100755 index 000000000..e53a3521b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/gio differ diff --git a/code/application/source/sf_app/tools/blue/bin/gio-querymodules b/code/application/source/sf_app/tools/blue/bin/gio-querymodules new file mode 100755 index 000000000..4a1a80c15 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/gio-querymodules differ diff --git a/code/application/source/sf_app/tools/blue/bin/glib-compile-resources b/code/application/source/sf_app/tools/blue/bin/glib-compile-resources new file mode 100755 index 000000000..cffdf537f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/glib-compile-resources differ diff --git a/code/application/source/sf_app/tools/blue/bin/glib-compile-schemas b/code/application/source/sf_app/tools/blue/bin/glib-compile-schemas new file mode 100755 index 000000000..506b76330 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/glib-compile-schemas differ diff --git a/code/application/source/sf_app/tools/blue/bin/glib-genmarshal b/code/application/source/sf_app/tools/blue/bin/glib-genmarshal new file mode 100755 index 000000000..5b161cb78 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/bin/glib-genmarshal @@ -0,0 +1,1080 @@ +#!/usr/bin/env python3 + +# pylint: disable=too-many-lines, missing-docstring, invalid-name + +# This file is part of GLib +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, see . + +import argparse +import os +import re +import sys + +VERSION_STR = '''glib-genmarshal version 2.77.3 +glib-genmarshal comes with ABSOLUTELY NO WARRANTY. +You may redistribute copies of glib-genmarshal under the terms of +the GNU General Public License which can be found in the +GLib source package. Sources, examples and contact +information are available at http://www.gtk.org''' + +GETTERS_STR = '''#ifdef G_ENABLE_DEBUG +#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v) +#define g_marshal_value_peek_char(v) g_value_get_schar (v) +#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v) +#define g_marshal_value_peek_int(v) g_value_get_int (v) +#define g_marshal_value_peek_uint(v) g_value_get_uint (v) +#define g_marshal_value_peek_long(v) g_value_get_long (v) +#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v) +#define g_marshal_value_peek_int64(v) g_value_get_int64 (v) +#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v) +#define g_marshal_value_peek_enum(v) g_value_get_enum (v) +#define g_marshal_value_peek_flags(v) g_value_get_flags (v) +#define g_marshal_value_peek_float(v) g_value_get_float (v) +#define g_marshal_value_peek_double(v) g_value_get_double (v) +#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v) +#define g_marshal_value_peek_param(v) g_value_get_param (v) +#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v) +#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v) +#define g_marshal_value_peek_object(v) g_value_get_object (v) +#define g_marshal_value_peek_variant(v) g_value_get_variant (v) +#else /* !G_ENABLE_DEBUG */ +/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API. + * Do not access GValues directly in your code. Instead, use the + * g_value_get_*() functions + */ +#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int +#define g_marshal_value_peek_char(v) (v)->data[0].v_int +#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint +#define g_marshal_value_peek_int(v) (v)->data[0].v_int +#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint +#define g_marshal_value_peek_long(v) (v)->data[0].v_long +#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong +#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64 +#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64 +#define g_marshal_value_peek_enum(v) (v)->data[0].v_long +#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong +#define g_marshal_value_peek_float(v) (v)->data[0].v_float +#define g_marshal_value_peek_double(v) (v)->data[0].v_double +#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer +#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer +#endif /* !G_ENABLE_DEBUG */''' + +DEPRECATED_MSG_STR = 'The token "{}" is deprecated; use "{}" instead' + +VA_ARG_STR = \ + ' arg{:d} = ({:s}) va_arg (args_copy, {:s});' +STATIC_CHECK_STR = \ + '(param_types[{:d}] & G_SIGNAL_TYPE_STATIC_SCOPE) == 0 && ' +BOX_TYPED_STR = \ + ' arg{idx:d} = {box_func} (param_types[{idx:d}] & ~G_SIGNAL_TYPE_STATIC_SCOPE, arg{idx:d});' +BOX_UNTYPED_STR = \ + ' arg{idx:d} = {box_func} (arg{idx:d});' +UNBOX_TYPED_STR = \ + ' {unbox_func} (param_types[{idx:d}] & ~G_SIGNAL_TYPE_STATIC_SCOPE, arg{idx:d});' +UNBOX_UNTYPED_STR = \ + ' {unbox_func} (arg{idx:d});' + +STD_PREFIX = 'g_cclosure_marshal' + +# These are part of our ABI; keep this in sync with gmarshal.h +GOBJECT_MARSHALLERS = { + 'g_cclosure_marshal_VOID__VOID', + 'g_cclosure_marshal_VOID__BOOLEAN', + 'g_cclosure_marshal_VOID__CHAR', + 'g_cclosure_marshal_VOID__UCHAR', + 'g_cclosure_marshal_VOID__INT', + 'g_cclosure_marshal_VOID__UINT', + 'g_cclosure_marshal_VOID__LONG', + 'g_cclosure_marshal_VOID__ULONG', + 'g_cclosure_marshal_VOID__ENUM', + 'g_cclosure_marshal_VOID__FLAGS', + 'g_cclosure_marshal_VOID__FLOAT', + 'g_cclosure_marshal_VOID__DOUBLE', + 'g_cclosure_marshal_VOID__STRING', + 'g_cclosure_marshal_VOID__PARAM', + 'g_cclosure_marshal_VOID__BOXED', + 'g_cclosure_marshal_VOID__POINTER', + 'g_cclosure_marshal_VOID__OBJECT', + 'g_cclosure_marshal_VOID__VARIANT', + 'g_cclosure_marshal_VOID__UINT_POINTER', + 'g_cclosure_marshal_BOOLEAN__FLAGS', + 'g_cclosure_marshal_STRING__OBJECT_POINTER', + 'g_cclosure_marshal_BOOLEAN__BOXED_BOXED', +} + + +# pylint: disable=too-few-public-methods +class Color: + '''ANSI Terminal colors''' + GREEN = '\033[1;32m' + BLUE = '\033[1;34m' + YELLOW = '\033[1;33m' + RED = '\033[1;31m' + END = '\033[0m' + + +def print_color(msg, color=Color.END, prefix='MESSAGE'): + '''Print a string with a color prefix''' + if os.isatty(sys.stderr.fileno()): + real_prefix = '{start}{prefix}{end}'.format(start=color, prefix=prefix, end=Color.END) + else: + real_prefix = prefix + sys.stderr.write('{prefix}: {msg}\n'.format(prefix=real_prefix, msg=msg)) + + +def print_error(msg): + '''Print an error, and terminate''' + print_color(msg, color=Color.RED, prefix='ERROR') + sys.exit(1) + + +def print_warning(msg, fatal=False): + '''Print a warning, and optionally terminate''' + if fatal: + color = Color.RED + prefix = 'ERROR' + else: + color = Color.YELLOW + prefix = 'WARNING' + print_color(msg, color, prefix) + if fatal: + sys.exit(1) + + +def print_info(msg): + '''Print a message''' + print_color(msg, color=Color.GREEN, prefix='INFO') + + +def generate_licensing_comment(outfile): + outfile.write('/* This file is generated by glib-genmarshal, do not ' + 'modify it. This code is licensed under the same license as ' + 'the containing project. Note that it links to GLib, so ' + 'must comply with the LGPL linking clauses. */\n') + + +def generate_header_preamble(outfile, prefix='', std_includes=True, use_pragma=False): + '''Generate the preamble for the marshallers header file''' + generate_licensing_comment(outfile) + + if use_pragma: + outfile.write('#pragma once\n') + outfile.write('\n') + else: + outfile.write('#ifndef __{}_MARSHAL_H__\n'.format(prefix.upper())) + outfile.write('#define __{}_MARSHAL_H__\n'.format(prefix.upper())) + outfile.write('\n') + # Maintain compatibility with the old C-based tool + if std_includes: + outfile.write('#include \n') + outfile.write('\n') + + outfile.write('G_BEGIN_DECLS\n') + outfile.write('\n') + + +def generate_header_postamble(outfile, prefix='', use_pragma=False): + '''Generate the postamble for the marshallers header file''' + outfile.write('\n') + outfile.write('G_END_DECLS\n') + + if not use_pragma: + outfile.write('\n') + outfile.write('#endif /* __{}_MARSHAL_H__ */\n'.format(prefix.upper())) + + +def generate_body_preamble(outfile, std_includes=True, include_headers=None, cpp_defines=None, cpp_undefines=None): + '''Generate the preamble for the marshallers source file''' + generate_licensing_comment(outfile) + + for header in (include_headers or []): + outfile.write('#include "{}"\n'.format(header)) + if include_headers: + outfile.write('\n') + + for define in (cpp_defines or []): + s = define.split('=') + symbol = s[0] + value = s[1] if len(s) > 1 else '1' + outfile.write('#define {} {}\n'.format(symbol, value)) + if cpp_defines: + outfile.write('\n') + + for undefine in (cpp_undefines or []): + outfile.write('#undef {}\n'.format(undefine)) + if cpp_undefines: + outfile.write('\n') + + if std_includes: + outfile.write('#include \n') + outfile.write('\n') + + outfile.write(GETTERS_STR) + outfile.write('\n\n') + + +# Marshaller arguments, as a dictionary where the key is the token used in +# the source file, and the value is another dictionary with the following +# keys: +# +# - signal: the token used in the marshaller prototype (mandatory) +# - ctype: the C type for the marshaller argument (mandatory) +# - getter: the function used to retrieve the argument from the GValue +# array when invoking the callback (optional) +# - promoted: the C type used by va_arg() to retrieve the argument from +# the va_list when invoking the callback (optional, only used when +# generating va_list marshallers) +# - box: an array of two elements, containing the boxing and unboxing +# functions for the given type (optional, only used when generating +# va_list marshallers) +# - static-check: a boolean value, if the given type should perform +# a static type check before boxing or unboxing the argument (optional, +# only used when generating va_list marshallers) +# - takes-type: a boolean value, if the boxing and unboxing functions +# for the given type require the type (optional, only used when +# generating va_list marshallers) +# - deprecated: whether the token has been deprecated (optional) +# - replaced-by: the token used to replace a deprecated token (optional, +# only used if deprecated is True) +IN_ARGS = { + 'VOID': { + 'signal': 'VOID', + 'ctype': 'void', + }, + 'BOOLEAN': { + 'signal': 'BOOLEAN', + 'ctype': 'gboolean', + 'getter': 'g_marshal_value_peek_boolean', + }, + 'CHAR': { + 'signal': 'CHAR', + 'ctype': 'gchar', + 'promoted': 'gint', + 'getter': 'g_marshal_value_peek_char', + }, + 'UCHAR': { + 'signal': 'UCHAR', + 'ctype': 'guchar', + 'promoted': 'guint', + 'getter': 'g_marshal_value_peek_uchar', + }, + 'INT': { + 'signal': 'INT', + 'ctype': 'gint', + 'getter': 'g_marshal_value_peek_int', + }, + 'UINT': { + 'signal': 'UINT', + 'ctype': 'guint', + 'getter': 'g_marshal_value_peek_uint', + }, + 'LONG': { + 'signal': 'LONG', + 'ctype': 'glong', + 'getter': 'g_marshal_value_peek_long', + }, + 'ULONG': { + 'signal': 'ULONG', + 'ctype': 'gulong', + 'getter': 'g_marshal_value_peek_ulong', + }, + 'INT64': { + 'signal': 'INT64', + 'ctype': 'gint64', + 'getter': 'g_marshal_value_peek_int64', + }, + 'UINT64': { + 'signal': 'UINT64', + 'ctype': 'guint64', + 'getter': 'g_marshal_value_peek_uint64', + }, + 'ENUM': { + 'signal': 'ENUM', + 'ctype': 'gint', + 'getter': 'g_marshal_value_peek_enum', + }, + 'FLAGS': { + 'signal': 'FLAGS', + 'ctype': 'guint', + 'getter': 'g_marshal_value_peek_flags', + }, + 'FLOAT': { + 'signal': 'FLOAT', + 'ctype': 'gfloat', + 'promoted': 'gdouble', + 'getter': 'g_marshal_value_peek_float', + }, + 'DOUBLE': { + 'signal': 'DOUBLE', + 'ctype': 'gdouble', + 'getter': 'g_marshal_value_peek_double', + }, + 'STRING': { + 'signal': 'STRING', + 'ctype': 'gpointer', + 'getter': 'g_marshal_value_peek_string', + 'box': ['g_strdup', 'g_free'], + 'static-check': True, + }, + 'PARAM': { + 'signal': 'PARAM', + 'ctype': 'gpointer', + 'getter': 'g_marshal_value_peek_param', + 'box': ['g_param_spec_ref', 'g_param_spec_unref'], + 'static-check': True, + }, + 'BOXED': { + 'signal': 'BOXED', + 'ctype': 'gpointer', + 'getter': 'g_marshal_value_peek_boxed', + 'box': ['g_boxed_copy', 'g_boxed_free'], + 'static-check': True, + 'takes-type': True, + }, + 'POINTER': { + 'signal': 'POINTER', + 'ctype': 'gpointer', + 'getter': 'g_marshal_value_peek_pointer', + }, + 'OBJECT': { + 'signal': 'OBJECT', + 'ctype': 'gpointer', + 'getter': 'g_marshal_value_peek_object', + 'box': ['g_object_ref', 'g_object_unref'], + }, + 'VARIANT': { + 'signal': 'VARIANT', + 'ctype': 'gpointer', + 'getter': 'g_marshal_value_peek_variant', + 'box': ['g_variant_ref_sink', 'g_variant_unref'], + 'static-check': True, + 'takes-type': False, + }, + + # Deprecated tokens + 'NONE': { + 'signal': 'VOID', + 'ctype': 'void', + 'deprecated': True, + 'replaced_by': 'VOID' + }, + 'BOOL': { + 'signal': 'BOOLEAN', + 'ctype': 'gboolean', + 'getter': 'g_marshal_value_peek_boolean', + 'deprecated': True, + 'replaced_by': 'BOOLEAN' + } +} + + +# Marshaller return values, as a dictionary where the key is the token used +# in the source file, and the value is another dictionary with the following +# keys: +# +# - signal: the token used in the marshaller prototype (mandatory) +# - ctype: the C type for the marshaller argument (mandatory) +# - setter: the function used to set the return value of the callback +# into a GValue (optional) +# - deprecated: whether the token has been deprecated (optional) +# - replaced-by: the token used to replace a deprecated token (optional, +# only used if deprecated is True) +OUT_ARGS = { + 'VOID': { + 'signal': 'VOID', + 'ctype': 'void', + }, + 'BOOLEAN': { + 'signal': 'BOOLEAN', + 'ctype': 'gboolean', + 'setter': 'g_value_set_boolean', + }, + 'CHAR': { + 'signal': 'CHAR', + 'ctype': 'gchar', + 'setter': 'g_value_set_char', + }, + 'UCHAR': { + 'signal': 'UCHAR', + 'ctype': 'guchar', + 'setter': 'g_value_set_uchar', + }, + 'INT': { + 'signal': 'INT', + 'ctype': 'gint', + 'setter': 'g_value_set_int', + }, + 'UINT': { + 'signal': 'UINT', + 'ctype': 'guint', + 'setter': 'g_value_set_uint', + }, + 'LONG': { + 'signal': 'LONG', + 'ctype': 'glong', + 'setter': 'g_value_set_long', + }, + 'ULONG': { + 'signal': 'ULONG', + 'ctype': 'gulong', + 'setter': 'g_value_set_ulong', + }, + 'INT64': { + 'signal': 'INT64', + 'ctype': 'gint64', + 'setter': 'g_value_set_int64', + }, + 'UINT64': { + 'signal': 'UINT64', + 'ctype': 'guint64', + 'setter': 'g_value_set_uint64', + }, + 'ENUM': { + 'signal': 'ENUM', + 'ctype': 'gint', + 'setter': 'g_value_set_enum', + }, + 'FLAGS': { + 'signal': 'FLAGS', + 'ctype': 'guint', + 'setter': 'g_value_set_flags', + }, + 'FLOAT': { + 'signal': 'FLOAT', + 'ctype': 'gfloat', + 'setter': 'g_value_set_float', + }, + 'DOUBLE': { + 'signal': 'DOUBLE', + 'ctype': 'gdouble', + 'setter': 'g_value_set_double', + }, + 'STRING': { + 'signal': 'STRING', + 'ctype': 'gchar*', + 'setter': 'g_value_take_string', + }, + 'PARAM': { + 'signal': 'PARAM', + 'ctype': 'GParamSpec*', + 'setter': 'g_value_take_param', + }, + 'BOXED': { + 'signal': 'BOXED', + 'ctype': 'gpointer', + 'setter': 'g_value_take_boxed', + }, + 'POINTER': { + 'signal': 'POINTER', + 'ctype': 'gpointer', + 'setter': 'g_value_set_pointer', + }, + 'OBJECT': { + 'signal': 'OBJECT', + 'ctype': 'GObject*', + 'setter': 'g_value_take_object', + }, + 'VARIANT': { + 'signal': 'VARIANT', + 'ctype': 'GVariant*', + 'setter': 'g_value_take_variant', + }, + + # Deprecated tokens + 'NONE': { + 'signal': 'VOID', + 'ctype': 'void', + 'setter': None, + 'deprecated': True, + 'replaced_by': 'VOID', + }, + 'BOOL': { + 'signal': 'BOOLEAN', + 'ctype': 'gboolean', + 'setter': 'g_value_set_boolean', + 'deprecated': True, + 'replaced_by': 'BOOLEAN', + }, +} + + +def check_args(retval, params, fatal_warnings=False): + '''Check the @retval and @params tokens for invalid and deprecated symbols.''' + if retval not in OUT_ARGS: + print_error('Unknown return value type "{}"'.format(retval)) + + if OUT_ARGS[retval].get('deprecated', False): + replaced_by = OUT_ARGS[retval]['replaced_by'] + print_warning(DEPRECATED_MSG_STR.format(retval, replaced_by), fatal_warnings) + + for param in params: + if param not in IN_ARGS: + print_error('Unknown parameter type "{}"'.format(param)) + else: + if IN_ARGS[param].get('deprecated', False): + replaced_by = IN_ARGS[param]['replaced_by'] + print_warning(DEPRECATED_MSG_STR.format(param, replaced_by), fatal_warnings) + + +def indent(text, level=0, fill=' '): + '''Indent @text by @level columns, using the @fill character''' + return ''.join([fill for x in range(level)]) + text + + +# pylint: disable=too-few-public-methods +class Visibility: + '''Symbol visibility options''' + NONE = 0 + INTERNAL = 1 + EXTERN = 2 + + +def generate_marshaller_name(prefix, retval, params, replace_deprecated=True): + '''Generate a marshaller name for the given @prefix, @retval, and @params. + If @replace_deprecated is True, the generated name will replace deprecated + tokens.''' + if replace_deprecated: + real_retval = OUT_ARGS[retval]['signal'] + real_params = [] + for param in params: + real_params.append(IN_ARGS[param]['signal']) + else: + real_retval = retval + real_params = params + return '{prefix}_{retval}__{args}'.format(prefix=prefix, + retval=real_retval, + args='_'.join(real_params)) + + +def generate_prototype(retval, params, + prefix='g_cclosure_user_marshal', + visibility=Visibility.NONE, + va_marshal=False): + '''Generate a marshaller declaration with the given @visibility. If @va_marshal + is True, the marshaller will use variadic arguments in place of a GValue array.''' + signature = [] + + if visibility == Visibility.INTERNAL: + signature += ['G_GNUC_INTERNAL'] + elif visibility == Visibility.EXTERN: + signature += ['extern'] + + function_name = generate_marshaller_name(prefix, retval, params) + + if not va_marshal: + signature += ['void ' + function_name + ' (GClosure *closure,'] + width = len('void ') + len(function_name) + 2 + + signature += [indent('GValue *return_value,', level=width, fill=' ')] + signature += [indent('guint n_param_values,', level=width, fill=' ')] + signature += [indent('const GValue *param_values,', level=width, fill=' ')] + signature += [indent('gpointer invocation_hint,', level=width, fill=' ')] + signature += [indent('gpointer marshal_data);', level=width, fill=' ')] + else: + signature += ['void ' + function_name + 'v (GClosure *closure,'] + width = len('void ') + len(function_name) + 3 + + signature += [indent('GValue *return_value,', level=width, fill=' ')] + signature += [indent('gpointer instance,', level=width, fill=' ')] + signature += [indent('va_list args,', level=width, fill=' ')] + signature += [indent('gpointer marshal_data,', level=width, fill=' ')] + signature += [indent('int n_params,', level=width, fill=' ')] + signature += [indent('GType *param_types);', level=width, fill=' ')] + + return signature + + +# pylint: disable=too-many-statements, too-many-locals, too-many-branches +def generate_body(retval, params, prefix, va_marshal=False): + '''Generate a marshaller definition. If @va_marshal is True, the marshaller + will use va_list and variadic arguments in place of a GValue array.''' + retval_setter = OUT_ARGS[retval].get('setter', None) + # If there's no return value then we can mark the retval argument as unused + # and get a minor optimisation, as well as avoid a compiler warning + if not retval_setter: + unused = ' G_GNUC_UNUSED' + else: + unused = '' + + body = ['void'] + + function_name = generate_marshaller_name(prefix, retval, params) + + if not va_marshal: + body += [function_name + ' (GClosure *closure,'] + width = len(function_name) + 2 + + body += [indent('GValue *return_value{},'.format(unused), level=width, fill=' ')] + body += [indent('guint n_param_values,', level=width, fill=' ')] + body += [indent('const GValue *param_values,', level=width, fill=' ')] + body += [indent('gpointer invocation_hint G_GNUC_UNUSED,', level=width, fill=' ')] + body += [indent('gpointer marshal_data)', level=width, fill=' ')] + else: + body += [function_name + 'v (GClosure *closure,'] + width = len(function_name) + 3 + + body += [indent('GValue *return_value{},'.format(unused), level=width, fill=' ')] + body += [indent('gpointer instance,', level=width, fill=' ')] + body += [indent('va_list args,', level=width, fill=' ')] + body += [indent('gpointer marshal_data,', level=width, fill=' ')] + body += [indent('int n_params,', level=width, fill=' ')] + body += [indent('GType *param_types)', level=width, fill=' ')] + + # Filter the arguments that have a getter + get_args = [x for x in params if IN_ARGS[x].get('getter', None) is not None] + + body += ['{'] + + # Generate the type of the marshaller function + typedef_marshal = generate_marshaller_name('GMarshalFunc', retval, params) + + typedef = ' typedef {ctype} (*{func_name}) ('.format(ctype=OUT_ARGS[retval]['ctype'], + func_name=typedef_marshal) + pad = len(typedef) + typedef += 'gpointer data1,' + body += [typedef] + + for idx, in_arg in enumerate(get_args): + body += [indent('{} arg{:d},'.format(IN_ARGS[in_arg]['ctype'], idx + 1), level=pad)] + + body += [indent('gpointer data2);', level=pad)] + + # Variable declarations + body += [' GCClosure *cc = (GCClosure *) closure;'] + body += [' gpointer data1, data2;'] + body += [' {} callback;'.format(typedef_marshal)] + + if retval_setter: + body += [' {} v_return;'.format(OUT_ARGS[retval]['ctype'])] + + if va_marshal: + for idx, arg in enumerate(get_args): + body += [' {} arg{:d};'.format(IN_ARGS[arg]['ctype'], idx)] + + if get_args: + body += [' va_list args_copy;'] + body += [''] + + body += [' va_copy (args_copy, args);'] + + for idx, arg in enumerate(get_args): + ctype = IN_ARGS[arg]['ctype'] + promoted_ctype = IN_ARGS[arg].get('promoted', ctype) + body += [VA_ARG_STR.format(idx, ctype, promoted_ctype)] + if IN_ARGS[arg].get('box', None): + box_func = IN_ARGS[arg]['box'][0] + if IN_ARGS[arg].get('static-check', False): + static_check = STATIC_CHECK_STR.format(idx) + else: + static_check = '' + arg_check = 'arg{:d} != NULL'.format(idx) + body += [' if ({}{})'.format(static_check, arg_check)] + if IN_ARGS[arg].get('takes-type', False): + body += [BOX_TYPED_STR.format(idx=idx, box_func=box_func)] + else: + body += [BOX_UNTYPED_STR.format(idx=idx, box_func=box_func)] + + body += [' va_end (args_copy);'] + + body += [''] + + # Preconditions check + if retval_setter: + body += [' g_return_if_fail (return_value != NULL);'] + + if not va_marshal: + body += [' g_return_if_fail (n_param_values == {:d});'.format(len(get_args) + 1)] + + body += [''] + + # Marshal instance, data, and callback set up + body += [' if (G_CCLOSURE_SWAP_DATA (closure))'] + body += [' {'] + body += [' data1 = closure->data;'] + if va_marshal: + body += [' data2 = instance;'] + else: + body += [' data2 = g_value_peek_pointer (param_values + 0);'] + body += [' }'] + body += [' else'] + body += [' {'] + if va_marshal: + body += [' data1 = instance;'] + else: + body += [' data1 = g_value_peek_pointer (param_values + 0);'] + body += [' data2 = closure->data;'] + body += [' }'] + # pylint: disable=line-too-long + body += [' callback = ({}) (marshal_data ? marshal_data : cc->callback);'.format(typedef_marshal)] + body += [''] + + # Marshal callback action + if retval_setter: + callback = ' {} callback ('.format(' v_return =') + else: + callback = ' callback (' + + pad = len(callback) + body += [callback + 'data1,'] + + if va_marshal: + for idx, arg in enumerate(get_args): + body += [indent('arg{:d},'.format(idx), level=pad)] + else: + for idx, arg in enumerate(get_args): + arg_getter = IN_ARGS[arg]['getter'] + body += [indent('{} (param_values + {:d}),'.format(arg_getter, idx + 1), level=pad)] + + body += [indent('data2);', level=pad)] + + if va_marshal: + boxed_args = [x for x in get_args if IN_ARGS[x].get('box', None) is not None] + if not boxed_args: + body += [''] + else: + for idx, arg in enumerate(get_args): + if not IN_ARGS[arg].get('box', None): + continue + unbox_func = IN_ARGS[arg]['box'][1] + if IN_ARGS[arg].get('static-check', False): + static_check = STATIC_CHECK_STR.format(idx) + else: + static_check = '' + arg_check = 'arg{:d} != NULL'.format(idx) + body += [' if ({}{})'.format(static_check, arg_check)] + if IN_ARGS[arg].get('takes-type', False): + body += [UNBOX_TYPED_STR.format(idx=idx, unbox_func=unbox_func)] + else: + body += [UNBOX_UNTYPED_STR.format(idx=idx, unbox_func=unbox_func)] + + if retval_setter: + body += [''] + body += [' {} (return_value, v_return);'.format(retval_setter)] + + body += ['}'] + + return body + + +def generate_marshaller_alias(outfile, marshaller, real_marshaller, + include_va=False, + source_location=None): + '''Generate an alias between @marshaller and @real_marshaller, including + an optional alias for va_list marshallers''' + if source_location: + outfile.write('/* {} */\n'.format(source_location)) + + outfile.write('#define {}\t{}\n'.format(marshaller, real_marshaller)) + + if include_va: + outfile.write('#define {}v\t{}v\n'.format(marshaller, real_marshaller)) + + outfile.write('\n') + + +def generate_marshallers_header(outfile, retval, params, + prefix='g_cclosure_user_marshal', + internal=False, + include_va=False, source_location=None): + '''Generate a declaration for a marshaller function, to be used in the header, + with the given @retval, @params, and @prefix. An optional va_list marshaller + for the same arguments is also generated. The generated buffer is written to + the @outfile stream object.''' + if source_location: + outfile.write('/* {} */\n'.format(source_location)) + + if internal: + visibility = Visibility.INTERNAL + else: + visibility = Visibility.EXTERN + + signature = generate_prototype(retval, params, prefix, visibility, False) + if include_va: + signature += generate_prototype(retval, params, prefix, visibility, True) + signature += [''] + + outfile.write('\n'.join(signature)) + outfile.write('\n') + + +def generate_marshallers_body(outfile, retval, params, + prefix='g_cclosure_user_marshal', + include_prototype=True, + internal=False, + include_va=False, source_location=None): + '''Generate a definition for a marshaller function, to be used in the source, + with the given @retval, @params, and @prefix. An optional va_list marshaller + for the same arguments is also generated. The generated buffer is written to + the @outfile stream object.''' + if source_location: + outfile.write('/* {} */\n'.format(source_location)) + + if include_prototype: + # Declaration visibility + if internal: + decl_visibility = Visibility.INTERNAL + else: + decl_visibility = Visibility.EXTERN + proto = ['/* Prototype for -Wmissing-prototypes */'] + # Add C++ guards in case somebody compiles the generated code + # with a C++ compiler + proto += ['G_BEGIN_DECLS'] + proto += generate_prototype(retval, params, prefix, decl_visibility, False) + proto += ['G_END_DECLS'] + outfile.write('\n'.join(proto)) + outfile.write('\n') + + body = generate_body(retval, params, prefix, False) + outfile.write('\n'.join(body)) + outfile.write('\n\n') + + if include_va: + if include_prototype: + # Declaration visibility + if internal: + decl_visibility = Visibility.INTERNAL + else: + decl_visibility = Visibility.EXTERN + proto = ['/* Prototype for -Wmissing-prototypes */'] + # Add C++ guards here as well + proto += ['G_BEGIN_DECLS'] + proto += generate_prototype(retval, params, prefix, decl_visibility, True) + proto += ['G_END_DECLS'] + outfile.write('\n'.join(proto)) + outfile.write('\n') + + body = generate_body(retval, params, prefix, True) + outfile.write('\n'.join(body)) + outfile.write('\n\n') + + +def parse_args(): + arg_parser = argparse.ArgumentParser(description='Generate signal marshallers for GObject') + arg_parser.add_argument('--prefix', metavar='STRING', + default='g_cclosure_user_marshal', + help='Specify marshaller prefix') + arg_parser.add_argument('--output', metavar='FILE', + type=argparse.FileType('w'), + default=sys.stdout, + help='Write output into the specified file') + arg_parser.add_argument('--skip-source', + action='store_true', + help='Skip source location comments') + arg_parser.add_argument('--internal', + action='store_true', + help='Mark generated functions as internal') + arg_parser.add_argument('--valist-marshallers', + action='store_true', + help='Generate va_list marshallers') + arg_parser.add_argument('-v', '--version', + action='store_true', + dest='show_version', + help='Print version information, and exit') + arg_parser.add_argument('--g-fatal-warnings', + action='store_true', + dest='fatal_warnings', + help='Make warnings fatal') + arg_parser.add_argument('--include-header', metavar='HEADER', nargs='?', + action='append', + dest='include_headers', + help='Include the specified header in the body') + arg_parser.add_argument('--pragma-once', + action='store_true', + help='Use "pragma once" as the inclusion guard') + arg_parser.add_argument('-D', + action='append', + dest='cpp_defines', + default=[], + help='Pre-processor define') + arg_parser.add_argument('-U', + action='append', + dest='cpp_undefines', + default=[], + help='Pre-processor undefine') + arg_parser.add_argument('files', metavar='FILE', nargs='*', + type=argparse.FileType('r'), + help='Files with lists of marshallers to generate, ' + + 'or "-" for standard input') + arg_parser.add_argument('--prototypes', + action='store_true', + help='Generate the marshallers prototype in the C code') + arg_parser.add_argument('--header', + action='store_true', + help='Generate C headers') + arg_parser.add_argument('--body', + action='store_true', + help='Generate C code') + + group = arg_parser.add_mutually_exclusive_group() + group.add_argument('--stdinc', + action='store_true', + dest='stdinc', default=True, + help='Include standard marshallers') + group.add_argument('--nostdinc', + action='store_false', + dest='stdinc', default=True, + help='Use standard marshallers') + + group = arg_parser.add_mutually_exclusive_group() + group.add_argument('--quiet', + action='store_true', + help='Only print warnings and errors') + group.add_argument('--verbose', + action='store_true', + help='Be verbose, and include debugging information') + + args = arg_parser.parse_args() + + if args.show_version: + print(VERSION_STR) + sys.exit(0) + + return args + + +def generate(args): + # Backward compatibility hack; some projects use both arguments to + # generate the marshallers prototype in the C source, even though + # it's not really a supported use case. We keep this behaviour by + # forcing the --prototypes and --body arguments instead. We make this + # warning non-fatal even with --g-fatal-warnings, as it's a deprecation + compatibility_mode = False + if args.header and args.body: + print_warning('Using --header and --body at the same time is deprecated; ' + + 'use --body --prototypes instead', False) + args.prototypes = True + args.header = False + compatibility_mode = True + + if args.header: + generate_header_preamble(args.output, + prefix=args.prefix, + std_includes=args.stdinc, + use_pragma=args.pragma_once) + elif args.body: + generate_body_preamble(args.output, + std_includes=args.stdinc, + include_headers=args.include_headers, + cpp_defines=args.cpp_defines, + cpp_undefines=args.cpp_undefines) + + seen_marshallers = set() + + for infile in args.files: + if not args.quiet: + print_info('Reading {}...'.format(infile.name)) + + line_count = 0 + for line in infile: + line_count += 1 + + if line == '\n' or line.startswith('#'): + continue + + matches = re.match(r'^([A-Z0-9]+)\s?:\s?([A-Z0-9,\s]+)$', line.strip()) + if not matches or len(matches.groups()) != 2: + print_warning('Invalid entry: "{}"'.format(line.strip()), args.fatal_warnings) + continue + + if not args.skip_source: + location = '{} ({}:{:d})'.format(line.strip(), infile.name, line_count) + else: + location = None + + retval = matches.group(1).strip() + params = [x.strip() for x in matches.group(2).split(',')] + check_args(retval, params, args.fatal_warnings) + + raw_marshaller = generate_marshaller_name(args.prefix, retval, params, False) + if raw_marshaller in seen_marshallers: + if args.verbose: + print_info('Skipping repeated marshaller {}'.format(line.strip())) + continue + + if args.header: + if args.verbose: + print_info('Generating declaration for {}'.format(line.strip())) + generate_std_alias = False + if args.stdinc: + std_marshaller = generate_marshaller_name(STD_PREFIX, retval, params) + if std_marshaller in GOBJECT_MARSHALLERS: + if args.verbose: + print_info('Skipping default marshaller {}'.format(line.strip())) + generate_std_alias = True + + marshaller = generate_marshaller_name(args.prefix, retval, params) + if generate_std_alias: + generate_marshaller_alias(args.output, marshaller, std_marshaller, + source_location=location, + include_va=args.valist_marshallers) + else: + generate_marshallers_header(args.output, retval, params, + prefix=args.prefix, + internal=args.internal, + include_va=args.valist_marshallers, + source_location=location) + # If the marshaller is defined using a deprecated token, we want to maintain + # compatibility and generate an alias for the old name pointing to the new + # one + if marshaller != raw_marshaller: + if args.verbose: + print_info('Generating alias for deprecated tokens') + generate_marshaller_alias(args.output, raw_marshaller, marshaller, + include_va=args.valist_marshallers) + elif args.body: + if args.verbose: + print_info('Generating definition for {}'.format(line.strip())) + generate_std_alias = False + if args.stdinc: + std_marshaller = generate_marshaller_name(STD_PREFIX, retval, params) + if std_marshaller in GOBJECT_MARSHALLERS: + if args.verbose: + print_info('Skipping default marshaller {}'.format(line.strip())) + generate_std_alias = True + marshaller = generate_marshaller_name(args.prefix, retval, params) + if generate_std_alias: + # We need to generate the alias if we are in compatibility mode + if compatibility_mode: + generate_marshaller_alias(args.output, marshaller, std_marshaller, + source_location=location, + include_va=args.valist_marshallers) + else: + generate_marshallers_body(args.output, retval, params, + prefix=args.prefix, + internal=args.internal, + include_prototype=args.prototypes, + include_va=args.valist_marshallers, + source_location=location) + if compatibility_mode and marshaller != raw_marshaller: + if args.verbose: + print_info('Generating alias for deprecated tokens') + generate_marshaller_alias(args.output, raw_marshaller, marshaller, + include_va=args.valist_marshallers) + + seen_marshallers.add(raw_marshaller) + + if args.header: + generate_header_postamble(args.output, prefix=args.prefix, use_pragma=args.pragma_once) + + +if __name__ == '__main__': + args = parse_args() + + with args.output: + generate(args) diff --git a/code/application/source/sf_app/tools/blue/bin/glib-gettextize b/code/application/source/sf_app/tools/blue/bin/glib-gettextize new file mode 100755 index 000000000..4f16ca774 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/bin/glib-gettextize @@ -0,0 +1,189 @@ +#! /bin/sh +# +# Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. +# +# SPDX-License-Identifier: GPL-2.0-or-later +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# + +# - Modified in October 2001 by jacob berkman to +# work with glib's Makefile.in.in and po2tbl.sed.in, to not copy in +# intl/, and to not add ChangeLog entries to po/ChangeLog + +# This file is meant for authors or maintainers which want to +# internationalize their package with the help of GNU gettext. For +# further information how to use it consult the GNU gettext manual. + +echo=echo +progname=$0 +force=0 +configstatus=0 +origdir=`pwd` +usage="\ +Usage: glib-gettextize [OPTION]... [package-dir] + --help print this help and exit + --version print version information and exit + -c, --copy copy files instead of making symlinks + -f, --force force writing of new files even if old exist +Report bugs to https://gitlab.gnome.org/GNOME/glib/issues/new." +package=glib +version=2.77.3 +try_ln_s=: + +# Directory where the sources are stored. +prefix=/home/payton/blue +case `uname` in +MINGW32*) + prefix="`dirname $0`/.." + ;; +esac + +datarootdir=/home/payton/blue/share +datadir=/home/payton/blue/share + +gettext_dir=$datadir/glib-2.0/gettext + +while test $# -gt 0; do + case "$1" in + -c | --copy | --c* ) + shift + try_ln_s=false ;; + -f | --force | --f* ) + shift + force=1 ;; + -r | --run | --r* ) + shift + configstatus=1 ;; + --help | --h* ) + $echo "$usage"; exit 0 ;; + --version | --v* ) + echo "$progname (GNU $package) $version" + $echo "Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + $echo "Written by" "Ulrich Drepper" + exit 0 ;; + -- ) # Stop option processing + shift; break ;; + -* ) + $echo "glib-gettextize: unknown option $1" + $echo "Try \`glib-gettextize --help' for more information."; exit 1 ;; + * ) + break ;; + esac +done + +if test $# -gt 1; then + $echo "$usage" + exit 1 +fi + +# Fill in the command line options value. +if test $# -eq 1; then + srcdir=$1 + if cd "$srcdir"; then + srcdir=`pwd` + else + $echo "Cannot change directory to \`$srcdir'" + exit 1 + fi +else + srcdir=$origdir +fi + +test -f configure.in || test -f configure.ac || { + $echo "Missing configure.in or configure.ac, please cd to your package first." + exit 1 +} + +configure_in=NONE +if test -f configure.in; then + configure_in=configure.in +else + if test -f configure.ac; then + configure_in=configure.ac + fi +fi +# Check in which directory config.rpath, mkinstalldirs etc. belong. +auxdir=`cat "$configure_in" | grep '^AC_CONFIG_AUX_DIR' | sed -n -e 's/AC_CONFIG_AUX_DIR(\([^()]*\))/\1/p' | sed -e 's/^\[\(.*\)\]$/\1/' | sed -e 1q` +if test -n "$auxdir"; then + auxdir="$auxdir/" +fi + +if test -f po/Makefile.in.in && test $force -eq 0; then + $echo "\ +po/Makefile.in.in exists: use option -f if you really want to delete it." + exit 1 +fi + +test -d po || { + $echo "Creating po/ subdirectory" + mkdir po || { + $echo "failed to create po/ subdirectory" + exit 1 + } +} + +# For simplicity we changed to the gettext source directory. +cd $gettext_dir || { + $echo "gettext source directory '${gettext_dir}' doesn't exist" + exit 1 +} + +# Now copy all files. Take care for the destination directories. +for file in *; do + case $file in + intl | po) + ;; + mkinstalldirs) + rm -f "$srcdir/$auxdir$file" + ($try_ln_s && ln -s $gettext_dir/$file "$srcdir/$auxdir$file" && $echo "Symlinking file $file") 2>/dev/null || + { $echo "Copying file $file"; cp $file "$srcdir/$auxdir$file"; } + ;; + *) + rm -f "$srcdir/$file" + ($try_ln_s && ln -s $gettext_dir/$file "$srcdir/$file" && $echo "Symlinking file $file") 2>/dev/null || + { $echo "Copying file $file"; cp $file "$srcdir/$file"; } + ;; + esac +done + +# Copy files to po/ subdirectory. +cd po +for file in *; do + rm -f "$srcdir/po/$file" + ($try_ln_s && ln -s $gettext_dir/po/$file "$srcdir/po/$file" && $echo "Symlinking file po/$file") 2>/dev/null || + { $echo "Copying file po/$file"; cp $file "$srcdir/po/$file"; } +done +if test -f "$srcdir/po/cat-id-tbl.c"; then + $echo "Removing po/cat-id-tbl.c" + rm -f "$srcdir/po/cat-id-tbl.c" +fi +if test -f "$srcdir/po/stamp-cat-id"; then + $echo "Removing po/stamp-cat-id" + rm -f "$srcdir/po/stamp-cat-id" +fi + +echo +echo "Please add the files" +echo " codeset.m4 gettext.m4 glibc21.m4 iconv.m4 isc-posix.m4 lcmessage.m4" +echo " progtest.m4" +echo "from the $datadir/aclocal directory to your autoconf macro directory" +echo "or directly to your aclocal.m4 file." +echo "You will also need config.guess and config.sub, which you can get from" +echo "ftp://ftp.gnu.org/pub/gnu/config/." +echo + +exit 0 diff --git a/code/application/source/sf_app/tools/blue/bin/glib-mkenums b/code/application/source/sf_app/tools/blue/bin/glib-mkenums new file mode 100755 index 000000000..830c06e77 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/bin/glib-mkenums @@ -0,0 +1,810 @@ +#!/usr/bin/env python3 + +# If the code below looks horrible and unpythonic, do not panic. +# +# It is. +# +# This is a manual conversion from the original Perl script to +# Python. Improvements are welcome. +# +from __future__ import print_function, unicode_literals + +import argparse +import os +import re +import sys +import tempfile +import io +import errno +import codecs +import locale + +# Non-english locale systems might complain to unrecognized character +sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8') + +VERSION_STR = '''glib-mkenums version 2.77.3 +glib-mkenums comes with ABSOLUTELY NO WARRANTY. +You may redistribute copies of glib-mkenums under the terms of +the GNU General Public License which can be found in the +GLib source package. Sources, examples and contact +information are available at http://www.gtk.org''' + +# pylint: disable=too-few-public-methods +class Color: + '''ANSI Terminal colors''' + GREEN = '\033[1;32m' + BLUE = '\033[1;34m' + YELLOW = '\033[1;33m' + RED = '\033[1;31m' + END = '\033[0m' + + +def print_color(msg, color=Color.END, prefix='MESSAGE'): + '''Print a string with a color prefix''' + if os.isatty(sys.stderr.fileno()): + real_prefix = '{start}{prefix}{end}'.format(start=color, prefix=prefix, end=Color.END) + else: + real_prefix = prefix + print('{prefix}: {msg}'.format(prefix=real_prefix, msg=msg), file=sys.stderr) + + +def print_error(msg): + '''Print an error, and terminate''' + print_color(msg, color=Color.RED, prefix='ERROR') + sys.exit(1) + + +def print_warning(msg, fatal=False): + '''Print a warning, and optionally terminate''' + if fatal: + color = Color.RED + prefix = 'ERROR' + else: + color = Color.YELLOW + prefix = 'WARNING' + print_color(msg, color, prefix) + if fatal: + sys.exit(1) + + +def print_info(msg): + '''Print a message''' + print_color(msg, color=Color.GREEN, prefix='INFO') + + +def get_rspfile_args(rspfile): + ''' + Response files are useful on Windows where there is a command-line character + limit of 8191 because when passing sources as arguments to glib-mkenums this + limit can be exceeded in large codebases. + + There is no specification for response files and each tool that supports it + generally writes them out in slightly different ways, but some sources are: + https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-response-files + https://docs.microsoft.com/en-us/windows/desktop/midl/the-response-file-command + ''' + import shlex + if not os.path.isfile(rspfile): + sys.exit('Response file {!r} does not exist'.format(rspfile)) + try: + with open(rspfile, 'r') as f: + cmdline = f.read() + except OSError as e: + sys.exit('Response file {!r} could not be read: {}' + .format(rspfile, e.strerror)) + return shlex.split(cmdline) + + +def write_output(output): + global output_stream + print(output, file=output_stream) + + +# Python 2 defaults to ASCII in case stdout is redirected. +# This should make it match Python 3, which uses the locale encoding. +if sys.stdout.encoding is None: + output_stream = codecs.getwriter( + locale.getpreferredencoding())(sys.stdout) +else: + output_stream = sys.stdout + + +# Some source files aren't UTF-8 and the old perl version didn't care. +# Replace invalid data with a replacement character to keep things working. +# https://bugzilla.gnome.org/show_bug.cgi?id=785113#c20 +def replace_and_warn(err): + # 7 characters of context either side of the offending character + print_warning('UnicodeWarning: {} at {} ({})'.format( + err.reason, err.start, + err.object[err.start - 7:err.end + 7])) + return ('?', err.end) + +codecs.register_error('replace_and_warn', replace_and_warn) + + +# glib-mkenums.py +# Information about the current enumeration +flags = None # Is enumeration a bitmask? +option_underscore_name = '' # Overridden underscore variant of the enum name + # for example to fix the cases we don't get the + # mixed-case -> underscorized transform right. +option_lowercase_name = '' # DEPRECATED. A lower case name to use as part + # of the *_get_type() function, instead of the + # one that we guess. For instance, when an enum + # uses abnormal capitalization and we can not + # guess where to put the underscores. +option_since = '' # User provided version info for the enum. +seenbitshift = 0 # Have we seen bitshift operators? +seenprivate = False # Have we seen a private option? +enum_prefix = None # Prefix for this enumeration +enumname = '' # Name for this enumeration +enumshort = '' # $enumname without prefix +enumname_prefix = '' # prefix of $enumname +enumindex = 0 # Global enum counter +firstenum = 1 # Is this the first enumeration per file? +entries = [] # [ name, val ] for each entry +c_namespace = {} # C symbols namespace. + +output = '' # Filename to write result into + +def parse_trigraph(opts): + result = {} + for opt in re.findall(r'(?:[^\s,"]|"(?:\\.|[^"])*")+', opts): + opt = re.sub(r'^\s*', '', opt) + opt = re.sub(r'\s*$', '', opt) + m = re.search(r'(\w+)(?:=(.+))?', opt) + assert m is not None + groups = m.groups() + key = groups[0] + if len(groups) > 1: + val = groups[1] + else: + val = 1 + result[key] = val.strip('"') if val is not None else None + return result + +def parse_entries(file, file_name): + global entries, enumindex, enumname, seenbitshift, seenprivate, flags + looking_for_name = False + + while True: + line = file.readline() + if not line: + break + + line = line.strip() + + # read lines until we have no open comments + while re.search(r'/\*([^*]|\*(?!/))*$', line): + line += file.readline() + + # strip comments w/o options + line = re.sub(r'''/\*(?!<) + ([^*]+|\*(?!/))* + \*/''', '', line, flags=re.X) + + line = line.rstrip() + + # skip empty lines + if len(line.strip()) == 0: + continue + + if looking_for_name: + m = re.match(r'\s*(\w+)', line) + if m: + enumname = m.group(1) + return True + + # Handle include files + m = re.match(r'\#include\s*<([^>]*)>', line) + if m: + newfilename = os.path.join("..", m.group(1)) + newfile = io.open(newfilename, encoding="utf-8", + errors="replace_and_warn") + + if not parse_entries(newfile, newfilename): + return False + else: + continue + + m = re.match(r'\s*\}\s*(\w+)', line) + if m: + enumname = m.group(1) + enumindex += 1 + return 1 + + m = re.match(r'\s*\}', line) + if m: + enumindex += 1 + looking_for_name = True + continue + + m = re.match(r'''\s* + (\w+)\s* # name + (\s+[A-Z]+_(?:AVAILABLE|DEPRECATED)_ENUMERATOR_IN_[0-9_]+(?:_FOR\s*\(\s*\w+\s*\))?\s*)? # availability + (?:=( # value + \s*\w+\s*\(.*\)\s* # macro with multiple args + | # OR + (?:[^,/]|/(?!\*))* # anything but a comma or comment + ))?,?\s* + (?:/\*< # options + (([^*]|\*(?!/))*) + >\s*\*/)?,? + \s*$''', line, flags=re.X) + if m: + groups = m.groups() + name = groups[0] + availability = None + value = None + options = None + if len(groups) > 1: + availability = groups[1] + if len(groups) > 2: + value = groups[2] + if len(groups) > 3: + options = groups[3] + if flags is None and value is not None and '<<' in value: + seenbitshift = 1 + + if options is not None: + options = parse_trigraph(options) + if 'skip' not in options: + entries.append((name, value, seenprivate, options.get('nick'))) + else: + entries.append((name, value, seenprivate)) + else: + m = re.match(r'''\s* + /\*< (([^*]|\*(?!/))*) >\s*\*/ + \s*$''', line, flags=re.X) + if m: + options = m.groups()[0] + if options is not None: + options = parse_trigraph(options) + if 'private' in options: + seenprivate = True + continue + if 'public' in options: + seenprivate = False + continue + if re.match(r's*\#', line): + pass + else: + print_warning('Failed to parse "{}" in {}'.format(line, file_name)) + return False + +help_epilog = '''Production text substitutions: + \u0040EnumName\u0040 PrefixTheXEnum + \u0040enum_name\u0040 prefix_the_xenum + \u0040ENUMNAME\u0040 PREFIX_THE_XENUM + \u0040ENUMSHORT\u0040 THE_XENUM + \u0040ENUMPREFIX\u0040 PREFIX + \u0040enumsince\u0040 the user-provided since value given + \u0040VALUENAME\u0040 PREFIX_THE_XVALUE + \u0040valuenick\u0040 the-xvalue + \u0040valuenum\u0040 the integer value (limited support, Since: 2.26) + \u0040type\u0040 either enum or flags + \u0040Type\u0040 either Enum or Flags + \u0040TYPE\u0040 either ENUM or FLAGS + \u0040filename\u0040 name of current input file + \u0040basename\u0040 base name of the current input file (Since: 2.22) +''' + + +# production variables: +idprefix = "" # "G", "Gtk", etc +symprefix = "" # "g", "gtk", etc, if not just lc($idprefix) +fhead = "" # output file header +fprod = "" # per input file production +ftail = "" # output file trailer +eprod = "" # per enum text (produced prior to value itarations) +vhead = "" # value header, produced before iterating over enum values +vprod = "" # value text, produced for each enum value +vtail = "" # value tail, produced after iterating over enum values +comment_tmpl = "" # comment template + +def read_template_file(file): + global idprefix, symprefix, fhead, fprod, ftail, eprod, vhead, vprod, vtail, comment_tmpl + tmpl = {'file-header': fhead, + 'file-production': fprod, + 'file-tail': ftail, + 'enumeration-production': eprod, + 'value-header': vhead, + 'value-production': vprod, + 'value-tail': vtail, + 'comment': comment_tmpl, + } + in_ = 'junk' + + ifile = io.open(file, encoding="utf-8", errors="replace_and_warn") + for line in ifile: + m = re.match(r'\/\*\*\*\s+(BEGIN|END)\s+([\w-]+)\s+\*\*\*\/', line) + if m: + if in_ == 'junk' and m.group(1) == 'BEGIN' and m.group(2) in tmpl: + in_ = m.group(2) + continue + elif in_ == m.group(2) and m.group(1) == 'END' and m.group(2) in tmpl: + in_ = 'junk' + continue + else: + sys.exit("Malformed template file " + file) + + if in_ != 'junk': + tmpl[in_] += line + + if in_ != 'junk': + sys.exit("Malformed template file " + file) + + fhead = tmpl['file-header'] + fprod = tmpl['file-production'] + ftail = tmpl['file-tail'] + eprod = tmpl['enumeration-production'] + vhead = tmpl['value-header'] + vprod = tmpl['value-production'] + vtail = tmpl['value-tail'] + comment_tmpl = tmpl['comment'] + +parser = argparse.ArgumentParser(epilog=help_epilog, + formatter_class=argparse.RawDescriptionHelpFormatter) + +parser.add_argument('--identifier-prefix', default='', dest='idprefix', + help='Identifier prefix') +parser.add_argument('--symbol-prefix', default='', dest='symprefix', + help='Symbol prefix') +parser.add_argument('--fhead', default=[], dest='fhead', action='append', + help='Output file header') +parser.add_argument('--ftail', default=[], dest='ftail', action='append', + help='Output file footer') +parser.add_argument('--fprod', default=[], dest='fprod', action='append', + help='Put out TEXT every time a new input file is being processed.') +parser.add_argument('--eprod', default=[], dest='eprod', action='append', + help='Per enum text, produced prior to value iterations') +parser.add_argument('--vhead', default=[], dest='vhead', action='append', + help='Value header, produced before iterating over enum values') +parser.add_argument('--vprod', default=[], dest='vprod', action='append', + help='Value text, produced for each enum value.') +parser.add_argument('--vtail', default=[], dest='vtail', action='append', + help='Value tail, produced after iterating over enum values') +parser.add_argument('--comments', default='', dest='comment_tmpl', + help='Comment structure') +parser.add_argument('--template', default='', dest='template', + help='Template file') +parser.add_argument('--output', default=None, dest='output') +parser.add_argument('--version', '-v', default=False, action='store_true', dest='version', + help='Print version information') +parser.add_argument('args', nargs='*', + help='One or more input files, or a single argument @rspfile_path ' + 'pointing to a file that contains the actual arguments') + +# Support reading an rspfile of the form @filename which contains the args +# to be parsed +if len(sys.argv) == 2 and sys.argv[1].startswith('@'): + args = get_rspfile_args(sys.argv[1][1:]) +else: + args = sys.argv[1:] + +options = parser.parse_args(args) + +if options.version: + print(VERSION_STR) + sys.exit(0) + +def unescape_cmdline_args(arg): + arg = arg.replace('\\n', '\n') + arg = arg.replace('\\r', '\r') + return arg.replace('\\t', '\t') + +if options.template != '': + read_template_file(options.template) + +idprefix += options.idprefix +symprefix += options.symprefix + +# This is a hack to maintain some semblance of backward compatibility with +# the old, Perl-based glib-mkenums. The old tool had an implicit ordering +# on the arguments and templates; each argument was parsed in order, and +# all the strings appended. This allowed developers to write: +# +# glib-mkenums \ +# --fhead ... \ +# --template a-template-file.c.in \ +# --ftail ... +# +# And have the fhead be prepended to the file-head stanza in the template, +# as well as the ftail be appended to the file-tail stanza in the template. +# Short of throwing away ArgumentParser and going over sys.argv[] element +# by element, we can simulate that behaviour by ensuring some ordering in +# how we build the template strings: +# +# - the head stanzas are always prepended to the template +# - the prod stanzas are always appended to the template +# - the tail stanzas are always appended to the template +# +# Within each instance of the command line argument, we append each value +# to the array in the order in which it appears on the command line. +fhead = ''.join([unescape_cmdline_args(x) for x in options.fhead]) + fhead +vhead = ''.join([unescape_cmdline_args(x) for x in options.vhead]) + vhead + +fprod += ''.join([unescape_cmdline_args(x) for x in options.fprod]) +eprod += ''.join([unescape_cmdline_args(x) for x in options.eprod]) +vprod += ''.join([unescape_cmdline_args(x) for x in options.vprod]) + +ftail = ftail + ''.join([unescape_cmdline_args(x) for x in options.ftail]) +vtail = vtail + ''.join([unescape_cmdline_args(x) for x in options.vtail]) + +if options.comment_tmpl != '': + comment_tmpl = unescape_cmdline_args(options.comment_tmpl) +elif comment_tmpl == "": + # default to C-style comments + comment_tmpl = "/* \u0040comment\u0040 */" + +output = options.output + +if output is not None: + (out_dir, out_fn) = os.path.split(options.output) + out_suffix = '_' + os.path.splitext(out_fn)[1] + if out_dir == '': + out_dir = '.' + fd, filename = tempfile.mkstemp(dir=out_dir) + os.close(fd) + tmpfile = io.open(filename, "w", encoding="utf-8") + output_stream = tmpfile +else: + tmpfile = None + +# put auto-generation comment +comment = comment_tmpl.replace('\u0040comment\u0040', + 'This file is generated by glib-mkenums, do ' + 'not modify it. This code is licensed under ' + 'the same license as the containing project. ' + 'Note that it links to GLib, so must comply ' + 'with the LGPL linking clauses.') +write_output("\n" + comment + '\n') + +def replace_specials(prod): + prod = prod.replace(r'\\a', r'\a') + prod = prod.replace(r'\\b', r'\b') + prod = prod.replace(r'\\t', r'\t') + prod = prod.replace(r'\\n', r'\n') + prod = prod.replace(r'\\f', r'\f') + prod = prod.replace(r'\\r', r'\r') + prod = prod.rstrip() + return prod + + +def warn_if_filename_basename_used(section, prod): + for substitution in ('\u0040filename\u0040', + '\u0040basename\u0040'): + if substitution in prod: + print_warning('{} used in {} section.'.format(substitution, + section)) + +if len(fhead) > 0: + prod = fhead + warn_if_filename_basename_used('file-header', prod) + prod = replace_specials(prod) + write_output(prod) + +def process_file(curfilename): + global entries, flags, seenbitshift, seenprivate, enum_prefix, c_namespace + firstenum = True + + try: + curfile = io.open(curfilename, encoding="utf-8", + errors="replace_and_warn") + except IOError as e: + if e.errno == errno.ENOENT: + print_warning('No file "{}" found.'.format(curfilename)) + return + raise + + while True: + line = curfile.readline() + if not line: + break + + line = line.strip() + + # read lines until we have no open comments + while re.search(r'/\*([^*]|\*(?!/))*$', line): + line += curfile.readline() + + # strip comments w/o options + line = re.sub(r'''/\*(?!<) + ([^*]+|\*(?!/))* + \*/''', '', line) + + # ignore forward declarations + if re.match(r'\s*typedef\s+enum.*;', line): + continue + + m = re.match(r'''\s*typedef\s+enum\s*[_A-Za-z]*[_A-Za-z0-9]*\s* + ({)?\s* + (?:/\*< + (([^*]|\*(?!/))*) + >\s*\*/)? + \s*({)?''', line, flags=re.X) + if m: + groups = m.groups() + if len(groups) >= 2 and groups[1] is not None: + options = parse_trigraph(groups[1]) + if 'skip' in options: + continue + enum_prefix = options.get('prefix', None) + flags = options.get('flags', None) + if 'flags' in options: + if flags is None: + flags = 1 + else: + flags = int(flags) + option_lowercase_name = options.get('lowercase_name', None) + option_underscore_name = options.get('underscore_name', None) + option_since = options.get('since', None) + else: + enum_prefix = None + flags = None + option_lowercase_name = None + option_underscore_name = None + option_since = None + + if option_lowercase_name is not None: + if option_underscore_name is not None: + print_warning("lowercase_name overridden with underscore_name") + option_lowercase_name = None + else: + print_warning("lowercase_name is deprecated, use underscore_name") + + # Didn't have trailing '{' look on next lines + if groups[0] is None and (len(groups) < 4 or groups[3] is None): + while True: + line = curfile.readline() + if not line: + print_error("Syntax error when looking for opening { in enum") + if re.match(r'\s*\{', line): + break + + seenbitshift = 0 + seenprivate = False + entries = [] + + # Now parse the entries + parse_entries(curfile, curfilename) + + # figure out if this was a flags or enums enumeration + if flags is None: + flags = seenbitshift + + # Autogenerate a prefix + if enum_prefix is None: + for entry in entries: + if not entry[2] and (len(entry) < 4 or entry[3] is None): + name = entry[0] + if enum_prefix is not None: + enum_prefix = os.path.commonprefix([name, enum_prefix]) + else: + enum_prefix = name + if enum_prefix is None: + enum_prefix = "" + else: + # Trim so that it ends in an underscore + enum_prefix = re.sub(r'_[^_]*$', '_', enum_prefix) + else: + # canonicalize user defined prefixes + enum_prefix = enum_prefix.upper() + enum_prefix = enum_prefix.replace('-', '_') + enum_prefix = re.sub(r'(.*)([^_])$', r'\1\2_', enum_prefix) + + fixed_entries = [] + for e in entries: + name = e[0] + num = e[1] + private = e[2] + if len(e) < 4 or e[3] is None: + nick = re.sub(r'^' + enum_prefix, '', name) + nick = nick.replace('_', '-').lower() + e = (name, num, private, nick) + fixed_entries.append(e) + entries = fixed_entries + + # Spit out the output + if option_underscore_name is not None: + enumlong = option_underscore_name.upper() + enumsym = option_underscore_name.lower() + enumshort = re.sub(r'^[A-Z][A-Z0-9]*_', '', enumlong) + + enumname_prefix = re.sub('_' + enumshort + '$', '', enumlong) + elif symprefix == '' and idprefix == '': + # enumname is e.g. GMatchType + enspace = re.sub(r'^([A-Z][a-z]*).*$', r'\1', enumname) + + enumshort = re.sub(r'^[A-Z][a-z]*', '', enumname) + enumshort = re.sub(r'([^A-Z])([A-Z])', r'\1_\2', enumshort) + enumshort = re.sub(r'([A-Z][A-Z])([A-Z][0-9a-z])', r'\1_\2', enumshort) + enumshort = enumshort.upper() + + enumname_prefix = re.sub(r'^([A-Z][a-z]*).*$', r'\1', enumname).upper() + + enumlong = enspace.upper() + "_" + enumshort + enumsym = enspace.lower() + "_" + enumshort.lower() + + if option_lowercase_name is not None: + enumsym = option_lowercase_name + else: + enumshort = enumname + if idprefix: + enumshort = re.sub(r'^' + idprefix, '', enumshort) + else: + enumshort = re.sub(r'/^[A-Z][a-z]*', '', enumshort) + + enumshort = re.sub(r'([^A-Z])([A-Z])', r'\1_\2', enumshort) + enumshort = re.sub(r'([A-Z][A-Z])([A-Z][0-9a-z])', r'\1_\2', enumshort) + enumshort = enumshort.upper() + + if symprefix: + enumname_prefix = symprefix.upper() + else: + enumname_prefix = idprefix.upper() + + enumlong = enumname_prefix + "_" + enumshort + enumsym = enumlong.lower() + + if option_since is not None: + enumsince = option_since + else: + enumsince = "" + + if firstenum: + firstenum = False + + if len(fprod) > 0: + prod = fprod + base = os.path.basename(curfilename) + + prod = prod.replace('\u0040filename\u0040', curfilename) + prod = prod.replace('\u0040basename\u0040', base) + prod = replace_specials(prod) + + write_output(prod) + + if len(eprod) > 0: + prod = eprod + + prod = prod.replace('\u0040enum_name\u0040', enumsym) + prod = prod.replace('\u0040EnumName\u0040', enumname) + prod = prod.replace('\u0040ENUMSHORT\u0040', enumshort) + prod = prod.replace('\u0040ENUMNAME\u0040', enumlong) + prod = prod.replace('\u0040ENUMPREFIX\u0040', enumname_prefix) + prod = prod.replace('\u0040enumsince\u0040', enumsince) + if flags: + prod = prod.replace('\u0040type\u0040', 'flags') + else: + prod = prod.replace('\u0040type\u0040', 'enum') + if flags: + prod = prod.replace('\u0040Type\u0040', 'Flags') + else: + prod = prod.replace('\u0040Type\u0040', 'Enum') + if flags: + prod = prod.replace('\u0040TYPE\u0040', 'FLAGS') + else: + prod = prod.replace('\u0040TYPE\u0040', 'ENUM') + prod = replace_specials(prod) + write_output(prod) + + if len(vhead) > 0: + prod = vhead + prod = prod.replace('\u0040enum_name\u0040', enumsym) + prod = prod.replace('\u0040EnumName\u0040', enumname) + prod = prod.replace('\u0040ENUMSHORT\u0040', enumshort) + prod = prod.replace('\u0040ENUMNAME\u0040', enumlong) + prod = prod.replace('\u0040ENUMPREFIX\u0040', enumname_prefix) + prod = prod.replace('\u0040enumsince\u0040', enumsince) + if flags: + prod = prod.replace('\u0040type\u0040', 'flags') + else: + prod = prod.replace('\u0040type\u0040', 'enum') + if flags: + prod = prod.replace('\u0040Type\u0040', 'Flags') + else: + prod = prod.replace('\u0040Type\u0040', 'Enum') + if flags: + prod = prod.replace('\u0040TYPE\u0040', 'FLAGS') + else: + prod = prod.replace('\u0040TYPE\u0040', 'ENUM') + prod = replace_specials(prod) + write_output(prod) + + if len(vprod) > 0: + prod = vprod + next_num = 0 + + prod = replace_specials(prod) + for name, num, private, nick in entries: + tmp_prod = prod + + if '\u0040valuenum\u0040' in prod: + # only attempt to eval the value if it is requested + # this prevents us from throwing errors otherwise + if num is not None: + # use sandboxed evaluation as a reasonable + # approximation to C constant folding + inum = eval(num, {}, c_namespace) + + # make sure it parsed to an integer + if not isinstance(inum, int): + sys.exit("Unable to parse enum value '%s'" % num) + num = inum + else: + num = next_num + + c_namespace[name] = num + tmp_prod = tmp_prod.replace('\u0040valuenum\u0040', str(num)) + next_num = int(num) + 1 + + if private: + continue + + tmp_prod = tmp_prod.replace('\u0040VALUENAME\u0040', name) + tmp_prod = tmp_prod.replace('\u0040valuenick\u0040', nick) + if flags: + tmp_prod = tmp_prod.replace('\u0040type\u0040', 'flags') + else: + tmp_prod = tmp_prod.replace('\u0040type\u0040', 'enum') + if flags: + tmp_prod = tmp_prod.replace('\u0040Type\u0040', 'Flags') + else: + tmp_prod = tmp_prod.replace('\u0040Type\u0040', 'Enum') + if flags: + tmp_prod = tmp_prod.replace('\u0040TYPE\u0040', 'FLAGS') + else: + tmp_prod = tmp_prod.replace('\u0040TYPE\u0040', 'ENUM') + tmp_prod = tmp_prod.rstrip() + + write_output(tmp_prod) + + if len(vtail) > 0: + prod = vtail + prod = prod.replace('\u0040enum_name\u0040', enumsym) + prod = prod.replace('\u0040EnumName\u0040', enumname) + prod = prod.replace('\u0040ENUMSHORT\u0040', enumshort) + prod = prod.replace('\u0040ENUMNAME\u0040', enumlong) + prod = prod.replace('\u0040ENUMPREFIX\u0040', enumname_prefix) + prod = prod.replace('\u0040enumsince\u0040', enumsince) + if flags: + prod = prod.replace('\u0040type\u0040', 'flags') + else: + prod = prod.replace('\u0040type\u0040', 'enum') + if flags: + prod = prod.replace('\u0040Type\u0040', 'Flags') + else: + prod = prod.replace('\u0040Type\u0040', 'Enum') + if flags: + prod = prod.replace('\u0040TYPE\u0040', 'FLAGS') + else: + prod = prod.replace('\u0040TYPE\u0040', 'ENUM') + prod = replace_specials(prod) + write_output(prod) + +for fname in sorted(options.args): + process_file(fname) + +if len(ftail) > 0: + prod = ftail + warn_if_filename_basename_used('file-tail', prod) + prod = replace_specials(prod) + write_output(prod) + +# put auto-generation comment +comment = comment_tmpl +comment = comment.replace('\u0040comment\u0040', 'Generated data ends here') +write_output("\n" + comment + "\n") + +if tmpfile is not None: + tmpfilename = tmpfile.name + tmpfile.close() + + try: + os.unlink(options.output) + except OSError as error: + if error.errno != errno.ENOENT: + raise error + + os.rename(tmpfilename, options.output) diff --git a/code/application/source/sf_app/tools/blue/bin/gobject-query b/code/application/source/sf_app/tools/blue/bin/gobject-query new file mode 100755 index 000000000..d247f3a03 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/gobject-query differ diff --git a/code/application/source/sf_app/tools/blue/bin/gresource b/code/application/source/sf_app/tools/blue/bin/gresource new file mode 100755 index 000000000..fa1eaa1f5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/gresource differ diff --git a/code/application/source/sf_app/tools/blue/bin/gsettings b/code/application/source/sf_app/tools/blue/bin/gsettings new file mode 100755 index 000000000..dd3af76b1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/gsettings differ diff --git a/code/application/source/sf_app/tools/blue/bin/gtester b/code/application/source/sf_app/tools/blue/bin/gtester new file mode 100755 index 000000000..aa6f5755e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/gtester differ diff --git a/code/application/source/sf_app/tools/blue/bin/gtester-report b/code/application/source/sf_app/tools/blue/bin/gtester-report new file mode 100755 index 000000000..0fa1c35c2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/bin/gtester-report @@ -0,0 +1,498 @@ +#! /usr/bin/env python3 +# GLib Testing Framework Utility -*- Mode: python; -*- +# Copyright (C) 2007 Imendio AB +# Authors: Tim Janik +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, see . + +# Deprecated: Since GLib 2.62, gtester and gtester-report have been deprecated +# in favour of TAP. + +import datetime +import optparse +import sys, re, xml.dom.minidom + +try: + import subunit + from subunit import iso8601 + from testtools.content import Content, ContentType + mime_utf8 = ContentType('text', 'plain', {'charset': 'utf8'}) +except ImportError: + subunit = None + + +# xml utilities +def find_child (node, child_name): + for child in node.childNodes: + if child.nodeName == child_name: + return child + return None +def list_children (node, child_name): + rlist = [] + for child in node.childNodes: + if child.nodeName == child_name: + rlist += [ child ] + return rlist +def find_node (node, name = None): + if not node or node.nodeName == name or not name: + return node + for child in node.childNodes: + c = find_node (child, name) + if c: + return c + return None +def node_as_text (node, name = None): + if name: + node = find_node (node, name) + txt = '' + if node: + if node.nodeValue: + txt += node.nodeValue + for child in node.childNodes: + txt += node_as_text (child) + return txt +def attribute_as_text (node, aname, node_name = None): + node = find_node (node, node_name) + if not node: + return '' + attr = node.attributes.get (aname, '') + if hasattr (attr, 'value'): + return attr.value + return '' + +# HTML utilities +def html_indent_string (n): + uncollapsible_space = '  ' # HTML won't compress alternating sequences of ' ' and ' ' + string = '' + for i in range (0, int((n + 1) / 2)): + string += uncollapsible_space + return string + +# TestBinary object, instantiated per test binary in the log file +class TestBinary: + def __init__ (self, name): + self.name = name + self.testcases = [] + self.duration = 0 + self.success_cases = 0 + self.skipped_cases = 0 + self.file = '???' + self.random_seed = '' + +# base class to handle processing/traversion of XML nodes +class TreeProcess: + def __init__ (self): + self.nest_level = 0 + def trampoline (self, node): + name = node.nodeName + if name == '#text': + self.handle_text (node) + else: + try: method = getattr (self, 'handle_' + re.sub ('[^a-zA-Z0-9]', '_', name)) + except: method = None + if method: + return method (node) + else: + return self.process_recursive (name, node) + def process_recursive (self, node_name, node): + self.process_children (node) + def process_children (self, node): + self.nest_level += 1 + for child in node.childNodes: + self.trampoline (child) + self.nest_level += 1 + +# test report reader, this class collects some statistics and merges duplicate test binary runs +class ReportReader (TreeProcess): + def __init__ (self): + TreeProcess.__init__ (self) + self.binary_names = [] + self.binaries = {} + self.last_binary = None + self.info = {} + def binary_list (self): + lst = [] + for name in self.binary_names: + lst += [ self.binaries[name] ] + return lst + def get_info (self): + return self.info + def handle_info (self, node): + dn = find_child (node, 'package') + self.info['package'] = node_as_text (dn) + dn = find_child (node, 'version') + self.info['version'] = node_as_text (dn) + dn = find_child (node, 'revision') + if dn is not None: + self.info['revision'] = node_as_text (dn) + def handle_testcase (self, node): + self.last_binary.testcases += [ node ] + result = attribute_as_text (node, 'result', 'status') + if result == 'success': + self.last_binary.success_cases += 1 + if bool (int (attribute_as_text (node, 'skipped') + '0')): + self.last_binary.skipped_cases += 1 + def handle_text (self, node): + pass + def handle_testbinary (self, node): + path = node.attributes.get ('path', None).value + if self.binaries.get (path, -1) == -1: + self.binaries[path] = TestBinary (path) + self.binary_names += [ path ] + self.last_binary = self.binaries[path] + dn = find_child (node, 'duration') + dur = node_as_text (dn) + try: dur = float (dur) + except: dur = 0 + if dur: + self.last_binary.duration += dur + bin = find_child (node, 'binary') + if bin: + self.last_binary.file = attribute_as_text (bin, 'file') + rseed = find_child (node, 'random-seed') + if rseed: + self.last_binary.random_seed = node_as_text (rseed) + self.process_children (node) + + +class ReportWriter(object): + """Base class for reporting.""" + + def __init__(self, binary_list): + self.binaries = binary_list + + def _error_text(self, node): + """Get a string representing the error children of node.""" + rlist = list_children(node, 'error') + txt = '' + for enode in rlist: + txt += node_as_text (enode) + if txt and txt[-1] != '\n': + txt += '\n' + return txt + + +class HTMLReportWriter(ReportWriter): + # Javascript/CSS snippet to toggle element visibility + cssjs = r''' + + + ''' + def __init__ (self, info, binary_list): + ReportWriter.__init__(self, binary_list) + self.info = info + self.bcounter = 0 + self.tcounter = 0 + self.total_tcounter = 0 + self.total_fcounter = 0 + self.total_duration = 0 + self.indent_depth = 0 + self.lastchar = '' + def oprint (self, message): + sys.stdout.write (message) + if message: + self.lastchar = message[-1] + def handle_info (self): + if 'package' in self.info and 'version' in self.info: + self.oprint ('

Package: %(package)s, version: %(version)s

\n' % self.info) + if 'revision' in self.info: + self.oprint ('
Report generated from: %(revision)s
\n' % self.info) + def handle_text (self, node): + self.oprint (node.nodeValue) + def handle_testcase (self, node, binary): + skipped = bool (int (attribute_as_text (node, 'skipped') + '0')) + if skipped: + return # skipped tests are uninteresting for HTML reports + path = attribute_as_text (node, 'path') + duration = node_as_text (node, 'duration') + result = attribute_as_text (node, 'result', 'status') + rcolor = { + 'success': 'bgcolor="lightgreen"', + 'failed': 'bgcolor="red"', + }.get (result, '') + if result != 'success': + duration = '-' # ignore bogus durations + self.oprint ('\n' % (self.bcounter, self.tcounter, result)) + self.oprint ('%s %s %s \n' % (html_indent_string (4), path, duration)) + perflist = list_children (node, 'performance') + if result != 'success': + txt = self._error_text(node) + txt = re.sub (r'"', r'\\"', txt) + txt = re.sub (r'\n', r'\\n', txt) + txt = re.sub (r'&', r'&', txt) + txt = re.sub (r'<', r'<', txt) + self.oprint ('\n' % (self.bcounter, self.tcounter, txt)) + self.oprint ('Details\n' % + ('TestResultWindow', binary.file, binary.random_seed, path, self.bcounter, self.tcounter)) + elif perflist: + presults = [] + for perf in perflist: + pmin = bool (int (attribute_as_text (perf, 'minimize'))) + pmax = bool (int (attribute_as_text (perf, 'maximize'))) + pval = float (attribute_as_text (perf, 'value')) + txt = node_as_text (perf) + txt = re.sub (r'&', r'&', txt) + txt = re.sub (r'<', r'>', txt) + txt = 'Performance(' + (pmin and 'minimized' or 'maximized') + '): ' + txt.strip() + '
\n' + txt = re.sub (r'"', r'\\"', txt) + txt = re.sub (r'\n', r'\\n', txt) + presults += [ (pval, txt) ] + presults.sort() + ptxt = ''.join ([e[1] for e in presults]) + self.oprint ('\n' % (self.bcounter, self.tcounter, ptxt)) + self.oprint ('Details\n' % + ('TestResultWindow', binary.file, binary.random_seed, path, self.bcounter, self.tcounter)) + else: + self.oprint ('-\n') + self.oprint ('%s\n' % (rcolor, result)) + self.oprint ('\n') + self.tcounter += 1 + self.total_tcounter += 1 + self.total_fcounter += result != 'success' + def handle_binary (self, binary): + self.tcounter = 1 + self.bcounter += 1 + self.total_duration += binary.duration + self.oprint ('%s%f \n' % (binary.name, binary.duration)) + erlink, oklink = ('', '') + real_cases = len (binary.testcases) - binary.skipped_cases + if binary.success_cases < real_cases: + erlink = 'href="javascript:toggle_display (\'ResultTable\', \'tr\', \'b%u_\', \'failed\')"' % self.bcounter + if binary.success_cases: + oklink = 'href="javascript:toggle_display (\'ResultTable\', \'tr\', \'b%u_\', \'success\')"' % self.bcounter + if real_cases != 0: + self.oprint ('ER\n' % erlink) + self.oprint ('OK\n' % oklink) + self.oprint ('\n') + perc = binary.success_cases * 100.0 / real_cases + pcolor = { + 100 : 'bgcolor="lightgreen"', + 0 : 'bgcolor="red"', + }.get (int (perc), 'bgcolor="yellow"') + self.oprint ('%.2f%%\n' % (pcolor, perc)) + self.oprint ('\n') + else: + self.oprint ('Empty\n') + self.oprint ('\n') + self.oprint ('\n') + for tc in binary.testcases: + self.handle_testcase (tc, binary) + def handle_totals (self): + self.oprint ('') + self.oprint ('Totals: %u Binaries, %u Tests, %u Failed, %u Succeeded' % + (self.bcounter, self.total_tcounter, self.total_fcounter, self.total_tcounter - self.total_fcounter)) + self.oprint ('%f\n' % self.total_duration) + self.oprint ('-\n') + if self.total_tcounter != 0: + perc = (self.total_tcounter - self.total_fcounter) * 100.0 / self.total_tcounter + else: + perc = 0.0 + pcolor = { + 100 : 'bgcolor="lightgreen"', + 0 : 'bgcolor="red"', + }.get (int (perc), 'bgcolor="yellow"') + self.oprint ('%.2f%%\n' % (pcolor, perc)) + self.oprint ('\n') + def printout (self): + self.oprint ('\n') + self.oprint ('GTester Unit Test Report\n') + self.oprint (self.cssjs) + self.oprint ('\n') + self.oprint ('\n') + self.oprint ('

GTester Unit Test Report

\n') + self.handle_info () + self.oprint ('

' + 'Deprecated: Since GLib 2.62, gtester and gtester-report are ' + 'deprecated. Port to TAP.

\n'); + self.oprint ('\n\n') + self.oprint ('\n') + self.oprint ('\n') + self.oprint ('\n') + self.oprint ('\n') + self.oprint ('\n') + for tb in self.binaries: + self.handle_binary (tb) + self.handle_totals() + self.oprint ('
Program / Testcase Duration (sec)ViewResult
\n') + self.oprint ('\n') + self.oprint ('\n') + + +class SubunitWriter(ReportWriter): + """Reporter to output a subunit stream.""" + + def printout(self): + reporter = subunit.TestProtocolClient(sys.stdout) + for binary in self.binaries: + for tc in binary.testcases: + test = GTestCase(tc, binary) + test.run(reporter) + + +class GTestCase(object): + """A representation of a gtester test result as a pyunit TestCase.""" + + def __init__(self, case, binary): + """Create a GTestCase for case 'case' from binary program 'binary'.""" + self._case = case + self._binary = binary + # the name of the case - e.g. /dbusmenu/glib/objects/menuitem/props_boolstr + self._path = attribute_as_text(self._case, 'path') + + def id(self): + """What test is this? Returns the gtester path for the testcase.""" + return self._path + + def _get_details(self): + """Calculate a details dict for the test - attachments etc.""" + details = {} + result = attribute_as_text(self._case, 'result', 'status') + details['filename'] = Content(mime_utf8, lambda:[self._binary.file]) + details['random_seed'] = Content(mime_utf8, + lambda:[self._binary.random_seed]) + if self._get_outcome() == 'addFailure': + # Extract the error details. Skips have no details because its not + # skip like unittest does, instead the runner just bypasses N test. + txt = self._error_text(self._case) + details['error'] = Content(mime_utf8, lambda:[txt]) + if self._get_outcome() == 'addSuccess': + # Successful tests may have performance metrics. + perflist = list_children(self._case, 'performance') + if perflist: + presults = [] + for perf in perflist: + pmin = bool (int (attribute_as_text (perf, 'minimize'))) + pmax = bool (int (attribute_as_text (perf, 'maximize'))) + pval = float (attribute_as_text (perf, 'value')) + txt = node_as_text (perf) + txt = 'Performance(' + (pmin and 'minimized' or 'maximized' + ) + '): ' + txt.strip() + '\n' + presults += [(pval, txt)] + presults.sort() + perf_details = [e[1] for e in presults] + details['performance'] = Content(mime_utf8, lambda:perf_details) + return details + + def _get_outcome(self): + if int(attribute_as_text(self._case, 'skipped') + '0'): + return 'addSkip' + outcome = attribute_as_text(self._case, 'result', 'status') + if outcome == 'success': + return 'addSuccess' + else: + return 'addFailure' + + def run(self, result): + time = datetime.datetime.utcnow().replace(tzinfo=iso8601.Utc()) + result.time(time) + result.startTest(self) + try: + outcome = self._get_outcome() + details = self._get_details() + # Only provide a duration IFF outcome == 'addSuccess' - the main + # parser claims bogus results otherwise: in that case emit time as + # zero perhaps. + if outcome == 'addSuccess': + duration = float(node_as_text(self._case, 'duration')) + duration = duration * 1000000 + timedelta = datetime.timedelta(0, 0, duration) + time = time + timedelta + result.time(time) + getattr(result, outcome)(self, details=details) + finally: + result.stopTest(self) + + + +# main program handling +def parse_opts(): + """Parse program options. + + :return: An options object and the program arguments. + """ + parser = optparse.OptionParser() + parser.version = '2.77.3' + parser.usage = "%prog [OPTIONS] " + parser.description = "Generate HTML reports from the XML log files generated by gtester." + parser.epilog = "gtester-report (GLib utils) version %s."% (parser.version,) + parser.add_option("-v", "--version", action="store_true", dest="version", default=False, + help="Show program version.") + parser.add_option("-s", "--subunit", action="store_true", dest="subunit", default=False, + help="Output subunit [See https://launchpad.net/subunit/" + " Needs python-subunit]") + options, files = parser.parse_args() + if options.version: + print(parser.epilog) + return None, None + if len(files) != 1: + parser.error("Must supply a log file to parse.") + if options.subunit and subunit is None: + parser.error("python-subunit is not installed.") + return options, files + + +def main(): + options, files = parse_opts() + if options is None: + return 0 + + print("Deprecated: Since GLib 2.62, gtester and gtester-report are " + "deprecated. Port to TAP.", file=sys.stderr) + + xd = xml.dom.minidom.parse (files[0]) + rr = ReportReader() + rr.trampoline (xd) + if not options.subunit: + HTMLReportWriter(rr.get_info(), rr.binary_list()).printout() + else: + SubunitWriter(rr.get_info(), rr.binary_list()).printout() + + +if __name__ == '__main__': + main() diff --git a/code/application/source/sf_app/tools/blue/bin/hex2hcd b/code/application/source/sf_app/tools/blue/bin/hex2hcd new file mode 100755 index 000000000..2e06c5827 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/hex2hcd differ diff --git a/code/application/source/sf_app/tools/blue/bin/isotest b/code/application/source/sf_app/tools/blue/bin/isotest new file mode 100755 index 000000000..728916445 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/isotest differ diff --git a/code/application/source/sf_app/tools/blue/bin/l2ping b/code/application/source/sf_app/tools/blue/bin/l2ping new file mode 100755 index 000000000..feea487aa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/l2ping differ diff --git a/code/application/source/sf_app/tools/blue/bin/l2test b/code/application/source/sf_app/tools/blue/bin/l2test new file mode 100755 index 000000000..919e467c1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/l2test differ diff --git a/code/application/source/sf_app/tools/blue/bin/mpris-proxy b/code/application/source/sf_app/tools/blue/bin/mpris-proxy new file mode 100755 index 000000000..0413add80 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/mpris-proxy differ diff --git a/code/application/source/sf_app/tools/blue/bin/msgattrib b/code/application/source/sf_app/tools/blue/bin/msgattrib new file mode 100755 index 000000000..25424f094 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msgattrib differ diff --git a/code/application/source/sf_app/tools/blue/bin/msgcat b/code/application/source/sf_app/tools/blue/bin/msgcat new file mode 100755 index 000000000..23b2759a3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msgcat differ diff --git a/code/application/source/sf_app/tools/blue/bin/msgcmp b/code/application/source/sf_app/tools/blue/bin/msgcmp new file mode 100755 index 000000000..e06b2813e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msgcmp differ diff --git a/code/application/source/sf_app/tools/blue/bin/msgcomm b/code/application/source/sf_app/tools/blue/bin/msgcomm new file mode 100755 index 000000000..56e2ee041 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msgcomm differ diff --git a/code/application/source/sf_app/tools/blue/bin/msgconv b/code/application/source/sf_app/tools/blue/bin/msgconv new file mode 100755 index 000000000..2cb4f00bd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msgconv differ diff --git a/code/application/source/sf_app/tools/blue/bin/msgen b/code/application/source/sf_app/tools/blue/bin/msgen new file mode 100755 index 000000000..02e08efdf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msgen differ diff --git a/code/application/source/sf_app/tools/blue/bin/msgexec b/code/application/source/sf_app/tools/blue/bin/msgexec new file mode 100755 index 000000000..2c62ed181 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msgexec differ diff --git a/code/application/source/sf_app/tools/blue/bin/msgfilter b/code/application/source/sf_app/tools/blue/bin/msgfilter new file mode 100755 index 000000000..516ff3a67 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msgfilter differ diff --git a/code/application/source/sf_app/tools/blue/bin/msgfmt b/code/application/source/sf_app/tools/blue/bin/msgfmt new file mode 100755 index 000000000..49f438f4f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msgfmt differ diff --git a/code/application/source/sf_app/tools/blue/bin/msggrep b/code/application/source/sf_app/tools/blue/bin/msggrep new file mode 100755 index 000000000..8b6fe1d83 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msggrep differ diff --git a/code/application/source/sf_app/tools/blue/bin/msginit b/code/application/source/sf_app/tools/blue/bin/msginit new file mode 100755 index 000000000..909be8ab4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msginit differ diff --git a/code/application/source/sf_app/tools/blue/bin/msgmerge b/code/application/source/sf_app/tools/blue/bin/msgmerge new file mode 100755 index 000000000..3b29753e6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msgmerge differ diff --git a/code/application/source/sf_app/tools/blue/bin/msgunfmt b/code/application/source/sf_app/tools/blue/bin/msgunfmt new file mode 100755 index 000000000..5be69dfed Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msgunfmt differ diff --git a/code/application/source/sf_app/tools/blue/bin/msguniq b/code/application/source/sf_app/tools/blue/bin/msguniq new file mode 100755 index 000000000..3e16f77bc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/msguniq differ diff --git a/code/application/source/sf_app/tools/blue/bin/ncurses6-config b/code/application/source/sf_app/tools/blue/bin/ncurses6-config new file mode 100755 index 000000000..d52dfc6fd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/bin/ncurses6-config @@ -0,0 +1,328 @@ +#!/bin/sh +# $Id: ncurses-config.in,v 1.50 2021/08/07 21:36:14 tom Exp $ +############################################################################## +# Copyright 2018-2020,2021 Thomas E. Dickey # +# Copyright 2006-2015,2017 Free Software Foundation, Inc. # +# # +# Permission is hereby granted, free of charge, to any person obtaining a # +# copy of this software and associated documentation files (the "Software"), # +# to deal in the Software without restriction, including without limitation # +# the rights to use, copy, modify, merge, publish, distribute, distribute # +# with modifications, sublicense, and/or sell copies of the Software, and to # +# permit persons to whom the Software is furnished to do so, subject to the # +# following conditions: # +# # +# The above copyright notice and this permission notice shall be included in # +# all copies or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # +# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # +# DEALINGS IN THE SOFTWARE. # +# # +# Except as contained in this notice, the name(s) of the above copyright # +# holders shall not be used in advertising or otherwise to promote the sale, # +# use or other dealings in this Software without prior written # +# authorization. # +############################################################################## +# +# Author: Thomas E. Dickey, 2006-on + +LANG=C; export LANG +LANGUAGE=C; export LANGUAGE +LC_ALL=C; export LC_ALL +LC_CTYPE=C; export LC_CTYPE + +prefix="/home/payton/blue" +exec_prefix="${prefix}" + +bindir="${exec_prefix}/bin" +includedir="${prefix}/include" +libdir="${exec_prefix}/lib" +datarootdir="${prefix}/share" +datadir="${datarootdir}" +mandir="${datarootdir}/man" + +THIS="ncurses" +TINFO_LIB="ncurses" +RPATH_LIST="${libdir}" + +includesubdir="${prefix}/include/${THIS}" + +# Ensure that RPATH_LIST contains only absolute pathnames, if it is nonempty. +# We cannot filter it out within the build-process since the variable is used +# in some special cases of installation using a relative path. +if [ -n "$RPATH_LIST" ] +then + save_IFS="$IFS" + IFS=':' + filtered= + for item in $RPATH_LIST + do + case "$item" in + ./*|../*|*/..|*/../*) + ;; + *) + [ -n "$filtered" ] && filtered="${filtered}:" + filtered="${filtered}${item}" + ;; + esac + done + IFS="$save_IFS" + # if the result is empty, there is little we can do to fix it + RPATH_LIST="$filtered" +fi + +# with --disable-overwrite, we installed into a subdirectory, but transformed +# the headers to include like this: +# +if [ xyes = xno ]; then + case $includedir in + $prefix/include/ncurses) + includedir=`echo "$includedir" | sed -e 's,/[^/]*$,,'` + ;; + esac +fi + +LIBS="" +if [ "ncurses" = "ncurses" ]; then + LIBS="-l${THIS} $LIBS" +else + LIBS="-l${THIS} -l${TINFO_LIB} $LIBS" +fi + +# Ignore -L options which do not correspond to an actual directory, or which +# are standard library directories (i.e., the linker is supposed to search +# those directories). +# +# There is no portable way to find the list of standard library directories. +# Require a POSIX shell anyway, to keep this simple. +lib_flags= +for opt in -L$libdir $LIBS +do + case $opt in + -specs*) # ignore linker specs-files which were used to build library + continue + ;; + -Wl,-z,*) # ignore flags used to manipulate shared image + continue + ;; + -Wl,--dynamic-linker*) # ignore ELF interpreter + continue + ;; + -L*) + lib_check=`echo "x$opt" | sed -e 's/^.-L//'` + [ -d "$lib_check" ] || continue + case "$lib_check" in + /usr/lib|/lib) # skip standard libdir + if [ "$lib_check" = "$libdir" ] + then + lib_first=yes + IFS_save="$IFS" + IFS='|' + LIBDIRS="/usr/lib|/lib" + for lib_check in $LIBDIRS + do + if [ -d "$lib_check" ] + then + if [ "$lib_check" != "$libdir" ] + then + lib_first=no + fi + break + fi + done + IFS="$IFS_save" + [ $lib_first = yes ] && continue + found=no + for check in $lib_flags + do + if [ "x$check" = "x$opt" ] + then + found=yes + break + fi + done + [ $found = yes ] && continue + : + else + continue + fi + ;; + *) + found=no + for check in $lib_flags + do + if [ "x$check" = "x$opt" ] + then + found=yes + break + fi + done + [ $found = yes ] && continue + ;; + esac + ;; + esac + lib_flags="$lib_flags $opt" +done + +[ $# = 0 ] && exec /bin/sh $0 --error + +while [ $# -gt 0 ]; do + case "$1" in + # basic configuration + --prefix) + echo "$prefix" + ;; + --exec-prefix) + echo "$exec_prefix" + ;; + # compile/link + --cflags) + INCS=" -D_GNU_SOURCE" + if [ "xyes" = xno ]; then + INCS="$INCS -I${includesubdir}" + fi + if [ "${includedir}" != /usr/include ]; then + INCS="$INCS -I${includedir}" + fi + sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO + $INCS +ENDECHO + ;; + --libs) + OPTS= + for opt in $lib_flags + do + [ -n "$OPTS" ] && OPTS="$OPTS " + OPTS="${OPTS}${opt}" + done + printf "%s\n" "$OPTS" + ;; + --libs-only-L) + OPTS= + for opt in $lib_flags + do + case "x$opt" in + x-L*) + [ -n "$OPTS" ] && OPTS="$OPTS " + OPTS="${OPTS}${opt}" + ;; + esac + done + printf "%s\n" "$OPTS" + ;; + --libs-only-l) + OPTS= + for opt in $lib_flags + do + case "x$opt" in + x-l*) + [ -n "$OPTS" ] && OPTS="$OPTS " + OPTS="${OPTS}${opt}" + ;; + esac + done + printf "%s\n" "$OPTS" + ;; + --libs-only-other) + OPTS= + for opt in $lib_flags + do + case "x$opt" in + x-[lL]*) + ;; + *) + [ -n "$OPTS" ] && OPTS="$OPTS " + OPTS="${OPTS}${opt}" + ;; + esac + done + printf "%s\n" "$OPTS" + ;; + # identification + --version) + echo "6.3.20211021" + ;; + --abi-version) + echo "6" + ;; + --mouse-version) + echo "2" + ;; + # locations + --bindir) + echo "${bindir}" + ;; + --datadir) + echo "${datadir}" + ;; + --includedir) + INCS= + if [ "xyes" = xno ]; then + INCS="${includesubdir}" + elif [ "${includedir}" != /usr/include ]; then + INCS="${includedir}" + fi + echo $INCS + ;; + --libdir) + echo "${libdir}" + ;; + --mandir) + echo "${mandir}" + ;; + --terminfo) + echo "/home/payton/blue/share/terminfo" + ;; + --terminfo-dirs) + echo "/home/payton/blue/share/terminfo" + ;; + --termpath) + echo "" + ;; + # general info + --help) + cat <&2 + exit 1 + ;; + esac + shift +done +# vi:ts=4 sw=4 +# vile:shmode diff --git a/code/application/source/sf_app/tools/blue/bin/ngettext b/code/application/source/sf_app/tools/blue/bin/ngettext new file mode 100755 index 000000000..e5131c102 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/ngettext differ diff --git a/code/application/source/sf_app/tools/blue/bin/pcre2grep b/code/application/source/sf_app/tools/blue/bin/pcre2grep new file mode 100755 index 000000000..5db84d956 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/pcre2grep differ diff --git a/code/application/source/sf_app/tools/blue/bin/rctest b/code/application/source/sf_app/tools/blue/bin/rctest new file mode 100755 index 000000000..029e66372 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/rctest differ diff --git a/code/application/source/sf_app/tools/blue/bin/recode-sr-latin b/code/application/source/sf_app/tools/blue/bin/recode-sr-latin new file mode 100755 index 000000000..552777fd9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/recode-sr-latin differ diff --git a/code/application/source/sf_app/tools/blue/bin/xgettext b/code/application/source/sf_app/tools/blue/bin/xgettext new file mode 100755 index 000000000..99fc33188 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/xgettext differ diff --git a/code/application/source/sf_app/tools/blue/bin/xmlwf b/code/application/source/sf_app/tools/blue/bin/xmlwf new file mode 100755 index 000000000..a5cb8a1f5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/bin/xmlwf differ diff --git a/code/application/source/sf_app/tools/blue/dbus-1/system.d/bluetooth.conf b/code/application/source/sf_app/tools/blue/dbus-1/system.d/bluetooth.conf new file mode 100644 index 000000000..b6c614908 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/dbus-1/system.d/bluetooth.conf @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/application/source/sf_app/tools/blue/etc/dbus-1/session.conf b/code/application/source/sf_app/tools/blue/etc/dbus-1/session.conf new file mode 100644 index 000000000..22722acdc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/etc/dbus-1/session.conf @@ -0,0 +1,19 @@ + + + diff --git a/code/application/source/sf_app/tools/blue/etc/dbus-1/system.conf b/code/application/source/sf_app/tools/blue/etc/dbus-1/system.conf new file mode 100644 index 000000000..9db9e1a39 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/etc/dbus-1/system.conf @@ -0,0 +1,19 @@ + + + diff --git a/code/application/source/sf_app/tools/blue/include/autosprintf.h b/code/application/source/sf_app/tools/blue/include/autosprintf.h new file mode 100644 index 000000000..de048dfa9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/autosprintf.h @@ -0,0 +1,68 @@ +/* Class autosprintf - formatted output to an ostream. + Copyright (C) 2002, 2012-2016 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#ifndef _AUTOSPRINTF_H +#define _AUTOSPRINTF_H + +/* This feature is available in gcc versions 2.5 and later. */ +#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ +# define _AUTOSPRINTF_ATTRIBUTE_FORMAT() /* empty */ +#else +/* The __-protected variants of 'format' and 'printf' attributes + are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) +# define _AUTOSPRINTF_ATTRIBUTE_FORMAT() \ + __attribute__ ((__format__ (__printf__, 2, 3))) +# else +# define _AUTOSPRINTF_ATTRIBUTE_FORMAT() \ + __attribute__ ((format (printf, 2, 3))) +# endif +#endif + +#include +#include + +namespace gnu +{ + /* A temporary object, usually allocated on the stack, representing + the result of an asprintf() call. */ + class autosprintf + { + public: + /* Constructor: takes a format string and the printf arguments. */ + autosprintf (const char *format, ...) + _AUTOSPRINTF_ATTRIBUTE_FORMAT(); + /* Copy constructor. */ + autosprintf (const autosprintf& src); + /* Assignment operator. */ + autosprintf& operator = (autosprintf temporary); + /* Destructor: frees the temporarily allocated string. */ + ~autosprintf (); + /* Conversion to string. */ + operator char * () const; + operator std::string () const; + /* Output to an ostream. */ + friend inline std::ostream& operator<< (std::ostream& stream, const autosprintf& tmp) + { + stream << (tmp.str ? tmp.str : "(error in autosprintf)"); + return stream; + } + private: + char *str; + }; +} + +#endif /* _AUTOSPRINTF_H */ diff --git a/code/application/source/sf_app/tools/blue/include/bluetooth/bluetooth.h b/code/application/source/sf_app/tools/blue/include/bluetooth/bluetooth.h new file mode 100644 index 000000000..af5fbcfbc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/bluetooth/bluetooth.h @@ -0,0 +1,481 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2000-2001 Qualcomm Incorporated + * Copyright (C) 2002-2003 Maxim Krasnyansky + * Copyright (C) 2002-2010 Marcel Holtmann + * + * + */ + +#ifndef __BLUETOOTH_H +#define __BLUETOOTH_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include +#include +#include + +#ifndef AF_BLUETOOTH +#define AF_BLUETOOTH 31 +#define PF_BLUETOOTH AF_BLUETOOTH +#endif + +#define BTPROTO_L2CAP 0 +#define BTPROTO_HCI 1 +#define BTPROTO_SCO 2 +#define BTPROTO_RFCOMM 3 +#define BTPROTO_BNEP 4 +#define BTPROTO_CMTP 5 +#define BTPROTO_HIDP 6 +#define BTPROTO_AVDTP 7 +#define BTPROTO_ISO 8 + +#define SOL_HCI 0 +#define SOL_L2CAP 6 +#define SOL_SCO 17 +#define SOL_RFCOMM 18 + +#ifndef SOL_BLUETOOTH +#define SOL_BLUETOOTH 274 +#endif + +#define BT_SECURITY 4 +struct bt_security { + uint8_t level; + uint8_t key_size; +}; +#define BT_SECURITY_SDP 0 +#define BT_SECURITY_LOW 1 +#define BT_SECURITY_MEDIUM 2 +#define BT_SECURITY_HIGH 3 +#define BT_SECURITY_FIPS 4 + +#define BT_DEFER_SETUP 7 + +#define BT_FLUSHABLE 8 + +#define BT_FLUSHABLE_OFF 0 +#define BT_FLUSHABLE_ON 1 + +#define BT_POWER 9 +struct bt_power { + uint8_t force_active; +}; +#define BT_POWER_FORCE_ACTIVE_OFF 0 +#define BT_POWER_FORCE_ACTIVE_ON 1 + +#define BT_CHANNEL_POLICY 10 + +/* BR/EDR only (default policy) + * AMP controllers cannot be used. + * Channel move requests from the remote device are denied. + * If the L2CAP channel is currently using AMP, move the channel to BR/EDR. + */ +#define BT_CHANNEL_POLICY_BREDR_ONLY 0 + +/* BR/EDR Preferred + * Allow use of AMP controllers. + * If the L2CAP channel is currently on AMP, move it to BR/EDR. + * Channel move requests from the remote device are allowed. + */ +#define BT_CHANNEL_POLICY_BREDR_PREFERRED 1 + +/* AMP Preferred + * Allow use of AMP controllers + * If the L2CAP channel is currently on BR/EDR and AMP controller + * resources are available, initiate a channel move to AMP. + * Channel move requests from the remote device are allowed. + * If the L2CAP socket has not been connected yet, try to create + * and configure the channel directly on an AMP controller rather + * than BR/EDR. + */ +#define BT_CHANNEL_POLICY_AMP_PREFERRED 2 + +#define BT_VOICE 11 +struct bt_voice { + uint16_t setting; +}; + +#define BT_SNDMTU 12 +#define BT_RCVMTU 13 + +#define BT_VOICE_TRANSPARENT 0x0003 +#define BT_VOICE_CVSD_16BIT 0x0060 + +#define BT_PHY 14 + +#define BT_PHY_BR_1M_1SLOT 0x00000001 +#define BT_PHY_BR_1M_3SLOT 0x00000002 +#define BT_PHY_BR_1M_5SLOT 0x00000004 +#define BT_PHY_EDR_2M_1SLOT 0x00000008 +#define BT_PHY_EDR_2M_3SLOT 0x00000010 +#define BT_PHY_EDR_2M_5SLOT 0x00000020 +#define BT_PHY_EDR_3M_1SLOT 0x00000040 +#define BT_PHY_EDR_3M_3SLOT 0x00000080 +#define BT_PHY_EDR_3M_5SLOT 0x00000100 +#define BT_PHY_LE_1M_TX 0x00000200 +#define BT_PHY_LE_1M_RX 0x00000400 +#define BT_PHY_LE_2M_TX 0x00000800 +#define BT_PHY_LE_2M_RX 0x00001000 +#define BT_PHY_LE_CODED_TX 0x00002000 +#define BT_PHY_LE_CODED_RX 0x00004000 + +#define BT_MODE 15 + +#define BT_MODE_BASIC 0x00 +#define BT_MODE_ERTM 0x01 +#define BT_MODE_STREAMING 0x02 +#define BT_MODE_LE_FLOWCTL 0x03 +#define BT_MODE_EXT_FLOWCTL 0x04 + +#define BT_PKT_STATUS 16 + +#define BT_SCM_PKT_STATUS 0x03 + +#define BT_ISO_QOS 17 + +#define BT_ISO_QOS_CIG_UNSET 0xff +#define BT_ISO_QOS_CIS_UNSET 0xff + +struct bt_iso_io_qos { + uint32_t interval; + uint16_t latency; + uint16_t sdu; + uint8_t phy; + uint8_t rtn; +}; + +struct bt_iso_qos { + union { + uint8_t cig; + uint8_t big; + }; + union { + uint8_t cis; + uint8_t bis; + }; + union { + uint8_t sca; + uint8_t sync_interval; + }; + uint8_t packing; + uint8_t framing; + struct bt_iso_io_qos in; + struct bt_iso_io_qos out; +}; + +#define BT_CODEC 19 +struct bt_codec { + uint8_t id; + uint16_t cid; + uint16_t vid; + uint8_t data_path_id; + uint8_t num_caps; + struct codec_caps { + uint8_t len; + uint8_t data[]; + } caps[]; +} __attribute__((packed)); + +struct bt_codecs { + uint8_t num_codecs; + struct bt_codec codecs[]; +} __attribute__((packed)); + + +/* Connection and socket states */ +enum { + BT_CONNECTED = 1, /* Equal to TCP_ESTABLISHED to make net code happy */ + BT_OPEN, + BT_BOUND, + BT_LISTEN, + BT_CONNECT, + BT_CONNECT2, + BT_CONFIG, + BT_DISCONN, + BT_CLOSED +}; + +#define BT_ISO_BASE 20 + +/* Byte order conversions */ +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define htobs(d) (d) +#define htobl(d) (d) +#define htobll(d) (d) +#define btohs(d) (d) +#define btohl(d) (d) +#define btohll(d) (d) +#elif __BYTE_ORDER == __BIG_ENDIAN +#define htobs(d) bswap_16(d) +#define htobl(d) bswap_32(d) +#define htobll(d) bswap_64(d) +#define btohs(d) bswap_16(d) +#define btohl(d) bswap_32(d) +#define btohll(d) bswap_64(d) +#else +#error "Unknown byte order" +#endif + +/* Bluetooth unaligned access */ +#define bt_get_unaligned(ptr) \ +__extension__ ({ \ + struct __attribute__((packed)) { \ + __typeof__(*(ptr)) __v; \ + } *__p = (__typeof__(__p)) (ptr); \ + __p->__v; \ +}) + +#define bt_put_unaligned(val, ptr) \ +do { \ + struct __attribute__((packed)) { \ + __typeof__(*(ptr)) __v; \ + } *__p = (__typeof__(__p)) (ptr); \ + __p->__v = (val); \ +} while(0) + +#if __BYTE_ORDER == __LITTLE_ENDIAN +static inline uint64_t bt_get_le64(const void *ptr) +{ + return bt_get_unaligned((const uint64_t *) ptr); +} + +static inline uint64_t bt_get_be64(const void *ptr) +{ + return bswap_64(bt_get_unaligned((const uint64_t *) ptr)); +} + +static inline uint32_t bt_get_le32(const void *ptr) +{ + return bt_get_unaligned((const uint32_t *) ptr); +} + +static inline uint32_t bt_get_be32(const void *ptr) +{ + return bswap_32(bt_get_unaligned((const uint32_t *) ptr)); +} + +static inline uint16_t bt_get_le16(const void *ptr) +{ + return bt_get_unaligned((const uint16_t *) ptr); +} + +static inline uint16_t bt_get_be16(const void *ptr) +{ + return bswap_16(bt_get_unaligned((const uint16_t *) ptr)); +} + +static inline void bt_put_le64(uint64_t val, const void *ptr) +{ + bt_put_unaligned(val, (uint64_t *) ptr); +} + +static inline void bt_put_be64(uint64_t val, const void *ptr) +{ + bt_put_unaligned(bswap_64(val), (uint64_t *) ptr); +} + +static inline void bt_put_le32(uint32_t val, const void *ptr) +{ + bt_put_unaligned(val, (uint32_t *) ptr); +} + +static inline void bt_put_be32(uint32_t val, const void *ptr) +{ + bt_put_unaligned(bswap_32(val), (uint32_t *) ptr); +} + +static inline void bt_put_le16(uint16_t val, const void *ptr) +{ + bt_put_unaligned(val, (uint16_t *) ptr); +} + +static inline void bt_put_be16(uint16_t val, const void *ptr) +{ + bt_put_unaligned(bswap_16(val), (uint16_t *) ptr); +} + +#elif __BYTE_ORDER == __BIG_ENDIAN +static inline uint64_t bt_get_le64(const void *ptr) +{ + return bswap_64(bt_get_unaligned((const uint64_t *) ptr)); +} + +static inline uint64_t bt_get_be64(const void *ptr) +{ + return bt_get_unaligned((const uint64_t *) ptr); +} + +static inline uint32_t bt_get_le32(const void *ptr) +{ + return bswap_32(bt_get_unaligned((const uint32_t *) ptr)); +} + +static inline uint32_t bt_get_be32(const void *ptr) +{ + return bt_get_unaligned((const uint32_t *) ptr); +} + +static inline uint16_t bt_get_le16(const void *ptr) +{ + return bswap_16(bt_get_unaligned((const uint16_t *) ptr)); +} + +static inline uint16_t bt_get_be16(const void *ptr) +{ + return bt_get_unaligned((const uint16_t *) ptr); +} + +static inline void bt_put_le64(uint64_t val, const void *ptr) +{ + bt_put_unaligned(bswap_64(val), (uint64_t *) ptr); +} + +static inline void bt_put_be64(uint64_t val, const void *ptr) +{ + bt_put_unaligned(val, (uint64_t *) ptr); +} + +static inline void bt_put_le32(uint32_t val, const void *ptr) +{ + bt_put_unaligned(bswap_32(val), (uint32_t *) ptr); +} + +static inline void bt_put_be32(uint32_t val, const void *ptr) +{ + bt_put_unaligned(val, (uint32_t *) ptr); +} + +static inline void bt_put_le16(uint16_t val, const void *ptr) +{ + bt_put_unaligned(bswap_16(val), (uint16_t *) ptr); +} + +static inline void bt_put_be16(uint16_t val, const void *ptr) +{ + bt_put_unaligned(val, (uint16_t *) ptr); +} +#else +#error "Unknown byte order" +#endif + +/* BD Address */ +typedef struct { + uint8_t b[6]; +} __attribute__((packed)) bdaddr_t; + +/* BD Address type */ +#define BDADDR_BREDR 0x00 +#define BDADDR_LE_PUBLIC 0x01 +#define BDADDR_LE_RANDOM 0x02 + +#define BDADDR_ANY (&(bdaddr_t) {{0, 0, 0, 0, 0, 0}}) +#define BDADDR_ALL (&(bdaddr_t) {{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}}) +#define BDADDR_LOCAL (&(bdaddr_t) {{0, 0, 0, 0xff, 0xff, 0xff}}) + +/* Copy, swap, convert BD Address */ +static inline int bacmp(const bdaddr_t *ba1, const bdaddr_t *ba2) +{ + return memcmp(ba1, ba2, sizeof(bdaddr_t)); +} +static inline void bacpy(bdaddr_t *dst, const bdaddr_t *src) +{ + memcpy(dst, src, sizeof(bdaddr_t)); +} + +void baswap(bdaddr_t *dst, const bdaddr_t *src); +bdaddr_t *strtoba(const char *str); +char *batostr(const bdaddr_t *ba); +int ba2str(const bdaddr_t *ba, char *str); +int ba2strlc(const bdaddr_t *ba, char *str); +int str2ba(const char *str, bdaddr_t *ba); +int ba2oui(const bdaddr_t *ba, char *oui); +int bachk(const char *str); + +int baprintf(const char *format, ...); +int bafprintf(FILE *stream, const char *format, ...); +int basprintf(char *str, const char *format, ...); +int basnprintf(char *str, size_t size, const char *format, ...); + +void *bt_malloc(size_t size); +void *bt_malloc0(size_t size); +void bt_free(void *ptr); + +int bt_error(uint16_t code); +const char *bt_compidtostr(int id); + +typedef struct { + uint8_t data[3]; +} uint24_t; + +typedef struct { + uint8_t data[16]; +} uint128_t; + +static inline void bswap_128(const void *src, void *dst) +{ + const uint8_t *s = (const uint8_t *) src; + uint8_t *d = (uint8_t *) dst; + int i; + + for (i = 0; i < 16; i++) + d[15 - i] = s[i]; +} + +#if __BYTE_ORDER == __BIG_ENDIAN + +#define ntoh64(x) (x) + +static inline void ntoh128(const uint128_t *src, uint128_t *dst) +{ + memcpy(dst, src, sizeof(uint128_t)); +} + +static inline void btoh128(const uint128_t *src, uint128_t *dst) +{ + bswap_128(src, dst); +} + +#else + +static inline uint64_t ntoh64(uint64_t n) +{ + uint64_t h; + uint64_t tmp = ntohl(n & 0x00000000ffffffff); + + h = ntohl(n >> 32); + h |= tmp << 32; + + return h; +} + +static inline void ntoh128(const uint128_t *src, uint128_t *dst) +{ + bswap_128(src, dst); +} + +static inline void btoh128(const uint128_t *src, uint128_t *dst) +{ + memcpy(dst, src, sizeof(uint128_t)); +} + +#endif + +#define hton64(x) ntoh64(x) +#define hton128(x, y) ntoh128(x, y) +#define htob128(x, y) btoh128(x, y) + +#ifdef __cplusplus +} +#endif + +#endif /* __BLUETOOTH_H */ diff --git a/code/application/source/sf_app/tools/blue/include/bluetooth/bnep.h b/code/application/source/sf_app/tools/blue/include/bluetooth/bnep.h new file mode 100644 index 000000000..a0d39058c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/bluetooth/bnep.h @@ -0,0 +1,149 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2002-2003 Maxim Krasnyansky + * Copyright (C) 2002-2010 Marcel Holtmann + * + * + */ + +#ifndef __BNEP_H +#define __BNEP_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#ifndef ETH_ALEN +#define ETH_ALEN 6 /* from */ +#endif + +/* BNEP UUIDs */ +#define BNEP_BASE_UUID 0x0000000000001000800000805F9B34FB +#define BNEP_UUID16 0x02 +#define BNEP_UUID32 0x04 +#define BNEP_UUID128 0x16 + +#define BNEP_SVC_PANU 0x1115 +#define BNEP_SVC_NAP 0x1116 +#define BNEP_SVC_GN 0x1117 + +/* BNEP packet types */ +#define BNEP_GENERAL 0x00 +#define BNEP_CONTROL 0x01 +#define BNEP_COMPRESSED 0x02 +#define BNEP_COMPRESSED_SRC_ONLY 0x03 +#define BNEP_COMPRESSED_DST_ONLY 0x04 + +/* BNEP control types */ +#define BNEP_CMD_NOT_UNDERSTOOD 0x00 +#define BNEP_SETUP_CONN_REQ 0x01 +#define BNEP_SETUP_CONN_RSP 0x02 +#define BNEP_FILTER_NET_TYPE_SET 0x03 +#define BNEP_FILTER_NET_TYPE_RSP 0x04 +#define BNEP_FILTER_MULT_ADDR_SET 0x05 +#define BNEP_FILTER_MULT_ADDR_RSP 0x06 + +/* BNEP response messages */ +#define BNEP_SUCCESS 0x00 + +#define BNEP_CONN_INVALID_DST 0x01 +#define BNEP_CONN_INVALID_SRC 0x02 +#define BNEP_CONN_INVALID_SVC 0x03 +#define BNEP_CONN_NOT_ALLOWED 0x04 + +#define BNEP_FILTER_UNSUPPORTED_REQ 0x01 +#define BNEP_FILTER_INVALID_RANGE 0x02 +#define BNEP_FILTER_INVALID_MCADDR 0x02 +#define BNEP_FILTER_LIMIT_REACHED 0x03 +#define BNEP_FILTER_DENIED_SECURITY 0x04 + +/* L2CAP settings */ +#define BNEP_MTU 1691 +#define BNEP_FLUSH_TO 0xffff +#define BNEP_CONNECT_TO 15 +#define BNEP_FILTER_TO 15 + +#ifndef BNEP_PSM +#define BNEP_PSM 0x0f +#endif + +/* BNEP headers */ +#define BNEP_TYPE_MASK 0x7f +#define BNEP_EXT_HEADER 0x80 + +struct bnep_setup_conn_req { + uint8_t type; + uint8_t ctrl; + uint8_t uuid_size; + uint8_t service[0]; +} __attribute__((packed)); + +struct bnep_set_filter_req { + uint8_t type; + uint8_t ctrl; + uint16_t len; + uint8_t list[0]; +} __attribute__((packed)); + +struct bnep_ctrl_cmd_not_understood_cmd { + uint8_t type; + uint8_t ctrl; + uint8_t unkn_ctrl; +} __attribute__((packed)); + +struct bnep_control_rsp { + uint8_t type; + uint8_t ctrl; + uint16_t resp; +} __attribute__((packed)); + +struct bnep_ext_hdr { + uint8_t type; + uint8_t len; + uint8_t data[0]; +} __attribute__((packed)); + +/* BNEP ioctl defines */ +#define BNEPCONNADD _IOW('B', 200, int) +#define BNEPCONNDEL _IOW('B', 201, int) +#define BNEPGETCONNLIST _IOR('B', 210, int) +#define BNEPGETCONNINFO _IOR('B', 211, int) +#define BNEPGETSUPPFEAT _IOR('B', 212, int) + +#define BNEP_SETUP_RESPONSE 0 + +struct bnep_connadd_req { + int sock; /* Connected socket */ + uint32_t flags; + uint16_t role; + char device[16]; /* Name of the Ethernet device */ +}; + +struct bnep_conndel_req { + uint32_t flags; + uint8_t dst[ETH_ALEN]; +}; + +struct bnep_conninfo { + uint32_t flags; + uint16_t role; + uint16_t state; + uint8_t dst[ETH_ALEN]; + char device[16]; +}; + +struct bnep_connlist_req { + uint32_t cnum; + struct bnep_conninfo *ci; +}; + +#ifdef __cplusplus +} +#endif + +#endif /* __BNEP_H */ diff --git a/code/application/source/sf_app/tools/blue/include/bluetooth/cmtp.h b/code/application/source/sf_app/tools/blue/include/bluetooth/cmtp.h new file mode 100644 index 000000000..7ba8bfc3b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/bluetooth/cmtp.h @@ -0,0 +1,56 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2002-2010 Marcel Holtmann + * + * + */ + +#ifndef __CMTP_H +#define __CMTP_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* CMTP defaults */ +#define CMTP_MINIMUM_MTU 152 +#define CMTP_DEFAULT_MTU 672 + +/* CMTP ioctl defines */ +#define CMTPCONNADD _IOW('C', 200, int) +#define CMTPCONNDEL _IOW('C', 201, int) +#define CMTPGETCONNLIST _IOR('C', 210, int) +#define CMTPGETCONNINFO _IOR('C', 211, int) + +#define CMTP_LOOPBACK 0 + +struct cmtp_connadd_req { + int sock; /* Connected socket */ + uint32_t flags; +}; + +struct cmtp_conndel_req { + bdaddr_t bdaddr; + uint32_t flags; +}; + +struct cmtp_conninfo { + bdaddr_t bdaddr; + uint32_t flags; + uint16_t state; + int num; +}; + +struct cmtp_connlist_req { + uint32_t cnum; + struct cmtp_conninfo *ci; +}; + +#ifdef __cplusplus +} +#endif + +#endif /* __CMTP_H */ diff --git a/code/application/source/sf_app/tools/blue/include/bluetooth/hci.h b/code/application/source/sf_app/tools/blue/include/bluetooth/hci.h new file mode 100644 index 000000000..50f385c1e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/bluetooth/hci.h @@ -0,0 +1,2444 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2000-2001 Qualcomm Incorporated + * Copyright (C) 2002-2003 Maxim Krasnyansky + * Copyright (C) 2002-2010 Marcel Holtmann + * + * + */ + +#ifndef __HCI_H +#define __HCI_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#define HCI_MAX_DEV 16 + +#define HCI_MAX_AMP_SIZE (1492 + 4) +#define HCI_MAX_ACL_SIZE 1024 +#define HCI_MAX_SCO_SIZE 255 +#define HCI_MAX_EVENT_SIZE 260 +#define HCI_MAX_FRAME_SIZE (HCI_MAX_AMP_SIZE + 4) + +/* HCI dev events */ +#define HCI_DEV_REG 1 +#define HCI_DEV_UNREG 2 +#define HCI_DEV_UP 3 +#define HCI_DEV_DOWN 4 +#define HCI_DEV_SUSPEND 5 +#define HCI_DEV_RESUME 6 + +/* HCI bus types */ +#define HCI_VIRTUAL 0 +#define HCI_USB 1 +#define HCI_PCCARD 2 +#define HCI_UART 3 +#define HCI_RS232 4 +#define HCI_PCI 5 +#define HCI_SDIO 6 +#define HCI_SPI 7 +#define HCI_I2C 8 +#define HCI_SMD 9 +#define HCI_VIRTIO 10 + +/* HCI controller types */ +#define HCI_PRIMARY 0x00 +#define HCI_AMP 0x01 +#define HCI_BREDR HCI_PRIMARY + +/* HCI device flags */ +enum { + HCI_UP, + HCI_INIT, + HCI_RUNNING, + + HCI_PSCAN, + HCI_ISCAN, + HCI_AUTH, + HCI_ENCRYPT, + HCI_INQUIRY, + + HCI_RAW, +}; + +/* LE address type */ +enum { + LE_PUBLIC_ADDRESS = 0x00, + LE_RANDOM_ADDRESS = 0x01 +}; + +/* HCI ioctl defines */ +#define HCIDEVUP _IOW('H', 201, int) +#define HCIDEVDOWN _IOW('H', 202, int) +#define HCIDEVRESET _IOW('H', 203, int) +#define HCIDEVRESTAT _IOW('H', 204, int) + +#define HCIGETDEVLIST _IOR('H', 210, int) +#define HCIGETDEVINFO _IOR('H', 211, int) +#define HCIGETCONNLIST _IOR('H', 212, int) +#define HCIGETCONNINFO _IOR('H', 213, int) +#define HCIGETAUTHINFO _IOR('H', 215, int) + +#define HCISETRAW _IOW('H', 220, int) +#define HCISETSCAN _IOW('H', 221, int) +#define HCISETAUTH _IOW('H', 222, int) +#define HCISETENCRYPT _IOW('H', 223, int) +#define HCISETPTYPE _IOW('H', 224, int) +#define HCISETLINKPOL _IOW('H', 225, int) +#define HCISETLINKMODE _IOW('H', 226, int) +#define HCISETACLMTU _IOW('H', 227, int) +#define HCISETSCOMTU _IOW('H', 228, int) + +#define HCIBLOCKADDR _IOW('H', 230, int) +#define HCIUNBLOCKADDR _IOW('H', 231, int) + +#define HCIINQUIRY _IOR('H', 240, int) + +#ifndef __NO_HCI_DEFS + +/* HCI Packet types */ +#define HCI_COMMAND_PKT 0x01 +#define HCI_ACLDATA_PKT 0x02 +#define HCI_SCODATA_PKT 0x03 +#define HCI_EVENT_PKT 0x04 +#define HCI_ISODATA_PKT 0x05 +#define HCI_VENDOR_PKT 0xff + +/* HCI Packet types */ +#define HCI_2DH1 0x0002 +#define HCI_3DH1 0x0004 +#define HCI_DM1 0x0008 +#define HCI_DH1 0x0010 +#define HCI_2DH3 0x0100 +#define HCI_3DH3 0x0200 +#define HCI_DM3 0x0400 +#define HCI_DH3 0x0800 +#define HCI_2DH5 0x1000 +#define HCI_3DH5 0x2000 +#define HCI_DM5 0x4000 +#define HCI_DH5 0x8000 + +#define HCI_HV1 0x0020 +#define HCI_HV2 0x0040 +#define HCI_HV3 0x0080 + +#define HCI_EV3 0x0008 +#define HCI_EV4 0x0010 +#define HCI_EV5 0x0020 +#define HCI_2EV3 0x0040 +#define HCI_3EV3 0x0080 +#define HCI_2EV5 0x0100 +#define HCI_3EV5 0x0200 + +#define SCO_PTYPE_MASK (HCI_HV1 | HCI_HV2 | HCI_HV3) +#define ACL_PTYPE_MASK (HCI_DM1 | HCI_DH1 | HCI_DM3 | HCI_DH3 | HCI_DM5 | HCI_DH5) + +/* HCI Error codes */ +#define HCI_UNKNOWN_COMMAND 0x01 +#define HCI_NO_CONNECTION 0x02 +#define HCI_HARDWARE_FAILURE 0x03 +#define HCI_PAGE_TIMEOUT 0x04 +#define HCI_AUTHENTICATION_FAILURE 0x05 +#define HCI_PIN_OR_KEY_MISSING 0x06 +#define HCI_MEMORY_FULL 0x07 +#define HCI_CONNECTION_TIMEOUT 0x08 +#define HCI_MAX_NUMBER_OF_CONNECTIONS 0x09 +#define HCI_MAX_NUMBER_OF_SCO_CONNECTIONS 0x0a +#define HCI_ACL_CONNECTION_EXISTS 0x0b +#define HCI_COMMAND_DISALLOWED 0x0c +#define HCI_REJECTED_LIMITED_RESOURCES 0x0d +#define HCI_REJECTED_SECURITY 0x0e +#define HCI_REJECTED_PERSONAL 0x0f +#define HCI_HOST_TIMEOUT 0x10 +#define HCI_UNSUPPORTED_FEATURE 0x11 +#define HCI_INVALID_PARAMETERS 0x12 +#define HCI_OE_USER_ENDED_CONNECTION 0x13 +#define HCI_OE_LOW_RESOURCES 0x14 +#define HCI_OE_POWER_OFF 0x15 +#define HCI_CONNECTION_TERMINATED 0x16 +#define HCI_REPEATED_ATTEMPTS 0x17 +#define HCI_PAIRING_NOT_ALLOWED 0x18 +#define HCI_UNKNOWN_LMP_PDU 0x19 +#define HCI_UNSUPPORTED_REMOTE_FEATURE 0x1a +#define HCI_SCO_OFFSET_REJECTED 0x1b +#define HCI_SCO_INTERVAL_REJECTED 0x1c +#define HCI_AIR_MODE_REJECTED 0x1d +#define HCI_INVALID_LMP_PARAMETERS 0x1e +#define HCI_UNSPECIFIED_ERROR 0x1f +#define HCI_UNSUPPORTED_LMP_PARAMETER_VALUE 0x20 +#define HCI_ROLE_CHANGE_NOT_ALLOWED 0x21 +#define HCI_LMP_RESPONSE_TIMEOUT 0x22 +#define HCI_LMP_ERROR_TRANSACTION_COLLISION 0x23 +#define HCI_LMP_PDU_NOT_ALLOWED 0x24 +#define HCI_ENCRYPTION_MODE_NOT_ACCEPTED 0x25 +#define HCI_UNIT_LINK_KEY_USED 0x26 +#define HCI_QOS_NOT_SUPPORTED 0x27 +#define HCI_INSTANT_PASSED 0x28 +#define HCI_PAIRING_NOT_SUPPORTED 0x29 +#define HCI_TRANSACTION_COLLISION 0x2a +#define HCI_QOS_UNACCEPTABLE_PARAMETER 0x2c +#define HCI_QOS_REJECTED 0x2d +#define HCI_CLASSIFICATION_NOT_SUPPORTED 0x2e +#define HCI_INSUFFICIENT_SECURITY 0x2f +#define HCI_PARAMETER_OUT_OF_RANGE 0x30 +#define HCI_ROLE_SWITCH_PENDING 0x32 +#define HCI_SLOT_VIOLATION 0x34 +#define HCI_ROLE_SWITCH_FAILED 0x35 +#define HCI_EIR_TOO_LARGE 0x36 +#define HCI_SIMPLE_PAIRING_NOT_SUPPORTED 0x37 +#define HCI_HOST_BUSY_PAIRING 0x38 + +/* ACL flags */ +#define ACL_START_NO_FLUSH 0x00 +#define ACL_CONT 0x01 +#define ACL_START 0x02 +#define ACL_ACTIVE_BCAST 0x04 +#define ACL_PICO_BCAST 0x08 + +/* Baseband links */ +#define SCO_LINK 0x00 +#define ACL_LINK 0x01 +#define ESCO_LINK 0x02 + +/* LMP features */ +#define LMP_3SLOT 0x01 +#define LMP_5SLOT 0x02 +#define LMP_ENCRYPT 0x04 +#define LMP_SOFFSET 0x08 +#define LMP_TACCURACY 0x10 +#define LMP_RSWITCH 0x20 +#define LMP_HOLD 0x40 +#define LMP_SNIFF 0x80 + +#define LMP_PARK 0x01 +#define LMP_RSSI 0x02 +#define LMP_QUALITY 0x04 +#define LMP_SCO 0x08 +#define LMP_HV2 0x10 +#define LMP_HV3 0x20 +#define LMP_ULAW 0x40 +#define LMP_ALAW 0x80 + +#define LMP_CVSD 0x01 +#define LMP_PSCHEME 0x02 +#define LMP_PCONTROL 0x04 +#define LMP_TRSP_SCO 0x08 +#define LMP_BCAST_ENC 0x80 + +#define LMP_EDR_ACL_2M 0x02 +#define LMP_EDR_ACL_3M 0x04 +#define LMP_ENH_ISCAN 0x08 +#define LMP_ILACE_ISCAN 0x10 +#define LMP_ILACE_PSCAN 0x20 +#define LMP_RSSI_INQ 0x40 +#define LMP_ESCO 0x80 + +#define LMP_EV4 0x01 +#define LMP_EV5 0x02 +#define LMP_AFH_CAP_SLV 0x08 +#define LMP_AFH_CLS_SLV 0x10 +#define LMP_NO_BREDR 0x20 +#define LMP_LE 0x40 +#define LMP_EDR_3SLOT 0x80 + +#define LMP_EDR_5SLOT 0x01 +#define LMP_SNIFF_SUBR 0x02 +#define LMP_PAUSE_ENC 0x04 +#define LMP_AFH_CAP_MST 0x08 +#define LMP_AFH_CLS_MST 0x10 +#define LMP_EDR_ESCO_2M 0x20 +#define LMP_EDR_ESCO_3M 0x40 +#define LMP_EDR_3S_ESCO 0x80 + +#define LMP_EXT_INQ 0x01 +#define LMP_LE_BREDR 0x02 +#define LMP_SIMPLE_PAIR 0x08 +#define LMP_ENCAPS_PDU 0x10 +#define LMP_ERR_DAT_REP 0x20 +#define LMP_NFLUSH_PKTS 0x40 + +#define LMP_LSTO 0x01 +#define LMP_INQ_TX_PWR 0x02 +#define LMP_EPC 0x04 +#define LMP_EXT_FEAT 0x80 + +/* Extended LMP features */ +#define LMP_HOST_SSP 0x01 +#define LMP_HOST_LE 0x02 +#define LMP_HOST_LE_BREDR 0x04 + +/* Link policies */ +#define HCI_LP_RSWITCH 0x0001 +#define HCI_LP_HOLD 0x0002 +#define HCI_LP_SNIFF 0x0004 +#define HCI_LP_PARK 0x0008 + +/* Link mode */ +#define HCI_LM_ACCEPT 0x8000 +#define HCI_LM_MASTER 0x0001 +#define HCI_LM_AUTH 0x0002 +#define HCI_LM_ENCRYPT 0x0004 +#define HCI_LM_TRUSTED 0x0008 +#define HCI_LM_RELIABLE 0x0010 +#define HCI_LM_SECURE 0x0020 + +/* Link Key types */ +#define HCI_LK_COMBINATION 0x00 +#define HCI_LK_LOCAL_UNIT 0x01 +#define HCI_LK_REMOTE_UNIT 0x02 +#define HCI_LK_DEBUG_COMBINATION 0x03 +#define HCI_LK_UNAUTH_COMBINATION 0x04 +#define HCI_LK_AUTH_COMBINATION 0x05 +#define HCI_LK_CHANGED_COMBINATION 0x06 +#define HCI_LK_INVALID 0xFF + +/* ----- HCI Commands ----- */ + +/* Link Control */ +#define OGF_LINK_CTL 0x01 + +#define OCF_INQUIRY 0x0001 +typedef struct { + uint8_t lap[3]; + uint8_t length; /* 1.28s units */ + uint8_t num_rsp; +} __attribute__ ((packed)) inquiry_cp; +#define INQUIRY_CP_SIZE 5 + +typedef struct { + uint8_t status; + bdaddr_t bdaddr; +} __attribute__ ((packed)) status_bdaddr_rp; +#define STATUS_BDADDR_RP_SIZE 7 + +#define OCF_INQUIRY_CANCEL 0x0002 + +#define OCF_PERIODIC_INQUIRY 0x0003 +typedef struct { + uint16_t max_period; /* 1.28s units */ + uint16_t min_period; /* 1.28s units */ + uint8_t lap[3]; + uint8_t length; /* 1.28s units */ + uint8_t num_rsp; +} __attribute__ ((packed)) periodic_inquiry_cp; +#define PERIODIC_INQUIRY_CP_SIZE 9 + +#define OCF_EXIT_PERIODIC_INQUIRY 0x0004 + +#define OCF_CREATE_CONN 0x0005 +typedef struct { + bdaddr_t bdaddr; + uint16_t pkt_type; + uint8_t pscan_rep_mode; + uint8_t pscan_mode; + uint16_t clock_offset; + uint8_t role_switch; +} __attribute__ ((packed)) create_conn_cp; +#define CREATE_CONN_CP_SIZE 13 + +#define OCF_DISCONNECT 0x0006 +typedef struct { + uint16_t handle; + uint8_t reason; +} __attribute__ ((packed)) disconnect_cp; +#define DISCONNECT_CP_SIZE 3 + +#define OCF_ADD_SCO 0x0007 +typedef struct { + uint16_t handle; + uint16_t pkt_type; +} __attribute__ ((packed)) add_sco_cp; +#define ADD_SCO_CP_SIZE 4 + +#define OCF_CREATE_CONN_CANCEL 0x0008 +typedef struct { + bdaddr_t bdaddr; +} __attribute__ ((packed)) create_conn_cancel_cp; +#define CREATE_CONN_CANCEL_CP_SIZE 6 + +#define OCF_ACCEPT_CONN_REQ 0x0009 +typedef struct { + bdaddr_t bdaddr; + uint8_t role; +} __attribute__ ((packed)) accept_conn_req_cp; +#define ACCEPT_CONN_REQ_CP_SIZE 7 + +#define OCF_REJECT_CONN_REQ 0x000A +typedef struct { + bdaddr_t bdaddr; + uint8_t reason; +} __attribute__ ((packed)) reject_conn_req_cp; +#define REJECT_CONN_REQ_CP_SIZE 7 + +#define OCF_LINK_KEY_REPLY 0x000B +typedef struct { + bdaddr_t bdaddr; + uint8_t link_key[16]; +} __attribute__ ((packed)) link_key_reply_cp; +#define LINK_KEY_REPLY_CP_SIZE 22 + +#define OCF_LINK_KEY_NEG_REPLY 0x000C + +#define OCF_PIN_CODE_REPLY 0x000D +typedef struct { + bdaddr_t bdaddr; + uint8_t pin_len; + uint8_t pin_code[16]; +} __attribute__ ((packed)) pin_code_reply_cp; +#define PIN_CODE_REPLY_CP_SIZE 23 + +#define OCF_PIN_CODE_NEG_REPLY 0x000E + +#define OCF_SET_CONN_PTYPE 0x000F +typedef struct { + uint16_t handle; + uint16_t pkt_type; +} __attribute__ ((packed)) set_conn_ptype_cp; +#define SET_CONN_PTYPE_CP_SIZE 4 + +#define OCF_AUTH_REQUESTED 0x0011 +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) auth_requested_cp; +#define AUTH_REQUESTED_CP_SIZE 2 + +#define OCF_SET_CONN_ENCRYPT 0x0013 +typedef struct { + uint16_t handle; + uint8_t encrypt; +} __attribute__ ((packed)) set_conn_encrypt_cp; +#define SET_CONN_ENCRYPT_CP_SIZE 3 + +#define OCF_CHANGE_CONN_LINK_KEY 0x0015 +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) change_conn_link_key_cp; +#define CHANGE_CONN_LINK_KEY_CP_SIZE 2 + +#define OCF_MASTER_LINK_KEY 0x0017 +typedef struct { + uint8_t key_flag; +} __attribute__ ((packed)) master_link_key_cp; +#define MASTER_LINK_KEY_CP_SIZE 1 + +#define OCF_REMOTE_NAME_REQ 0x0019 +typedef struct { + bdaddr_t bdaddr; + uint8_t pscan_rep_mode; + uint8_t pscan_mode; + uint16_t clock_offset; +} __attribute__ ((packed)) remote_name_req_cp; +#define REMOTE_NAME_REQ_CP_SIZE 10 + +#define OCF_REMOTE_NAME_REQ_CANCEL 0x001A +typedef struct { + bdaddr_t bdaddr; +} __attribute__ ((packed)) remote_name_req_cancel_cp; +#define REMOTE_NAME_REQ_CANCEL_CP_SIZE 6 + +#define OCF_READ_REMOTE_FEATURES 0x001B +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) read_remote_features_cp; +#define READ_REMOTE_FEATURES_CP_SIZE 2 + +#define OCF_READ_REMOTE_EXT_FEATURES 0x001C +typedef struct { + uint16_t handle; + uint8_t page_num; +} __attribute__ ((packed)) read_remote_ext_features_cp; +#define READ_REMOTE_EXT_FEATURES_CP_SIZE 3 + +#define OCF_READ_REMOTE_VERSION 0x001D +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) read_remote_version_cp; +#define READ_REMOTE_VERSION_CP_SIZE 2 + +#define OCF_READ_CLOCK_OFFSET 0x001F +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) read_clock_offset_cp; +#define READ_CLOCK_OFFSET_CP_SIZE 2 + +#define OCF_READ_LMP_HANDLE 0x0020 + +#define OCF_SETUP_SYNC_CONN 0x0028 +typedef struct { + uint16_t handle; + uint32_t tx_bandwith; + uint32_t rx_bandwith; + uint16_t max_latency; + uint16_t voice_setting; + uint8_t retrans_effort; + uint16_t pkt_type; +} __attribute__ ((packed)) setup_sync_conn_cp; +#define SETUP_SYNC_CONN_CP_SIZE 17 + +#define OCF_ACCEPT_SYNC_CONN_REQ 0x0029 +typedef struct { + bdaddr_t bdaddr; + uint32_t tx_bandwith; + uint32_t rx_bandwith; + uint16_t max_latency; + uint16_t voice_setting; + uint8_t retrans_effort; + uint16_t pkt_type; +} __attribute__ ((packed)) accept_sync_conn_req_cp; +#define ACCEPT_SYNC_CONN_REQ_CP_SIZE 21 + +#define OCF_REJECT_SYNC_CONN_REQ 0x002A +typedef struct { + bdaddr_t bdaddr; + uint8_t reason; +} __attribute__ ((packed)) reject_sync_conn_req_cp; +#define REJECT_SYNC_CONN_REQ_CP_SIZE 7 + +#define OCF_IO_CAPABILITY_REPLY 0x002B +typedef struct { + bdaddr_t bdaddr; + uint8_t capability; + uint8_t oob_data; + uint8_t authentication; +} __attribute__ ((packed)) io_capability_reply_cp; +#define IO_CAPABILITY_REPLY_CP_SIZE 9 + +#define OCF_USER_CONFIRM_REPLY 0x002C +typedef struct { + bdaddr_t bdaddr; +} __attribute__ ((packed)) user_confirm_reply_cp; +#define USER_CONFIRM_REPLY_CP_SIZE 6 + +#define OCF_USER_CONFIRM_NEG_REPLY 0x002D + +#define OCF_USER_PASSKEY_REPLY 0x002E +typedef struct { + bdaddr_t bdaddr; + uint32_t passkey; +} __attribute__ ((packed)) user_passkey_reply_cp; +#define USER_PASSKEY_REPLY_CP_SIZE 10 + +#define OCF_USER_PASSKEY_NEG_REPLY 0x002F + +#define OCF_REMOTE_OOB_DATA_REPLY 0x0030 +typedef struct { + bdaddr_t bdaddr; + uint8_t hash[16]; + uint8_t randomizer[16]; +} __attribute__ ((packed)) remote_oob_data_reply_cp; +#define REMOTE_OOB_DATA_REPLY_CP_SIZE 38 + +#define OCF_REMOTE_OOB_DATA_NEG_REPLY 0x0033 + +#define OCF_IO_CAPABILITY_NEG_REPLY 0x0034 +typedef struct { + bdaddr_t bdaddr; + uint8_t reason; +} __attribute__ ((packed)) io_capability_neg_reply_cp; +#define IO_CAPABILITY_NEG_REPLY_CP_SIZE 7 + +#define OCF_CREATE_PHYSICAL_LINK 0x0035 +typedef struct { + uint8_t handle; + uint8_t key_length; + uint8_t key_type; + uint8_t key[32]; +} __attribute__ ((packed)) create_physical_link_cp; +#define CREATE_PHYSICAL_LINK_CP_SIZE 35 + +#define OCF_ACCEPT_PHYSICAL_LINK 0x0036 +typedef struct { + uint8_t handle; + uint8_t key_length; + uint8_t key_type; + uint8_t key[32]; +} __attribute__ ((packed)) accept_physical_link_cp; +#define ACCEPT_PHYSICAL_LINK_CP_SIZE 35 + +#define OCF_DISCONNECT_PHYSICAL_LINK 0x0037 +typedef struct { + uint8_t handle; + uint8_t reason; +} __attribute__ ((packed)) disconnect_physical_link_cp; +#define DISCONNECT_PHYSICAL_LINK_CP_SIZE 2 + +#define OCF_CREATE_LOGICAL_LINK 0x0038 +typedef struct { + uint8_t handle; + uint8_t tx_flow[16]; + uint8_t rx_flow[16]; +} __attribute__ ((packed)) create_logical_link_cp; +#define CREATE_LOGICAL_LINK_CP_SIZE 33 + +#define OCF_ACCEPT_LOGICAL_LINK 0x0039 + +#define OCF_DISCONNECT_LOGICAL_LINK 0x003A +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) disconnect_logical_link_cp; +#define DISCONNECT_LOGICAL_LINK_CP_SIZE 2 + +#define OCF_LOGICAL_LINK_CANCEL 0x003B +typedef struct { + uint8_t handle; + uint8_t tx_flow_id; +} __attribute__ ((packed)) cancel_logical_link_cp; +#define LOGICAL_LINK_CANCEL_CP_SIZE 2 +typedef struct { + uint8_t status; + uint8_t handle; + uint8_t tx_flow_id; +} __attribute__ ((packed)) cancel_logical_link_rp; +#define LOGICAL_LINK_CANCEL_RP_SIZE 3 + +#define OCF_FLOW_SPEC_MODIFY 0x003C + +/* Link Policy */ +#define OGF_LINK_POLICY 0x02 + +#define OCF_HOLD_MODE 0x0001 +typedef struct { + uint16_t handle; + uint16_t max_interval; + uint16_t min_interval; +} __attribute__ ((packed)) hold_mode_cp; +#define HOLD_MODE_CP_SIZE 6 + +#define OCF_SNIFF_MODE 0x0003 +typedef struct { + uint16_t handle; + uint16_t max_interval; + uint16_t min_interval; + uint16_t attempt; + uint16_t timeout; +} __attribute__ ((packed)) sniff_mode_cp; +#define SNIFF_MODE_CP_SIZE 10 + +#define OCF_EXIT_SNIFF_MODE 0x0004 +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) exit_sniff_mode_cp; +#define EXIT_SNIFF_MODE_CP_SIZE 2 + +#define OCF_PARK_MODE 0x0005 +typedef struct { + uint16_t handle; + uint16_t max_interval; + uint16_t min_interval; +} __attribute__ ((packed)) park_mode_cp; +#define PARK_MODE_CP_SIZE 6 + +#define OCF_EXIT_PARK_MODE 0x0006 +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) exit_park_mode_cp; +#define EXIT_PARK_MODE_CP_SIZE 2 + +#define OCF_QOS_SETUP 0x0007 +typedef struct { + uint8_t service_type; /* 1 = best effort */ + uint32_t token_rate; /* Byte per seconds */ + uint32_t peak_bandwidth; /* Byte per seconds */ + uint32_t latency; /* Microseconds */ + uint32_t delay_variation; /* Microseconds */ +} __attribute__ ((packed)) hci_qos; +#define HCI_QOS_CP_SIZE 17 +typedef struct { + uint16_t handle; + uint8_t flags; /* Reserved */ + hci_qos qos; +} __attribute__ ((packed)) qos_setup_cp; +#define QOS_SETUP_CP_SIZE (3 + HCI_QOS_CP_SIZE) + +#define OCF_ROLE_DISCOVERY 0x0009 +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) role_discovery_cp; +#define ROLE_DISCOVERY_CP_SIZE 2 +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t role; +} __attribute__ ((packed)) role_discovery_rp; +#define ROLE_DISCOVERY_RP_SIZE 4 + +#define OCF_SWITCH_ROLE 0x000B +typedef struct { + bdaddr_t bdaddr; + uint8_t role; +} __attribute__ ((packed)) switch_role_cp; +#define SWITCH_ROLE_CP_SIZE 7 + +#define OCF_READ_LINK_POLICY 0x000C +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) read_link_policy_cp; +#define READ_LINK_POLICY_CP_SIZE 2 +typedef struct { + uint8_t status; + uint16_t handle; + uint16_t policy; +} __attribute__ ((packed)) read_link_policy_rp; +#define READ_LINK_POLICY_RP_SIZE 5 + +#define OCF_WRITE_LINK_POLICY 0x000D +typedef struct { + uint16_t handle; + uint16_t policy; +} __attribute__ ((packed)) write_link_policy_cp; +#define WRITE_LINK_POLICY_CP_SIZE 4 +typedef struct { + uint8_t status; + uint16_t handle; +} __attribute__ ((packed)) write_link_policy_rp; +#define WRITE_LINK_POLICY_RP_SIZE 3 + +#define OCF_READ_DEFAULT_LINK_POLICY 0x000E + +#define OCF_WRITE_DEFAULT_LINK_POLICY 0x000F + +#define OCF_FLOW_SPECIFICATION 0x0010 + +#define OCF_SNIFF_SUBRATING 0x0011 +typedef struct { + uint16_t handle; + uint16_t max_latency; + uint16_t min_remote_timeout; + uint16_t min_local_timeout; +} __attribute__ ((packed)) sniff_subrating_cp; +#define SNIFF_SUBRATING_CP_SIZE 8 + +/* Host Controller and Baseband */ +#define OGF_HOST_CTL 0x03 + +#define OCF_SET_EVENT_MASK 0x0001 +typedef struct { + uint8_t mask[8]; +} __attribute__ ((packed)) set_event_mask_cp; +#define SET_EVENT_MASK_CP_SIZE 8 + +#define OCF_RESET 0x0003 + +#define OCF_SET_EVENT_FLT 0x0005 +typedef struct { + uint8_t flt_type; + uint8_t cond_type; + uint8_t condition[]; +} __attribute__ ((packed)) set_event_flt_cp; +#define SET_EVENT_FLT_CP_SIZE 2 + +/* Filter types */ +#define FLT_CLEAR_ALL 0x00 +#define FLT_INQ_RESULT 0x01 +#define FLT_CONN_SETUP 0x02 +/* INQ_RESULT Condition types */ +#define INQ_RESULT_RETURN_ALL 0x00 +#define INQ_RESULT_RETURN_CLASS 0x01 +#define INQ_RESULT_RETURN_BDADDR 0x02 +/* CONN_SETUP Condition types */ +#define CONN_SETUP_ALLOW_ALL 0x00 +#define CONN_SETUP_ALLOW_CLASS 0x01 +#define CONN_SETUP_ALLOW_BDADDR 0x02 +/* CONN_SETUP Conditions */ +#define CONN_SETUP_AUTO_OFF 0x01 +#define CONN_SETUP_AUTO_ON 0x02 + +#define OCF_FLUSH 0x0008 + +#define OCF_READ_PIN_TYPE 0x0009 +typedef struct { + uint8_t status; + uint8_t pin_type; +} __attribute__ ((packed)) read_pin_type_rp; +#define READ_PIN_TYPE_RP_SIZE 2 + +#define OCF_WRITE_PIN_TYPE 0x000A +typedef struct { + uint8_t pin_type; +} __attribute__ ((packed)) write_pin_type_cp; +#define WRITE_PIN_TYPE_CP_SIZE 1 + +#define OCF_CREATE_NEW_UNIT_KEY 0x000B + +#define OCF_READ_STORED_LINK_KEY 0x000D +typedef struct { + bdaddr_t bdaddr; + uint8_t read_all; +} __attribute__ ((packed)) read_stored_link_key_cp; +#define READ_STORED_LINK_KEY_CP_SIZE 7 +typedef struct { + uint8_t status; + uint16_t max_keys; + uint16_t num_keys; +} __attribute__ ((packed)) read_stored_link_key_rp; +#define READ_STORED_LINK_KEY_RP_SIZE 5 + +#define OCF_WRITE_STORED_LINK_KEY 0x0011 +typedef struct { + uint8_t num_keys; + /* variable length part */ +} __attribute__ ((packed)) write_stored_link_key_cp; +#define WRITE_STORED_LINK_KEY_CP_SIZE 1 +typedef struct { + uint8_t status; + uint8_t num_keys; +} __attribute__ ((packed)) write_stored_link_key_rp; +#define READ_WRITE_LINK_KEY_RP_SIZE 2 + +#define OCF_DELETE_STORED_LINK_KEY 0x0012 +typedef struct { + bdaddr_t bdaddr; + uint8_t delete_all; +} __attribute__ ((packed)) delete_stored_link_key_cp; +#define DELETE_STORED_LINK_KEY_CP_SIZE 7 +typedef struct { + uint8_t status; + uint16_t num_keys; +} __attribute__ ((packed)) delete_stored_link_key_rp; +#define DELETE_STORED_LINK_KEY_RP_SIZE 3 + +#define HCI_MAX_NAME_LENGTH 248 + +#define OCF_CHANGE_LOCAL_NAME 0x0013 +typedef struct { + uint8_t name[HCI_MAX_NAME_LENGTH]; +} __attribute__ ((packed)) change_local_name_cp; +#define CHANGE_LOCAL_NAME_CP_SIZE 248 + +#define OCF_READ_LOCAL_NAME 0x0014 +typedef struct { + uint8_t status; + uint8_t name[HCI_MAX_NAME_LENGTH]; +} __attribute__ ((packed)) read_local_name_rp; +#define READ_LOCAL_NAME_RP_SIZE 249 + +#define OCF_READ_CONN_ACCEPT_TIMEOUT 0x0015 +typedef struct { + uint8_t status; + uint16_t timeout; +} __attribute__ ((packed)) read_conn_accept_timeout_rp; +#define READ_CONN_ACCEPT_TIMEOUT_RP_SIZE 3 + +#define OCF_WRITE_CONN_ACCEPT_TIMEOUT 0x0016 +typedef struct { + uint16_t timeout; +} __attribute__ ((packed)) write_conn_accept_timeout_cp; +#define WRITE_CONN_ACCEPT_TIMEOUT_CP_SIZE 2 + +#define OCF_READ_PAGE_TIMEOUT 0x0017 +typedef struct { + uint8_t status; + uint16_t timeout; +} __attribute__ ((packed)) read_page_timeout_rp; +#define READ_PAGE_TIMEOUT_RP_SIZE 3 + +#define OCF_WRITE_PAGE_TIMEOUT 0x0018 +typedef struct { + uint16_t timeout; +} __attribute__ ((packed)) write_page_timeout_cp; +#define WRITE_PAGE_TIMEOUT_CP_SIZE 2 + +#define OCF_READ_SCAN_ENABLE 0x0019 +typedef struct { + uint8_t status; + uint8_t enable; +} __attribute__ ((packed)) read_scan_enable_rp; +#define READ_SCAN_ENABLE_RP_SIZE 2 + +#define OCF_WRITE_SCAN_ENABLE 0x001A + #define SCAN_DISABLED 0x00 + #define SCAN_INQUIRY 0x01 + #define SCAN_PAGE 0x02 + +#define OCF_READ_PAGE_ACTIVITY 0x001B +typedef struct { + uint8_t status; + uint16_t interval; + uint16_t window; +} __attribute__ ((packed)) read_page_activity_rp; +#define READ_PAGE_ACTIVITY_RP_SIZE 5 + +#define OCF_WRITE_PAGE_ACTIVITY 0x001C +typedef struct { + uint16_t interval; + uint16_t window; +} __attribute__ ((packed)) write_page_activity_cp; +#define WRITE_PAGE_ACTIVITY_CP_SIZE 4 + +#define OCF_READ_INQ_ACTIVITY 0x001D +typedef struct { + uint8_t status; + uint16_t interval; + uint16_t window; +} __attribute__ ((packed)) read_inq_activity_rp; +#define READ_INQ_ACTIVITY_RP_SIZE 5 + +#define OCF_WRITE_INQ_ACTIVITY 0x001E +typedef struct { + uint16_t interval; + uint16_t window; +} __attribute__ ((packed)) write_inq_activity_cp; +#define WRITE_INQ_ACTIVITY_CP_SIZE 4 + +#define OCF_READ_AUTH_ENABLE 0x001F + +#define OCF_WRITE_AUTH_ENABLE 0x0020 + #define AUTH_DISABLED 0x00 + #define AUTH_ENABLED 0x01 + +#define OCF_READ_ENCRYPT_MODE 0x0021 + +#define OCF_WRITE_ENCRYPT_MODE 0x0022 + #define ENCRYPT_DISABLED 0x00 + #define ENCRYPT_P2P 0x01 + #define ENCRYPT_BOTH 0x02 + +#define OCF_READ_CLASS_OF_DEV 0x0023 +typedef struct { + uint8_t status; + uint8_t dev_class[3]; +} __attribute__ ((packed)) read_class_of_dev_rp; +#define READ_CLASS_OF_DEV_RP_SIZE 4 + +#define OCF_WRITE_CLASS_OF_DEV 0x0024 +typedef struct { + uint8_t dev_class[3]; +} __attribute__ ((packed)) write_class_of_dev_cp; +#define WRITE_CLASS_OF_DEV_CP_SIZE 3 + +#define OCF_READ_VOICE_SETTING 0x0025 +typedef struct { + uint8_t status; + uint16_t voice_setting; +} __attribute__ ((packed)) read_voice_setting_rp; +#define READ_VOICE_SETTING_RP_SIZE 3 + +#define OCF_WRITE_VOICE_SETTING 0x0026 +typedef struct { + uint16_t voice_setting; +} __attribute__ ((packed)) write_voice_setting_cp; +#define WRITE_VOICE_SETTING_CP_SIZE 2 + +#define OCF_READ_AUTOMATIC_FLUSH_TIMEOUT 0x0027 + +#define OCF_WRITE_AUTOMATIC_FLUSH_TIMEOUT 0x0028 + +#define OCF_READ_NUM_BROADCAST_RETRANS 0x0029 + +#define OCF_WRITE_NUM_BROADCAST_RETRANS 0x002A + +#define OCF_READ_HOLD_MODE_ACTIVITY 0x002B + +#define OCF_WRITE_HOLD_MODE_ACTIVITY 0x002C + +#define OCF_READ_TRANSMIT_POWER_LEVEL 0x002D +typedef struct { + uint16_t handle; + uint8_t type; +} __attribute__ ((packed)) read_transmit_power_level_cp; +#define READ_TRANSMIT_POWER_LEVEL_CP_SIZE 3 +typedef struct { + uint8_t status; + uint16_t handle; + int8_t level; +} __attribute__ ((packed)) read_transmit_power_level_rp; +#define READ_TRANSMIT_POWER_LEVEL_RP_SIZE 4 + +#define OCF_READ_SYNC_FLOW_ENABLE 0x002E + +#define OCF_WRITE_SYNC_FLOW_ENABLE 0x002F + +#define OCF_SET_CONTROLLER_TO_HOST_FC 0x0031 + +#define OCF_HOST_BUFFER_SIZE 0x0033 +typedef struct { + uint16_t acl_mtu; + uint8_t sco_mtu; + uint16_t acl_max_pkt; + uint16_t sco_max_pkt; +} __attribute__ ((packed)) host_buffer_size_cp; +#define HOST_BUFFER_SIZE_CP_SIZE 7 + +#define OCF_HOST_NUM_COMP_PKTS 0x0035 +typedef struct { + uint8_t num_hndl; + /* variable length part */ +} __attribute__ ((packed)) host_num_comp_pkts_cp; +#define HOST_NUM_COMP_PKTS_CP_SIZE 1 + +#define OCF_READ_LINK_SUPERVISION_TIMEOUT 0x0036 +typedef struct { + uint8_t status; + uint16_t handle; + uint16_t timeout; +} __attribute__ ((packed)) read_link_supervision_timeout_rp; +#define READ_LINK_SUPERVISION_TIMEOUT_RP_SIZE 5 + +#define OCF_WRITE_LINK_SUPERVISION_TIMEOUT 0x0037 +typedef struct { + uint16_t handle; + uint16_t timeout; +} __attribute__ ((packed)) write_link_supervision_timeout_cp; +#define WRITE_LINK_SUPERVISION_TIMEOUT_CP_SIZE 4 +typedef struct { + uint8_t status; + uint16_t handle; +} __attribute__ ((packed)) write_link_supervision_timeout_rp; +#define WRITE_LINK_SUPERVISION_TIMEOUT_RP_SIZE 3 + +#define OCF_READ_NUM_SUPPORTED_IAC 0x0038 + +#define MAX_IAC_LAP 0x40 +#define OCF_READ_CURRENT_IAC_LAP 0x0039 +typedef struct { + uint8_t status; + uint8_t num_current_iac; + uint8_t lap[MAX_IAC_LAP][3]; +} __attribute__ ((packed)) read_current_iac_lap_rp; +#define READ_CURRENT_IAC_LAP_RP_SIZE 2+3*MAX_IAC_LAP + +#define OCF_WRITE_CURRENT_IAC_LAP 0x003A +typedef struct { + uint8_t num_current_iac; + uint8_t lap[MAX_IAC_LAP][3]; +} __attribute__ ((packed)) write_current_iac_lap_cp; +#define WRITE_CURRENT_IAC_LAP_CP_SIZE 1+3*MAX_IAC_LAP + +#define OCF_READ_PAGE_SCAN_PERIOD_MODE 0x003B + +#define OCF_WRITE_PAGE_SCAN_PERIOD_MODE 0x003C + +#define OCF_READ_PAGE_SCAN_MODE 0x003D + +#define OCF_WRITE_PAGE_SCAN_MODE 0x003E + +#define OCF_SET_AFH_CLASSIFICATION 0x003F +typedef struct { + uint8_t map[10]; +} __attribute__ ((packed)) set_afh_classification_cp; +#define SET_AFH_CLASSIFICATION_CP_SIZE 10 +typedef struct { + uint8_t status; +} __attribute__ ((packed)) set_afh_classification_rp; +#define SET_AFH_CLASSIFICATION_RP_SIZE 1 + +#define OCF_READ_INQUIRY_SCAN_TYPE 0x0042 +typedef struct { + uint8_t status; + uint8_t type; +} __attribute__ ((packed)) read_inquiry_scan_type_rp; +#define READ_INQUIRY_SCAN_TYPE_RP_SIZE 2 + +#define OCF_WRITE_INQUIRY_SCAN_TYPE 0x0043 +typedef struct { + uint8_t type; +} __attribute__ ((packed)) write_inquiry_scan_type_cp; +#define WRITE_INQUIRY_SCAN_TYPE_CP_SIZE 1 +typedef struct { + uint8_t status; +} __attribute__ ((packed)) write_inquiry_scan_type_rp; +#define WRITE_INQUIRY_SCAN_TYPE_RP_SIZE 1 + +#define OCF_READ_INQUIRY_MODE 0x0044 +typedef struct { + uint8_t status; + uint8_t mode; +} __attribute__ ((packed)) read_inquiry_mode_rp; +#define READ_INQUIRY_MODE_RP_SIZE 2 + +#define OCF_WRITE_INQUIRY_MODE 0x0045 +typedef struct { + uint8_t mode; +} __attribute__ ((packed)) write_inquiry_mode_cp; +#define WRITE_INQUIRY_MODE_CP_SIZE 1 +typedef struct { + uint8_t status; +} __attribute__ ((packed)) write_inquiry_mode_rp; +#define WRITE_INQUIRY_MODE_RP_SIZE 1 + +#define OCF_READ_PAGE_SCAN_TYPE 0x0046 + +#define OCF_WRITE_PAGE_SCAN_TYPE 0x0047 + #define PAGE_SCAN_TYPE_STANDARD 0x00 + #define PAGE_SCAN_TYPE_INTERLACED 0x01 + +#define OCF_READ_AFH_MODE 0x0048 +typedef struct { + uint8_t status; + uint8_t mode; +} __attribute__ ((packed)) read_afh_mode_rp; +#define READ_AFH_MODE_RP_SIZE 2 + +#define OCF_WRITE_AFH_MODE 0x0049 +typedef struct { + uint8_t mode; +} __attribute__ ((packed)) write_afh_mode_cp; +#define WRITE_AFH_MODE_CP_SIZE 1 +typedef struct { + uint8_t status; +} __attribute__ ((packed)) write_afh_mode_rp; +#define WRITE_AFH_MODE_RP_SIZE 1 + +#define HCI_MAX_EIR_LENGTH 240 + +#define OCF_READ_EXT_INQUIRY_RESPONSE 0x0051 +typedef struct { + uint8_t status; + uint8_t fec; + uint8_t data[HCI_MAX_EIR_LENGTH]; +} __attribute__ ((packed)) read_ext_inquiry_response_rp; +#define READ_EXT_INQUIRY_RESPONSE_RP_SIZE 242 + +#define OCF_WRITE_EXT_INQUIRY_RESPONSE 0x0052 +typedef struct { + uint8_t fec; + uint8_t data[HCI_MAX_EIR_LENGTH]; +} __attribute__ ((packed)) write_ext_inquiry_response_cp; +#define WRITE_EXT_INQUIRY_RESPONSE_CP_SIZE 241 +typedef struct { + uint8_t status; +} __attribute__ ((packed)) write_ext_inquiry_response_rp; +#define WRITE_EXT_INQUIRY_RESPONSE_RP_SIZE 1 + +#define OCF_REFRESH_ENCRYPTION_KEY 0x0053 +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) refresh_encryption_key_cp; +#define REFRESH_ENCRYPTION_KEY_CP_SIZE 2 +typedef struct { + uint8_t status; +} __attribute__ ((packed)) refresh_encryption_key_rp; +#define REFRESH_ENCRYPTION_KEY_RP_SIZE 1 + +#define OCF_READ_SIMPLE_PAIRING_MODE 0x0055 +typedef struct { + uint8_t status; + uint8_t mode; +} __attribute__ ((packed)) read_simple_pairing_mode_rp; +#define READ_SIMPLE_PAIRING_MODE_RP_SIZE 2 + +#define OCF_WRITE_SIMPLE_PAIRING_MODE 0x0056 +typedef struct { + uint8_t mode; +} __attribute__ ((packed)) write_simple_pairing_mode_cp; +#define WRITE_SIMPLE_PAIRING_MODE_CP_SIZE 1 +typedef struct { + uint8_t status; +} __attribute__ ((packed)) write_simple_pairing_mode_rp; +#define WRITE_SIMPLE_PAIRING_MODE_RP_SIZE 1 + +#define OCF_READ_LOCAL_OOB_DATA 0x0057 +typedef struct { + uint8_t status; + uint8_t hash[16]; + uint8_t randomizer[16]; +} __attribute__ ((packed)) read_local_oob_data_rp; +#define READ_LOCAL_OOB_DATA_RP_SIZE 33 + +#define OCF_READ_INQ_RESPONSE_TX_POWER_LEVEL 0x0058 +typedef struct { + uint8_t status; + int8_t level; +} __attribute__ ((packed)) read_inq_response_tx_power_level_rp; +#define READ_INQ_RESPONSE_TX_POWER_LEVEL_RP_SIZE 2 + +#define OCF_READ_INQUIRY_TRANSMIT_POWER_LEVEL 0x0058 +typedef struct { + uint8_t status; + int8_t level; +} __attribute__ ((packed)) read_inquiry_transmit_power_level_rp; +#define READ_INQUIRY_TRANSMIT_POWER_LEVEL_RP_SIZE 2 + +#define OCF_WRITE_INQUIRY_TRANSMIT_POWER_LEVEL 0x0059 +typedef struct { + int8_t level; +} __attribute__ ((packed)) write_inquiry_transmit_power_level_cp; +#define WRITE_INQUIRY_TRANSMIT_POWER_LEVEL_CP_SIZE 1 +typedef struct { + uint8_t status; +} __attribute__ ((packed)) write_inquiry_transmit_power_level_rp; +#define WRITE_INQUIRY_TRANSMIT_POWER_LEVEL_RP_SIZE 1 + +#define OCF_READ_DEFAULT_ERROR_DATA_REPORTING 0x005A +typedef struct { + uint8_t status; + uint8_t reporting; +} __attribute__ ((packed)) read_default_error_data_reporting_rp; +#define READ_DEFAULT_ERROR_DATA_REPORTING_RP_SIZE 2 + +#define OCF_WRITE_DEFAULT_ERROR_DATA_REPORTING 0x005B +typedef struct { + uint8_t reporting; +} __attribute__ ((packed)) write_default_error_data_reporting_cp; +#define WRITE_DEFAULT_ERROR_DATA_REPORTING_CP_SIZE 1 +typedef struct { + uint8_t status; +} __attribute__ ((packed)) write_default_error_data_reporting_rp; +#define WRITE_DEFAULT_ERROR_DATA_REPORTING_RP_SIZE 1 + +#define OCF_ENHANCED_FLUSH 0x005F +typedef struct { + uint16_t handle; + uint8_t type; +} __attribute__ ((packed)) enhanced_flush_cp; +#define ENHANCED_FLUSH_CP_SIZE 3 + +#define OCF_SEND_KEYPRESS_NOTIFY 0x0060 +typedef struct { + bdaddr_t bdaddr; + uint8_t type; +} __attribute__ ((packed)) send_keypress_notify_cp; +#define SEND_KEYPRESS_NOTIFY_CP_SIZE 7 +typedef struct { + uint8_t status; +} __attribute__ ((packed)) send_keypress_notify_rp; +#define SEND_KEYPRESS_NOTIFY_RP_SIZE 1 + +#define OCF_READ_LOGICAL_LINK_ACCEPT_TIMEOUT 0x0061 +typedef struct { + uint8_t status; + uint16_t timeout; +} __attribute__ ((packed)) read_log_link_accept_timeout_rp; +#define READ_LOGICAL_LINK_ACCEPT_TIMEOUT_RP_SIZE 3 + +#define OCF_WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT 0x0062 +typedef struct { + uint16_t timeout; +} __attribute__ ((packed)) write_log_link_accept_timeout_cp; +#define WRITE_LOGICAL_LINK_ACCEPT_TIMEOUT_CP_SIZE 2 + +#define OCF_SET_EVENT_MASK_PAGE_2 0x0063 + +#define OCF_READ_LOCATION_DATA 0x0064 + +#define OCF_WRITE_LOCATION_DATA 0x0065 + +#define OCF_READ_FLOW_CONTROL_MODE 0x0066 + +#define OCF_WRITE_FLOW_CONTROL_MODE 0x0067 + +#define OCF_READ_ENHANCED_TRANSMIT_POWER_LEVEL 0x0068 +typedef struct { + uint8_t status; + uint16_t handle; + int8_t level_gfsk; + int8_t level_dqpsk; + int8_t level_8dpsk; +} __attribute__ ((packed)) read_enhanced_transmit_power_level_rp; +#define READ_ENHANCED_TRANSMIT_POWER_LEVEL_RP_SIZE 6 + +#define OCF_READ_BEST_EFFORT_FLUSH_TIMEOUT 0x0069 +typedef struct { + uint8_t status; + uint32_t timeout; +} __attribute__ ((packed)) read_best_effort_flush_timeout_rp; +#define READ_BEST_EFFORT_FLUSH_TIMEOUT_RP_SIZE 5 + +#define OCF_WRITE_BEST_EFFORT_FLUSH_TIMEOUT 0x006A +typedef struct { + uint16_t handle; + uint32_t timeout; +} __attribute__ ((packed)) write_best_effort_flush_timeout_cp; +#define WRITE_BEST_EFFORT_FLUSH_TIMEOUT_CP_SIZE 6 +typedef struct { + uint8_t status; +} __attribute__ ((packed)) write_best_effort_flush_timeout_rp; +#define WRITE_BEST_EFFORT_FLUSH_TIMEOUT_RP_SIZE 1 + +#define OCF_READ_LE_HOST_SUPPORTED 0x006C +typedef struct { + uint8_t status; + uint8_t le; + uint8_t simul; +} __attribute__ ((packed)) read_le_host_supported_rp; +#define READ_LE_HOST_SUPPORTED_RP_SIZE 3 + +#define OCF_WRITE_LE_HOST_SUPPORTED 0x006D +typedef struct { + uint8_t le; + uint8_t simul; +} __attribute__ ((packed)) write_le_host_supported_cp; +#define WRITE_LE_HOST_SUPPORTED_CP_SIZE 2 + +/* Informational Parameters */ +#define OGF_INFO_PARAM 0x04 + +#define OCF_READ_LOCAL_VERSION 0x0001 +typedef struct { + uint8_t status; + uint8_t hci_ver; + uint16_t hci_rev; + uint8_t lmp_ver; + uint16_t manufacturer; + uint16_t lmp_subver; +} __attribute__ ((packed)) read_local_version_rp; +#define READ_LOCAL_VERSION_RP_SIZE 9 + +#define OCF_READ_LOCAL_COMMANDS 0x0002 +typedef struct { + uint8_t status; + uint8_t commands[64]; +} __attribute__ ((packed)) read_local_commands_rp; +#define READ_LOCAL_COMMANDS_RP_SIZE 65 + +#define OCF_READ_LOCAL_FEATURES 0x0003 +typedef struct { + uint8_t status; + uint8_t features[8]; +} __attribute__ ((packed)) read_local_features_rp; +#define READ_LOCAL_FEATURES_RP_SIZE 9 + +#define OCF_READ_LOCAL_EXT_FEATURES 0x0004 +typedef struct { + uint8_t page_num; +} __attribute__ ((packed)) read_local_ext_features_cp; +#define READ_LOCAL_EXT_FEATURES_CP_SIZE 1 +typedef struct { + uint8_t status; + uint8_t page_num; + uint8_t max_page_num; + uint8_t features[8]; +} __attribute__ ((packed)) read_local_ext_features_rp; +#define READ_LOCAL_EXT_FEATURES_RP_SIZE 11 + +#define OCF_READ_BUFFER_SIZE 0x0005 +typedef struct { + uint8_t status; + uint16_t acl_mtu; + uint8_t sco_mtu; + uint16_t acl_max_pkt; + uint16_t sco_max_pkt; +} __attribute__ ((packed)) read_buffer_size_rp; +#define READ_BUFFER_SIZE_RP_SIZE 8 + +#define OCF_READ_COUNTRY_CODE 0x0007 + +#define OCF_READ_BD_ADDR 0x0009 +typedef struct { + uint8_t status; + bdaddr_t bdaddr; +} __attribute__ ((packed)) read_bd_addr_rp; +#define READ_BD_ADDR_RP_SIZE 7 + +#define OCF_READ_DATA_BLOCK_SIZE 0x000A +typedef struct { + uint8_t status; + uint16_t max_acl_len; + uint16_t data_block_len; + uint16_t num_blocks; +} __attribute__ ((packed)) read_data_block_size_rp; + +/* Status params */ +#define OGF_STATUS_PARAM 0x05 + +#define OCF_READ_FAILED_CONTACT_COUNTER 0x0001 +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t counter; +} __attribute__ ((packed)) read_failed_contact_counter_rp; +#define READ_FAILED_CONTACT_COUNTER_RP_SIZE 4 + +#define OCF_RESET_FAILED_CONTACT_COUNTER 0x0002 +typedef struct { + uint8_t status; + uint16_t handle; +} __attribute__ ((packed)) reset_failed_contact_counter_rp; +#define RESET_FAILED_CONTACT_COUNTER_RP_SIZE 3 + +#define OCF_READ_LINK_QUALITY 0x0003 +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t link_quality; +} __attribute__ ((packed)) read_link_quality_rp; +#define READ_LINK_QUALITY_RP_SIZE 4 + +#define OCF_READ_RSSI 0x0005 +typedef struct { + uint8_t status; + uint16_t handle; + int8_t rssi; +} __attribute__ ((packed)) read_rssi_rp; +#define READ_RSSI_RP_SIZE 4 + +#define OCF_READ_AFH_MAP 0x0006 +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t mode; + uint8_t map[10]; +} __attribute__ ((packed)) read_afh_map_rp; +#define READ_AFH_MAP_RP_SIZE 14 + +#define OCF_READ_CLOCK 0x0007 +typedef struct { + uint16_t handle; + uint8_t which_clock; +} __attribute__ ((packed)) read_clock_cp; +#define READ_CLOCK_CP_SIZE 3 +typedef struct { + uint8_t status; + uint16_t handle; + uint32_t clock; + uint16_t accuracy; +} __attribute__ ((packed)) read_clock_rp; +#define READ_CLOCK_RP_SIZE 9 + +#define OCF_READ_LOCAL_AMP_INFO 0x0009 +typedef struct { + uint8_t status; + uint8_t amp_status; + uint32_t total_bandwidth; + uint32_t max_guaranteed_bandwidth; + uint32_t min_latency; + uint32_t max_pdu_size; + uint8_t controller_type; + uint16_t pal_caps; + uint16_t max_amp_assoc_length; + uint32_t max_flush_timeout; + uint32_t best_effort_flush_timeout; +} __attribute__ ((packed)) read_local_amp_info_rp; +#define READ_LOCAL_AMP_INFO_RP_SIZE 31 + +#define OCF_READ_LOCAL_AMP_ASSOC 0x000A +typedef struct { + uint8_t handle; + uint16_t length_so_far; + uint16_t assoc_length; +} __attribute__ ((packed)) read_local_amp_assoc_cp; +#define READ_LOCAL_AMP_ASSOC_CP_SIZE 5 +typedef struct { + uint8_t status; + uint8_t handle; + uint16_t length; + uint8_t fragment[HCI_MAX_NAME_LENGTH]; +} __attribute__ ((packed)) read_local_amp_assoc_rp; +#define READ_LOCAL_AMP_ASSOC_RP_SIZE 252 + +#define OCF_WRITE_REMOTE_AMP_ASSOC 0x000B +typedef struct { + uint8_t handle; + uint16_t length_so_far; + uint16_t remaining_length; + uint8_t fragment[HCI_MAX_NAME_LENGTH]; +} __attribute__ ((packed)) write_remote_amp_assoc_cp; +#define WRITE_REMOTE_AMP_ASSOC_CP_SIZE 253 +typedef struct { + uint8_t status; + uint8_t handle; +} __attribute__ ((packed)) write_remote_amp_assoc_rp; +#define WRITE_REMOTE_AMP_ASSOC_RP_SIZE 2 + +/* Testing commands */ +#define OGF_TESTING_CMD 0x3e + +#define OCF_READ_LOOPBACK_MODE 0x0001 + +#define OCF_WRITE_LOOPBACK_MODE 0x0002 + +#define OCF_ENABLE_DEVICE_UNDER_TEST_MODE 0x0003 + +#define OCF_WRITE_SIMPLE_PAIRING_DEBUG_MODE 0x0004 +typedef struct { + uint8_t mode; +} __attribute__ ((packed)) write_simple_pairing_debug_mode_cp; +#define WRITE_SIMPLE_PAIRING_DEBUG_MODE_CP_SIZE 1 +typedef struct { + uint8_t status; +} __attribute__ ((packed)) write_simple_pairing_debug_mode_rp; +#define WRITE_SIMPLE_PAIRING_DEBUG_MODE_RP_SIZE 1 + +/* LE commands */ +#define OGF_LE_CTL 0x08 + +#define OCF_LE_SET_EVENT_MASK 0x0001 +typedef struct { + uint8_t mask[8]; +} __attribute__ ((packed)) le_set_event_mask_cp; +#define LE_SET_EVENT_MASK_CP_SIZE 8 + +#define OCF_LE_READ_BUFFER_SIZE 0x0002 +typedef struct { + uint8_t status; + uint16_t pkt_len; + uint8_t max_pkt; +} __attribute__ ((packed)) le_read_buffer_size_rp; +#define LE_READ_BUFFER_SIZE_RP_SIZE 4 + +#define OCF_LE_READ_LOCAL_SUPPORTED_FEATURES 0x0003 +typedef struct { + uint8_t status; + uint8_t features[8]; +} __attribute__ ((packed)) le_read_local_supported_features_rp; +#define LE_READ_LOCAL_SUPPORTED_FEATURES_RP_SIZE 9 + +#define OCF_LE_SET_RANDOM_ADDRESS 0x0005 +typedef struct { + bdaddr_t bdaddr; +} __attribute__ ((packed)) le_set_random_address_cp; +#define LE_SET_RANDOM_ADDRESS_CP_SIZE 6 + +#define OCF_LE_SET_ADVERTISING_PARAMETERS 0x0006 +typedef struct { + uint16_t min_interval; + uint16_t max_interval; + uint8_t advtype; + uint8_t own_bdaddr_type; + uint8_t direct_bdaddr_type; + bdaddr_t direct_bdaddr; + uint8_t chan_map; + uint8_t filter; +} __attribute__ ((packed)) le_set_advertising_parameters_cp; +#define LE_SET_ADVERTISING_PARAMETERS_CP_SIZE 15 + +#define OCF_LE_READ_ADVERTISING_CHANNEL_TX_POWER 0x0007 +typedef struct { + uint8_t status; + int8_t level; +} __attribute__ ((packed)) le_read_advertising_channel_tx_power_rp; +#define LE_READ_ADVERTISING_CHANNEL_TX_POWER_RP_SIZE 2 + +#define OCF_LE_SET_ADVERTISING_DATA 0x0008 +typedef struct { + uint8_t length; + uint8_t data[31]; +} __attribute__ ((packed)) le_set_advertising_data_cp; +#define LE_SET_ADVERTISING_DATA_CP_SIZE 32 + +#define OCF_LE_SET_SCAN_RESPONSE_DATA 0x0009 +typedef struct { + uint8_t length; + uint8_t data[31]; +} __attribute__ ((packed)) le_set_scan_response_data_cp; +#define LE_SET_SCAN_RESPONSE_DATA_CP_SIZE 32 + +#define OCF_LE_SET_ADVERTISE_ENABLE 0x000A +typedef struct { + uint8_t enable; +} __attribute__ ((packed)) le_set_advertise_enable_cp; +#define LE_SET_ADVERTISE_ENABLE_CP_SIZE 1 + +#define OCF_LE_SET_SCAN_PARAMETERS 0x000B +typedef struct { + uint8_t type; + uint16_t interval; + uint16_t window; + uint8_t own_bdaddr_type; + uint8_t filter; +} __attribute__ ((packed)) le_set_scan_parameters_cp; +#define LE_SET_SCAN_PARAMETERS_CP_SIZE 7 + +#define OCF_LE_SET_SCAN_ENABLE 0x000C +typedef struct { + uint8_t enable; + uint8_t filter_dup; +} __attribute__ ((packed)) le_set_scan_enable_cp; +#define LE_SET_SCAN_ENABLE_CP_SIZE 2 + +#define OCF_LE_CREATE_CONN 0x000D +typedef struct { + uint16_t interval; + uint16_t window; + uint8_t initiator_filter; + uint8_t peer_bdaddr_type; + bdaddr_t peer_bdaddr; + uint8_t own_bdaddr_type; + uint16_t min_interval; + uint16_t max_interval; + uint16_t latency; + uint16_t supervision_timeout; + uint16_t min_ce_length; + uint16_t max_ce_length; +} __attribute__ ((packed)) le_create_connection_cp; +#define LE_CREATE_CONN_CP_SIZE 25 + +#define OCF_LE_CREATE_CONN_CANCEL 0x000E + +#define OCF_LE_READ_WHITE_LIST_SIZE 0x000F +typedef struct { + uint8_t status; + uint8_t size; +} __attribute__ ((packed)) le_read_white_list_size_rp; +#define LE_READ_WHITE_LIST_SIZE_RP_SIZE 2 + +#define OCF_LE_CLEAR_WHITE_LIST 0x0010 + +#define OCF_LE_ADD_DEVICE_TO_WHITE_LIST 0x0011 +typedef struct { + uint8_t bdaddr_type; + bdaddr_t bdaddr; +} __attribute__ ((packed)) le_add_device_to_white_list_cp; +#define LE_ADD_DEVICE_TO_WHITE_LIST_CP_SIZE 7 + +#define OCF_LE_REMOVE_DEVICE_FROM_WHITE_LIST 0x0012 +typedef struct { + uint8_t bdaddr_type; + bdaddr_t bdaddr; +} __attribute__ ((packed)) le_remove_device_from_white_list_cp; +#define LE_REMOVE_DEVICE_FROM_WHITE_LIST_CP_SIZE 7 + +#define OCF_LE_CONN_UPDATE 0x0013 +typedef struct { + uint16_t handle; + uint16_t min_interval; + uint16_t max_interval; + uint16_t latency; + uint16_t supervision_timeout; + uint16_t min_ce_length; + uint16_t max_ce_length; +} __attribute__ ((packed)) le_connection_update_cp; +#define LE_CONN_UPDATE_CP_SIZE 14 + +#define OCF_LE_SET_HOST_CHANNEL_CLASSIFICATION 0x0014 +typedef struct { + uint8_t map[5]; +} __attribute__ ((packed)) le_set_host_channel_classification_cp; +#define LE_SET_HOST_CHANNEL_CLASSIFICATION_CP_SIZE 5 + +#define OCF_LE_READ_CHANNEL_MAP 0x0015 +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) le_read_channel_map_cp; +#define LE_READ_CHANNEL_MAP_CP_SIZE 2 +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t map[5]; +} __attribute__ ((packed)) le_read_channel_map_rp; +#define LE_READ_CHANNEL_MAP_RP_SIZE 8 + +#define OCF_LE_READ_REMOTE_USED_FEATURES 0x0016 +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) le_read_remote_used_features_cp; +#define LE_READ_REMOTE_USED_FEATURES_CP_SIZE 2 + +#define OCF_LE_ENCRYPT 0x0017 +typedef struct { + uint8_t key[16]; + uint8_t plaintext[16]; +} __attribute__ ((packed)) le_encrypt_cp; +#define LE_ENCRYPT_CP_SIZE 32 +typedef struct { + uint8_t status; + uint8_t data[16]; +} __attribute__ ((packed)) le_encrypt_rp; +#define LE_ENCRYPT_RP_SIZE 17 + +#define OCF_LE_RAND 0x0018 +typedef struct { + uint8_t status; + uint64_t random; +} __attribute__ ((packed)) le_rand_rp; +#define LE_RAND_RP_SIZE 9 + +#define OCF_LE_START_ENCRYPTION 0x0019 +typedef struct { + uint16_t handle; + uint64_t random; + uint16_t diversifier; + uint8_t key[16]; +} __attribute__ ((packed)) le_start_encryption_cp; +#define LE_START_ENCRYPTION_CP_SIZE 28 + +#define OCF_LE_LTK_REPLY 0x001A +typedef struct { + uint16_t handle; + uint8_t key[16]; +} __attribute__ ((packed)) le_ltk_reply_cp; +#define LE_LTK_REPLY_CP_SIZE 18 +typedef struct { + uint8_t status; + uint16_t handle; +} __attribute__ ((packed)) le_ltk_reply_rp; +#define LE_LTK_REPLY_RP_SIZE 3 + +#define OCF_LE_LTK_NEG_REPLY 0x001B +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) le_ltk_neg_reply_cp; +#define LE_LTK_NEG_REPLY_CP_SIZE 2 +typedef struct { + uint8_t status; + uint16_t handle; +} __attribute__ ((packed)) le_ltk_neg_reply_rp; +#define LE_LTK_NEG_REPLY_RP_SIZE 3 + +#define OCF_LE_READ_SUPPORTED_STATES 0x001C +typedef struct { + uint8_t status; + uint64_t states; +} __attribute__ ((packed)) le_read_supported_states_rp; +#define LE_READ_SUPPORTED_STATES_RP_SIZE 9 + +#define OCF_LE_RECEIVER_TEST 0x001D +typedef struct { + uint8_t frequency; +} __attribute__ ((packed)) le_receiver_test_cp; +#define LE_RECEIVER_TEST_CP_SIZE 1 + +#define OCF_LE_TRANSMITTER_TEST 0x001E +typedef struct { + uint8_t frequency; + uint8_t length; + uint8_t payload; +} __attribute__ ((packed)) le_transmitter_test_cp; +#define LE_TRANSMITTER_TEST_CP_SIZE 3 + +#define OCF_LE_TEST_END 0x001F +typedef struct { + uint8_t status; + uint16_t num_pkts; +} __attribute__ ((packed)) le_test_end_rp; +#define LE_TEST_END_RP_SIZE 3 + +#define OCF_LE_ADD_DEVICE_TO_RESOLV_LIST 0x0027 +typedef struct { + uint8_t bdaddr_type; + bdaddr_t bdaddr; + uint8_t peer_irk[16]; + uint8_t local_irk[16]; +} __attribute__ ((packed)) le_add_device_to_resolv_list_cp; +#define LE_ADD_DEVICE_TO_RESOLV_LIST_CP_SIZE 39 + +#define OCF_LE_REMOVE_DEVICE_FROM_RESOLV_LIST 0x0028 +typedef struct { + uint8_t bdaddr_type; + bdaddr_t bdaddr; +} __attribute__ ((packed)) le_remove_device_from_resolv_list_cp; +#define LE_REMOVE_DEVICE_FROM_RESOLV_LIST_CP_SIZE 7 + +#define OCF_LE_CLEAR_RESOLV_LIST 0x0029 + +#define OCF_LE_READ_RESOLV_LIST_SIZE 0x002A +typedef struct { + uint8_t status; + uint8_t size; +} __attribute__ ((packed)) le_read_resolv_list_size_rp; +#define LE_READ_RESOLV_LIST_SIZE_RP_SIZE 2 + +#define OCF_LE_SET_ADDRESS_RESOLUTION_ENABLE 0x002D +typedef struct { + uint8_t enable; +} __attribute__ ((packed)) le_set_address_resolution_enable_cp; +#define LE_SET_ADDRESS_RESOLUTION_ENABLE_CP_SIZE 1 + +/* Vendor specific commands */ +#define OGF_VENDOR_CMD 0x3f + +/* ---- HCI Events ---- */ + +#define EVT_INQUIRY_COMPLETE 0x01 + +#define EVT_INQUIRY_RESULT 0x02 +typedef struct { + bdaddr_t bdaddr; + uint8_t pscan_rep_mode; + uint8_t pscan_period_mode; + uint8_t pscan_mode; + uint8_t dev_class[3]; + uint16_t clock_offset; +} __attribute__ ((packed)) inquiry_info; +#define INQUIRY_INFO_SIZE 14 + +#define EVT_CONN_COMPLETE 0x03 +typedef struct { + uint8_t status; + uint16_t handle; + bdaddr_t bdaddr; + uint8_t link_type; + uint8_t encr_mode; +} __attribute__ ((packed)) evt_conn_complete; +#define EVT_CONN_COMPLETE_SIZE 11 + +#define EVT_CONN_REQUEST 0x04 +typedef struct { + bdaddr_t bdaddr; + uint8_t dev_class[3]; + uint8_t link_type; +} __attribute__ ((packed)) evt_conn_request; +#define EVT_CONN_REQUEST_SIZE 10 + +#define EVT_DISCONN_COMPLETE 0x05 +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t reason; +} __attribute__ ((packed)) evt_disconn_complete; +#define EVT_DISCONN_COMPLETE_SIZE 4 + +#define EVT_AUTH_COMPLETE 0x06 +typedef struct { + uint8_t status; + uint16_t handle; +} __attribute__ ((packed)) evt_auth_complete; +#define EVT_AUTH_COMPLETE_SIZE 3 + +#define EVT_REMOTE_NAME_REQ_COMPLETE 0x07 +typedef struct { + uint8_t status; + bdaddr_t bdaddr; + uint8_t name[HCI_MAX_NAME_LENGTH]; +} __attribute__ ((packed)) evt_remote_name_req_complete; +#define EVT_REMOTE_NAME_REQ_COMPLETE_SIZE 255 + +#define EVT_ENCRYPT_CHANGE 0x08 +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t encrypt; +} __attribute__ ((packed)) evt_encrypt_change; +#define EVT_ENCRYPT_CHANGE_SIZE 4 + +#define EVT_CHANGE_CONN_LINK_KEY_COMPLETE 0x09 +typedef struct { + uint8_t status; + uint16_t handle; +} __attribute__ ((packed)) evt_change_conn_link_key_complete; +#define EVT_CHANGE_CONN_LINK_KEY_COMPLETE_SIZE 3 + +#define EVT_MASTER_LINK_KEY_COMPLETE 0x0A +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t key_flag; +} __attribute__ ((packed)) evt_master_link_key_complete; +#define EVT_MASTER_LINK_KEY_COMPLETE_SIZE 4 + +#define EVT_READ_REMOTE_FEATURES_COMPLETE 0x0B +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t features[8]; +} __attribute__ ((packed)) evt_read_remote_features_complete; +#define EVT_READ_REMOTE_FEATURES_COMPLETE_SIZE 11 + +#define EVT_READ_REMOTE_VERSION_COMPLETE 0x0C +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t lmp_ver; + uint16_t manufacturer; + uint16_t lmp_subver; +} __attribute__ ((packed)) evt_read_remote_version_complete; +#define EVT_READ_REMOTE_VERSION_COMPLETE_SIZE 8 + +#define EVT_QOS_SETUP_COMPLETE 0x0D +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t flags; /* Reserved */ + hci_qos qos; +} __attribute__ ((packed)) evt_qos_setup_complete; +#define EVT_QOS_SETUP_COMPLETE_SIZE (4 + HCI_QOS_CP_SIZE) + +#define EVT_CMD_COMPLETE 0x0E +typedef struct { + uint8_t ncmd; + uint16_t opcode; +} __attribute__ ((packed)) evt_cmd_complete; +#define EVT_CMD_COMPLETE_SIZE 3 + +#define EVT_CMD_STATUS 0x0F +typedef struct { + uint8_t status; + uint8_t ncmd; + uint16_t opcode; +} __attribute__ ((packed)) evt_cmd_status; +#define EVT_CMD_STATUS_SIZE 4 + +#define EVT_HARDWARE_ERROR 0x10 +typedef struct { + uint8_t code; +} __attribute__ ((packed)) evt_hardware_error; +#define EVT_HARDWARE_ERROR_SIZE 1 + +#define EVT_FLUSH_OCCURRED 0x11 +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) evt_flush_occured; +#define EVT_FLUSH_OCCURRED_SIZE 2 + +#define EVT_ROLE_CHANGE 0x12 +typedef struct { + uint8_t status; + bdaddr_t bdaddr; + uint8_t role; +} __attribute__ ((packed)) evt_role_change; +#define EVT_ROLE_CHANGE_SIZE 8 + +#define EVT_NUM_COMP_PKTS 0x13 +typedef struct { + uint8_t num_hndl; + /* variable length part */ +} __attribute__ ((packed)) evt_num_comp_pkts; +#define EVT_NUM_COMP_PKTS_SIZE 1 + +#define EVT_MODE_CHANGE 0x14 +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t mode; + uint16_t interval; +} __attribute__ ((packed)) evt_mode_change; +#define EVT_MODE_CHANGE_SIZE 6 + +#define EVT_RETURN_LINK_KEYS 0x15 +typedef struct { + uint8_t num_keys; + /* variable length part */ +} __attribute__ ((packed)) evt_return_link_keys; +#define EVT_RETURN_LINK_KEYS_SIZE 1 + +#define EVT_PIN_CODE_REQ 0x16 +typedef struct { + bdaddr_t bdaddr; +} __attribute__ ((packed)) evt_pin_code_req; +#define EVT_PIN_CODE_REQ_SIZE 6 + +#define EVT_LINK_KEY_REQ 0x17 +typedef struct { + bdaddr_t bdaddr; +} __attribute__ ((packed)) evt_link_key_req; +#define EVT_LINK_KEY_REQ_SIZE 6 + +#define EVT_LINK_KEY_NOTIFY 0x18 +typedef struct { + bdaddr_t bdaddr; + uint8_t link_key[16]; + uint8_t key_type; +} __attribute__ ((packed)) evt_link_key_notify; +#define EVT_LINK_KEY_NOTIFY_SIZE 23 + +#define EVT_LOOPBACK_COMMAND 0x19 + +#define EVT_DATA_BUFFER_OVERFLOW 0x1A +typedef struct { + uint8_t link_type; +} __attribute__ ((packed)) evt_data_buffer_overflow; +#define EVT_DATA_BUFFER_OVERFLOW_SIZE 1 + +#define EVT_MAX_SLOTS_CHANGE 0x1B +typedef struct { + uint16_t handle; + uint8_t max_slots; +} __attribute__ ((packed)) evt_max_slots_change; +#define EVT_MAX_SLOTS_CHANGE_SIZE 3 + +#define EVT_READ_CLOCK_OFFSET_COMPLETE 0x1C +typedef struct { + uint8_t status; + uint16_t handle; + uint16_t clock_offset; +} __attribute__ ((packed)) evt_read_clock_offset_complete; +#define EVT_READ_CLOCK_OFFSET_COMPLETE_SIZE 5 + +#define EVT_CONN_PTYPE_CHANGED 0x1D +typedef struct { + uint8_t status; + uint16_t handle; + uint16_t ptype; +} __attribute__ ((packed)) evt_conn_ptype_changed; +#define EVT_CONN_PTYPE_CHANGED_SIZE 5 + +#define EVT_QOS_VIOLATION 0x1E +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) evt_qos_violation; +#define EVT_QOS_VIOLATION_SIZE 2 + +#define EVT_PSCAN_REP_MODE_CHANGE 0x20 +typedef struct { + bdaddr_t bdaddr; + uint8_t pscan_rep_mode; +} __attribute__ ((packed)) evt_pscan_rep_mode_change; +#define EVT_PSCAN_REP_MODE_CHANGE_SIZE 7 + +#define EVT_FLOW_SPEC_COMPLETE 0x21 +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t flags; + uint8_t direction; + hci_qos qos; +} __attribute__ ((packed)) evt_flow_spec_complete; +#define EVT_FLOW_SPEC_COMPLETE_SIZE (5 + HCI_QOS_CP_SIZE) + +#define EVT_INQUIRY_RESULT_WITH_RSSI 0x22 +typedef struct { + bdaddr_t bdaddr; + uint8_t pscan_rep_mode; + uint8_t pscan_period_mode; + uint8_t dev_class[3]; + uint16_t clock_offset; + int8_t rssi; +} __attribute__ ((packed)) inquiry_info_with_rssi; +#define INQUIRY_INFO_WITH_RSSI_SIZE 14 +typedef struct { + bdaddr_t bdaddr; + uint8_t pscan_rep_mode; + uint8_t pscan_period_mode; + uint8_t pscan_mode; + uint8_t dev_class[3]; + uint16_t clock_offset; + int8_t rssi; +} __attribute__ ((packed)) inquiry_info_with_rssi_and_pscan_mode; +#define INQUIRY_INFO_WITH_RSSI_AND_PSCAN_MODE_SIZE 15 + +#define EVT_READ_REMOTE_EXT_FEATURES_COMPLETE 0x23 +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t page_num; + uint8_t max_page_num; + uint8_t features[8]; +} __attribute__ ((packed)) evt_read_remote_ext_features_complete; +#define EVT_READ_REMOTE_EXT_FEATURES_COMPLETE_SIZE 13 + +#define EVT_SYNC_CONN_COMPLETE 0x2C +typedef struct { + uint8_t status; + uint16_t handle; + bdaddr_t bdaddr; + uint8_t link_type; + uint8_t trans_interval; + uint8_t retrans_window; + uint16_t rx_pkt_len; + uint16_t tx_pkt_len; + uint8_t air_mode; +} __attribute__ ((packed)) evt_sync_conn_complete; +#define EVT_SYNC_CONN_COMPLETE_SIZE 17 + +#define EVT_SYNC_CONN_CHANGED 0x2D +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t trans_interval; + uint8_t retrans_window; + uint16_t rx_pkt_len; + uint16_t tx_pkt_len; +} __attribute__ ((packed)) evt_sync_conn_changed; +#define EVT_SYNC_CONN_CHANGED_SIZE 9 + +#define EVT_SNIFF_SUBRATING 0x2E +typedef struct { + uint8_t status; + uint16_t handle; + uint16_t max_tx_latency; + uint16_t max_rx_latency; + uint16_t min_remote_timeout; + uint16_t min_local_timeout; +} __attribute__ ((packed)) evt_sniff_subrating; +#define EVT_SNIFF_SUBRATING_SIZE 11 + +#define EVT_EXTENDED_INQUIRY_RESULT 0x2F +typedef struct { + bdaddr_t bdaddr; + uint8_t pscan_rep_mode; + uint8_t pscan_period_mode; + uint8_t dev_class[3]; + uint16_t clock_offset; + int8_t rssi; + uint8_t data[HCI_MAX_EIR_LENGTH]; +} __attribute__ ((packed)) extended_inquiry_info; +#define EXTENDED_INQUIRY_INFO_SIZE 254 + +#define EVT_ENCRYPTION_KEY_REFRESH_COMPLETE 0x30 +typedef struct { + uint8_t status; + uint16_t handle; +} __attribute__ ((packed)) evt_encryption_key_refresh_complete; +#define EVT_ENCRYPTION_KEY_REFRESH_COMPLETE_SIZE 3 + +#define EVT_IO_CAPABILITY_REQUEST 0x31 +typedef struct { + bdaddr_t bdaddr; +} __attribute__ ((packed)) evt_io_capability_request; +#define EVT_IO_CAPABILITY_REQUEST_SIZE 6 + +#define EVT_IO_CAPABILITY_RESPONSE 0x32 +typedef struct { + bdaddr_t bdaddr; + uint8_t capability; + uint8_t oob_data; + uint8_t authentication; +} __attribute__ ((packed)) evt_io_capability_response; +#define EVT_IO_CAPABILITY_RESPONSE_SIZE 9 + +#define EVT_USER_CONFIRM_REQUEST 0x33 +typedef struct { + bdaddr_t bdaddr; + uint32_t passkey; +} __attribute__ ((packed)) evt_user_confirm_request; +#define EVT_USER_CONFIRM_REQUEST_SIZE 10 + +#define EVT_USER_PASSKEY_REQUEST 0x34 +typedef struct { + bdaddr_t bdaddr; +} __attribute__ ((packed)) evt_user_passkey_request; +#define EVT_USER_PASSKEY_REQUEST_SIZE 6 + +#define EVT_REMOTE_OOB_DATA_REQUEST 0x35 +typedef struct { + bdaddr_t bdaddr; +} __attribute__ ((packed)) evt_remote_oob_data_request; +#define EVT_REMOTE_OOB_DATA_REQUEST_SIZE 6 + +#define EVT_SIMPLE_PAIRING_COMPLETE 0x36 +typedef struct { + uint8_t status; + bdaddr_t bdaddr; +} __attribute__ ((packed)) evt_simple_pairing_complete; +#define EVT_SIMPLE_PAIRING_COMPLETE_SIZE 7 + +#define EVT_LINK_SUPERVISION_TIMEOUT_CHANGED 0x38 +typedef struct { + uint16_t handle; + uint16_t timeout; +} __attribute__ ((packed)) evt_link_supervision_timeout_changed; +#define EVT_LINK_SUPERVISION_TIMEOUT_CHANGED_SIZE 4 + +#define EVT_ENHANCED_FLUSH_COMPLETE 0x39 +typedef struct { + uint16_t handle; +} __attribute__ ((packed)) evt_enhanced_flush_complete; +#define EVT_ENHANCED_FLUSH_COMPLETE_SIZE 2 + +#define EVT_USER_PASSKEY_NOTIFY 0x3B +typedef struct { + bdaddr_t bdaddr; + uint32_t passkey; +} __attribute__ ((packed)) evt_user_passkey_notify; +#define EVT_USER_PASSKEY_NOTIFY_SIZE 10 + +#define EVT_KEYPRESS_NOTIFY 0x3C +typedef struct { + bdaddr_t bdaddr; + uint8_t type; +} __attribute__ ((packed)) evt_keypress_notify; +#define EVT_KEYPRESS_NOTIFY_SIZE 7 + +#define EVT_REMOTE_HOST_FEATURES_NOTIFY 0x3D +typedef struct { + bdaddr_t bdaddr; + uint8_t features[8]; +} __attribute__ ((packed)) evt_remote_host_features_notify; +#define EVT_REMOTE_HOST_FEATURES_NOTIFY_SIZE 14 + +#define EVT_LE_META_EVENT 0x3E +typedef struct { + uint8_t subevent; + uint8_t data[]; +} __attribute__ ((packed)) evt_le_meta_event; +#define EVT_LE_META_EVENT_SIZE 1 + +#define EVT_LE_CONN_COMPLETE 0x01 +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t role; + uint8_t peer_bdaddr_type; + bdaddr_t peer_bdaddr; + uint16_t interval; + uint16_t latency; + uint16_t supervision_timeout; + uint8_t master_clock_accuracy; +} __attribute__ ((packed)) evt_le_connection_complete; +#define EVT_LE_CONN_COMPLETE_SIZE 18 + +#define EVT_LE_ADVERTISING_REPORT 0x02 +typedef struct { + uint8_t evt_type; + uint8_t bdaddr_type; + bdaddr_t bdaddr; + uint8_t length; + uint8_t data[]; +} __attribute__ ((packed)) le_advertising_info; +#define LE_ADVERTISING_INFO_SIZE 9 + +#define EVT_LE_CONN_UPDATE_COMPLETE 0x03 +typedef struct { + uint8_t status; + uint16_t handle; + uint16_t interval; + uint16_t latency; + uint16_t supervision_timeout; +} __attribute__ ((packed)) evt_le_connection_update_complete; +#define EVT_LE_CONN_UPDATE_COMPLETE_SIZE 9 + +#define EVT_LE_READ_REMOTE_USED_FEATURES_COMPLETE 0x04 +typedef struct { + uint8_t status; + uint16_t handle; + uint8_t features[8]; +} __attribute__ ((packed)) evt_le_read_remote_used_features_complete; +#define EVT_LE_READ_REMOTE_USED_FEATURES_COMPLETE_SIZE 11 + +#define EVT_LE_LTK_REQUEST 0x05 +typedef struct { + uint16_t handle; + uint64_t random; + uint16_t diversifier; +} __attribute__ ((packed)) evt_le_long_term_key_request; +#define EVT_LE_LTK_REQUEST_SIZE 12 + +#define EVT_PHYSICAL_LINK_COMPLETE 0x40 +typedef struct { + uint8_t status; + uint8_t handle; +} __attribute__ ((packed)) evt_physical_link_complete; +#define EVT_PHYSICAL_LINK_COMPLETE_SIZE 2 + +#define EVT_CHANNEL_SELECTED 0x41 + +#define EVT_DISCONNECT_PHYSICAL_LINK_COMPLETE 0x42 +typedef struct { + uint8_t status; + uint8_t handle; + uint8_t reason; +} __attribute__ ((packed)) evt_disconn_physical_link_complete; +#define EVT_DISCONNECT_PHYSICAL_LINK_COMPLETE_SIZE 3 + +#define EVT_PHYSICAL_LINK_LOSS_EARLY_WARNING 0x43 +typedef struct { + uint8_t handle; + uint8_t reason; +} __attribute__ ((packed)) evt_physical_link_loss_warning; +#define EVT_PHYSICAL_LINK_LOSS_WARNING_SIZE 2 + +#define EVT_PHYSICAL_LINK_RECOVERY 0x44 +typedef struct { + uint8_t handle; +} __attribute__ ((packed)) evt_physical_link_recovery; +#define EVT_PHYSICAL_LINK_RECOVERY_SIZE 1 + +#define EVT_LOGICAL_LINK_COMPLETE 0x45 +typedef struct { + uint8_t status; + uint16_t log_handle; + uint8_t handle; + uint8_t tx_flow_id; +} __attribute__ ((packed)) evt_logical_link_complete; +#define EVT_LOGICAL_LINK_COMPLETE_SIZE 5 + +#define EVT_DISCONNECT_LOGICAL_LINK_COMPLETE 0x46 + +#define EVT_FLOW_SPEC_MODIFY_COMPLETE 0x47 +typedef struct { + uint8_t status; + uint16_t handle; +} __attribute__ ((packed)) evt_flow_spec_modify_complete; +#define EVT_FLOW_SPEC_MODIFY_COMPLETE_SIZE 3 + +#define EVT_NUMBER_COMPLETED_BLOCKS 0x48 +typedef struct { + uint16_t handle; + uint16_t num_cmplt_pkts; + uint16_t num_cmplt_blks; +} __attribute__ ((packed)) cmplt_handle; +typedef struct { + uint16_t total_num_blocks; + uint8_t num_handles; + cmplt_handle handles[]; +} __attribute__ ((packed)) evt_num_completed_blocks; + +#define EVT_AMP_STATUS_CHANGE 0x4D +typedef struct { + uint8_t status; + uint8_t amp_status; +} __attribute__ ((packed)) evt_amp_status_change; +#define EVT_AMP_STATUS_CHANGE_SIZE 2 + +#define EVT_TESTING 0xFE + +#define EVT_VENDOR 0xFF + +/* Internal events generated by BlueZ stack */ +#define EVT_STACK_INTERNAL 0xFD +typedef struct { + uint16_t type; + uint8_t data[]; +} __attribute__ ((packed)) evt_stack_internal; +#define EVT_STACK_INTERNAL_SIZE 2 + +#define EVT_SI_DEVICE 0x01 +typedef struct { + uint16_t event; + uint16_t dev_id; +} __attribute__ ((packed)) evt_si_device; +#define EVT_SI_DEVICE_SIZE 4 + +/* -------- HCI Packet structures -------- */ +#define HCI_TYPE_LEN 1 + +typedef struct { + uint16_t opcode; /* OCF & OGF */ + uint8_t plen; +} __attribute__ ((packed)) hci_command_hdr; +#define HCI_COMMAND_HDR_SIZE 3 + +typedef struct { + uint8_t evt; + uint8_t plen; +} __attribute__ ((packed)) hci_event_hdr; +#define HCI_EVENT_HDR_SIZE 2 + +typedef struct { + uint16_t handle; /* Handle & Flags(PB, BC) */ + uint16_t dlen; +} __attribute__ ((packed)) hci_acl_hdr; +#define HCI_ACL_HDR_SIZE 4 + +typedef struct { + uint16_t handle; + uint8_t dlen; +} __attribute__ ((packed)) hci_sco_hdr; +#define HCI_SCO_HDR_SIZE 3 + +typedef struct { + uint16_t device; + uint16_t type; + uint16_t plen; +} __attribute__ ((packed)) hci_msg_hdr; +#define HCI_MSG_HDR_SIZE 6 + +/* Command opcode pack/unpack */ +#define cmd_opcode_pack(ogf, ocf) (uint16_t)((ocf & 0x03ff)|(ogf << 10)) +#define cmd_opcode_ogf(op) (op >> 10) +#define cmd_opcode_ocf(op) (op & 0x03ff) + +/* ACL handle and flags pack/unpack */ +#define acl_handle_pack(h, f) (uint16_t)((h & 0x0fff)|(f << 12)) +#define acl_handle(h) (h & 0x0fff) +#define acl_flags(h) (h >> 12) + +#endif /* _NO_HCI_DEFS */ + +/* HCI Socket options */ +#define HCI_DATA_DIR 1 +#define HCI_FILTER 2 +#define HCI_TIME_STAMP 3 + +/* HCI CMSG flags */ +#define HCI_CMSG_DIR 0x0001 +#define HCI_CMSG_TSTAMP 0x0002 + +struct sockaddr_hci { + sa_family_t hci_family; + unsigned short hci_dev; + unsigned short hci_channel; +}; +#define HCI_DEV_NONE 0xffff + +#define HCI_CHANNEL_RAW 0 +#define HCI_CHANNEL_USER 1 +#define HCI_CHANNEL_MONITOR 2 +#define HCI_CHANNEL_CONTROL 3 +#define HCI_CHANNEL_LOGGING 4 + +struct hci_filter { + uint32_t type_mask; + uint32_t event_mask[2]; + uint16_t opcode; +}; + +#define HCI_FLT_TYPE_BITS 31 +#define HCI_FLT_EVENT_BITS 63 +#define HCI_FLT_OGF_BITS 63 +#define HCI_FLT_OCF_BITS 127 + +/* Ioctl requests structures */ +struct hci_dev_stats { + uint32_t err_rx; + uint32_t err_tx; + uint32_t cmd_tx; + uint32_t evt_rx; + uint32_t acl_tx; + uint32_t acl_rx; + uint32_t sco_tx; + uint32_t sco_rx; + uint32_t byte_rx; + uint32_t byte_tx; +}; + +struct hci_dev_info { + uint16_t dev_id; + char name[8]; + + bdaddr_t bdaddr; + + uint32_t flags; + uint8_t type; + + uint8_t features[8]; + + uint32_t pkt_type; + uint32_t link_policy; + uint32_t link_mode; + + uint16_t acl_mtu; + uint16_t acl_pkts; + uint16_t sco_mtu; + uint16_t sco_pkts; + + struct hci_dev_stats stat; +}; + +struct hci_conn_info { + uint16_t handle; + bdaddr_t bdaddr; + uint8_t type; + uint8_t out; + uint16_t state; + uint32_t link_mode; +}; + +struct hci_dev_req { + uint16_t dev_id; + uint32_t dev_opt; +}; + +struct hci_dev_list_req { + uint16_t dev_num; + struct hci_dev_req dev_req[]; /* hci_dev_req structures */ +}; + +struct hci_conn_list_req { + uint16_t dev_id; + uint16_t conn_num; + struct hci_conn_info conn_info[]; +}; + +struct hci_conn_info_req { + bdaddr_t bdaddr; + uint8_t type; + struct hci_conn_info conn_info[]; +}; + +struct hci_auth_info_req { + bdaddr_t bdaddr; + uint8_t type; +}; + +struct hci_inquiry_req { + uint16_t dev_id; + uint16_t flags; + uint8_t lap[3]; + uint8_t length; + uint8_t num_rsp; +}; +#define IREQ_CACHE_FLUSH 0x0001 + +#ifdef __cplusplus +} +#endif + +#endif /* __HCI_H */ diff --git a/code/application/source/sf_app/tools/blue/include/bluetooth/hci_lib.h b/code/application/source/sf_app/tools/blue/include/bluetooth/hci_lib.h new file mode 100644 index 000000000..6b1a548b5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/bluetooth/hci_lib.h @@ -0,0 +1,229 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2000-2001 Qualcomm Incorporated + * Copyright (C) 2002-2003 Maxim Krasnyansky + * Copyright (C) 2002-2010 Marcel Holtmann + * + * + */ + +#ifndef __HCI_LIB_H +#define __HCI_LIB_H + +#ifdef __cplusplus +extern "C" { +#endif + +struct hci_request { + uint16_t ogf; + uint16_t ocf; + int event; + void *cparam; + int clen; + void *rparam; + int rlen; +}; + +struct hci_version { + uint16_t manufacturer; + uint8_t hci_ver; + uint16_t hci_rev; + uint8_t lmp_ver; + uint16_t lmp_subver; +}; + +int hci_open_dev(int dev_id); +int hci_close_dev(int dd); +int hci_send_cmd(int dd, uint16_t ogf, uint16_t ocf, uint8_t plen, void *param); +int hci_send_req(int dd, struct hci_request *req, int timeout); + +int hci_create_connection(int dd, const bdaddr_t *bdaddr, uint16_t ptype, uint16_t clkoffset, uint8_t rswitch, uint16_t *handle, int to); +int hci_disconnect(int dd, uint16_t handle, uint8_t reason, int to); + +int hci_inquiry(int dev_id, int len, int num_rsp, const uint8_t *lap, inquiry_info **ii, long flags); +int hci_devinfo(int dev_id, struct hci_dev_info *di); +int hci_devba(int dev_id, bdaddr_t *bdaddr); +int hci_devid(const char *str); + +int hci_read_local_name(int dd, int len, char *name, int to); +int hci_write_local_name(int dd, const char *name, int to); +int hci_read_remote_name(int dd, const bdaddr_t *bdaddr, int len, char *name, int to); +int hci_read_remote_name_with_clock_offset(int dd, const bdaddr_t *bdaddr, uint8_t pscan_rep_mode, uint16_t clkoffset, int len, char *name, int to); +int hci_read_remote_name_cancel(int dd, const bdaddr_t *bdaddr, int to); +int hci_read_remote_version(int dd, uint16_t handle, struct hci_version *ver, int to); +int hci_read_remote_features(int dd, uint16_t handle, uint8_t *features, int to); +int hci_read_remote_ext_features(int dd, uint16_t handle, uint8_t page, uint8_t *max_page, uint8_t *features, int to); +int hci_read_clock_offset(int dd, uint16_t handle, uint16_t *clkoffset, int to); +int hci_read_local_version(int dd, struct hci_version *ver, int to); +int hci_read_local_commands(int dd, uint8_t *commands, int to); +int hci_read_local_features(int dd, uint8_t *features, int to); +int hci_read_local_ext_features(int dd, uint8_t page, uint8_t *max_page, uint8_t *features, int to); +int hci_read_bd_addr(int dd, bdaddr_t *bdaddr, int to); +int hci_read_class_of_dev(int dd, uint8_t *cls, int to); +int hci_write_class_of_dev(int dd, uint32_t cls, int to); +int hci_read_voice_setting(int dd, uint16_t *vs, int to); +int hci_write_voice_setting(int dd, uint16_t vs, int to); +int hci_read_current_iac_lap(int dd, uint8_t *num_iac, uint8_t *lap, int to); +int hci_write_current_iac_lap(int dd, uint8_t num_iac, uint8_t *lap, int to); +int hci_read_stored_link_key(int dd, bdaddr_t *bdaddr, uint8_t all, int to); +int hci_write_stored_link_key(int dd, bdaddr_t *bdaddr, uint8_t *key, int to); +int hci_delete_stored_link_key(int dd, bdaddr_t *bdaddr, uint8_t all, int to); +int hci_authenticate_link(int dd, uint16_t handle, int to); +int hci_encrypt_link(int dd, uint16_t handle, uint8_t encrypt, int to); +int hci_change_link_key(int dd, uint16_t handle, int to); +int hci_switch_role(int dd, bdaddr_t *bdaddr, uint8_t role, int to); +int hci_park_mode(int dd, uint16_t handle, uint16_t max_interval, uint16_t min_interval, int to); +int hci_exit_park_mode(int dd, uint16_t handle, int to); +int hci_read_inquiry_scan_type(int dd, uint8_t *type, int to); +int hci_write_inquiry_scan_type(int dd, uint8_t type, int to); +int hci_read_inquiry_mode(int dd, uint8_t *mode, int to); +int hci_write_inquiry_mode(int dd, uint8_t mode, int to); +int hci_read_afh_mode(int dd, uint8_t *mode, int to); +int hci_write_afh_mode(int dd, uint8_t mode, int to); +int hci_read_ext_inquiry_response(int dd, uint8_t *fec, uint8_t *data, int to); +int hci_write_ext_inquiry_response(int dd, uint8_t fec, uint8_t *data, int to); +int hci_read_simple_pairing_mode(int dd, uint8_t *mode, int to); +int hci_write_simple_pairing_mode(int dd, uint8_t mode, int to); +int hci_read_local_oob_data(int dd, uint8_t *hash, uint8_t *randomizer, int to); +int hci_read_inq_response_tx_power_level(int dd, int8_t *level, int to); +int hci_read_inquiry_transmit_power_level(int dd, int8_t *level, int to); +int hci_write_inquiry_transmit_power_level(int dd, int8_t level, int to); +int hci_read_transmit_power_level(int dd, uint16_t handle, uint8_t type, int8_t *level, int to); +int hci_read_link_policy(int dd, uint16_t handle, uint16_t *policy, int to); +int hci_write_link_policy(int dd, uint16_t handle, uint16_t policy, int to); +int hci_read_link_supervision_timeout(int dd, uint16_t handle, uint16_t *timeout, int to); +int hci_write_link_supervision_timeout(int dd, uint16_t handle, uint16_t timeout, int to); +int hci_set_afh_classification(int dd, uint8_t *map, int to); +int hci_read_link_quality(int dd, uint16_t handle, uint8_t *link_quality, int to); +int hci_read_rssi(int dd, uint16_t handle, int8_t *rssi, int to); +int hci_read_afh_map(int dd, uint16_t handle, uint8_t *mode, uint8_t *map, int to); +int hci_read_clock(int dd, uint16_t handle, uint8_t which, uint32_t *clock, uint16_t *accuracy, int to); + +int hci_le_set_scan_enable(int dev_id, uint8_t enable, uint8_t filter_dup, int to); +int hci_le_set_scan_parameters(int dev_id, uint8_t type, uint16_t interval, + uint16_t window, uint8_t own_type, + uint8_t filter, int to); +int hci_le_set_advertise_enable(int dev_id, uint8_t enable, int to); +int hci_le_create_conn(int dd, uint16_t interval, uint16_t window, + uint8_t initiator_filter, uint8_t peer_bdaddr_type, + bdaddr_t peer_bdaddr, uint8_t own_bdaddr_type, + uint16_t min_interval, uint16_t max_interval, + uint16_t latency, uint16_t supervision_timeout, + uint16_t min_ce_length, uint16_t max_ce_length, + uint16_t *handle, int to); +int hci_le_conn_update(int dd, uint16_t handle, uint16_t min_interval, + uint16_t max_interval, uint16_t latency, + uint16_t supervision_timeout, int to); +int hci_le_add_white_list(int dd, const bdaddr_t *bdaddr, uint8_t type, int to); +int hci_le_rm_white_list(int dd, const bdaddr_t *bdaddr, uint8_t type, int to); +int hci_le_read_white_list_size(int dd, uint8_t *size, int to); +int hci_le_clear_white_list(int dd, int to); +int hci_le_add_resolving_list(int dd, const bdaddr_t *bdaddr, uint8_t type, + uint8_t *peer_irk, uint8_t *local_irk, int to); +int hci_le_rm_resolving_list(int dd, const bdaddr_t *bdaddr, uint8_t type, int to); +int hci_le_clear_resolving_list(int dd, int to); +int hci_le_read_resolving_list_size(int dd, uint8_t *size, int to); +int hci_le_set_address_resolution_enable(int dev_id, uint8_t enable, int to); +int hci_le_read_remote_features(int dd, uint16_t handle, uint8_t *features, int to); + +int hci_for_each_dev(int flag, int(*func)(int dd, int dev_id, long arg), long arg); +int hci_get_route(bdaddr_t *bdaddr); + +char *hci_bustostr(int bus); +char *hci_typetostr(int type); +char *hci_dtypetostr(int type); +char *hci_dflagstostr(uint32_t flags); +char *hci_ptypetostr(unsigned int ptype); +int hci_strtoptype(char *str, unsigned int *val); +char *hci_scoptypetostr(unsigned int ptype); +int hci_strtoscoptype(char *str, unsigned int *val); +char *hci_lptostr(unsigned int ptype); +int hci_strtolp(char *str, unsigned int *val); +char *hci_lmtostr(unsigned int ptype); +int hci_strtolm(char *str, unsigned int *val); + +char *hci_cmdtostr(unsigned int cmd); +char *hci_commandstostr(uint8_t *commands, char *pref, int width); + +char *hci_vertostr(unsigned int ver); +int hci_strtover(char *str, unsigned int *ver); +char *lmp_vertostr(unsigned int ver); +int lmp_strtover(char *str, unsigned int *ver); +char *pal_vertostr(unsigned int ver); +int pal_strtover(char *str, unsigned int *ver); + +char *lmp_featurestostr(uint8_t *features, char *pref, int width); + +static inline void hci_set_bit(int nr, void *addr) +{ + *((uint32_t *) addr + (nr >> 5)) |= (1 << (nr & 31)); +} + +static inline void hci_clear_bit(int nr, void *addr) +{ + *((uint32_t *) addr + (nr >> 5)) &= ~(1 << (nr & 31)); +} + +static inline int hci_test_bit(int nr, void *addr) +{ + return *((uint32_t *) addr + (nr >> 5)) & (1 << (nr & 31)); +} + +/* HCI filter tools */ +static inline void hci_filter_clear(struct hci_filter *f) +{ + memset(f, 0, sizeof(*f)); +} +static inline void hci_filter_set_ptype(int t, struct hci_filter *f) +{ + hci_set_bit((t == HCI_VENDOR_PKT) ? 0 : (t & HCI_FLT_TYPE_BITS), &f->type_mask); +} +static inline void hci_filter_clear_ptype(int t, struct hci_filter *f) +{ + hci_clear_bit((t == HCI_VENDOR_PKT) ? 0 : (t & HCI_FLT_TYPE_BITS), &f->type_mask); +} +static inline int hci_filter_test_ptype(int t, struct hci_filter *f) +{ + return hci_test_bit((t == HCI_VENDOR_PKT) ? 0 : (t & HCI_FLT_TYPE_BITS), &f->type_mask); +} +static inline void hci_filter_all_ptypes(struct hci_filter *f) +{ + memset((void *) &f->type_mask, 0xff, sizeof(f->type_mask)); +} +static inline void hci_filter_set_event(int e, struct hci_filter *f) +{ + hci_set_bit((e & HCI_FLT_EVENT_BITS), &f->event_mask); +} +static inline void hci_filter_clear_event(int e, struct hci_filter *f) +{ + hci_clear_bit((e & HCI_FLT_EVENT_BITS), &f->event_mask); +} +static inline int hci_filter_test_event(int e, struct hci_filter *f) +{ + return hci_test_bit((e & HCI_FLT_EVENT_BITS), &f->event_mask); +} +static inline void hci_filter_all_events(struct hci_filter *f) +{ + memset((void *) f->event_mask, 0xff, sizeof(f->event_mask)); +} +static inline void hci_filter_set_opcode(int opcode, struct hci_filter *f) +{ + f->opcode = opcode; +} +static inline void hci_filter_clear_opcode(struct hci_filter *f) +{ + f->opcode = 0; +} +static inline int hci_filter_test_opcode(int opcode, struct hci_filter *f) +{ + return (f->opcode == opcode); +} + +#ifdef __cplusplus +} +#endif + +#endif /* __HCI_LIB_H */ diff --git a/code/application/source/sf_app/tools/blue/include/bluetooth/hidp.h b/code/application/source/sf_app/tools/blue/include/bluetooth/hidp.h new file mode 100644 index 000000000..da42a1b9e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/bluetooth/hidp.h @@ -0,0 +1,72 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2003-2010 Marcel Holtmann + * + * + */ + +#ifndef __HIDP_H +#define __HIDP_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* HIDP defaults */ +#define HIDP_MINIMUM_MTU 48 +#define HIDP_DEFAULT_MTU 48 + +/* HIDP ioctl defines */ +#define HIDPCONNADD _IOW('H', 200, int) +#define HIDPCONNDEL _IOW('H', 201, int) +#define HIDPGETCONNLIST _IOR('H', 210, int) +#define HIDPGETCONNINFO _IOR('H', 211, int) + +#define HIDP_VIRTUAL_CABLE_UNPLUG 0 +#define HIDP_BOOT_PROTOCOL_MODE 1 +#define HIDP_BLUETOOTH_VENDOR_ID 9 + +struct hidp_connadd_req { + int ctrl_sock; /* Connected control socket */ + int intr_sock; /* Connected interrupt socket */ + uint16_t parser; /* Parser version */ + uint16_t rd_size; /* Report descriptor size */ + uint8_t *rd_data; /* Report descriptor data */ + uint8_t country; + uint8_t subclass; + uint16_t vendor; + uint16_t product; + uint16_t version; + uint32_t flags; + uint32_t idle_to; + char name[128]; /* Device name */ +}; + +struct hidp_conndel_req { + bdaddr_t bdaddr; + uint32_t flags; +}; + +struct hidp_conninfo { + bdaddr_t bdaddr; + uint32_t flags; + uint16_t state; + uint16_t vendor; + uint16_t product; + uint16_t version; + char name[128]; +}; + +struct hidp_connlist_req { + uint32_t cnum; + struct hidp_conninfo *ci; +}; + +#ifdef __cplusplus +} +#endif + +#endif /* __HIDP_H */ diff --git a/code/application/source/sf_app/tools/blue/include/bluetooth/l2cap.h b/code/application/source/sf_app/tools/blue/include/bluetooth/l2cap.h new file mode 100644 index 000000000..9197800df --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/bluetooth/l2cap.h @@ -0,0 +1,266 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2000-2001 Qualcomm Incorporated + * Copyright (C) 2002-2003 Maxim Krasnyansky + * Copyright (C) 2002-2010 Marcel Holtmann + * Copyright (c) 2012 Code Aurora Forum. All rights reserved. + * + * + */ + +#ifndef __L2CAP_H +#define __L2CAP_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +/* L2CAP defaults */ +#define L2CAP_DEFAULT_MTU 672 +#define L2CAP_DEFAULT_FLUSH_TO 0xFFFF + +/* L2CAP socket address */ +struct sockaddr_l2 { + sa_family_t l2_family; + unsigned short l2_psm; + bdaddr_t l2_bdaddr; + unsigned short l2_cid; + uint8_t l2_bdaddr_type; +}; + +/* L2CAP socket options */ +#define L2CAP_OPTIONS 0x01 +struct l2cap_options { + uint16_t omtu; + uint16_t imtu; + uint16_t flush_to; + uint8_t mode; + uint8_t fcs; + uint8_t max_tx; + uint16_t txwin_size; +}; + +#define L2CAP_CONNINFO 0x02 +struct l2cap_conninfo { + uint16_t hci_handle; + uint8_t dev_class[3]; +}; + +#define L2CAP_LM 0x03 +#define L2CAP_LM_MASTER 0x0001 +#define L2CAP_LM_AUTH 0x0002 +#define L2CAP_LM_ENCRYPT 0x0004 +#define L2CAP_LM_TRUSTED 0x0008 +#define L2CAP_LM_RELIABLE 0x0010 +#define L2CAP_LM_SECURE 0x0020 + +/* L2CAP command codes */ +#define L2CAP_COMMAND_REJ 0x01 +#define L2CAP_CONN_REQ 0x02 +#define L2CAP_CONN_RSP 0x03 +#define L2CAP_CONF_REQ 0x04 +#define L2CAP_CONF_RSP 0x05 +#define L2CAP_DISCONN_REQ 0x06 +#define L2CAP_DISCONN_RSP 0x07 +#define L2CAP_ECHO_REQ 0x08 +#define L2CAP_ECHO_RSP 0x09 +#define L2CAP_INFO_REQ 0x0a +#define L2CAP_INFO_RSP 0x0b +#define L2CAP_CREATE_REQ 0x0c +#define L2CAP_CREATE_RSP 0x0d +#define L2CAP_MOVE_REQ 0x0e +#define L2CAP_MOVE_RSP 0x0f +#define L2CAP_MOVE_CFM 0x10 +#define L2CAP_MOVE_CFM_RSP 0x11 + +/* L2CAP extended feature mask */ +#define L2CAP_FEAT_FLOWCTL 0x00000001 +#define L2CAP_FEAT_RETRANS 0x00000002 +#define L2CAP_FEAT_BIDIR_QOS 0x00000004 +#define L2CAP_FEAT_ERTM 0x00000008 +#define L2CAP_FEAT_STREAMING 0x00000010 +#define L2CAP_FEAT_FCS 0x00000020 +#define L2CAP_FEAT_EXT_FLOW 0x00000040 +#define L2CAP_FEAT_FIXED_CHAN 0x00000080 +#define L2CAP_FEAT_EXT_WINDOW 0x00000100 +#define L2CAP_FEAT_UCD 0x00000200 + +/* L2CAP fixed channels */ +#define L2CAP_FC_L2CAP 0x02 +#define L2CAP_FC_CONNLESS 0x04 +#define L2CAP_FC_A2MP 0x08 + +/* L2CAP structures */ +typedef struct { + uint16_t len; + uint16_t cid; +} __attribute__ ((packed)) l2cap_hdr; +#define L2CAP_HDR_SIZE 4 + +typedef struct { + uint8_t code; + uint8_t ident; + uint16_t len; +} __attribute__ ((packed)) l2cap_cmd_hdr; +#define L2CAP_CMD_HDR_SIZE 4 + +typedef struct { + uint16_t reason; +} __attribute__ ((packed)) l2cap_cmd_rej; +#define L2CAP_CMD_REJ_SIZE 2 + +typedef struct { + uint16_t psm; + uint16_t scid; +} __attribute__ ((packed)) l2cap_conn_req; +#define L2CAP_CONN_REQ_SIZE 4 + +typedef struct { + uint16_t dcid; + uint16_t scid; + uint16_t result; + uint16_t status; +} __attribute__ ((packed)) l2cap_conn_rsp; +#define L2CAP_CONN_RSP_SIZE 8 + +/* connect result */ +#define L2CAP_CR_SUCCESS 0x0000 +#define L2CAP_CR_PEND 0x0001 +#define L2CAP_CR_BAD_PSM 0x0002 +#define L2CAP_CR_SEC_BLOCK 0x0003 +#define L2CAP_CR_NO_MEM 0x0004 + +/* connect status */ +#define L2CAP_CS_NO_INFO 0x0000 +#define L2CAP_CS_AUTHEN_PEND 0x0001 +#define L2CAP_CS_AUTHOR_PEND 0x0002 + +typedef struct { + uint16_t dcid; + uint16_t flags; + uint8_t data[0]; +} __attribute__ ((packed)) l2cap_conf_req; +#define L2CAP_CONF_REQ_SIZE 4 + +typedef struct { + uint16_t scid; + uint16_t flags; + uint16_t result; + uint8_t data[0]; +} __attribute__ ((packed)) l2cap_conf_rsp; +#define L2CAP_CONF_RSP_SIZE 6 + +#define L2CAP_CONF_SUCCESS 0x0000 +#define L2CAP_CONF_UNACCEPT 0x0001 +#define L2CAP_CONF_REJECT 0x0002 +#define L2CAP_CONF_UNKNOWN 0x0003 +#define L2CAP_CONF_PENDING 0x0004 +#define L2CAP_CONF_EFS_REJECT 0x0005 + +typedef struct { + uint8_t type; + uint8_t len; + uint8_t val[0]; +} __attribute__ ((packed)) l2cap_conf_opt; +#define L2CAP_CONF_OPT_SIZE 2 + +#define L2CAP_CONF_MTU 0x01 +#define L2CAP_CONF_FLUSH_TO 0x02 +#define L2CAP_CONF_QOS 0x03 +#define L2CAP_CONF_RFC 0x04 +#define L2CAP_CONF_FCS 0x05 +#define L2CAP_CONF_EFS 0x06 +#define L2CAP_CONF_EWS 0x07 + +#define L2CAP_CONF_MAX_SIZE 22 + +#define L2CAP_MODE_BASIC 0x00 +#define L2CAP_MODE_RETRANS 0x01 +#define L2CAP_MODE_FLOWCTL 0x02 +#define L2CAP_MODE_ERTM 0x03 +#define L2CAP_MODE_STREAMING 0x04 + +#define L2CAP_SERVTYPE_NOTRAFFIC 0x00 +#define L2CAP_SERVTYPE_BESTEFFORT 0x01 +#define L2CAP_SERVTYPE_GUARANTEED 0x02 + +typedef struct { + uint16_t dcid; + uint16_t scid; +} __attribute__ ((packed)) l2cap_disconn_req; +#define L2CAP_DISCONN_REQ_SIZE 4 + +typedef struct { + uint16_t dcid; + uint16_t scid; +} __attribute__ ((packed)) l2cap_disconn_rsp; +#define L2CAP_DISCONN_RSP_SIZE 4 + +typedef struct { + uint16_t type; +} __attribute__ ((packed)) l2cap_info_req; +#define L2CAP_INFO_REQ_SIZE 2 + +typedef struct { + uint16_t type; + uint16_t result; + uint8_t data[0]; +} __attribute__ ((packed)) l2cap_info_rsp; +#define L2CAP_INFO_RSP_SIZE 4 + +/* info type */ +#define L2CAP_IT_CL_MTU 0x0001 +#define L2CAP_IT_FEAT_MASK 0x0002 + +/* info result */ +#define L2CAP_IR_SUCCESS 0x0000 +#define L2CAP_IR_NOTSUPP 0x0001 + +typedef struct { + uint16_t psm; + uint16_t scid; + uint8_t id; +} __attribute__ ((packed)) l2cap_create_req; +#define L2CAP_CREATE_REQ_SIZE 5 + +typedef struct { + uint16_t dcid; + uint16_t scid; + uint16_t result; + uint16_t status; +} __attribute__ ((packed)) l2cap_create_rsp; +#define L2CAP_CREATE_RSP_SIZE 8 + +typedef struct { + uint16_t icid; + uint8_t id; +} __attribute__ ((packed)) l2cap_move_req; +#define L2CAP_MOVE_REQ_SIZE 3 + +typedef struct { + uint16_t icid; + uint16_t result; +} __attribute__ ((packed)) l2cap_move_rsp; +#define L2CAP_MOVE_RSP_SIZE 4 + +typedef struct { + uint16_t icid; + uint16_t result; +} __attribute__ ((packed)) l2cap_move_cfm; +#define L2CAP_MOVE_CFM_SIZE 4 + +typedef struct { + uint16_t icid; +} __attribute__ ((packed)) l2cap_move_cfm_rsp; +#define L2CAP_MOVE_CFM_RSP_SIZE 2 + +#ifdef __cplusplus +} +#endif + +#endif /* __L2CAP_H */ diff --git a/code/application/source/sf_app/tools/blue/include/bluetooth/rfcomm.h b/code/application/source/sf_app/tools/blue/include/bluetooth/rfcomm.h new file mode 100644 index 000000000..0347ddc36 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/bluetooth/rfcomm.h @@ -0,0 +1,86 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2002-2003 Maxim Krasnyansky + * Copyright (C) 2002-2010 Marcel Holtmann + * + * + */ + +#ifndef __RFCOMM_H +#define __RFCOMM_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +/* RFCOMM defaults */ +#define RFCOMM_DEFAULT_MTU 127 + +#define RFCOMM_PSM 3 + +/* RFCOMM socket address */ +struct sockaddr_rc { + sa_family_t rc_family; + bdaddr_t rc_bdaddr; + uint8_t rc_channel; +}; + +/* RFCOMM socket options */ +#define RFCOMM_CONNINFO 0x02 +struct rfcomm_conninfo { + uint16_t hci_handle; + uint8_t dev_class[3]; +}; + +#define RFCOMM_LM 0x03 +#define RFCOMM_LM_MASTER 0x0001 +#define RFCOMM_LM_AUTH 0x0002 +#define RFCOMM_LM_ENCRYPT 0x0004 +#define RFCOMM_LM_TRUSTED 0x0008 +#define RFCOMM_LM_RELIABLE 0x0010 +#define RFCOMM_LM_SECURE 0x0020 + +/* RFCOMM TTY support */ +#define RFCOMM_MAX_DEV 256 + +#define RFCOMMCREATEDEV _IOW('R', 200, int) +#define RFCOMMRELEASEDEV _IOW('R', 201, int) +#define RFCOMMGETDEVLIST _IOR('R', 210, int) +#define RFCOMMGETDEVINFO _IOR('R', 211, int) + +struct rfcomm_dev_req { + int16_t dev_id; + uint32_t flags; + bdaddr_t src; + bdaddr_t dst; + uint8_t channel; +}; +#define RFCOMM_REUSE_DLC 0 +#define RFCOMM_RELEASE_ONHUP 1 +#define RFCOMM_HANGUP_NOW 2 +#define RFCOMM_TTY_ATTACHED 3 + +struct rfcomm_dev_info { + int16_t id; + uint32_t flags; + uint16_t state; + bdaddr_t src; + bdaddr_t dst; + uint8_t channel; +}; + +struct rfcomm_dev_list_req { + uint16_t dev_num; + struct rfcomm_dev_info dev_info[0]; +}; + +#ifdef __cplusplus +} +#endif + +#endif /* __RFCOMM_H */ diff --git a/code/application/source/sf_app/tools/blue/include/bluetooth/sco.h b/code/application/source/sf_app/tools/blue/include/bluetooth/sco.h new file mode 100644 index 000000000..307d81f81 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/bluetooth/sco.h @@ -0,0 +1,49 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2002-2003 Maxim Krasnyansky + * Copyright (C) 2002-2010 Marcel Holtmann + * + * + */ + +#ifndef __SCO_H +#define __SCO_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* SCO defaults */ +#define SCO_DEFAULT_MTU 500 +#define SCO_DEFAULT_FLUSH_TO 0xFFFF + +#define SCO_CONN_TIMEOUT (HZ * 40) +#define SCO_DISCONN_TIMEOUT (HZ * 2) +#define SCO_CONN_IDLE_TIMEOUT (HZ * 60) + +/* SCO socket address */ +struct sockaddr_sco { + sa_family_t sco_family; + bdaddr_t sco_bdaddr; +}; + +/* set/get sockopt defines */ +#define SCO_OPTIONS 0x01 +struct sco_options { + uint16_t mtu; +}; + +#define SCO_CONNINFO 0x02 +struct sco_conninfo { + uint16_t hci_handle; + uint8_t dev_class[3]; +}; + +#ifdef __cplusplus +} +#endif + +#endif /* __SCO_H */ diff --git a/code/application/source/sf_app/tools/blue/include/bluetooth/sdp.h b/code/application/source/sf_app/tools/blue/include/bluetooth/sdp.h new file mode 100644 index 000000000..6f05d4321 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/bluetooth/sdp.h @@ -0,0 +1,529 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2001-2002 Nokia Corporation + * Copyright (C) 2002-2003 Maxim Krasnyansky + * Copyright (C) 2002-2010 Marcel Holtmann + * Copyright (C) 2002-2003 Stephen Crane + * + * + */ + +#ifndef __SDP_H +#define __SDP_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +#define SDP_UNIX_PATH "/var/run/sdp" +#define SDP_RESPONSE_TIMEOUT 20 +#define SDP_REQ_BUFFER_SIZE 2048 +#define SDP_RSP_BUFFER_SIZE 65535 +#define SDP_PDU_CHUNK_SIZE 1024 + +/* + * All definitions are based on Bluetooth Assigned Numbers + * of the Bluetooth Specification + */ +#define SDP_PSM 0x0001 + +/* + * Protocol UUIDs + */ +#define SDP_UUID 0x0001 +#define UDP_UUID 0x0002 +#define RFCOMM_UUID 0x0003 +#define TCP_UUID 0x0004 +#define TCS_BIN_UUID 0x0005 +#define TCS_AT_UUID 0x0006 +#define ATT_UUID 0x0007 +#define OBEX_UUID 0x0008 +#define IP_UUID 0x0009 +#define FTP_UUID 0x000a +#define HTTP_UUID 0x000c +#define WSP_UUID 0x000e +#define BNEP_UUID 0x000f +#define UPNP_UUID 0x0010 +#define HIDP_UUID 0x0011 +#define HCRP_CTRL_UUID 0x0012 +#define HCRP_DATA_UUID 0x0014 +#define HCRP_NOTE_UUID 0x0016 +#define AVCTP_UUID 0x0017 +#define AVDTP_UUID 0x0019 +#define CMTP_UUID 0x001b +#define UDI_UUID 0x001d +#define MCAP_CTRL_UUID 0x001e +#define MCAP_DATA_UUID 0x001f +#define L2CAP_UUID 0x0100 + +/* + * Service class identifiers of standard services and service groups + */ +#define SDP_SERVER_SVCLASS_ID 0x1000 +#define BROWSE_GRP_DESC_SVCLASS_ID 0x1001 +#define PUBLIC_BROWSE_GROUP 0x1002 +#define SERIAL_PORT_SVCLASS_ID 0x1101 +#define LAN_ACCESS_SVCLASS_ID 0x1102 +#define DIALUP_NET_SVCLASS_ID 0x1103 +#define IRMC_SYNC_SVCLASS_ID 0x1104 +#define OBEX_OBJPUSH_SVCLASS_ID 0x1105 +#define OBEX_FILETRANS_SVCLASS_ID 0x1106 +#define IRMC_SYNC_CMD_SVCLASS_ID 0x1107 +#define HEADSET_SVCLASS_ID 0x1108 +#define CORDLESS_TELEPHONY_SVCLASS_ID 0x1109 +#define AUDIO_SOURCE_SVCLASS_ID 0x110a +#define AUDIO_SINK_SVCLASS_ID 0x110b +#define AV_REMOTE_TARGET_SVCLASS_ID 0x110c +#define ADVANCED_AUDIO_SVCLASS_ID 0x110d +#define AV_REMOTE_SVCLASS_ID 0x110e +#define AV_REMOTE_CONTROLLER_SVCLASS_ID 0x110f +#define INTERCOM_SVCLASS_ID 0x1110 +#define FAX_SVCLASS_ID 0x1111 +#define HEADSET_AGW_SVCLASS_ID 0x1112 +#define WAP_SVCLASS_ID 0x1113 +#define WAP_CLIENT_SVCLASS_ID 0x1114 +#define PANU_SVCLASS_ID 0x1115 +#define NAP_SVCLASS_ID 0x1116 +#define GN_SVCLASS_ID 0x1117 +#define DIRECT_PRINTING_SVCLASS_ID 0x1118 +#define REFERENCE_PRINTING_SVCLASS_ID 0x1119 +#define IMAGING_SVCLASS_ID 0x111a +#define IMAGING_RESPONDER_SVCLASS_ID 0x111b +#define IMAGING_ARCHIVE_SVCLASS_ID 0x111c +#define IMAGING_REFOBJS_SVCLASS_ID 0x111d +#define HANDSFREE_SVCLASS_ID 0x111e +#define HANDSFREE_AGW_SVCLASS_ID 0x111f +#define DIRECT_PRT_REFOBJS_SVCLASS_ID 0x1120 +#define REFLECTED_UI_SVCLASS_ID 0x1121 +#define BASIC_PRINTING_SVCLASS_ID 0x1122 +#define PRINTING_STATUS_SVCLASS_ID 0x1123 +#define HID_SVCLASS_ID 0x1124 +#define HCR_SVCLASS_ID 0x1125 +#define HCR_PRINT_SVCLASS_ID 0x1126 +#define HCR_SCAN_SVCLASS_ID 0x1127 +#define CIP_SVCLASS_ID 0x1128 +#define VIDEO_CONF_GW_SVCLASS_ID 0x1129 +#define UDI_MT_SVCLASS_ID 0x112a +#define UDI_TA_SVCLASS_ID 0x112b +#define AV_SVCLASS_ID 0x112c +#define SAP_SVCLASS_ID 0x112d +#define PBAP_PCE_SVCLASS_ID 0x112e +#define PBAP_PSE_SVCLASS_ID 0x112f +#define PBAP_SVCLASS_ID 0x1130 +#define MAP_MSE_SVCLASS_ID 0x1132 +#define MAP_MCE_SVCLASS_ID 0x1133 +#define MAP_SVCLASS_ID 0x1134 +#define GNSS_SVCLASS_ID 0x1135 +#define GNSS_SERVER_SVCLASS_ID 0x1136 +#define MPS_SC_SVCLASS_ID 0x113A +#define MPS_SVCLASS_ID 0x113B +#define PNP_INFO_SVCLASS_ID 0x1200 +#define GENERIC_NETWORKING_SVCLASS_ID 0x1201 +#define GENERIC_FILETRANS_SVCLASS_ID 0x1202 +#define GENERIC_AUDIO_SVCLASS_ID 0x1203 +#define GENERIC_TELEPHONY_SVCLASS_ID 0x1204 +#define UPNP_SVCLASS_ID 0x1205 +#define UPNP_IP_SVCLASS_ID 0x1206 +#define UPNP_PAN_SVCLASS_ID 0x1300 +#define UPNP_LAP_SVCLASS_ID 0x1301 +#define UPNP_L2CAP_SVCLASS_ID 0x1302 +#define VIDEO_SOURCE_SVCLASS_ID 0x1303 +#define VIDEO_SINK_SVCLASS_ID 0x1304 +#define VIDEO_DISTRIBUTION_SVCLASS_ID 0x1305 +#define HDP_SVCLASS_ID 0x1400 +#define HDP_SOURCE_SVCLASS_ID 0x1401 +#define HDP_SINK_SVCLASS_ID 0x1402 +#define GENERIC_ACCESS_SVCLASS_ID 0x1800 +#define GENERIC_ATTRIB_SVCLASS_ID 0x1801 +#define APPLE_AGENT_SVCLASS_ID 0x2112 + +/* + * Standard profile descriptor identifiers; note these + * may be identical to some of the service classes defined above + */ +#define SDP_SERVER_PROFILE_ID SDP_SERVER_SVCLASS_ID +#define BROWSE_GRP_DESC_PROFILE_ID BROWSE_GRP_DESC_SVCLASS_ID +#define SERIAL_PORT_PROFILE_ID SERIAL_PORT_SVCLASS_ID +#define LAN_ACCESS_PROFILE_ID LAN_ACCESS_SVCLASS_ID +#define DIALUP_NET_PROFILE_ID DIALUP_NET_SVCLASS_ID +#define IRMC_SYNC_PROFILE_ID IRMC_SYNC_SVCLASS_ID +#define OBEX_OBJPUSH_PROFILE_ID OBEX_OBJPUSH_SVCLASS_ID +#define OBEX_FILETRANS_PROFILE_ID OBEX_FILETRANS_SVCLASS_ID +#define IRMC_SYNC_CMD_PROFILE_ID IRMC_SYNC_CMD_SVCLASS_ID +#define HEADSET_PROFILE_ID HEADSET_SVCLASS_ID +#define CORDLESS_TELEPHONY_PROFILE_ID CORDLESS_TELEPHONY_SVCLASS_ID +#define AUDIO_SOURCE_PROFILE_ID AUDIO_SOURCE_SVCLASS_ID +#define AUDIO_SINK_PROFILE_ID AUDIO_SINK_SVCLASS_ID +#define AV_REMOTE_TARGET_PROFILE_ID AV_REMOTE_TARGET_SVCLASS_ID +#define ADVANCED_AUDIO_PROFILE_ID ADVANCED_AUDIO_SVCLASS_ID +#define AV_REMOTE_PROFILE_ID AV_REMOTE_SVCLASS_ID +#define INTERCOM_PROFILE_ID INTERCOM_SVCLASS_ID +#define FAX_PROFILE_ID FAX_SVCLASS_ID +#define HEADSET_AGW_PROFILE_ID HEADSET_AGW_SVCLASS_ID +#define WAP_PROFILE_ID WAP_SVCLASS_ID +#define WAP_CLIENT_PROFILE_ID WAP_CLIENT_SVCLASS_ID +#define PANU_PROFILE_ID PANU_SVCLASS_ID +#define NAP_PROFILE_ID NAP_SVCLASS_ID +#define GN_PROFILE_ID GN_SVCLASS_ID +#define DIRECT_PRINTING_PROFILE_ID DIRECT_PRINTING_SVCLASS_ID +#define REFERENCE_PRINTING_PROFILE_ID REFERENCE_PRINTING_SVCLASS_ID +#define IMAGING_PROFILE_ID IMAGING_SVCLASS_ID +#define IMAGING_RESPONDER_PROFILE_ID IMAGING_RESPONDER_SVCLASS_ID +#define IMAGING_ARCHIVE_PROFILE_ID IMAGING_ARCHIVE_SVCLASS_ID +#define IMAGING_REFOBJS_PROFILE_ID IMAGING_REFOBJS_SVCLASS_ID +#define HANDSFREE_PROFILE_ID HANDSFREE_SVCLASS_ID +#define HANDSFREE_AGW_PROFILE_ID HANDSFREE_AGW_SVCLASS_ID +#define DIRECT_PRT_REFOBJS_PROFILE_ID DIRECT_PRT_REFOBJS_SVCLASS_ID +#define REFLECTED_UI_PROFILE_ID REFLECTED_UI_SVCLASS_ID +#define BASIC_PRINTING_PROFILE_ID BASIC_PRINTING_SVCLASS_ID +#define PRINTING_STATUS_PROFILE_ID PRINTING_STATUS_SVCLASS_ID +#define HID_PROFILE_ID HID_SVCLASS_ID +#define HCR_PROFILE_ID HCR_SCAN_SVCLASS_ID +#define HCR_PRINT_PROFILE_ID HCR_PRINT_SVCLASS_ID +#define HCR_SCAN_PROFILE_ID HCR_SCAN_SVCLASS_ID +#define CIP_PROFILE_ID CIP_SVCLASS_ID +#define VIDEO_CONF_GW_PROFILE_ID VIDEO_CONF_GW_SVCLASS_ID +#define UDI_MT_PROFILE_ID UDI_MT_SVCLASS_ID +#define UDI_TA_PROFILE_ID UDI_TA_SVCLASS_ID +#define AV_PROFILE_ID AV_SVCLASS_ID +#define SAP_PROFILE_ID SAP_SVCLASS_ID +#define PBAP_PCE_PROFILE_ID PBAP_PCE_SVCLASS_ID +#define PBAP_PSE_PROFILE_ID PBAP_PSE_SVCLASS_ID +#define PBAP_PROFILE_ID PBAP_SVCLASS_ID +#define MAP_PROFILE_ID MAP_SVCLASS_ID +#define PNP_INFO_PROFILE_ID PNP_INFO_SVCLASS_ID +#define GENERIC_NETWORKING_PROFILE_ID GENERIC_NETWORKING_SVCLASS_ID +#define GENERIC_FILETRANS_PROFILE_ID GENERIC_FILETRANS_SVCLASS_ID +#define GENERIC_AUDIO_PROFILE_ID GENERIC_AUDIO_SVCLASS_ID +#define GENERIC_TELEPHONY_PROFILE_ID GENERIC_TELEPHONY_SVCLASS_ID +#define UPNP_PROFILE_ID UPNP_SVCLASS_ID +#define UPNP_IP_PROFILE_ID UPNP_IP_SVCLASS_ID +#define UPNP_PAN_PROFILE_ID UPNP_PAN_SVCLASS_ID +#define UPNP_LAP_PROFILE_ID UPNP_LAP_SVCLASS_ID +#define UPNP_L2CAP_PROFILE_ID UPNP_L2CAP_SVCLASS_ID +#define VIDEO_SOURCE_PROFILE_ID VIDEO_SOURCE_SVCLASS_ID +#define VIDEO_SINK_PROFILE_ID VIDEO_SINK_SVCLASS_ID +#define VIDEO_DISTRIBUTION_PROFILE_ID VIDEO_DISTRIBUTION_SVCLASS_ID +#define HDP_PROFILE_ID HDP_SVCLASS_ID +#define HDP_SOURCE_PROFILE_ID HDP_SOURCE_SVCLASS_ID +#define HDP_SINK_PROFILE_ID HDP_SINK_SVCLASS_ID +#define GENERIC_ACCESS_PROFILE_ID GENERIC_ACCESS_SVCLASS_ID +#define GENERIC_ATTRIB_PROFILE_ID GENERIC_ATTRIB_SVCLASS_ID +#define APPLE_AGENT_PROFILE_ID APPLE_AGENT_SVCLASS_ID +#define MPS_PROFILE_ID MPS_SC_SVCLASS_ID + +/* + * Compatibility macros for the old MDP acronym + */ +#define MDP_SVCLASS_ID HDP_SVCLASS_ID +#define MDP_SOURCE_SVCLASS_ID HDP_SOURCE_SVCLASS_ID +#define MDP_SINK_SVCLASS_ID HDP_SINK_SVCLASS_ID +#define MDP_PROFILE_ID HDP_PROFILE_ID +#define MDP_SOURCE_PROFILE_ID HDP_SOURCE_PROFILE_ID +#define MDP_SINK_PROFILE_ID HDP_SINK_PROFILE_ID + +/* + * Attribute identifier codes + */ +#define SDP_SERVER_RECORD_HANDLE 0x0000 + +/* + * Possible values for attribute-id are listed below. + * See SDP Spec, section "Service Attribute Definitions" for more details. + */ +#define SDP_ATTR_RECORD_HANDLE 0x0000 +#define SDP_ATTR_SVCLASS_ID_LIST 0x0001 +#define SDP_ATTR_RECORD_STATE 0x0002 +#define SDP_ATTR_SERVICE_ID 0x0003 +#define SDP_ATTR_PROTO_DESC_LIST 0x0004 +#define SDP_ATTR_BROWSE_GRP_LIST 0x0005 +#define SDP_ATTR_LANG_BASE_ATTR_ID_LIST 0x0006 +#define SDP_ATTR_SVCINFO_TTL 0x0007 +#define SDP_ATTR_SERVICE_AVAILABILITY 0x0008 +#define SDP_ATTR_PFILE_DESC_LIST 0x0009 +#define SDP_ATTR_DOC_URL 0x000a +#define SDP_ATTR_CLNT_EXEC_URL 0x000b +#define SDP_ATTR_ICON_URL 0x000c +#define SDP_ATTR_ADD_PROTO_DESC_LIST 0x000d + +#define SDP_ATTR_GROUP_ID 0x0200 +#define SDP_ATTR_IP_SUBNET 0x0200 +#define SDP_ATTR_VERSION_NUM_LIST 0x0200 +#define SDP_ATTR_SUPPORTED_FEATURES_LIST 0x0200 +#define SDP_ATTR_GOEP_L2CAP_PSM 0x0200 +#define SDP_ATTR_SVCDB_STATE 0x0201 + +#define SDP_ATTR_MPSD_SCENARIOS 0x0200 +#define SDP_ATTR_MPMD_SCENARIOS 0x0201 +#define SDP_ATTR_MPS_DEPENDENCIES 0x0202 + +#define SDP_ATTR_SERVICE_VERSION 0x0300 +#define SDP_ATTR_EXTERNAL_NETWORK 0x0301 +#define SDP_ATTR_SUPPORTED_DATA_STORES_LIST 0x0301 +#define SDP_ATTR_DATA_EXCHANGE_SPEC 0x0301 +#define SDP_ATTR_NETWORK 0x0301 +#define SDP_ATTR_FAX_CLASS1_SUPPORT 0x0302 +#define SDP_ATTR_REMOTE_AUDIO_VOLUME_CONTROL 0x0302 +#define SDP_ATTR_MCAP_SUPPORTED_PROCEDURES 0x0302 +#define SDP_ATTR_FAX_CLASS20_SUPPORT 0x0303 +#define SDP_ATTR_SUPPORTED_FORMATS_LIST 0x0303 +#define SDP_ATTR_FAX_CLASS2_SUPPORT 0x0304 +#define SDP_ATTR_AUDIO_FEEDBACK_SUPPORT 0x0305 +#define SDP_ATTR_NETWORK_ADDRESS 0x0306 +#define SDP_ATTR_WAP_GATEWAY 0x0307 +#define SDP_ATTR_HOMEPAGE_URL 0x0308 +#define SDP_ATTR_WAP_STACK_TYPE 0x0309 +#define SDP_ATTR_SECURITY_DESC 0x030a +#define SDP_ATTR_NET_ACCESS_TYPE 0x030b +#define SDP_ATTR_MAX_NET_ACCESSRATE 0x030c +#define SDP_ATTR_IP4_SUBNET 0x030d +#define SDP_ATTR_IP6_SUBNET 0x030e +#define SDP_ATTR_SUPPORTED_CAPABILITIES 0x0310 +#define SDP_ATTR_SUPPORTED_FEATURES 0x0311 +#define SDP_ATTR_SUPPORTED_FUNCTIONS 0x0312 +#define SDP_ATTR_TOTAL_IMAGING_DATA_CAPACITY 0x0313 +#define SDP_ATTR_SUPPORTED_REPOSITORIES 0x0314 +#define SDP_ATTR_MAS_INSTANCE_ID 0x0315 +#define SDP_ATTR_SUPPORTED_MESSAGE_TYPES 0x0316 +#define SDP_ATTR_PBAP_SUPPORTED_FEATURES 0x0317 +#define SDP_ATTR_MAP_SUPPORTED_FEATURES 0x0317 + +#define SDP_ATTR_SPECIFICATION_ID 0x0200 +#define SDP_ATTR_VENDOR_ID 0x0201 +#define SDP_ATTR_PRODUCT_ID 0x0202 +#define SDP_ATTR_VERSION 0x0203 +#define SDP_ATTR_PRIMARY_RECORD 0x0204 +#define SDP_ATTR_VENDOR_ID_SOURCE 0x0205 + +#define SDP_ATTR_HID_DEVICE_RELEASE_NUMBER 0x0200 +#define SDP_ATTR_HID_PARSER_VERSION 0x0201 +#define SDP_ATTR_HID_DEVICE_SUBCLASS 0x0202 +#define SDP_ATTR_HID_COUNTRY_CODE 0x0203 +#define SDP_ATTR_HID_VIRTUAL_CABLE 0x0204 +#define SDP_ATTR_HID_RECONNECT_INITIATE 0x0205 +#define SDP_ATTR_HID_DESCRIPTOR_LIST 0x0206 +#define SDP_ATTR_HID_LANG_ID_BASE_LIST 0x0207 +#define SDP_ATTR_HID_SDP_DISABLE 0x0208 +#define SDP_ATTR_HID_BATTERY_POWER 0x0209 +#define SDP_ATTR_HID_REMOTE_WAKEUP 0x020a +#define SDP_ATTR_HID_PROFILE_VERSION 0x020b +#define SDP_ATTR_HID_SUPERVISION_TIMEOUT 0x020c +#define SDP_ATTR_HID_NORMALLY_CONNECTABLE 0x020d +#define SDP_ATTR_HID_BOOT_DEVICE 0x020e + +/* + * These identifiers are based on the SDP spec stating that + * "base attribute id of the primary (universal) language must be 0x0100" + * + * Other languages should have their own offset; e.g.: + * #define XXXLangBase yyyy + * #define AttrServiceName_XXX 0x0000+XXXLangBase + */ +#define SDP_PRIMARY_LANG_BASE 0x0100 + +#define SDP_ATTR_SVCNAME_PRIMARY 0x0000 + SDP_PRIMARY_LANG_BASE +#define SDP_ATTR_SVCDESC_PRIMARY 0x0001 + SDP_PRIMARY_LANG_BASE +#define SDP_ATTR_PROVNAME_PRIMARY 0x0002 + SDP_PRIMARY_LANG_BASE + +/* + * The Data representation in SDP PDUs (pps 339, 340 of BT SDP Spec) + * These are the exact data type+size descriptor values + * that go into the PDU buffer. + * + * The datatype (leading 5bits) + size descriptor (last 3 bits) + * is 8 bits. The size descriptor is critical to extract the + * right number of bytes for the data value from the PDU. + * + * For most basic types, the datatype+size descriptor is + * straightforward. However for constructed types and strings, + * the size of the data is in the next "n" bytes following the + * 8 bits (datatype+size) descriptor. Exactly what the "n" is + * specified in the 3 bits of the data size descriptor. + * + * TextString and URLString can be of size 2^{8, 16, 32} bytes + * DataSequence and DataSequenceAlternates can be of size 2^{8, 16, 32} + * The size are computed post-facto in the API and are not known apriori + */ +#define SDP_DATA_NIL 0x00 +#define SDP_UINT8 0x08 +#define SDP_UINT16 0x09 +#define SDP_UINT32 0x0A +#define SDP_UINT64 0x0B +#define SDP_UINT128 0x0C +#define SDP_INT8 0x10 +#define SDP_INT16 0x11 +#define SDP_INT32 0x12 +#define SDP_INT64 0x13 +#define SDP_INT128 0x14 +#define SDP_UUID_UNSPEC 0x18 +#define SDP_UUID16 0x19 +#define SDP_UUID32 0x1A +#define SDP_UUID128 0x1C +#define SDP_TEXT_STR_UNSPEC 0x20 +#define SDP_TEXT_STR8 0x25 +#define SDP_TEXT_STR16 0x26 +#define SDP_TEXT_STR32 0x27 +#define SDP_BOOL 0x28 +#define SDP_SEQ_UNSPEC 0x30 +#define SDP_SEQ8 0x35 +#define SDP_SEQ16 0x36 +#define SDP_SEQ32 0x37 +#define SDP_ALT_UNSPEC 0x38 +#define SDP_ALT8 0x3D +#define SDP_ALT16 0x3E +#define SDP_ALT32 0x3F +#define SDP_URL_STR_UNSPEC 0x40 +#define SDP_URL_STR8 0x45 +#define SDP_URL_STR16 0x46 +#define SDP_URL_STR32 0x47 + +/* + * The PDU identifiers of SDP packets between client and server + */ +#define SDP_ERROR_RSP 0x01 +#define SDP_SVC_SEARCH_REQ 0x02 +#define SDP_SVC_SEARCH_RSP 0x03 +#define SDP_SVC_ATTR_REQ 0x04 +#define SDP_SVC_ATTR_RSP 0x05 +#define SDP_SVC_SEARCH_ATTR_REQ 0x06 +#define SDP_SVC_SEARCH_ATTR_RSP 0x07 + +/* + * Some additions to support service registration. + * These are outside the scope of the Bluetooth specification + */ +#define SDP_SVC_REGISTER_REQ 0x75 +#define SDP_SVC_REGISTER_RSP 0x76 +#define SDP_SVC_UPDATE_REQ 0x77 +#define SDP_SVC_UPDATE_RSP 0x78 +#define SDP_SVC_REMOVE_REQ 0x79 +#define SDP_SVC_REMOVE_RSP 0x80 + +/* + * SDP Error codes + */ +#define SDP_INVALID_VERSION 0x0001 +#define SDP_INVALID_RECORD_HANDLE 0x0002 +#define SDP_INVALID_SYNTAX 0x0003 +#define SDP_INVALID_PDU_SIZE 0x0004 +#define SDP_INVALID_CSTATE 0x0005 + +/* + * SDP PDU + */ +typedef struct { + uint8_t pdu_id; + uint16_t tid; + uint16_t plen; +} __attribute__ ((packed)) sdp_pdu_hdr_t; + +/* + * Common definitions for attributes in the SDP. + * Should the type of any of these change, you need only make a change here. + */ + +typedef struct { + uint8_t type; + union { + uint16_t uuid16; + uint32_t uuid32; + uint128_t uuid128; + } value; +} uuid_t; + +#define SDP_IS_UUID(x) ((x) == SDP_UUID16 || (x) == SDP_UUID32 || \ + (x) == SDP_UUID128) +#define SDP_IS_ALT(x) ((x) == SDP_ALT8 || (x) == SDP_ALT16 || (x) == SDP_ALT32) +#define SDP_IS_SEQ(x) ((x) == SDP_SEQ8 || (x) == SDP_SEQ16 || (x) == SDP_SEQ32) +#define SDP_IS_TEXT_STR(x) ((x) == SDP_TEXT_STR8 || (x) == SDP_TEXT_STR16 || \ + (x) == SDP_TEXT_STR32) + +typedef struct _sdp_list sdp_list_t; +struct _sdp_list { + sdp_list_t *next; + void *data; +}; + +/* + * User-visible strings can be in many languages + * in addition to the universal language. + * + * Language meta-data includes language code in ISO639 + * followed by the encoding format. The third field in this + * structure is the attribute offset for the language. + * User-visible strings in the specified language can be + * obtained at this offset. + */ +typedef struct { + uint16_t code_ISO639; + uint16_t encoding; + uint16_t base_offset; +} sdp_lang_attr_t; + +/* + * Profile descriptor is the Bluetooth profile metadata. If a + * service conforms to a well-known profile, then its profile + * identifier (UUID) is an attribute of the service. In addition, + * if the profile has a version number it is specified here. + */ +typedef struct { + uuid_t uuid; + uint16_t version; +} sdp_profile_desc_t; + +typedef struct { + uint8_t major; + uint8_t minor; +} sdp_version_t; + +typedef struct { + uint8_t *data; + uint32_t data_size; + uint32_t buf_size; +} sdp_buf_t; + +typedef struct { + uint32_t handle; + + /* Search pattern: a sequence of all UUIDs seen in this record */ + sdp_list_t *pattern; + sdp_list_t *attrlist; + + /* Main service class for Extended Inquiry Response */ + uuid_t svclass; +} sdp_record_t; + +typedef struct sdp_data_struct sdp_data_t; +struct sdp_data_struct { + uint8_t dtd; + uint16_t attrId; + union { + int8_t int8; + int16_t int16; + int32_t int32; + int64_t int64; + uint128_t int128; + uint8_t uint8; + uint16_t uint16; + uint32_t uint32; + uint64_t uint64; + uint128_t uint128; + uuid_t uuid; + char *str; + sdp_data_t *dataseq; + } val; + sdp_data_t *next; + int unitSize; +}; + +#ifdef __cplusplus +} +#endif + +#endif /* __SDP_H */ diff --git a/code/application/source/sf_app/tools/blue/include/bluetooth/sdp_lib.h b/code/application/source/sf_app/tools/blue/include/bluetooth/sdp_lib.h new file mode 100644 index 000000000..22776b678 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/bluetooth/sdp_lib.h @@ -0,0 +1,621 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * + * BlueZ - Bluetooth protocol stack for Linux + * + * Copyright (C) 2001-2002 Nokia Corporation + * Copyright (C) 2002-2003 Maxim Krasnyansky + * Copyright (C) 2002-2010 Marcel Holtmann + * Copyright (C) 2002-2003 Stephen Crane + * + * + */ + +#ifndef __SDP_LIB_H +#define __SDP_LIB_H + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * SDP lists + */ +typedef void(*sdp_list_func_t)(void *, void *); +typedef void(*sdp_free_func_t)(void *); +typedef int (*sdp_comp_func_t)(const void *, const void *); + +sdp_list_t *sdp_list_append(sdp_list_t *list, void *d); +sdp_list_t *sdp_list_remove(sdp_list_t *list, void *d); +sdp_list_t *sdp_list_insert_sorted(sdp_list_t *list, void *data, sdp_comp_func_t f); +void sdp_list_free(sdp_list_t *list, sdp_free_func_t f); + +static inline int sdp_list_len(const sdp_list_t *list) +{ + int n = 0; + for (; list; list = list->next) + n++; + return n; +} + +static inline sdp_list_t *sdp_list_find(sdp_list_t *list, void *u, sdp_comp_func_t f) +{ + for (; list; list = list->next) + if (f(list->data, u) == 0) + return list; + return NULL; +} + +static inline void sdp_list_foreach(sdp_list_t *list, sdp_list_func_t f, void *u) +{ + for (; list; list = list->next) + f(list->data, u); +} + +/* + * Values of the flags parameter to sdp_record_register + */ +#define SDP_RECORD_PERSIST 0x01 +#define SDP_DEVICE_RECORD 0x02 + +/* + * Values of the flags parameter to sdp_connect + */ +#define SDP_RETRY_IF_BUSY 0x01 +#define SDP_WAIT_ON_CLOSE 0x02 +#define SDP_NON_BLOCKING 0x04 +#define SDP_LARGE_MTU 0x08 + +/* + * a session with an SDP server + */ +typedef struct { + int sock; + int state; + int local; + int flags; + uint16_t tid; /* Current transaction ID */ + void *priv; +} sdp_session_t; + +typedef enum { + /* + * Attributes are specified as individual elements + */ + SDP_ATTR_REQ_INDIVIDUAL = 1, + /* + * Attributes are specified as a range + */ + SDP_ATTR_REQ_RANGE +} sdp_attrreq_type_t; + +/* + * When the pdu_id(type) is a sdp error response, check the status value + * to figure out the error reason. For status values 0x0001-0x0006 check + * Bluetooth SPEC. If the status is 0xffff, call sdp_get_error function + * to get the real reason: + * - wrong transaction ID(EPROTO) + * - wrong PDU id or(EPROTO) + * - I/O error + */ +typedef void sdp_callback_t(uint8_t type, uint16_t status, uint8_t *rsp, size_t size, void *udata); + +/* + * create an L2CAP connection to a Bluetooth device + * + * INPUT: + * + * bdaddr_t *src: + * Address of the local device to use to make the connection + * (or BDADDR_ANY) + * + * bdaddr_t *dst: + * Address of the SDP server device + */ +sdp_session_t *sdp_connect(const bdaddr_t *src, const bdaddr_t *dst, uint32_t flags); +int sdp_close(sdp_session_t *session); +int sdp_get_socket(const sdp_session_t *session); + +/* + * SDP transaction: functions for asynchronous search. + */ +sdp_session_t *sdp_create(int sk, uint32_t flags); +int sdp_get_error(sdp_session_t *session); +int sdp_process(sdp_session_t *session); +int sdp_set_notify(sdp_session_t *session, sdp_callback_t *func, void *udata); + +int sdp_service_search_async(sdp_session_t *session, const sdp_list_t *search, uint16_t max_rec_num); +int sdp_service_attr_async(sdp_session_t *session, uint32_t handle, sdp_attrreq_type_t reqtype, const sdp_list_t *attrid_list); +int sdp_service_search_attr_async(sdp_session_t *session, const sdp_list_t *search, sdp_attrreq_type_t reqtype, const sdp_list_t *attrid_list); + +uint16_t sdp_gen_tid(sdp_session_t *session); + +/* + * find all devices in the piconet + */ +int sdp_general_inquiry(inquiry_info *ii, int dev_num, int duration, uint8_t *found); + +/* flexible extraction of basic attributes - Jean II */ +int sdp_get_int_attr(const sdp_record_t *rec, uint16_t attr, int *value); +int sdp_get_string_attr(const sdp_record_t *rec, uint16_t attr, char *value, int valuelen); + +/* + * Basic sdp data functions + */ +sdp_data_t *sdp_data_alloc(uint8_t dtd, const void *value); +sdp_data_t *sdp_data_alloc_with_length(uint8_t dtd, const void *value, uint32_t length); +void sdp_data_free(sdp_data_t *data); +sdp_data_t *sdp_data_get(const sdp_record_t *rec, uint16_t attr_id); + +sdp_data_t *sdp_seq_alloc(void **dtds, void **values, int len); +sdp_data_t *sdp_seq_alloc_with_length(void **dtds, void **values, int *length, int len); +sdp_data_t *sdp_seq_append(sdp_data_t *seq, sdp_data_t *data); + +int sdp_attr_add(sdp_record_t *rec, uint16_t attr, sdp_data_t *data); +void sdp_attr_remove(sdp_record_t *rec, uint16_t attr); +void sdp_attr_replace(sdp_record_t *rec, uint16_t attr, sdp_data_t *data); +int sdp_set_uuidseq_attr(sdp_record_t *rec, uint16_t attr, sdp_list_t *seq); +int sdp_get_uuidseq_attr(const sdp_record_t *rec, uint16_t attr, sdp_list_t **seqp); + +/* + * NOTE that none of the functions below will update the SDP server, + * unless the {register, update}sdp_record_t() function is invoked. + * All functions which return an integer value, return 0 on success + * or -1 on failure. + */ + +/* + * Create an attribute and add it to the service record's attribute list. + * This consists of the data type descriptor of the attribute, + * the value of the attribute and the attribute identifier. + */ +int sdp_attr_add_new(sdp_record_t *rec, uint16_t attr, uint8_t dtd, const void *p); + +/* + * Set the information attributes of the service record. + * The set of attributes comprises service name, description + * and provider name + */ +void sdp_set_info_attr(sdp_record_t *rec, const char *name, const char *prov, const char *desc); + +/* + * Set the ServiceClassID attribute to the sequence specified by seq. + * Note that the identifiers need to be in sorted order from the most + * specific to the most generic service class that this service + * conforms to. + */ +static inline int sdp_set_service_classes(sdp_record_t *rec, sdp_list_t *seq) +{ + return sdp_set_uuidseq_attr(rec, SDP_ATTR_SVCLASS_ID_LIST, seq); +} + +/* + * Get the service classes to which the service conforms. + * + * When set, the list contains elements of ServiceClassIdentifer(uint16_t) + * ordered from most specific to most generic + */ +static inline int sdp_get_service_classes(const sdp_record_t *rec, sdp_list_t **seqp) +{ + return sdp_get_uuidseq_attr(rec, SDP_ATTR_SVCLASS_ID_LIST, seqp); +} + +/* + * Set the BrowseGroupList attribute to the list specified by seq. + * + * A service can belong to one or more service groups + * and the list comprises such group identifiers (UUIDs) + */ +static inline int sdp_set_browse_groups(sdp_record_t *rec, sdp_list_t *seq) +{ + return sdp_set_uuidseq_attr(rec, SDP_ATTR_BROWSE_GRP_LIST, seq); +} + +/* + * Set the access protocols of the record to those specified in proto + */ +int sdp_set_access_protos(sdp_record_t *rec, const sdp_list_t *proto); + +/* + * Set the additional access protocols of the record to those specified in proto + */ +int sdp_set_add_access_protos(sdp_record_t *rec, const sdp_list_t *proto); + +/* + * Get protocol port (i.e. PSM for L2CAP, Channel for RFCOMM) + */ +int sdp_get_proto_port(const sdp_list_t *list, int proto); + +/* + * Get protocol descriptor. + */ +sdp_data_t *sdp_get_proto_desc(sdp_list_t *list, int proto); + +/* + * Set the LanguageBase attributes to the values specified in list + * (a linked list of sdp_lang_attr_t objects, one for each language in + * which user-visible attributes are present). + */ +int sdp_set_lang_attr(sdp_record_t *rec, const sdp_list_t *list); + +/* + * Set the ServiceInfoTimeToLive attribute of the service. + * This is the number of seconds that this record is guaranteed + * not to change after being obtained by a client. + */ +static inline int sdp_set_service_ttl(sdp_record_t *rec, uint32_t ttl) +{ + return sdp_attr_add_new(rec, SDP_ATTR_SVCINFO_TTL, SDP_UINT32, &ttl); +} + +/* + * Set the ServiceRecordState attribute of a service. This is + * guaranteed to change if there is any kind of modification to + * the record. + */ +static inline int sdp_set_record_state(sdp_record_t *rec, uint32_t state) +{ + return sdp_attr_add_new(rec, SDP_ATTR_RECORD_STATE, SDP_UINT32, &state); +} + +/* + * Set the ServiceID attribute of a service. + */ +void sdp_set_service_id(sdp_record_t *rec, uuid_t uuid); + +/* + * Set the GroupID attribute of a service + */ +void sdp_set_group_id(sdp_record_t *rec, uuid_t grouuuid); + +/* + * Set the ServiceAvailability attribute of a service. + * + * Note that this represents the relative availability + * of the service: 0x00 means completely unavailable; + * 0xFF means maximum availability. + */ +static inline int sdp_set_service_avail(sdp_record_t *rec, uint8_t avail) +{ + return sdp_attr_add_new(rec, SDP_ATTR_SERVICE_AVAILABILITY, SDP_UINT8, &avail); +} + +/* + * Set the profile descriptor list attribute of a record. + * + * Each element in the list is an object of type + * sdp_profile_desc_t which is a definition of the + * Bluetooth profile that this service conforms to. + */ +int sdp_set_profile_descs(sdp_record_t *rec, const sdp_list_t *desc); + +/* + * Set URL attributes of a record. + * + * ClientExecutableURL: a URL to a client's platform specific (WinCE, + * PalmOS) executable code that can be used to access this service. + * + * DocumentationURL: a URL pointing to service documentation + * + * IconURL: a URL to an icon that can be used to represent this service. + * + * Note: pass NULL for any URLs that you don't want to set or remove + */ +void sdp_set_url_attr(sdp_record_t *rec, const char *clientExecURL, const char *docURL, const char *iconURL); + +/* + * a service search request. + * + * INPUT : + * + * sdp_list_t *search + * list containing elements of the search + * pattern. Each entry in the list is a UUID + * of the service to be searched + * + * uint16_t max_rec_num + * An integer specifying the maximum number of + * entries that the client can handle in the response. + * + * OUTPUT : + * + * int return value + * 0 + * The request completed successfully. This does not + * mean the requested services were found + * -1 + * The request completed unsuccessfully + * + * sdp_list_t *rsp_list + * This variable is set on a successful return if there are + * non-zero service handles. It is a singly linked list of + * service record handles (uint16_t) + */ +int sdp_service_search_req(sdp_session_t *session, const sdp_list_t *search, uint16_t max_rec_num, sdp_list_t **rsp_list); + +/* + * a service attribute request. + * + * INPUT : + * + * uint32_t handle + * The handle of the service for which the attribute(s) are + * requested + * + * sdp_attrreq_type_t reqtype + * Attribute identifiers are 16 bit unsigned integers specified + * in one of 2 ways described below : + * SDP_ATTR_REQ_INDIVIDUAL - 16bit individual identifiers + * They are the actual attribute identifiers in ascending order + * + * SDP_ATTR_REQ_RANGE - 32bit identifier range + * The high-order 16bits is the start of range + * the low-order 16bits are the end of range + * 0x0000 to 0xFFFF gets all attributes + * + * sdp_list_t *attrid_list + * Singly linked list containing attribute identifiers desired. + * Every element is either a uint16_t(attrSpec = SDP_ATTR_REQ_INDIVIDUAL) + * or a uint32_t(attrSpec=SDP_ATTR_REQ_RANGE) + * + * OUTPUT : + * int return value + * 0 + * The request completed successfully. This does not + * mean the requested services were found + * -1 + * The request completed unsuccessfully due to a timeout + */ +sdp_record_t *sdp_service_attr_req(sdp_session_t *session, uint32_t handle, sdp_attrreq_type_t reqtype, const sdp_list_t *attrid_list); + +/* + * This is a service search request combined with the service + * attribute request. First a service class match is done and + * for matching service, requested attributes are extracted + * + * INPUT : + * + * sdp_list_t *search + * Singly linked list containing elements of the search + * pattern. Each entry in the list is a UUID(DataTypeSDP_UUID16) + * of the service to be searched + * + * AttributeSpecification attrSpec + * Attribute identifiers are 16 bit unsigned integers specified + * in one of 2 ways described below : + * SDP_ATTR_REQ_INDIVIDUAL - 16bit individual identifiers + * They are the actual attribute identifiers in ascending order + * + * SDP_ATTR_REQ_RANGE - 32bit identifier range + * The high-order 16bits is the start of range + * the low-order 16bits are the end of range + * 0x0000 to 0xFFFF gets all attributes + * + * sdp_list_t *attrid_list + * Singly linked list containing attribute identifiers desired. + * Every element is either a uint16_t(attrSpec = SDP_ATTR_REQ_INDIVIDUAL) + * or a uint32_t(attrSpec=SDP_ATTR_REQ_RANGE) + * + * OUTPUT : + * int return value + * 0 + * The request completed successfully. This does not + * mean the requested services were found + * -1 + * The request completed unsuccessfully due to a timeout + * + * sdp_list_t *rsp_list + * This variable is set on a successful return to point to + * service(s) found. Each element of this list is of type + * sdp_record_t *. + */ +int sdp_service_search_attr_req(sdp_session_t *session, const sdp_list_t *search, sdp_attrreq_type_t reqtype, const sdp_list_t *attrid_list, sdp_list_t **rsp_list); + +/* + * Allocate/free a service record and its attributes + */ +sdp_record_t *sdp_record_alloc(void); +void sdp_record_free(sdp_record_t *rec); + +/* + * Register a service record. + * + * Note: It is the responsbility of the Service Provider to create the + * record first and set its attributes using setXXX() methods. + * + * The service provider must then call sdp_record_register() to make + * the service record visible to SDP clients. This function returns 0 + * on success or -1 on failure (and sets errno). + */ +int sdp_device_record_register_binary(sdp_session_t *session, bdaddr_t *device, uint8_t *data, uint32_t size, uint8_t flags, uint32_t *handle); +int sdp_device_record_register(sdp_session_t *session, bdaddr_t *device, sdp_record_t *rec, uint8_t flags); +int sdp_record_register(sdp_session_t *session, sdp_record_t *rec, uint8_t flags); + +/* + * Unregister a service record. + */ +int sdp_device_record_unregister_binary(sdp_session_t *session, bdaddr_t *device, uint32_t handle); +int sdp_device_record_unregister(sdp_session_t *session, bdaddr_t *device, sdp_record_t *rec); +int sdp_record_unregister(sdp_session_t *session, sdp_record_t *rec); + +/* + * Update an existing service record. (Calling this function + * before a previous call to sdp_record_register() will result + * in an error.) + */ +int sdp_device_record_update_binary(sdp_session_t *session, bdaddr_t *device, uint32_t handle, uint8_t *data, uint32_t size); +int sdp_device_record_update(sdp_session_t *session, bdaddr_t *device, const sdp_record_t *rec); +int sdp_record_update(sdp_session_t *sess, const sdp_record_t *rec); + +void sdp_record_print(const sdp_record_t *rec); + +/* + * UUID functions + */ +uuid_t *sdp_uuid16_create(uuid_t *uuid, uint16_t data); +uuid_t *sdp_uuid32_create(uuid_t *uuid, uint32_t data); +uuid_t *sdp_uuid128_create(uuid_t *uuid, const void *data); +int sdp_uuid16_cmp(const void *p1, const void *p2); +int sdp_uuid128_cmp(const void *p1, const void *p2); +int sdp_uuid_cmp(const void *p1, const void *p2); +uuid_t *sdp_uuid_to_uuid128(const uuid_t *uuid); +void sdp_uuid16_to_uuid128(uuid_t *uuid128, const uuid_t *uuid16); +void sdp_uuid32_to_uuid128(uuid_t *uuid128, const uuid_t *uuid32); +int sdp_uuid128_to_uuid(uuid_t *uuid); +int sdp_uuid_to_proto(uuid_t *uuid); +int sdp_uuid_extract(const uint8_t *buffer, int bufsize, uuid_t *uuid, int *scanned); +void sdp_uuid_print(const uuid_t *uuid); + +#define MAX_LEN_UUID_STR 37 +#define MAX_LEN_PROTOCOL_UUID_STR 8 +#define MAX_LEN_SERVICECLASS_UUID_STR 28 +#define MAX_LEN_PROFILEDESCRIPTOR_UUID_STR 28 + +int sdp_uuid2strn(const uuid_t *uuid, char *str, size_t n); +int sdp_proto_uuid2strn(const uuid_t *uuid, char *str, size_t n); +int sdp_svclass_uuid2strn(const uuid_t *uuid, char *str, size_t n); +int sdp_profile_uuid2strn(const uuid_t *uuid, char *str, size_t n); + +/* + * In all the sdp_get_XXX(handle, XXX *xxx) functions below, + * the XXX * is set to point to the value, should it exist + * and 0 is returned. If the value does not exist, -1 is + * returned and errno set to ENODATA. + * + * In all the methods below, the memory management rules are + * simple. Don't free anything! The pointer returned, in the + * case of constructed types, is a pointer to the contents + * of the sdp_record_t. + */ + +/* + * Get the access protocols from the service record + */ +int sdp_get_access_protos(const sdp_record_t *rec, sdp_list_t **protos); + +/* + * Get the additional access protocols from the service record + */ +int sdp_get_add_access_protos(const sdp_record_t *rec, sdp_list_t **protos); + +/* + * Extract the list of browse groups to which the service belongs. + * When set, seqp contains elements of GroupID (uint16_t) + */ +static inline int sdp_get_browse_groups(const sdp_record_t *rec, sdp_list_t **seqp) +{ + return sdp_get_uuidseq_attr(rec, SDP_ATTR_BROWSE_GRP_LIST, seqp); +} + +/* + * Extract language attribute meta-data of the service record. + * For each language in the service record, LangSeq has a struct of type + * sdp_lang_attr_t. + */ +int sdp_get_lang_attr(const sdp_record_t *rec, sdp_list_t **langSeq); + +/* + * Extract the Bluetooth profile descriptor sequence from a record. + * Each element in the list is of type sdp_profile_desc_t + * which contains the UUID of the profile and its version number + * (encoded as major and minor in the high-order 8bits + * and low-order 8bits respectively of the uint16_t) + */ +int sdp_get_profile_descs(const sdp_record_t *rec, sdp_list_t **profDesc); + +/* + * Extract SDP server version numbers + * + * Note: that this is an attribute of the SDP server only and + * contains a list of uint16_t each of which represent the + * major and minor SDP version numbers supported by this server + */ +int sdp_get_server_ver(const sdp_record_t *rec, sdp_list_t **pVnumList); + +int sdp_get_service_id(const sdp_record_t *rec, uuid_t *uuid); +int sdp_get_group_id(const sdp_record_t *rec, uuid_t *uuid); +int sdp_get_record_state(const sdp_record_t *rec, uint32_t *svcRecState); +int sdp_get_service_avail(const sdp_record_t *rec, uint8_t *svcAvail); +int sdp_get_service_ttl(const sdp_record_t *rec, uint32_t *svcTTLInfo); +int sdp_get_database_state(const sdp_record_t *rec, uint32_t *svcDBState); + +static inline int sdp_get_service_name(const sdp_record_t *rec, char *str, int len) +{ + return sdp_get_string_attr(rec, SDP_ATTR_SVCNAME_PRIMARY, str, len); +} + +static inline int sdp_get_service_desc(const sdp_record_t *rec, char *str, int len) +{ + return sdp_get_string_attr(rec, SDP_ATTR_SVCDESC_PRIMARY, str, len); +} + +static inline int sdp_get_provider_name(const sdp_record_t *rec, char *str, int len) +{ + return sdp_get_string_attr(rec, SDP_ATTR_PROVNAME_PRIMARY, str, len); +} + +static inline int sdp_get_doc_url(const sdp_record_t *rec, char *str, int len) +{ + return sdp_get_string_attr(rec, SDP_ATTR_DOC_URL, str, len); +} + +static inline int sdp_get_clnt_exec_url(const sdp_record_t *rec, char *str, int len) +{ + return sdp_get_string_attr(rec, SDP_ATTR_CLNT_EXEC_URL, str, len); +} + +static inline int sdp_get_icon_url(const sdp_record_t *rec, char *str, int len) +{ + return sdp_get_string_attr(rec, SDP_ATTR_ICON_URL, str, len); +} + +/* + * Set the supported features + * sf should be a list of list with each feature data + * Returns 0 on success -1 on fail + */ +int sdp_set_supp_feat(sdp_record_t *rec, const sdp_list_t *sf); + +/* + * Get the supported features + * seqp is set to a list of list with each feature data + * Returns 0 on success, if an error occurred -1 is returned and errno is set + */ +int sdp_get_supp_feat(const sdp_record_t *rec, sdp_list_t **seqp); + +sdp_record_t *sdp_extract_pdu(const uint8_t *pdata, int bufsize, int *scanned); +sdp_record_t *sdp_copy_record(sdp_record_t *rec); + +void sdp_data_print(sdp_data_t *data); +void sdp_print_service_attr(sdp_list_t *alist); + +int sdp_attrid_comp_func(const void *key1, const void *key2); + +void sdp_set_seq_len(uint8_t *ptr, uint32_t length); +void sdp_set_attrid(sdp_buf_t *pdu, uint16_t id); +void sdp_append_to_pdu(sdp_buf_t *dst, sdp_data_t *d); +void sdp_append_to_buf(sdp_buf_t *dst, uint8_t *data, uint32_t len); + +int sdp_gen_pdu(sdp_buf_t *pdu, sdp_data_t *data); +int sdp_gen_record_pdu(const sdp_record_t *rec, sdp_buf_t *pdu); + +int sdp_extract_seqtype(const uint8_t *buf, int bufsize, uint8_t *dtdp, int *size); + +sdp_data_t *sdp_extract_attr(const uint8_t *pdata, int bufsize, int *extractedLength, sdp_record_t *rec); + +void sdp_pattern_add_uuid(sdp_record_t *rec, uuid_t *uuid); +void sdp_pattern_add_uuidseq(sdp_record_t *rec, sdp_list_t *seq); + +int sdp_send_req_w4_rsp(sdp_session_t *session, uint8_t *req, uint8_t *rsp, uint32_t reqsize, uint32_t *rspsize); + +void sdp_add_lang_attr(sdp_record_t *rec); + +#ifdef __cplusplus +} +#endif + +#endif /* __SDP_LIB_H */ diff --git a/code/application/source/sf_app/tools/blue/include/curses.h b/code/application/source/sf_app/tools/blue/include/curses.h new file mode 100644 index 000000000..a7abea0f1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/curses.h @@ -0,0 +1,1800 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* $Id: curses.h.in,v 1.277 2021/09/24 16:07:37 tom Exp $ */ + +#ifndef __NCURSES_H +#define __NCURSES_H + +/* + The symbols beginning NCURSES_ or USE_ are configuration choices. + A few of the former can be overridden by applications at compile-time. + Most of the others correspond to configure-script options (or checks + by the configure-script for features of the system on which it is built). + + These symbols can be overridden by applications at compile-time: + NCURSES_NOMACROS suppresses macro definitions in favor of functions + NCURSES_WATTR_MACROS suppresses wattr_* macro definitions + NCURSES_WIDECHAR is an alternative for declaring wide-character functions. + + These symbols are used only when building ncurses: + NCURSES_ATTR_T + NCURSES_FIELD_INTERNALS + NCURSES_INTERNALS + + These symbols are set by the configure script: + NCURSES_ENABLE_STDBOOL_H + NCURSES_EXPANDED + NCURSES_EXT_COLORS + NCURSES_EXT_FUNCS + NCURSES_EXT_PUTWIN + NCURSES_NO_PADDING + NCURSES_OSPEED_COMPAT + NCURSES_PATHSEP + NCURSES_REENTRANT + */ + +#define CURSES 1 +#define CURSES_H 1 + +/* These are defined only in curses.h, and are used for conditional compiles */ +#define NCURSES_VERSION_MAJOR 6 +#define NCURSES_VERSION_MINOR 3 +#define NCURSES_VERSION_PATCH 20211021 + +/* This is defined in more than one ncurses header, for identification */ +#undef NCURSES_VERSION +#define NCURSES_VERSION "6.3" + +/* + * Identify the mouse encoding version. + */ +#define NCURSES_MOUSE_VERSION 2 + +/* + * Definitions to facilitate DLL's. + */ +#include + +/* + * Extra headers. + */ +#if 1 +#include +#endif + +#ifdef __cplusplus +#else +#if 0 +#include +#undef GCC_NORETURN +#define GCC_NORETURN _Noreturn +#endif +#endif + +/* + * User-definable tweak to disable the include of . + */ +#ifndef NCURSES_ENABLE_STDBOOL_H +#define NCURSES_ENABLE_STDBOOL_H 1 +#endif + +/* + * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses + * configured using --disable-macros. + */ +#ifndef NCURSES_ATTR_T +#define NCURSES_ATTR_T int +#endif + +/* + * Expands to 'const' if ncurses is configured using --enable-const. Note that + * doing so makes it incompatible with other implementations of X/Open Curses. + */ +#undef NCURSES_CONST +#define NCURSES_CONST const + +#undef NCURSES_INLINE +#define NCURSES_INLINE inline + +/* + * The standard type used for color values, and for color-pairs. The latter + * allows the curses library to enumerate the combinations of foreground and + * background colors used by an application, and is normally the product of the + * total foreground and background colors. + * + * X/Open uses "short" for both of these types, ultimately because they are + * numbers from the SVr4 terminal database, which uses 16-bit signed values. + */ +#undef NCURSES_COLOR_T +#define NCURSES_COLOR_T short + +#undef NCURSES_PAIRS_T +#define NCURSES_PAIRS_T short + +/* + * Definitions used to make WINDOW and similar structs opaque. + */ +#ifndef NCURSES_INTERNALS +#define NCURSES_OPAQUE 0 +#define NCURSES_OPAQUE_FORM 0 +#define NCURSES_OPAQUE_MENU 0 +#define NCURSES_OPAQUE_PANEL 0 +#endif + +/* + * Definition used to optionally suppress wattr* macros to help with the + * transition from ncurses5 to ncurses6 by allowing the header files to + * be shared across development packages for ncursesw in both ABIs. + */ +#ifndef NCURSES_WATTR_MACROS +#define NCURSES_WATTR_MACROS 0 +#endif + +/* + * The reentrant code relies on the opaque setting, but adds features. + */ +#ifndef NCURSES_REENTRANT +#define NCURSES_REENTRANT 0 +#endif + +/* + * In certain environments, we must work around linker problems for data + */ +#undef NCURSES_BROKEN_LINKER +#if 0 +#define NCURSES_BROKEN_LINKER 1 +#endif + +/* + * Control whether bindings for interop support are added. + */ +#undef NCURSES_INTEROP_FUNCS +#define NCURSES_INTEROP_FUNCS 1 + +/* + * The internal type used for window dimensions. + */ +#undef NCURSES_SIZE_T +#define NCURSES_SIZE_T short + +/* + * Control whether tparm() supports varargs or fixed-parameter list. + */ +#undef NCURSES_TPARM_VARARGS +#define NCURSES_TPARM_VARARGS 1 + +/* + * Control type used for tparm's arguments. While X/Open equates long and + * char* values, this is not always workable for 64-bit platforms. + */ +#undef NCURSES_TPARM_ARG +#define NCURSES_TPARM_ARG intptr_t + +/* + * Control whether ncurses uses wcwidth() for checking width of line-drawing + * characters. + */ +#undef NCURSES_WCWIDTH_GRAPHICS +#define NCURSES_WCWIDTH_GRAPHICS 1 + +/* + * NCURSES_CH_T is used in building the library, but not used otherwise in + * this header file, since that would make the normal/wide-character versions + * of the header incompatible. + */ +#undef NCURSES_CH_T +#define NCURSES_CH_T chtype + +#if 1 && defined(_LP64) +typedef unsigned chtype; +typedef unsigned mmask_t; +#else +typedef uint32_t chtype; +typedef uint32_t mmask_t; +#endif + +/* + * We need FILE, etc. Include this before checking any feature symbols. + */ +#include + +/* + * With XPG4, you must define _XOPEN_SOURCE_EXTENDED, it is redundant (or + * conflicting) when _XOPEN_SOURCE is 500 or greater. If NCURSES_WIDECHAR is + * not already defined, e.g., if the platform relies upon nonstandard feature + * test macros, define it at this point if the standard feature test macros + * indicate that it should be defined. + */ +#ifndef NCURSES_WIDECHAR +#if defined(_XOPEN_SOURCE_EXTENDED) || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500)) +#define NCURSES_WIDECHAR 1 +#else +#define NCURSES_WIDECHAR 0 +#endif +#endif /* NCURSES_WIDECHAR */ + +#include /* we need va_list */ +#if NCURSES_WIDECHAR +#include /* we want wchar_t */ +#endif + +/* X/Open and SVr4 specify that curses implements 'bool'. However, C++ may also + * implement it. If so, we must use the C++ compiler's type to avoid conflict + * with other interfaces. + * + * A further complication is that may declare 'bool' to be a + * different type, such as an enum which is not necessarily compatible with + * C++. If we have , make 'bool' a macro, so users may #undef it. + * Otherwise, let it remain a typedef to avoid conflicts with other #define's. + * In either case, make a typedef for NCURSES_BOOL which can be used if needed + * from either C or C++. + */ + +#undef TRUE +#define TRUE 1 + +#undef FALSE +#define FALSE 0 + +typedef unsigned char NCURSES_BOOL; + +#if defined(__cplusplus) /* __cplusplus, etc. */ + +/* use the C++ compiler's bool type */ +#define NCURSES_BOOL bool + +#else /* c89, c99, etc. */ + +#if NCURSES_ENABLE_STDBOOL_H +#include +/* use whatever the C compiler decides bool really is */ +#define NCURSES_BOOL bool +#else +/* there is no predefined bool - use our own */ +#undef bool +#define bool NCURSES_BOOL +#endif + +#endif /* !__cplusplus, etc. */ + +#ifdef __cplusplus +extern "C" { +#define NCURSES_CAST(type,value) static_cast(value) +#else +#define NCURSES_CAST(type,value) (type)(value) +#endif + +#define NCURSES_OK_ADDR(p) (0 != NCURSES_CAST(const void *, (p))) + +/* + * X/Open attributes. In the ncurses implementation, they are identical to the + * A_ attributes. + */ +#define WA_ATTRIBUTES A_ATTRIBUTES +#define WA_NORMAL A_NORMAL +#define WA_STANDOUT A_STANDOUT +#define WA_UNDERLINE A_UNDERLINE +#define WA_REVERSE A_REVERSE +#define WA_BLINK A_BLINK +#define WA_DIM A_DIM +#define WA_BOLD A_BOLD +#define WA_ALTCHARSET A_ALTCHARSET +#define WA_INVIS A_INVIS +#define WA_PROTECT A_PROTECT +#define WA_HORIZONTAL A_HORIZONTAL +#define WA_LEFT A_LEFT +#define WA_LOW A_LOW +#define WA_RIGHT A_RIGHT +#define WA_TOP A_TOP +#define WA_VERTICAL A_VERTICAL + +#if 1 +#define WA_ITALIC A_ITALIC /* ncurses extension */ +#endif + +/* colors */ +#define COLOR_BLACK 0 +#define COLOR_RED 1 +#define COLOR_GREEN 2 +#define COLOR_YELLOW 3 +#define COLOR_BLUE 4 +#define COLOR_MAGENTA 5 +#define COLOR_CYAN 6 +#define COLOR_WHITE 7 + +/* line graphics */ + +#if 0 || NCURSES_REENTRANT +NCURSES_WRAPPED_VAR(chtype*, acs_map); +#define acs_map NCURSES_PUBLIC_VAR(acs_map()) +#else +extern NCURSES_EXPORT_VAR(chtype) acs_map[]; +#endif + +#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,(c))]) + +/* VT100 symbols begin here */ +#define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */ +#define ACS_LLCORNER NCURSES_ACS('m') /* lower left corner */ +#define ACS_URCORNER NCURSES_ACS('k') /* upper right corner */ +#define ACS_LRCORNER NCURSES_ACS('j') /* lower right corner */ +#define ACS_LTEE NCURSES_ACS('t') /* tee pointing right */ +#define ACS_RTEE NCURSES_ACS('u') /* tee pointing left */ +#define ACS_BTEE NCURSES_ACS('v') /* tee pointing up */ +#define ACS_TTEE NCURSES_ACS('w') /* tee pointing down */ +#define ACS_HLINE NCURSES_ACS('q') /* horizontal line */ +#define ACS_VLINE NCURSES_ACS('x') /* vertical line */ +#define ACS_PLUS NCURSES_ACS('n') /* large plus or crossover */ +#define ACS_S1 NCURSES_ACS('o') /* scan line 1 */ +#define ACS_S9 NCURSES_ACS('s') /* scan line 9 */ +#define ACS_DIAMOND NCURSES_ACS('`') /* diamond */ +#define ACS_CKBOARD NCURSES_ACS('a') /* checker board (stipple) */ +#define ACS_DEGREE NCURSES_ACS('f') /* degree symbol */ +#define ACS_PLMINUS NCURSES_ACS('g') /* plus/minus */ +#define ACS_BULLET NCURSES_ACS('~') /* bullet */ +/* Teletype 5410v1 symbols begin here */ +#define ACS_LARROW NCURSES_ACS(',') /* arrow pointing left */ +#define ACS_RARROW NCURSES_ACS('+') /* arrow pointing right */ +#define ACS_DARROW NCURSES_ACS('.') /* arrow pointing down */ +#define ACS_UARROW NCURSES_ACS('-') /* arrow pointing up */ +#define ACS_BOARD NCURSES_ACS('h') /* board of squares */ +#define ACS_LANTERN NCURSES_ACS('i') /* lantern symbol */ +#define ACS_BLOCK NCURSES_ACS('0') /* solid square block */ +/* + * These aren't documented, but a lot of System Vs have them anyway + * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings). + * The ACS_names may not match AT&T's, our source didn't know them. + */ +#define ACS_S3 NCURSES_ACS('p') /* scan line 3 */ +#define ACS_S7 NCURSES_ACS('r') /* scan line 7 */ +#define ACS_LEQUAL NCURSES_ACS('y') /* less/equal */ +#define ACS_GEQUAL NCURSES_ACS('z') /* greater/equal */ +#define ACS_PI NCURSES_ACS('{') /* Pi */ +#define ACS_NEQUAL NCURSES_ACS('|') /* not equal */ +#define ACS_STERLING NCURSES_ACS('}') /* UK pound sign */ + +/* + * Line drawing ACS names are of the form ACS_trbl, where t is the top, r + * is the right, b is the bottom, and l is the left. t, r, b, and l might + * be B (blank), S (single), D (double), or T (thick). The subset defined + * here only uses B and S. + */ +#define ACS_BSSB ACS_ULCORNER +#define ACS_SSBB ACS_LLCORNER +#define ACS_BBSS ACS_URCORNER +#define ACS_SBBS ACS_LRCORNER +#define ACS_SBSS ACS_RTEE +#define ACS_SSSB ACS_LTEE +#define ACS_SSBS ACS_BTEE +#define ACS_BSSS ACS_TTEE +#define ACS_BSBS ACS_HLINE +#define ACS_SBSB ACS_VLINE +#define ACS_SSSS ACS_PLUS + +#undef ERR +#define ERR (-1) + +#undef OK +#define OK (0) + +/* values for the _flags member */ +#define _SUBWIN 0x01 /* is this a sub-window? */ +#define _ENDLINE 0x02 /* is the window flush right? */ +#define _FULLWIN 0x04 /* is the window full-screen? */ +#define _SCROLLWIN 0x08 /* bottom edge is at screen bottom? */ +#define _ISPAD 0x10 /* is this window a pad? */ +#define _HASMOVED 0x20 /* has cursor moved since last refresh? */ +#define _WRAPPED 0x40 /* cursor was just wrappped */ + +/* + * this value is used in the firstchar and lastchar fields to mark + * unchanged lines + */ +#define _NOCHANGE -1 + +/* + * this value is used in the oldindex field to mark lines created by insertions + * and scrolls. + */ +#define _NEWINDEX -1 + +#ifdef NCURSES_INTERNALS +#undef SCREEN +#define SCREEN struct screen +SCREEN; +#else +typedef struct screen SCREEN; +#endif + +typedef struct _win_st WINDOW; + +typedef chtype attr_t; /* ...must be at least as wide as chtype */ + +#if NCURSES_WIDECHAR + +#if 0 +#ifdef mblen /* libutf8.h defines it w/o undefining first */ +#undef mblen +#endif +#include +#endif + +#if 0 +#include /* ...to get mbstate_t, etc. */ +#endif + +#if 0 +typedef unsigned short wchar_t; +#endif + +#if 0 +typedef unsigned int wint_t; +#endif + +/* + * cchar_t stores an array of CCHARW_MAX wide characters. The first is + * normally a spacing character. The others are non-spacing. If those + * (spacing and nonspacing) do not fill the array, a null L'\0' follows. + * Otherwise, a null is assumed to follow when extracting via getcchar(). + */ +#define CCHARW_MAX 5 +typedef struct +{ + attr_t attr; + wchar_t chars[CCHARW_MAX]; +#if 0 +#undef NCURSES_EXT_COLORS +#define NCURSES_EXT_COLORS 20211021 + int ext_color; /* color pair, must be more than 16-bits */ +#endif +} +cchar_t; + +#endif /* NCURSES_WIDECHAR */ + +#if !NCURSES_OPAQUE +struct ldat; + +struct _win_st +{ + NCURSES_SIZE_T _cury, _curx; /* current cursor position */ + + /* window location and size */ + NCURSES_SIZE_T _maxy, _maxx; /* maximums of x and y, NOT window size */ + NCURSES_SIZE_T _begy, _begx; /* screen coords of upper-left-hand corner */ + + short _flags; /* window state flags */ + + /* attribute tracking */ + attr_t _attrs; /* current attribute for non-space character */ + chtype _bkgd; /* current background char/attribute pair */ + + /* option values set by user */ + bool _notimeout; /* no time out on function-key entry? */ + bool _clear; /* consider all data in the window invalid? */ + bool _leaveok; /* OK to not reset cursor on exit? */ + bool _scroll; /* OK to scroll this window? */ + bool _idlok; /* OK to use insert/delete line? */ + bool _idcok; /* OK to use insert/delete char? */ + bool _immed; /* window in immed mode? (not yet used) */ + bool _sync; /* window in sync mode? */ + bool _use_keypad; /* process function keys into KEY_ symbols? */ + int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */ + + struct ldat *_line; /* the actual line data */ + + /* global screen state */ + NCURSES_SIZE_T _regtop; /* top line of scrolling region */ + NCURSES_SIZE_T _regbottom; /* bottom line of scrolling region */ + + /* these are used only if this is a sub-window */ + int _parx; /* x coordinate of this window in parent */ + int _pary; /* y coordinate of this window in parent */ + WINDOW *_parent; /* pointer to parent if a sub-window */ + + /* these are used only if this is a pad */ + struct pdat + { + NCURSES_SIZE_T _pad_y, _pad_x; + NCURSES_SIZE_T _pad_top, _pad_left; + NCURSES_SIZE_T _pad_bottom, _pad_right; + } _pad; + + NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */ + +#if NCURSES_WIDECHAR + cchar_t _bkgrnd; /* current background char/attribute pair */ +#if 0 + int _color; /* current color-pair for non-space character */ +#endif +#endif +}; +#endif /* NCURSES_OPAQUE */ + +/* + * GCC (and some other compilers) define '__attribute__'; we're using this + * macro to alert the compiler to flag inconsistencies in printf/scanf-like + * function calls. Just in case '__attribute__' isn't defined, make a dummy. + * Old versions of G++ do not accept it anyway, at least not consistently with + * GCC. + */ +#if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__)) +#define __attribute__(p) /* nothing */ +#endif + +/* + * We cannot define these in ncurses_cfg.h, since they require parameters to be + * passed (that is non-portable). + */ +#ifndef GCC_PRINTFLIKE +#ifndef printf +#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) +#else +#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ +#endif +#endif + +#ifndef GCC_SCANFLIKE +#ifndef scanf +#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) +#else +#define GCC_SCANFLIKE(fmt,var) /*nothing*/ +#endif +#endif + +#ifndef GCC_NORETURN +#define GCC_NORETURN /* nothing */ +#endif + +#ifndef GCC_UNUSED +#define GCC_UNUSED /* nothing */ +#endif + +#undef GCC_DEPRECATED +#if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2)) && !defined(NCURSES_INTERNALS) +#define GCC_DEPRECATED(msg) __attribute__((deprecated)) +#else +#define GCC_DEPRECATED(msg) /* nothing */ +#endif + +/* + * Curses uses a helper function. Define our type for this to simplify + * extending it for the sp-funcs feature. + */ +typedef int (*NCURSES_OUTC)(int); + +/* + * Function prototypes. This is the complete X/Open Curses list of required + * functions. Those marked `generated' will have sources generated from the + * macro definitions later in this file, in order to satisfy XPG4.2 + * requirements. + */ + +extern NCURSES_EXPORT(int) addch (const chtype); /* generated */ +extern NCURSES_EXPORT(int) addchnstr (const chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) addchstr (const chtype *); /* generated */ +extern NCURSES_EXPORT(int) addnstr (const char *, int); /* generated */ +extern NCURSES_EXPORT(int) addstr (const char *); /* generated */ +extern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T); /* generated */ +extern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T); /* generated */ +extern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T); /* generated */ +extern NCURSES_EXPORT(int) attr_get (attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ +extern NCURSES_EXPORT(int) attr_off (attr_t, void *); /* generated */ +extern NCURSES_EXPORT(int) attr_on (attr_t, void *); /* generated */ +extern NCURSES_EXPORT(int) attr_set (attr_t, NCURSES_PAIRS_T, void *); /* generated */ +extern NCURSES_EXPORT(int) baudrate (void); /* implemented */ +extern NCURSES_EXPORT(int) beep (void); /* implemented */ +extern NCURSES_EXPORT(int) bkgd (chtype); /* generated */ +extern NCURSES_EXPORT(void) bkgdset (chtype); /* generated */ +extern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* generated */ +extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype); /* generated */ +extern NCURSES_EXPORT(bool) can_change_color (void); /* implemented */ +extern NCURSES_EXPORT(int) cbreak (void); /* implemented */ +extern NCURSES_EXPORT(int) chgat (int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ +extern NCURSES_EXPORT(int) clear (void); /* generated */ +extern NCURSES_EXPORT(int) clearok (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) clrtobot (void); /* generated */ +extern NCURSES_EXPORT(int) clrtoeol (void); /* generated */ +extern NCURSES_EXPORT(int) color_content (NCURSES_COLOR_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ +extern NCURSES_EXPORT(int) color_set (NCURSES_PAIRS_T,void*); /* generated */ +extern NCURSES_EXPORT(int) COLOR_PAIR (int); /* generated */ +extern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) curs_set (int); /* implemented */ +extern NCURSES_EXPORT(int) def_prog_mode (void); /* implemented */ +extern NCURSES_EXPORT(int) def_shell_mode (void); /* implemented */ +extern NCURSES_EXPORT(int) delay_output (int); /* implemented */ +extern NCURSES_EXPORT(int) delch (void); /* generated */ +extern NCURSES_EXPORT(void) delscreen (SCREEN *); /* implemented */ +extern NCURSES_EXPORT(int) delwin (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) deleteln (void); /* generated */ +extern NCURSES_EXPORT(WINDOW *) derwin (WINDOW *,int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) doupdate (void); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) dupwin (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) echo (void); /* implemented */ +extern NCURSES_EXPORT(int) echochar (const chtype); /* generated */ +extern NCURSES_EXPORT(int) erase (void); /* generated */ +extern NCURSES_EXPORT(int) endwin (void); /* implemented */ +extern NCURSES_EXPORT(char) erasechar (void); /* implemented */ +extern NCURSES_EXPORT(void) filter (void); /* implemented */ +extern NCURSES_EXPORT(int) flash (void); /* implemented */ +extern NCURSES_EXPORT(int) flushinp (void); /* implemented */ +extern NCURSES_EXPORT(chtype) getbkgd (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getch (void); /* generated */ +extern NCURSES_EXPORT(int) getnstr (char *, int); /* generated */ +extern NCURSES_EXPORT(int) getstr (char *); /* generated */ +extern NCURSES_EXPORT(WINDOW *) getwin (FILE *); /* implemented */ +extern NCURSES_EXPORT(int) halfdelay (int); /* implemented */ +extern NCURSES_EXPORT(bool) has_colors (void); /* implemented */ +extern NCURSES_EXPORT(bool) has_ic (void); /* implemented */ +extern NCURSES_EXPORT(bool) has_il (void); /* implemented */ +extern NCURSES_EXPORT(int) hline (chtype, int); /* generated */ +extern NCURSES_EXPORT(void) idcok (WINDOW *, bool); /* implemented */ +extern NCURSES_EXPORT(int) idlok (WINDOW *, bool); /* implemented */ +extern NCURSES_EXPORT(void) immedok (WINDOW *, bool); /* implemented */ +extern NCURSES_EXPORT(chtype) inch (void); /* generated */ +extern NCURSES_EXPORT(int) inchnstr (chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) inchstr (chtype *); /* generated */ +extern NCURSES_EXPORT(WINDOW *) initscr (void); /* implemented */ +extern NCURSES_EXPORT(int) init_color (NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ +extern NCURSES_EXPORT(int) init_pair (NCURSES_PAIRS_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ +extern NCURSES_EXPORT(int) innstr (char *, int); /* generated */ +extern NCURSES_EXPORT(int) insch (chtype); /* generated */ +extern NCURSES_EXPORT(int) insdelln (int); /* generated */ +extern NCURSES_EXPORT(int) insertln (void); /* generated */ +extern NCURSES_EXPORT(int) insnstr (const char *, int); /* generated */ +extern NCURSES_EXPORT(int) insstr (const char *); /* generated */ +extern NCURSES_EXPORT(int) instr (char *); /* generated */ +extern NCURSES_EXPORT(int) intrflush (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(bool) isendwin (void); /* implemented */ +extern NCURSES_EXPORT(bool) is_linetouched (WINDOW *,int); /* implemented */ +extern NCURSES_EXPORT(bool) is_wintouched (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(NCURSES_CONST char *) keyname (int); /* implemented */ +extern NCURSES_EXPORT(int) keypad (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(char) killchar (void); /* implemented */ +extern NCURSES_EXPORT(int) leaveok (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(char *) longname (void); /* implemented */ +extern NCURSES_EXPORT(int) meta (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) move (int, int); /* generated */ +extern NCURSES_EXPORT(int) mvaddch (int, int, const chtype); /* generated */ +extern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *); /* generated */ +extern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvaddstr (int, int, const char *); /* generated */ +extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ +extern NCURSES_EXPORT(int) mvcur (int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) mvdelch (int, int); /* generated */ +extern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int); /* implemented */ +extern NCURSES_EXPORT(int) mvgetch (int, int); /* generated */ +extern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvgetstr (int, int, char *); /* generated */ +extern NCURSES_EXPORT(int) mvhline (int, int, chtype, int); /* generated */ +extern NCURSES_EXPORT(chtype) mvinch (int, int); /* generated */ +extern NCURSES_EXPORT(int) mvinchnstr (int, int, chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) mvinchstr (int, int, chtype *); /* generated */ +extern NCURSES_EXPORT(int) mvinnstr (int, int, char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvinsch (int, int, chtype); /* generated */ +extern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvinsstr (int, int, const char *); /* generated */ +extern NCURSES_EXPORT(int) mvinstr (int, int, char *); /* generated */ +extern NCURSES_EXPORT(int) mvprintw (int,int, const char *,...) /* implemented */ + GCC_PRINTFLIKE(3,4); +extern NCURSES_EXPORT(int) mvscanw (int,int, const char *,...) /* implemented */ + GCC_SCANFLIKE(3,4); +extern NCURSES_EXPORT(int) mvvline (int, int, chtype, int); /* generated */ +extern NCURSES_EXPORT(int) mvwaddch (WINDOW *, int, int, const chtype); /* generated */ +extern NCURSES_EXPORT(int) mvwaddchnstr (WINDOW *, int, int, const chtype *, int);/* generated */ +extern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *); /* generated */ +extern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *); /* generated */ +extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, NCURSES_PAIRS_T, const void *);/* generated */ +extern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int); /* generated */ +extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int); /* generated */ +extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *); /* generated */ +extern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int); /* generated */ +extern NCURSES_EXPORT(int) mvwin (WINDOW *,int,int); /* implemented */ +extern NCURSES_EXPORT(chtype) mvwinch (WINDOW *, int, int); /* generated */ +extern NCURSES_EXPORT(int) mvwinchnstr (WINDOW *, int, int, chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwinchstr (WINDOW *, int, int, chtype *); /* generated */ +extern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype); /* generated */ +extern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *); /* generated */ +extern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *); /* generated */ +extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...) /* implemented */ + GCC_PRINTFLIKE(4,5); +extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, const char *,...) /* implemented */ + GCC_SCANFLIKE(4,5); +extern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int); /* generated */ +extern NCURSES_EXPORT(int) napms (int); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) newpad (int,int); /* implemented */ +extern NCURSES_EXPORT(SCREEN *) newterm (const char *,FILE *,FILE *); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) nl (void); /* implemented */ +extern NCURSES_EXPORT(int) nocbreak (void); /* implemented */ +extern NCURSES_EXPORT(int) nodelay (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) noecho (void); /* implemented */ +extern NCURSES_EXPORT(int) nonl (void); /* implemented */ +extern NCURSES_EXPORT(void) noqiflush (void); /* implemented */ +extern NCURSES_EXPORT(int) noraw (void); /* implemented */ +extern NCURSES_EXPORT(int) notimeout (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) pair_content (NCURSES_PAIRS_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ +extern NCURSES_EXPORT(int) PAIR_NUMBER (int); /* generated */ +extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype); /* implemented */ +extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */ +extern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) printw (const char *,...) /* implemented */ + GCC_PRINTFLIKE(1,2); +extern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *); /* implemented */ +extern NCURSES_EXPORT(void) qiflush (void); /* implemented */ +extern NCURSES_EXPORT(int) raw (void); /* implemented */ +extern NCURSES_EXPORT(int) redrawwin (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) refresh (void); /* generated */ +extern NCURSES_EXPORT(int) resetty (void); /* implemented */ +extern NCURSES_EXPORT(int) reset_prog_mode (void); /* implemented */ +extern NCURSES_EXPORT(int) reset_shell_mode (void); /* implemented */ +extern NCURSES_EXPORT(int) ripoffline (int, int (*)(WINDOW *, int)); /* implemented */ +extern NCURSES_EXPORT(int) savetty (void); /* implemented */ +extern NCURSES_EXPORT(int) scanw (const char *,...) /* implemented */ + GCC_SCANFLIKE(1,2); +extern NCURSES_EXPORT(int) scr_dump (const char *); /* implemented */ +extern NCURSES_EXPORT(int) scr_init (const char *); /* implemented */ +extern NCURSES_EXPORT(int) scrl (int); /* generated */ +extern NCURSES_EXPORT(int) scroll (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) scrollok (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) scr_restore (const char *); /* implemented */ +extern NCURSES_EXPORT(int) scr_set (const char *); /* implemented */ +extern NCURSES_EXPORT(int) setscrreg (int,int); /* generated */ +extern NCURSES_EXPORT(SCREEN *) set_term (SCREEN *); /* implemented */ +extern NCURSES_EXPORT(int) slk_attroff (const chtype); /* implemented */ +extern NCURSES_EXPORT(int) slk_attr_off (const attr_t, void *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) slk_attron (const chtype); /* implemented */ +extern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) slk_attrset (const chtype); /* implemented */ +extern NCURSES_EXPORT(attr_t) slk_attr (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,NCURSES_PAIRS_T,void*); /* implemented */ +extern NCURSES_EXPORT(int) slk_clear (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_color (NCURSES_PAIRS_T); /* implemented */ +extern NCURSES_EXPORT(int) slk_init (int); /* implemented */ +extern NCURSES_EXPORT(char *) slk_label (int); /* implemented */ +extern NCURSES_EXPORT(int) slk_noutrefresh (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_refresh (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_restore (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_set (int,const char *,int); /* implemented */ +extern NCURSES_EXPORT(int) slk_touch (void); /* implemented */ +extern NCURSES_EXPORT(int) standout (void); /* generated */ +extern NCURSES_EXPORT(int) standend (void); /* generated */ +extern NCURSES_EXPORT(int) start_color (void); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int); /* implemented */ +extern NCURSES_EXPORT(int) syncok (WINDOW *, bool); /* implemented */ +extern NCURSES_EXPORT(chtype) termattrs (void); /* implemented */ +extern NCURSES_EXPORT(char *) termname (void); /* implemented */ +extern NCURSES_EXPORT(void) timeout (int); /* generated */ +extern NCURSES_EXPORT(int) touchline (WINDOW *, int, int); /* generated */ +extern NCURSES_EXPORT(int) touchwin (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) typeahead (int); /* implemented */ +extern NCURSES_EXPORT(int) ungetch (int); /* implemented */ +extern NCURSES_EXPORT(int) untouchwin (WINDOW *); /* generated */ +extern NCURSES_EXPORT(void) use_env (bool); /* implemented */ +extern NCURSES_EXPORT(void) use_tioctl (bool); /* implemented */ +extern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */ +extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC); /* implemented */ +extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */ +extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw) /* implemented */ + GCC_PRINTFLIKE(2,0); +extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list) /* implemented */ + GCC_PRINTFLIKE(2,0); +extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_scanw) /* implemented */ + GCC_SCANFLIKE(2,0); +extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list) /* implemented */ + GCC_SCANFLIKE(2,0); +extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype); /* implemented */ +extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int); /* implemented */ +extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *); /* generated */ +extern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int); /* implemented */ +extern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *); /* generated */ +extern NCURSES_EXPORT(int) wattron (WINDOW *, int); /* generated */ +extern NCURSES_EXPORT(int) wattroff (WINDOW *, int); /* generated */ +extern NCURSES_EXPORT(int) wattrset (WINDOW *, int); /* generated */ +extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ +extern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *); /* implemented */ +extern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *); /* implemented */ +extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, NCURSES_PAIRS_T, void *); /* generated */ +extern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype); /* implemented */ +extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype); /* implemented */ +extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* implemented */ +extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, NCURSES_PAIRS_T, const void *);/* implemented */ +extern NCURSES_EXPORT(int) wclear (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wclrtobot (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wclrtoeol (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,NCURSES_PAIRS_T,void*); /* implemented */ +extern NCURSES_EXPORT(void) wcursyncup (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wdelch (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wdeleteln (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) wechochar (WINDOW *, const chtype); /* implemented */ +extern NCURSES_EXPORT(int) werase (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wgetch (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int); /* implemented */ +extern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *); /* generated */ +extern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int); /* implemented */ +extern NCURSES_EXPORT(chtype) winch (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) winchnstr (WINDOW *, chtype *, int); /* implemented */ +extern NCURSES_EXPORT(int) winchstr (WINDOW *, chtype *); /* generated */ +extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int); /* implemented */ +extern NCURSES_EXPORT(int) winsch (WINDOW *, chtype); /* implemented */ +extern NCURSES_EXPORT(int) winsdelln (WINDOW *,int); /* implemented */ +extern NCURSES_EXPORT(int) winsertln (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) winsnstr (WINDOW *, const char *,int); /* implemented */ +extern NCURSES_EXPORT(int) winsstr (WINDOW *, const char *); /* generated */ +extern NCURSES_EXPORT(int) winstr (WINDOW *, char *); /* generated */ +extern NCURSES_EXPORT(int) wmove (WINDOW *,int,int); /* implemented */ +extern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wprintw (WINDOW *, const char *,...) /* implemented */ + GCC_PRINTFLIKE(2,3); +extern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int); /* implemented */ +extern NCURSES_EXPORT(int) wrefresh (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wscanw (WINDOW *, const char *,...) /* implemented */ + GCC_SCANFLIKE(2,3); +extern NCURSES_EXPORT(int) wscrl (WINDOW *,int); /* implemented */ +extern NCURSES_EXPORT(int) wsetscrreg (WINDOW *,int,int); /* implemented */ +extern NCURSES_EXPORT(int) wstandout (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) wstandend (WINDOW *); /* generated */ +extern NCURSES_EXPORT(void) wsyncdown (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(void) wsyncup (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(void) wtimeout (WINDOW *,int); /* implemented */ +extern NCURSES_EXPORT(int) wtouchln (WINDOW *,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int); /* implemented */ + +/* + * These are also declared in : + */ +extern NCURSES_EXPORT(int) tigetflag (const char *); /* implemented */ +extern NCURSES_EXPORT(int) tigetnum (const char *); /* implemented */ +extern NCURSES_EXPORT(char *) tigetstr (const char *); /* implemented */ +extern NCURSES_EXPORT(int) putp (const char *); /* implemented */ + +#if NCURSES_TPARM_VARARGS +extern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */ +#else +extern NCURSES_EXPORT(char *) tparm (const char *, NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG); /* special */ +#endif + +extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */ + +/* + * These functions are not in X/Open, but we use them in macro definitions: + */ +extern NCURSES_EXPORT(int) getattrs (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getcurx (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getcury (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getbegx (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getbegy (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getmaxx (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getmaxy (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getparx (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */ + +/* + * vid_attr() was implemented originally based on a draft of X/Open curses. + */ +#if !NCURSES_WIDECHAR +#define vid_attr(a,pair,opts) vidattr(a) +#endif + +/* + * These functions are extensions - not in X/Open Curses. + */ +#if 1 +#undef NCURSES_EXT_FUNCS +#define NCURSES_EXT_FUNCS 20211021 +typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *); +typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *); +extern NCURSES_EXPORT(bool) is_term_resized (int, int); +extern NCURSES_EXPORT(char *) keybound (int, int); +extern NCURSES_EXPORT(const char *) curses_version (void); +extern NCURSES_EXPORT(int) alloc_pair (int, int); +extern NCURSES_EXPORT(int) assume_default_colors (int, int); +extern NCURSES_EXPORT(int) define_key (const char *, int); +extern NCURSES_EXPORT(int) extended_color_content(int, int *, int *, int *); +extern NCURSES_EXPORT(int) extended_pair_content(int, int *, int *); +extern NCURSES_EXPORT(int) extended_slk_color(int); +extern NCURSES_EXPORT(int) find_pair (int, int); +extern NCURSES_EXPORT(int) free_pair (int); +extern NCURSES_EXPORT(int) get_escdelay (void); +extern NCURSES_EXPORT(int) init_extended_color(int, int, int, int); +extern NCURSES_EXPORT(int) init_extended_pair(int, int, int); +extern NCURSES_EXPORT(int) key_defined (const char *); +extern NCURSES_EXPORT(int) keyok (int, bool); +extern NCURSES_EXPORT(void) reset_color_pairs (void); +extern NCURSES_EXPORT(int) resize_term (int, int); +extern NCURSES_EXPORT(int) resizeterm (int, int); +extern NCURSES_EXPORT(int) set_escdelay (int); +extern NCURSES_EXPORT(int) set_tabsize (int); +extern NCURSES_EXPORT(int) use_default_colors (void); +extern NCURSES_EXPORT(int) use_extended_names (bool); +extern NCURSES_EXPORT(int) use_legacy_coding (int); +extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *); +extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *); +extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int); +extern NCURSES_EXPORT(void) nofilter(void); + +/* + * These extensions provide access to information stored in the WINDOW even + * when NCURSES_OPAQUE is set: + */ +extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_pad (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_subwin (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) wgetdelay (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* generated */ + +#else +#define curses_version() NCURSES_VERSION +#endif + +/* + * Extra extension-functions, which pass a SCREEN pointer rather than using + * a global variable SP. + */ +#if 1 +#undef NCURSES_SP_FUNCS +#define NCURSES_SP_FUNCS 20211021 +#define NCURSES_SP_NAME(name) name##_sp + +/* Define the sp-funcs helper function */ +#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC) +typedef int (*NCURSES_SP_OUTC)(SCREEN*, int); + +extern NCURSES_EXPORT(SCREEN *) new_prescr (void); /* implemented:SP_FUNC */ + +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(baudrate) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(beep) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(can_change_color) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(cbreak) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(curs_set) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(delay_output) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(doupdate) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(echo) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(endwin) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char) NCURSES_SP_NAME(erasechar) (SCREEN*);/* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(filter) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flash) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flushinp) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(getwin) (SCREEN*, FILE *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(halfdelay) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_colors) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_ic) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_il) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(intrflush) (SCREEN*, WINDOW*, bool); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(isendwin) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(keyname) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char) NCURSES_SP_NAME(killchar) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mvcur) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(napms) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newpad) (SCREEN*, int, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(SCREEN *) NCURSES_SP_NAME(newterm) (SCREEN*, const char *, FILE *, FILE *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newwin) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nl) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nocbreak) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noecho) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nonl) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(noqiflush) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noraw) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(qiflush) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(raw) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resetty) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ripoffline) (SCREEN*, int, int (*)(WINDOW *, int)); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(savetty) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_init) (SCREEN*, const char *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_restore) (SCREEN*, const char *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_set) (SCREEN*, const char *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attroff) (SCREEN*, const chtype); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attron) (SCREEN*, const chtype); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attrset) (SCREEN*, const chtype); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(slk_attr) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, NCURSES_PAIRS_T, void*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_clear) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, NCURSES_PAIRS_T); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_init) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(slk_label) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_noutrefresh) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_refresh) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_restore) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_set) (SCREEN*, int, const char *, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_touch) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(start_color) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(chtype) NCURSES_SP_NAME(termattrs) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(termname) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented:SP_FUNC */ +#if 1 +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(alloc_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(assume_default_colors) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(define_key) (SCREEN*, const char *, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_color_content) (SCREEN*, int, int *, int *, int *); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_pair_content) (SCREEN*, int, int *, int *); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_slk_color) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(find_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(free_pair) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_color) (SCREEN*, int, int, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_pair) (SCREEN*, int, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(is_term_resized) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(key_defined) (SCREEN*, const char *); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(keyok) (SCREEN*, int, bool); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(nofilter) (SCREEN*); /* implemented */ /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(reset_color_pairs) (SCREEN*); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resize_term) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resizeterm) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_escdelay) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_tabsize) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_default_colors) (SCREEN*); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +#endif +#else +#undef NCURSES_SP_FUNCS +#define NCURSES_SP_FUNCS 0 +#define NCURSES_SP_NAME(name) name +#define NCURSES_SP_OUTC NCURSES_OUTC +#endif + +/* attributes */ + +#define NCURSES_ATTR_SHIFT 8 +#define NCURSES_BITS(mask,shift) (NCURSES_CAST(chtype,(mask)) << ((shift) + NCURSES_ATTR_SHIFT)) + +#define A_NORMAL (1U - 1U) +#define A_ATTRIBUTES NCURSES_BITS(~(1U - 1U),0) +#define A_CHARTEXT (NCURSES_BITS(1U,0) - 1U) +#define A_COLOR NCURSES_BITS(((1U) << 8) - 1U,0) +#define A_STANDOUT NCURSES_BITS(1U,8) +#define A_UNDERLINE NCURSES_BITS(1U,9) +#define A_REVERSE NCURSES_BITS(1U,10) +#define A_BLINK NCURSES_BITS(1U,11) +#define A_DIM NCURSES_BITS(1U,12) +#define A_BOLD NCURSES_BITS(1U,13) +#define A_ALTCHARSET NCURSES_BITS(1U,14) +#define A_INVIS NCURSES_BITS(1U,15) +#define A_PROTECT NCURSES_BITS(1U,16) +#define A_HORIZONTAL NCURSES_BITS(1U,17) +#define A_LEFT NCURSES_BITS(1U,18) +#define A_LOW NCURSES_BITS(1U,19) +#define A_RIGHT NCURSES_BITS(1U,20) +#define A_TOP NCURSES_BITS(1U,21) +#define A_VERTICAL NCURSES_BITS(1U,22) + +#if 1 +#define A_ITALIC NCURSES_BITS(1U,23) /* ncurses extension */ +#endif + +/* + * Most of the pseudo functions are macros that either provide compatibility + * with older versions of curses, or provide inline functionality to improve + * performance. + */ + +/* + * These pseudo functions are always implemented as macros: + */ + +#define getyx(win,y,x) (y = getcury(win), x = getcurx(win)) +#define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win)) +#define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win)) +#define getparyx(win,y,x) (y = getpary(win), x = getparx(win)) + +#define getsyx(y,x) do { if (newscr) { \ + if (is_leaveok(newscr)) \ + (y) = (x) = -1; \ + else \ + getyx(newscr,(y), (x)); \ + } \ + } while(0) + +#define setsyx(y,x) do { if (newscr) { \ + if ((y) == -1 && (x) == -1) \ + leaveok(newscr, TRUE); \ + else { \ + leaveok(newscr, FALSE); \ + wmove(newscr, (y), (x)); \ + } \ + } \ + } while(0) + +#ifndef NCURSES_NOMACROS + +/* + * These miscellaneous pseudo functions are provided for compatibility: + */ + +#define wgetstr(w, s) wgetnstr(w, s, -1) +#define getnstr(s, n) wgetnstr(stdscr, s, (n)) + +#define setterm(term) setupterm(term, 1, (int *)0) + +#define fixterm() reset_prog_mode() +#define resetterm() reset_shell_mode() +#define saveterm() def_prog_mode() +#define crmode() cbreak() +#define nocrmode() nocbreak() +#define gettmode() + +/* It seems older SYSV curses versions define these */ +#if !NCURSES_OPAQUE +#define getattrs(win) NCURSES_CAST(int, NCURSES_OK_ADDR(win) ? (win)->_attrs : A_NORMAL) +#define getcurx(win) (NCURSES_OK_ADDR(win) ? (win)->_curx : ERR) +#define getcury(win) (NCURSES_OK_ADDR(win) ? (win)->_cury : ERR) +#define getbegx(win) (NCURSES_OK_ADDR(win) ? (win)->_begx : ERR) +#define getbegy(win) (NCURSES_OK_ADDR(win) ? (win)->_begy : ERR) +#define getmaxx(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxx + 1) : ERR) +#define getmaxy(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxy + 1) : ERR) +#define getparx(win) (NCURSES_OK_ADDR(win) ? (win)->_parx : ERR) +#define getpary(win) (NCURSES_OK_ADDR(win) ? (win)->_pary : ERR) +#endif /* NCURSES_OPAQUE */ + +#define wstandout(win) (wattrset(win,A_STANDOUT)) +#define wstandend(win) (wattrset(win,A_NORMAL)) + +#define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL) +#define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL) + +#if !NCURSES_OPAQUE +#if NCURSES_WATTR_MACROS +#if NCURSES_WIDECHAR && 0 +#define wattrset(win,at) \ + (NCURSES_OK_ADDR(win) \ + ? ((win)->_color = NCURSES_CAST(int, PAIR_NUMBER(at)), \ + (win)->_attrs = NCURSES_CAST(attr_t, at), \ + OK) \ + : ERR) +#else +#define wattrset(win,at) \ + (NCURSES_OK_ADDR(win) \ + ? ((win)->_attrs = NCURSES_CAST(attr_t, at), \ + OK) \ + : ERR) +#endif +#endif /* NCURSES_WATTR_MACROS */ +#endif /* NCURSES_OPAQUE */ + +#define scroll(win) wscrl(win,1) + +#define touchwin(win) wtouchln((win), 0, getmaxy(win), 1) +#define touchline(win, s, c) wtouchln((win), s, c, 1) +#define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0) + +#define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0) +#define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br) +#define hline(ch, n) whline(stdscr, ch, (n)) +#define vline(ch, n) wvline(stdscr, ch, (n)) + +#define winstr(w, s) winnstr(w, s, -1) +#define winchstr(w, s) winchnstr(w, s, -1) +#define winsstr(w, s) winsnstr(w, s, -1) + +#if !NCURSES_OPAQUE +#define redrawwin(win) wredrawln(win, 0, (NCURSES_OK_ADDR(win) ? (win)->_maxy+1 : -1)) +#endif /* NCURSES_OPAQUE */ + +#define waddstr(win,str) waddnstr(win,str,-1) +#define waddchstr(win,str) waddchnstr(win,str,-1) + +/* + * These apply to the first 256 color pairs. + */ +#define COLOR_PAIR(n) (NCURSES_BITS((n), 0) & A_COLOR) +#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT))) + +/* + * pseudo functions for standard screen + */ + +#define addch(ch) waddch(stdscr,(ch)) +#define addchnstr(str,n) waddchnstr(stdscr,(str),(n)) +#define addchstr(str) waddchstr(stdscr,(str)) +#define addnstr(str,n) waddnstr(stdscr,(str),(n)) +#define addstr(str) waddnstr(stdscr,(str),-1) +#define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o)) +#define attr_off(a,o) wattr_off(stdscr,(a),(o)) +#define attr_on(a,o) wattr_on(stdscr,(a),(o)) +#define attr_set(a,c,o) wattr_set(stdscr,(a),(c),(o)) +#define attroff(at) wattroff(stdscr,(at)) +#define attron(at) wattron(stdscr,(at)) +#define attrset(at) wattrset(stdscr,(at)) +#define bkgd(ch) wbkgd(stdscr,(ch)) +#define bkgdset(ch) wbkgdset(stdscr,(ch)) +#define chgat(n,a,c,o) wchgat(stdscr,(n),(a),(c),(o)) +#define clear() wclear(stdscr) +#define clrtobot() wclrtobot(stdscr) +#define clrtoeol() wclrtoeol(stdscr) +#define color_set(c,o) wcolor_set(stdscr,(c),(o)) +#define delch() wdelch(stdscr) +#define deleteln() winsdelln(stdscr,-1) +#define echochar(c) wechochar(stdscr,(c)) +#define erase() werase(stdscr) +#define getch() wgetch(stdscr) +#define getstr(str) wgetstr(stdscr,(str)) +#define inch() winch(stdscr) +#define inchnstr(s,n) winchnstr(stdscr,(s),(n)) +#define inchstr(s) winchstr(stdscr,(s)) +#define innstr(s,n) winnstr(stdscr,(s),(n)) +#define insch(c) winsch(stdscr,(c)) +#define insdelln(n) winsdelln(stdscr,(n)) +#define insertln() winsdelln(stdscr,1) +#define insnstr(s,n) winsnstr(stdscr,(s),(n)) +#define insstr(s) winsstr(stdscr,(s)) +#define instr(s) winstr(stdscr,(s)) +#define move(y,x) wmove(stdscr,(y),(x)) +#define refresh() wrefresh(stdscr) +#define scrl(n) wscrl(stdscr,(n)) +#define setscrreg(t,b) wsetscrreg(stdscr,(t),(b)) +#define standend() wstandend(stdscr) +#define standout() wstandout(stdscr) +#define timeout(delay) wtimeout(stdscr,(delay)) +#define wdeleteln(win) winsdelln(win,-1) +#define winsertln(win) winsdelln(win,1) + +/* + * mv functions + */ + +#define mvwaddch(win,y,x,ch) (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch))) +#define mvwaddchnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n))) +#define mvwaddchstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1)) +#define mvwaddnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n))) +#define mvwaddstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1)) +#define mvwchgat(win,y,x,n,a,c,o) (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o))) +#define mvwdelch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win)) +#define mvwgetch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win)) +#define mvwgetnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n))) +#define mvwgetstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str))) +#define mvwhline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n))) +#define mvwinch(win,y,x) (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win)) +#define mvwinchnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n))) +#define mvwinchstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s))) +#define mvwinnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n))) +#define mvwinsch(win,y,x,c) (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c))) +#define mvwinsnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n))) +#define mvwinsstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s))) +#define mvwinstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s))) +#define mvwvline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n))) + +#define mvaddch(y,x,ch) mvwaddch(stdscr,(y),(x),(ch)) +#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,(y),(x),(str),(n)) +#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,(y),(x),(str)) +#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,(y),(x),(str),(n)) +#define mvaddstr(y,x,str) mvwaddstr(stdscr,(y),(x),(str)) +#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,(y),(x),(n),(a),(c),(o)) +#define mvdelch(y,x) mvwdelch(stdscr,(y),(x)) +#define mvgetch(y,x) mvwgetch(stdscr,(y),(x)) +#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,(y),(x),(str),(n)) +#define mvgetstr(y,x,str) mvwgetstr(stdscr,(y),(x),(str)) +#define mvhline(y,x,c,n) mvwhline(stdscr,(y),(x),(c),(n)) +#define mvinch(y,x) mvwinch(stdscr,(y),(x)) +#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,(y),(x),(s),(n)) +#define mvinchstr(y,x,s) mvwinchstr(stdscr,(y),(x),(s)) +#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,(y),(x),(s),(n)) +#define mvinsch(y,x,c) mvwinsch(stdscr,(y),(x),(c)) +#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,(y),(x),(s),(n)) +#define mvinsstr(y,x,s) mvwinsstr(stdscr,(y),(x),(s)) +#define mvinstr(y,x,s) mvwinstr(stdscr,(y),(x),(s)) +#define mvvline(y,x,c,n) mvwvline(stdscr,(y),(x),(c),(n)) + +/* + * Some wide-character functions can be implemented without the extensions. + */ +#if !NCURSES_OPAQUE +#define getbkgd(win) (NCURSES_OK_ADDR(win) ? ((win)->_bkgd) : 0) +#endif /* NCURSES_OPAQUE */ + +#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a)) +#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a)) + +#if !NCURSES_OPAQUE +#if NCURSES_WATTR_MACROS +#if NCURSES_WIDECHAR && 0 +#define wattr_set(win,a,p,opts) \ + (NCURSES_OK_ADDR(win) \ + ? ((void)((win)->_attrs = ((a) & ~A_COLOR), \ + (win)->_color = (opts) ? *(int *)(opts) : (p)), \ + OK) \ + : ERR) +#define wattr_get(win,a,p,opts) \ + (NCURSES_OK_ADDR(win) \ + ? ((void)(NCURSES_OK_ADDR(a) \ + ? (*(a) = (win)->_attrs) \ + : OK), \ + (void)(NCURSES_OK_ADDR(p) \ + ? (*(p) = (NCURSES_PAIRS_T) (win)->_color) \ + : OK), \ + (void)(NCURSES_OK_ADDR(opts) \ + ? (*(int *)(opts) = (win)->_color) \ + : OK), \ + OK) \ + : ERR) +#else /* !(NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ +#define wattr_set(win,a,p,opts) \ + (NCURSES_OK_ADDR(win) \ + ? ((void)((win)->_attrs = (((a) & ~A_COLOR) | \ + (attr_t)COLOR_PAIR(p))), \ + OK) \ + : ERR) +#define wattr_get(win,a,p,opts) \ + (NCURSES_OK_ADDR(win) \ + ? ((void)(NCURSES_OK_ADDR(a) \ + ? (*(a) = (win)->_attrs) \ + : OK), \ + (void)(NCURSES_OK_ADDR(p) \ + ? (*(p) = (NCURSES_PAIRS_T) PAIR_NUMBER((win)->_attrs)) \ + : OK), \ + OK) \ + : ERR) +#endif /* (NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ +#endif /* NCURSES_WATTR_MACROS */ +#endif /* NCURSES_OPAQUE */ + +/* + * X/Open curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use + * varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to + * use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already + * use stdarg.h, so... + */ +/* define vw_printw vwprintw */ +/* define vw_scanw vwscanw */ + +/* + * Export fallback function for use in C++ binding. + */ +#if !1 +#define vsscanf(a,b,c) _nc_vsscanf(a,b,c) +NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list); +#endif + +/* + * These macros are extensions - not in X/Open Curses. + */ +#if 1 +#if !NCURSES_OPAQUE +#define is_cleared(win) (NCURSES_OK_ADDR(win) ? (win)->_clear : FALSE) +#define is_idcok(win) (NCURSES_OK_ADDR(win) ? (win)->_idcok : FALSE) +#define is_idlok(win) (NCURSES_OK_ADDR(win) ? (win)->_idlok : FALSE) +#define is_immedok(win) (NCURSES_OK_ADDR(win) ? (win)->_immed : FALSE) +#define is_keypad(win) (NCURSES_OK_ADDR(win) ? (win)->_use_keypad : FALSE) +#define is_leaveok(win) (NCURSES_OK_ADDR(win) ? (win)->_leaveok : FALSE) +#define is_nodelay(win) (NCURSES_OK_ADDR(win) ? ((win)->_delay == 0) : FALSE) +#define is_notimeout(win) (NCURSES_OK_ADDR(win) ? (win)->_notimeout : FALSE) +#define is_pad(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _ISPAD) != 0 : FALSE) +#define is_scrollok(win) (NCURSES_OK_ADDR(win) ? (win)->_scroll : FALSE) +#define is_subwin(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _SUBWIN) != 0 : FALSE) +#define is_syncok(win) (NCURSES_OK_ADDR(win) ? (win)->_sync : FALSE) +#define wgetdelay(win) (NCURSES_OK_ADDR(win) ? (win)->_delay : 0) +#define wgetparent(win) (NCURSES_OK_ADDR(win) ? (win)->_parent : 0) +#define wgetscrreg(win,t,b) (NCURSES_OK_ADDR(win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR) +#endif +#endif + +/* + * X/Open says this returns a bool; SVr4 also checked for out-of-range line. + * The macro provides compatibility: + */ +#define is_linetouched(w,l) ((!(w) || ((l) > getmaxy(w)) || ((l) < 0)) ? ERR : (is_linetouched)((w),(l))) + +#endif /* NCURSES_NOMACROS */ + +/* + * Public variables. + * + * Notes: + * a. ESCDELAY was an undocumented feature under AIX curses. + * It gives the ESC expire time in milliseconds. + * b. ttytype is needed for backward compatibility + */ +#if NCURSES_REENTRANT + +NCURSES_WRAPPED_VAR(WINDOW *, curscr); +NCURSES_WRAPPED_VAR(WINDOW *, newscr); +NCURSES_WRAPPED_VAR(WINDOW *, stdscr); +NCURSES_WRAPPED_VAR(char *, ttytype); +NCURSES_WRAPPED_VAR(int, COLORS); +NCURSES_WRAPPED_VAR(int, COLOR_PAIRS); +NCURSES_WRAPPED_VAR(int, COLS); +NCURSES_WRAPPED_VAR(int, ESCDELAY); +NCURSES_WRAPPED_VAR(int, LINES); +NCURSES_WRAPPED_VAR(int, TABSIZE); + +#define curscr NCURSES_PUBLIC_VAR(curscr()) +#define newscr NCURSES_PUBLIC_VAR(newscr()) +#define stdscr NCURSES_PUBLIC_VAR(stdscr()) +#define ttytype NCURSES_PUBLIC_VAR(ttytype()) +#define COLORS NCURSES_PUBLIC_VAR(COLORS()) +#define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS()) +#define COLS NCURSES_PUBLIC_VAR(COLS()) +#define ESCDELAY NCURSES_PUBLIC_VAR(ESCDELAY()) +#define LINES NCURSES_PUBLIC_VAR(LINES()) +#define TABSIZE NCURSES_PUBLIC_VAR(TABSIZE()) + +#else + +extern NCURSES_EXPORT_VAR(WINDOW *) curscr; +extern NCURSES_EXPORT_VAR(WINDOW *) newscr; +extern NCURSES_EXPORT_VAR(WINDOW *) stdscr; +extern NCURSES_EXPORT_VAR(char) ttytype[]; +extern NCURSES_EXPORT_VAR(int) COLORS; +extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS; +extern NCURSES_EXPORT_VAR(int) COLS; +extern NCURSES_EXPORT_VAR(int) ESCDELAY; +extern NCURSES_EXPORT_VAR(int) LINES; +extern NCURSES_EXPORT_VAR(int) TABSIZE; + +#endif + +/* + * Pseudo-character tokens outside ASCII range. The curses wgetch() function + * will return any given one of these only if the corresponding k- capability + * is defined in your terminal's terminfo entry. + * + * Some keys (KEY_A1, etc) are arranged like this: + * a1 up a3 + * left b2 right + * c1 down c3 + * + * A few key codes do not depend upon the terminfo entry. + */ +#define KEY_CODE_YES 0400 /* A wchar_t contains a key code */ +#define KEY_MIN 0401 /* Minimum curses key */ +#define KEY_BREAK 0401 /* Break key (unreliable) */ +#define KEY_SRESET 0530 /* Soft (partial) reset (unreliable) */ +#define KEY_RESET 0531 /* Reset or hard reset (unreliable) */ +/* + * These definitions were generated by ./MKkey_defs.sh ./Caps ./Caps-ncurses + */ +#define KEY_DOWN 0402 /* down-arrow key */ +#define KEY_UP 0403 /* up-arrow key */ +#define KEY_LEFT 0404 /* left-arrow key */ +#define KEY_RIGHT 0405 /* right-arrow key */ +#define KEY_HOME 0406 /* home key */ +#define KEY_BACKSPACE 0407 /* backspace key */ +#define KEY_F0 0410 /* Function keys. Space for 64 */ +#define KEY_F(n) (KEY_F0+(n)) /* Value of function key n */ +#define KEY_DL 0510 /* delete-line key */ +#define KEY_IL 0511 /* insert-line key */ +#define KEY_DC 0512 /* delete-character key */ +#define KEY_IC 0513 /* insert-character key */ +#define KEY_EIC 0514 /* sent by rmir or smir in insert mode */ +#define KEY_CLEAR 0515 /* clear-screen or erase key */ +#define KEY_EOS 0516 /* clear-to-end-of-screen key */ +#define KEY_EOL 0517 /* clear-to-end-of-line key */ +#define KEY_SF 0520 /* scroll-forward key */ +#define KEY_SR 0521 /* scroll-backward key */ +#define KEY_NPAGE 0522 /* next-page key */ +#define KEY_PPAGE 0523 /* previous-page key */ +#define KEY_STAB 0524 /* set-tab key */ +#define KEY_CTAB 0525 /* clear-tab key */ +#define KEY_CATAB 0526 /* clear-all-tabs key */ +#define KEY_ENTER 0527 /* enter/send key */ +#define KEY_PRINT 0532 /* print key */ +#define KEY_LL 0533 /* lower-left key (home down) */ +#define KEY_A1 0534 /* upper left of keypad */ +#define KEY_A3 0535 /* upper right of keypad */ +#define KEY_B2 0536 /* center of keypad */ +#define KEY_C1 0537 /* lower left of keypad */ +#define KEY_C3 0540 /* lower right of keypad */ +#define KEY_BTAB 0541 /* back-tab key */ +#define KEY_BEG 0542 /* begin key */ +#define KEY_CANCEL 0543 /* cancel key */ +#define KEY_CLOSE 0544 /* close key */ +#define KEY_COMMAND 0545 /* command key */ +#define KEY_COPY 0546 /* copy key */ +#define KEY_CREATE 0547 /* create key */ +#define KEY_END 0550 /* end key */ +#define KEY_EXIT 0551 /* exit key */ +#define KEY_FIND 0552 /* find key */ +#define KEY_HELP 0553 /* help key */ +#define KEY_MARK 0554 /* mark key */ +#define KEY_MESSAGE 0555 /* message key */ +#define KEY_MOVE 0556 /* move key */ +#define KEY_NEXT 0557 /* next key */ +#define KEY_OPEN 0560 /* open key */ +#define KEY_OPTIONS 0561 /* options key */ +#define KEY_PREVIOUS 0562 /* previous key */ +#define KEY_REDO 0563 /* redo key */ +#define KEY_REFERENCE 0564 /* reference key */ +#define KEY_REFRESH 0565 /* refresh key */ +#define KEY_REPLACE 0566 /* replace key */ +#define KEY_RESTART 0567 /* restart key */ +#define KEY_RESUME 0570 /* resume key */ +#define KEY_SAVE 0571 /* save key */ +#define KEY_SBEG 0572 /* shifted begin key */ +#define KEY_SCANCEL 0573 /* shifted cancel key */ +#define KEY_SCOMMAND 0574 /* shifted command key */ +#define KEY_SCOPY 0575 /* shifted copy key */ +#define KEY_SCREATE 0576 /* shifted create key */ +#define KEY_SDC 0577 /* shifted delete-character key */ +#define KEY_SDL 0600 /* shifted delete-line key */ +#define KEY_SELECT 0601 /* select key */ +#define KEY_SEND 0602 /* shifted end key */ +#define KEY_SEOL 0603 /* shifted clear-to-end-of-line key */ +#define KEY_SEXIT 0604 /* shifted exit key */ +#define KEY_SFIND 0605 /* shifted find key */ +#define KEY_SHELP 0606 /* shifted help key */ +#define KEY_SHOME 0607 /* shifted home key */ +#define KEY_SIC 0610 /* shifted insert-character key */ +#define KEY_SLEFT 0611 /* shifted left-arrow key */ +#define KEY_SMESSAGE 0612 /* shifted message key */ +#define KEY_SMOVE 0613 /* shifted move key */ +#define KEY_SNEXT 0614 /* shifted next key */ +#define KEY_SOPTIONS 0615 /* shifted options key */ +#define KEY_SPREVIOUS 0616 /* shifted previous key */ +#define KEY_SPRINT 0617 /* shifted print key */ +#define KEY_SREDO 0620 /* shifted redo key */ +#define KEY_SREPLACE 0621 /* shifted replace key */ +#define KEY_SRIGHT 0622 /* shifted right-arrow key */ +#define KEY_SRSUME 0623 /* shifted resume key */ +#define KEY_SSAVE 0624 /* shifted save key */ +#define KEY_SSUSPEND 0625 /* shifted suspend key */ +#define KEY_SUNDO 0626 /* shifted undo key */ +#define KEY_SUSPEND 0627 /* suspend key */ +#define KEY_UNDO 0630 /* undo key */ +#define KEY_MOUSE 0631 /* Mouse event has occurred */ + +#ifdef NCURSES_EXT_FUNCS +#define KEY_RESIZE 0632 /* Terminal resize event */ +#endif + +#define KEY_MAX 0777 /* Maximum key value is 0632 */ +/* $Id: curses.tail,v 1.26 2021/03/20 15:49:25 tom Exp $ */ +/* + * vile:cmode: + * This file is part of ncurses, designed to be appended after curses.h.in + * (see that file for the relevant copyright). + */ + +/* mouse interface */ + +#if NCURSES_MOUSE_VERSION > 1 +#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 5)) +#else +#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 6)) +#endif + +#define NCURSES_BUTTON_RELEASED 001L +#define NCURSES_BUTTON_PRESSED 002L +#define NCURSES_BUTTON_CLICKED 004L +#define NCURSES_DOUBLE_CLICKED 010L +#define NCURSES_TRIPLE_CLICKED 020L +#define NCURSES_RESERVED_EVENT 040L + +/* event masks */ +#define BUTTON1_RELEASED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED) +#define BUTTON1_PRESSED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED) +#define BUTTON1_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_CLICKED) +#define BUTTON1_DOUBLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED) +#define BUTTON1_TRIPLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED) + +#define BUTTON2_RELEASED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_RELEASED) +#define BUTTON2_PRESSED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_PRESSED) +#define BUTTON2_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_CLICKED) +#define BUTTON2_DOUBLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_DOUBLE_CLICKED) +#define BUTTON2_TRIPLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_TRIPLE_CLICKED) + +#define BUTTON3_RELEASED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_RELEASED) +#define BUTTON3_PRESSED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_PRESSED) +#define BUTTON3_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_CLICKED) +#define BUTTON3_DOUBLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_DOUBLE_CLICKED) +#define BUTTON3_TRIPLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_TRIPLE_CLICKED) + +#define BUTTON4_RELEASED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_RELEASED) +#define BUTTON4_PRESSED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_PRESSED) +#define BUTTON4_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_CLICKED) +#define BUTTON4_DOUBLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_DOUBLE_CLICKED) +#define BUTTON4_TRIPLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_TRIPLE_CLICKED) + +/* + * In 32 bits the version-1 scheme does not provide enough space for a 5th + * button, unless we choose to change the ABI by omitting the reserved-events. + */ +#if NCURSES_MOUSE_VERSION > 1 + +#define BUTTON5_RELEASED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED) +#define BUTTON5_PRESSED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_PRESSED) +#define BUTTON5_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED) +#define BUTTON5_DOUBLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED) +#define BUTTON5_TRIPLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED) + +#define BUTTON_CTRL NCURSES_MOUSE_MASK(6, 0001L) +#define BUTTON_SHIFT NCURSES_MOUSE_MASK(6, 0002L) +#define BUTTON_ALT NCURSES_MOUSE_MASK(6, 0004L) +#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(6, 0010L) + +#else + +#define BUTTON1_RESERVED_EVENT NCURSES_MOUSE_MASK(1, NCURSES_RESERVED_EVENT) +#define BUTTON2_RESERVED_EVENT NCURSES_MOUSE_MASK(2, NCURSES_RESERVED_EVENT) +#define BUTTON3_RESERVED_EVENT NCURSES_MOUSE_MASK(3, NCURSES_RESERVED_EVENT) +#define BUTTON4_RESERVED_EVENT NCURSES_MOUSE_MASK(4, NCURSES_RESERVED_EVENT) + +#define BUTTON_CTRL NCURSES_MOUSE_MASK(5, 0001L) +#define BUTTON_SHIFT NCURSES_MOUSE_MASK(5, 0002L) +#define BUTTON_ALT NCURSES_MOUSE_MASK(5, 0004L) +#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(5, 0010L) + +#endif + +#define ALL_MOUSE_EVENTS (REPORT_MOUSE_POSITION - 1) + +/* macros to extract single event-bits from masks */ +#define BUTTON_RELEASE(e, x) ((e) & NCURSES_MOUSE_MASK(x, 001)) +#define BUTTON_PRESS(e, x) ((e) & NCURSES_MOUSE_MASK(x, 002)) +#define BUTTON_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 004)) +#define BUTTON_DOUBLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 010)) +#define BUTTON_TRIPLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 020)) +#define BUTTON_RESERVED_EVENT(e, x) ((e) & NCURSES_MOUSE_MASK(x, 040)) + +typedef struct +{ + short id; /* ID to distinguish multiple devices */ + int x, y, z; /* event coordinates (character-cell) */ + mmask_t bstate; /* button state bits */ +} +MEVENT; + +extern NCURSES_EXPORT(bool) has_mouse(void); +extern NCURSES_EXPORT(int) getmouse (MEVENT *); +extern NCURSES_EXPORT(int) ungetmouse (MEVENT *); +extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *); +extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int); +extern NCURSES_EXPORT(int) mouseinterval (int); +extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW*, int*, int*, bool); +extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* generated */ + +#if NCURSES_SP_FUNCS +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_mouse) (SCREEN*); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(getmouse) (SCREEN*, MEVENT *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetmouse) (SCREEN*,MEVENT *); +extern NCURSES_EXPORT(mmask_t) NCURSES_SP_NAME(mousemask) (SCREEN*, mmask_t, mmask_t *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mouseinterval) (SCREEN*, int); +#endif + +#ifndef NCURSES_NOMACROS +#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen) +#endif + +/* other non-XSI functions */ + +extern NCURSES_EXPORT(int) mcprint (char *, int); /* direct data to printer */ +extern NCURSES_EXPORT(int) has_key (int); /* do we have given key? */ + +#if NCURSES_SP_FUNCS +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(has_key) (SCREEN*, int); /* do we have given key? */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mcprint) (SCREEN*, char *, int); /* direct data to printer */ +#endif + +/* Debugging : use with libncurses_g.a */ + +extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2); +extern NCURSES_EXPORT(char *) _traceattr (attr_t); +extern NCURSES_EXPORT(char *) _traceattr2 (int, chtype); +extern NCURSES_EXPORT(char *) _tracechar (int); +extern NCURSES_EXPORT(char *) _tracechtype (chtype); +extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype); +#if NCURSES_WIDECHAR +#define _tracech_t _tracecchar_t +extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *); +#define _tracech_t2 _tracecchar_t2 +extern NCURSES_EXPORT(char *) _tracecchar_t2 (int, const cchar_t *); +#else +#define _tracech_t _tracechtype +#define _tracech_t2 _tracechtype2 +#endif +extern NCURSES_EXPORT(void) trace (const unsigned) GCC_DEPRECATED("use curses_trace"); +extern NCURSES_EXPORT(unsigned) curses_trace (const unsigned); + +/* trace masks */ +#define TRACE_DISABLE 0x0000 /* turn off tracing */ +#define TRACE_TIMES 0x0001 /* trace user and system times of updates */ +#define TRACE_TPUTS 0x0002 /* trace tputs calls */ +#define TRACE_UPDATE 0x0004 /* trace update actions, old & new screens */ +#define TRACE_MOVE 0x0008 /* trace cursor moves and scrolls */ +#define TRACE_CHARPUT 0x0010 /* trace all character outputs */ +#define TRACE_ORDINARY 0x001F /* trace all update actions */ +#define TRACE_CALLS 0x0020 /* trace all curses calls */ +#define TRACE_VIRTPUT 0x0040 /* trace virtual character puts */ +#define TRACE_IEVENT 0x0080 /* trace low-level input processing */ +#define TRACE_BITS 0x0100 /* trace state of TTY control bits */ +#define TRACE_ICALLS 0x0200 /* trace internal/nested calls */ +#define TRACE_CCALLS 0x0400 /* trace per-character calls */ +#define TRACE_DATABASE 0x0800 /* trace read/write of terminfo/termcap data */ +#define TRACE_ATTRS 0x1000 /* trace attribute updates */ + +#define TRACE_SHIFT 13 /* number of bits in the trace masks */ +#define TRACE_MAXIMUM ((1 << TRACE_SHIFT) - 1) /* maximum trace level */ + +#if defined(TRACE) || defined(NCURSES_TEST) +extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable; /* enable optimizations */ +extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *); +#define OPTIMIZE_MVCUR 0x01 /* cursor movement optimization */ +#define OPTIMIZE_HASHMAP 0x02 /* diff hashing to detect scrolls */ +#define OPTIMIZE_SCROLL 0x04 /* scroll optimization */ +#define OPTIMIZE_ALL 0xff /* enable all optimizations (dflt) */ +#endif + +extern GCC_NORETURN NCURSES_EXPORT(void) exit_curses (int); + +#include + +#ifdef __cplusplus + +#ifndef NCURSES_NOMACROS + +/* these names conflict with STL */ +#undef box +#undef clear +#undef erase +#undef move +#undef refresh + +#endif /* NCURSES_NOMACROS */ + +} +#endif + +#endif /* __NCURSES_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-address.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-address.h new file mode 100644 index 000000000..c0303430f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-address.h @@ -0,0 +1,87 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-address.h Server address parser. + * + * Copyright (C) 2003 CodeFactory AB + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_ADDRESS_H +#define DBUS_ADDRESS_H + +#include +#include + +DBUS_BEGIN_DECLS + +/** + * @addtogroup DBusAddress + * @{ + */ + +/** Opaque type representing one of the semicolon-separated items in an address */ +typedef struct DBusAddressEntry DBusAddressEntry; + +DBUS_EXPORT +dbus_bool_t dbus_parse_address (const char *address, + DBusAddressEntry ***entry_result, + int *array_len, + DBusError *error); +DBUS_EXPORT +const char *dbus_address_entry_get_value (DBusAddressEntry *entry, + const char *key); +DBUS_EXPORT +const char *dbus_address_entry_get_method (DBusAddressEntry *entry); +DBUS_EXPORT +void dbus_address_entries_free (DBusAddressEntry **entries); + +DBUS_EXPORT +char* dbus_address_escape_value (const char *value); +DBUS_EXPORT +char* dbus_address_unescape_value (const char *value, + DBusError *error); + +/** + * Clear a variable or struct member that contains an array of #DBusAddressEntry. + * If it does not contain #NULL, the entries that were previously + * there are freed with dbus_address_entries_free(). + * + * This is similar to dbus_clear_connection(): see that function + * for more details. + * + * @param pointer_to_entries A pointer to a variable or struct member. + * pointer_to_entries must not be #NULL, but *pointer_to_entries + * may be #NULL. + */ +static inline void +dbus_clear_address_entries (DBusAddressEntry ***pointer_to_entries) +{ + _dbus_clear_pointer_impl (DBusAddressEntry *, pointer_to_entries, + dbus_address_entries_free); +} + +/** @} */ + +DBUS_END_DECLS + +#endif /* DBUS_ADDRESS_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-bus.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-bus.h new file mode 100644 index 000000000..31ade9a6d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-bus.h @@ -0,0 +1,97 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-bus.h Convenience functions for communicating with the bus. + * + * Copyright (C) 2003 CodeFactory AB + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_BUS_H +#define DBUS_BUS_H + +#include + +DBUS_BEGIN_DECLS + +/** + * @addtogroup DBusBus + * @{ + */ + +DBUS_EXPORT +DBusConnection *dbus_bus_get (DBusBusType type, + DBusError *error); +DBUS_EXPORT +DBusConnection *dbus_bus_get_private (DBusBusType type, + DBusError *error); + +DBUS_EXPORT +dbus_bool_t dbus_bus_register (DBusConnection *connection, + DBusError *error); +DBUS_EXPORT +dbus_bool_t dbus_bus_set_unique_name (DBusConnection *connection, + const char *unique_name); +DBUS_EXPORT +const char* dbus_bus_get_unique_name (DBusConnection *connection); +DBUS_EXPORT +unsigned long dbus_bus_get_unix_user (DBusConnection *connection, + const char *name, + DBusError *error); +DBUS_EXPORT +char* dbus_bus_get_id (DBusConnection *connection, + DBusError *error); +DBUS_EXPORT +int dbus_bus_request_name (DBusConnection *connection, + const char *name, + unsigned int flags, + DBusError *error); +DBUS_EXPORT +int dbus_bus_release_name (DBusConnection *connection, + const char *name, + DBusError *error); +DBUS_EXPORT +dbus_bool_t dbus_bus_name_has_owner (DBusConnection *connection, + const char *name, + DBusError *error); + +DBUS_EXPORT +dbus_bool_t dbus_bus_start_service_by_name (DBusConnection *connection, + const char *name, + dbus_uint32_t flags, + dbus_uint32_t *reply, + DBusError *error); + +DBUS_EXPORT +void dbus_bus_add_match (DBusConnection *connection, + const char *rule, + DBusError *error); +DBUS_EXPORT +void dbus_bus_remove_match (DBusConnection *connection, + const char *rule, + DBusError *error); + +/** @} */ + +DBUS_END_DECLS + +#endif /* DBUS_BUS_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-connection.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-connection.h new file mode 100644 index 000000000..b79fda838 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-connection.h @@ -0,0 +1,531 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-connection.h DBusConnection object + * + * Copyright (C) 2002, 2003 Red Hat Inc. + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_CONNECTION_H +#define DBUS_CONNECTION_H + +#include +#include +#include +#include +#include + +DBUS_BEGIN_DECLS + +/** + * @addtogroup DBusConnection + * @{ + */ + +/* documented in dbus-watch.c */ +typedef struct DBusWatch DBusWatch; +/* documented in dbus-timeout.c */ +typedef struct DBusTimeout DBusTimeout; +/** Opaque type representing preallocated resources so a message can be sent without further memory allocation. */ +typedef struct DBusPreallocatedSend DBusPreallocatedSend; +/** Opaque type representing a method call that has not yet received a reply. */ +typedef struct DBusPendingCall DBusPendingCall; +/** Opaque type representing a connection to a remote application and associated incoming/outgoing message queues. */ +typedef struct DBusConnection DBusConnection; +/** Set of functions that must be implemented to handle messages sent to a particular object path. */ +typedef struct DBusObjectPathVTable DBusObjectPathVTable; + +/** + * Indicates the status of a #DBusWatch. + */ +typedef enum +{ + DBUS_WATCH_READABLE = 1 << 0, /**< As in POLLIN */ + DBUS_WATCH_WRITABLE = 1 << 1, /**< As in POLLOUT */ + DBUS_WATCH_ERROR = 1 << 2, /**< As in POLLERR (can't watch for + * this, but can be present in + * current state passed to + * dbus_watch_handle()). + */ + DBUS_WATCH_HANGUP = 1 << 3 /**< As in POLLHUP (can't watch for + * it, but can be present in current + * state passed to + * dbus_watch_handle()). + */ + /* Internal to libdbus, there is also _DBUS_WATCH_NVAL in dbus-watch.h */ +} DBusWatchFlags; + +/** + * Indicates the status of incoming data on a #DBusConnection. This determines whether + * dbus_connection_dispatch() needs to be called. + */ +typedef enum +{ + DBUS_DISPATCH_DATA_REMAINS, /**< There is more data to potentially convert to messages. */ + DBUS_DISPATCH_COMPLETE, /**< All currently available data has been processed. */ + DBUS_DISPATCH_NEED_MEMORY /**< More memory is needed to continue. */ +} DBusDispatchStatus; + +/** Called when libdbus needs a new watch to be monitored by the main + * loop. Returns #FALSE if it lacks enough memory to add the + * watch. Set by dbus_connection_set_watch_functions() or + * dbus_server_set_watch_functions(). + */ +typedef dbus_bool_t (* DBusAddWatchFunction) (DBusWatch *watch, + void *data); +/** Called when dbus_watch_get_enabled() may return a different value + * than it did before. Set by dbus_connection_set_watch_functions() + * or dbus_server_set_watch_functions(). + */ +typedef void (* DBusWatchToggledFunction) (DBusWatch *watch, + void *data); +/** Called when libdbus no longer needs a watch to be monitored by the + * main loop. Set by dbus_connection_set_watch_functions() or + * dbus_server_set_watch_functions(). + */ +typedef void (* DBusRemoveWatchFunction) (DBusWatch *watch, + void *data); +/** Called when libdbus needs a new timeout to be monitored by the main + * loop. Returns #FALSE if it lacks enough memory to add the + * watch. Set by dbus_connection_set_timeout_functions() or + * dbus_server_set_timeout_functions(). + */ +typedef dbus_bool_t (* DBusAddTimeoutFunction) (DBusTimeout *timeout, + void *data); +/** Called when dbus_timeout_get_enabled() may return a different + * value than it did before. + * Set by dbus_connection_set_timeout_functions() or + * dbus_server_set_timeout_functions(). + */ +typedef void (* DBusTimeoutToggledFunction) (DBusTimeout *timeout, + void *data); +/** Called when libdbus no longer needs a timeout to be monitored by the + * main loop. Set by dbus_connection_set_timeout_functions() or + * dbus_server_set_timeout_functions(). + */ +typedef void (* DBusRemoveTimeoutFunction) (DBusTimeout *timeout, + void *data); +/** Called when the return value of dbus_connection_get_dispatch_status() + * may have changed. Set with dbus_connection_set_dispatch_status_function(). + */ +typedef void (* DBusDispatchStatusFunction) (DBusConnection *connection, + DBusDispatchStatus new_status, + void *data); +/** + * Called when the main loop's thread should be notified that there's now work + * to do. Set with dbus_connection_set_wakeup_main_function(). + */ +typedef void (* DBusWakeupMainFunction) (void *data); + +/** + * Called during authentication to check whether the given UNIX user + * ID is allowed to connect, if the client tried to auth as a UNIX + * user ID. Normally on Windows this would never happen. Set with + * dbus_connection_set_unix_user_function(). + */ +typedef dbus_bool_t (* DBusAllowUnixUserFunction) (DBusConnection *connection, + unsigned long uid, + void *data); + +/** + * Called during authentication to check whether the given Windows user + * ID is allowed to connect, if the client tried to auth as a Windows + * user ID. Normally on UNIX this would never happen. Set with + * dbus_connection_set_windows_user_function(). + */ +typedef dbus_bool_t (* DBusAllowWindowsUserFunction) (DBusConnection *connection, + const char *user_sid, + void *data); + + +/** + * Called when a pending call now has a reply available. Set with + * dbus_pending_call_set_notify(). + */ +typedef void (* DBusPendingCallNotifyFunction) (DBusPendingCall *pending, + void *user_data); + +/** + * Called when a message needs to be handled. The result indicates whether or + * not more handlers should be run. Set with dbus_connection_add_filter(). + */ +typedef DBusHandlerResult (* DBusHandleMessageFunction) (DBusConnection *connection, + DBusMessage *message, + void *user_data); +DBUS_EXPORT +DBusConnection* dbus_connection_open (const char *address, + DBusError *error); +DBUS_EXPORT +DBusConnection* dbus_connection_open_private (const char *address, + DBusError *error); +DBUS_EXPORT +DBusConnection* dbus_connection_ref (DBusConnection *connection); +DBUS_EXPORT +void dbus_connection_unref (DBusConnection *connection); +DBUS_EXPORT +void dbus_connection_close (DBusConnection *connection); +DBUS_EXPORT +dbus_bool_t dbus_connection_get_is_connected (DBusConnection *connection); +DBUS_EXPORT +dbus_bool_t dbus_connection_get_is_authenticated (DBusConnection *connection); +DBUS_EXPORT +dbus_bool_t dbus_connection_get_is_anonymous (DBusConnection *connection); +DBUS_EXPORT +char* dbus_connection_get_server_id (DBusConnection *connection); +DBUS_EXPORT +dbus_bool_t dbus_connection_can_send_type (DBusConnection *connection, + int type); + +DBUS_EXPORT +void dbus_connection_set_exit_on_disconnect (DBusConnection *connection, + dbus_bool_t exit_on_disconnect); +DBUS_EXPORT +void dbus_connection_flush (DBusConnection *connection); +DBUS_EXPORT +dbus_bool_t dbus_connection_read_write_dispatch (DBusConnection *connection, + int timeout_milliseconds); +DBUS_EXPORT +dbus_bool_t dbus_connection_read_write (DBusConnection *connection, + int timeout_milliseconds); +DBUS_EXPORT +DBusMessage* dbus_connection_borrow_message (DBusConnection *connection); +DBUS_EXPORT +void dbus_connection_return_message (DBusConnection *connection, + DBusMessage *message); +DBUS_EXPORT +void dbus_connection_steal_borrowed_message (DBusConnection *connection, + DBusMessage *message); +DBUS_EXPORT +DBusMessage* dbus_connection_pop_message (DBusConnection *connection); +DBUS_EXPORT +DBusDispatchStatus dbus_connection_get_dispatch_status (DBusConnection *connection); +DBUS_EXPORT +DBusDispatchStatus dbus_connection_dispatch (DBusConnection *connection); +DBUS_EXPORT +dbus_bool_t dbus_connection_has_messages_to_send (DBusConnection *connection); +DBUS_EXPORT +dbus_bool_t dbus_connection_send (DBusConnection *connection, + DBusMessage *message, + dbus_uint32_t *client_serial); +DBUS_EXPORT +dbus_bool_t dbus_connection_send_with_reply (DBusConnection *connection, + DBusMessage *message, + DBusPendingCall **pending_return, + int timeout_milliseconds); +DBUS_EXPORT +DBusMessage * dbus_connection_send_with_reply_and_block (DBusConnection *connection, + DBusMessage *message, + int timeout_milliseconds, + DBusError *error); +DBUS_EXPORT +dbus_bool_t dbus_connection_set_watch_functions (DBusConnection *connection, + DBusAddWatchFunction add_function, + DBusRemoveWatchFunction remove_function, + DBusWatchToggledFunction toggled_function, + void *data, + DBusFreeFunction free_data_function); +DBUS_EXPORT +dbus_bool_t dbus_connection_set_timeout_functions (DBusConnection *connection, + DBusAddTimeoutFunction add_function, + DBusRemoveTimeoutFunction remove_function, + DBusTimeoutToggledFunction toggled_function, + void *data, + DBusFreeFunction free_data_function); +DBUS_EXPORT +void dbus_connection_set_wakeup_main_function (DBusConnection *connection, + DBusWakeupMainFunction wakeup_main_function, + void *data, + DBusFreeFunction free_data_function); +DBUS_EXPORT +void dbus_connection_set_dispatch_status_function (DBusConnection *connection, + DBusDispatchStatusFunction function, + void *data, + DBusFreeFunction free_data_function); +DBUS_EXPORT +dbus_bool_t dbus_connection_get_unix_user (DBusConnection *connection, + unsigned long *uid); +DBUS_EXPORT +dbus_bool_t dbus_connection_get_unix_process_id (DBusConnection *connection, + unsigned long *pid); +DBUS_EXPORT +dbus_bool_t dbus_connection_get_adt_audit_session_data (DBusConnection *connection, + void **data, + dbus_int32_t *data_size); +DBUS_EXPORT +void dbus_connection_set_unix_user_function (DBusConnection *connection, + DBusAllowUnixUserFunction function, + void *data, + DBusFreeFunction free_data_function); +DBUS_EXPORT +dbus_bool_t dbus_connection_get_windows_user (DBusConnection *connection, + char **windows_sid_p); +DBUS_EXPORT +void dbus_connection_set_windows_user_function (DBusConnection *connection, + DBusAllowWindowsUserFunction function, + void *data, + DBusFreeFunction free_data_function); +DBUS_EXPORT +void dbus_connection_set_allow_anonymous (DBusConnection *connection, + dbus_bool_t value); +DBUS_EXPORT +void dbus_connection_set_builtin_filters_enabled (DBusConnection *connection, + dbus_bool_t value); +DBUS_EXPORT +void dbus_connection_set_route_peer_messages (DBusConnection *connection, + dbus_bool_t value); + + +/* Filters */ + +DBUS_EXPORT +dbus_bool_t dbus_connection_add_filter (DBusConnection *connection, + DBusHandleMessageFunction function, + void *user_data, + DBusFreeFunction free_data_function); +DBUS_EXPORT +void dbus_connection_remove_filter (DBusConnection *connection, + DBusHandleMessageFunction function, + void *user_data); + + +/* Other */ +DBUS_EXPORT +dbus_bool_t dbus_connection_allocate_data_slot (dbus_int32_t *slot_p); +DBUS_EXPORT +void dbus_connection_free_data_slot (dbus_int32_t *slot_p); +DBUS_EXPORT +dbus_bool_t dbus_connection_set_data (DBusConnection *connection, + dbus_int32_t slot, + void *data, + DBusFreeFunction free_data_func); +DBUS_EXPORT +void* dbus_connection_get_data (DBusConnection *connection, + dbus_int32_t slot); + +DBUS_EXPORT +void dbus_connection_set_change_sigpipe (dbus_bool_t will_modify_sigpipe); + +DBUS_EXPORT +void dbus_connection_set_max_message_size (DBusConnection *connection, + long size); +DBUS_EXPORT +long dbus_connection_get_max_message_size (DBusConnection *connection); +DBUS_EXPORT +void dbus_connection_set_max_received_size (DBusConnection *connection, + long size); +DBUS_EXPORT +long dbus_connection_get_max_received_size (DBusConnection *connection); + +DBUS_EXPORT +void dbus_connection_set_max_message_unix_fds (DBusConnection *connection, + long n); +DBUS_EXPORT +long dbus_connection_get_max_message_unix_fds (DBusConnection *connection); +DBUS_EXPORT +void dbus_connection_set_max_received_unix_fds(DBusConnection *connection, + long n); +DBUS_EXPORT +long dbus_connection_get_max_received_unix_fds(DBusConnection *connection); + +DBUS_EXPORT +long dbus_connection_get_outgoing_size (DBusConnection *connection); +DBUS_EXPORT +long dbus_connection_get_outgoing_unix_fds (DBusConnection *connection); + +DBUS_EXPORT +DBusPreallocatedSend* dbus_connection_preallocate_send (DBusConnection *connection); +DBUS_EXPORT +void dbus_connection_free_preallocated_send (DBusConnection *connection, + DBusPreallocatedSend *preallocated); +DBUS_EXPORT +void dbus_connection_send_preallocated (DBusConnection *connection, + DBusPreallocatedSend *preallocated, + DBusMessage *message, + dbus_uint32_t *client_serial); + + +/* Object tree functionality */ + +/** + * Called when a #DBusObjectPathVTable is unregistered (or its connection is freed). + * Found in #DBusObjectPathVTable. + */ +typedef void (* DBusObjectPathUnregisterFunction) (DBusConnection *connection, + void *user_data); +/** + * Called when a message is sent to a registered object path. Found in + * #DBusObjectPathVTable which is registered with dbus_connection_register_object_path() + * or dbus_connection_register_fallback(). + */ +typedef DBusHandlerResult (* DBusObjectPathMessageFunction) (DBusConnection *connection, + DBusMessage *message, + void *user_data); + +/** + * Virtual table that must be implemented to handle a portion of the + * object path hierarchy. Attach the vtable to a particular path using + * dbus_connection_register_object_path() or + * dbus_connection_register_fallback(). + */ +struct DBusObjectPathVTable +{ + DBusObjectPathUnregisterFunction unregister_function; /**< Function to unregister this handler */ + DBusObjectPathMessageFunction message_function; /**< Function to handle messages */ + + void (* dbus_internal_pad1) (void *); /**< Reserved for future expansion */ + void (* dbus_internal_pad2) (void *); /**< Reserved for future expansion */ + void (* dbus_internal_pad3) (void *); /**< Reserved for future expansion */ + void (* dbus_internal_pad4) (void *); /**< Reserved for future expansion */ +}; + +DBUS_EXPORT +dbus_bool_t dbus_connection_try_register_object_path (DBusConnection *connection, + const char *path, + const DBusObjectPathVTable *vtable, + void *user_data, + DBusError *error); + +DBUS_EXPORT +dbus_bool_t dbus_connection_register_object_path (DBusConnection *connection, + const char *path, + const DBusObjectPathVTable *vtable, + void *user_data); + +DBUS_EXPORT +dbus_bool_t dbus_connection_try_register_fallback (DBusConnection *connection, + const char *path, + const DBusObjectPathVTable *vtable, + void *user_data, + DBusError *error); + +DBUS_EXPORT +dbus_bool_t dbus_connection_register_fallback (DBusConnection *connection, + const char *path, + const DBusObjectPathVTable *vtable, + void *user_data); +DBUS_EXPORT +dbus_bool_t dbus_connection_unregister_object_path (DBusConnection *connection, + const char *path); + +DBUS_EXPORT +dbus_bool_t dbus_connection_get_object_path_data (DBusConnection *connection, + const char *path, + void **data_p); + +DBUS_EXPORT +dbus_bool_t dbus_connection_list_registered (DBusConnection *connection, + const char *parent_path, + char ***child_entries); + +DBUS_EXPORT +dbus_bool_t dbus_connection_get_unix_fd (DBusConnection *connection, + int *fd); +DBUS_EXPORT +dbus_bool_t dbus_connection_get_socket (DBusConnection *connection, + int *fd); + +/** + * Clear a variable or struct member that contains a #DBusConnection. + * If it does not contain #NULL, the connection that was previously + * there is unreferenced with dbus_connection_unref(). + * + * For example, this function and the similar functions for + * other reference-counted types can be used in code like this: + * + * @code + * DBusConnection *conn = NULL; + * struct { ...; DBusMessage *m; ... } *larger_structure = ...; + * + * ... code that might set conn or m to be non-NULL ... + * + * dbus_clear_connection (&conn); + * dbus_clear_message (&larger_structure->m); + * @endcode + * + * @param pointer_to_connection A pointer to a variable or struct member. + * pointer_to_connection must not be #NULL, but *pointer_to_connection + * may be #NULL. + */ +static inline void +dbus_clear_connection (DBusConnection **pointer_to_connection) +{ + _dbus_clear_pointer_impl (DBusConnection, pointer_to_connection, + dbus_connection_unref); +} + +/** @} */ + + +/** + * @addtogroup DBusWatch + * @{ + */ + +#ifndef DBUS_DISABLE_DEPRECATED +DBUS_EXPORT +DBUS_DEPRECATED int dbus_watch_get_fd (DBusWatch *watch); +#endif + +DBUS_EXPORT +int dbus_watch_get_unix_fd (DBusWatch *watch); +DBUS_EXPORT +int dbus_watch_get_socket (DBusWatch *watch); +DBUS_EXPORT +unsigned int dbus_watch_get_flags (DBusWatch *watch); +DBUS_EXPORT +void* dbus_watch_get_data (DBusWatch *watch); +DBUS_EXPORT +void dbus_watch_set_data (DBusWatch *watch, + void *data, + DBusFreeFunction free_data_function); +DBUS_EXPORT +dbus_bool_t dbus_watch_handle (DBusWatch *watch, + unsigned int flags); +DBUS_EXPORT +dbus_bool_t dbus_watch_get_enabled (DBusWatch *watch); + +/** @} */ + +/** + * @addtogroup DBusTimeout + * @{ + */ + +DBUS_EXPORT +int dbus_timeout_get_interval (DBusTimeout *timeout); +DBUS_EXPORT +void* dbus_timeout_get_data (DBusTimeout *timeout); +DBUS_EXPORT +void dbus_timeout_set_data (DBusTimeout *timeout, + void *data, + DBusFreeFunction free_data_function); +DBUS_EXPORT +dbus_bool_t dbus_timeout_handle (DBusTimeout *timeout); +DBUS_EXPORT +dbus_bool_t dbus_timeout_get_enabled (DBusTimeout *timeout); + +/** @} */ + +DBUS_END_DECLS + +#endif /* DBUS_CONNECTION_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-errors.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-errors.h new file mode 100644 index 000000000..003f583b4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-errors.h @@ -0,0 +1,92 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-errors.h Error reporting + * + * Copyright (C) 2002 Red Hat Inc. + * Copyright (C) 2003 CodeFactory AB + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_ERROR_H +#define DBUS_ERROR_H + +#include +#include +#include + +DBUS_BEGIN_DECLS + +/** + * @addtogroup DBusErrors + * @{ + */ + +/** Mostly-opaque type representing an error that occurred */ +typedef struct DBusError DBusError; + +/** + * Object representing an exception. + */ +struct DBusError +{ + const char *name; /**< public error name field */ + const char *message; /**< public error message field */ + + unsigned int dummy1 : 1; /**< placeholder */ + unsigned int dummy2 : 1; /**< placeholder */ + unsigned int dummy3 : 1; /**< placeholder */ + unsigned int dummy4 : 1; /**< placeholder */ + unsigned int dummy5 : 1; /**< placeholder */ + + void *padding1; /**< placeholder */ +}; + +#define DBUS_ERROR_INIT { NULL, NULL, TRUE, 0, 0, 0, 0, NULL } + +DBUS_EXPORT +void dbus_error_init (DBusError *error); +DBUS_EXPORT +void dbus_error_free (DBusError *error); +DBUS_EXPORT +void dbus_set_error (DBusError *error, + const char *name, + const char *message, + ...) _DBUS_GNUC_PRINTF (3, 4); +DBUS_EXPORT +void dbus_set_error_const (DBusError *error, + const char *name, + const char *message); +DBUS_EXPORT +void dbus_move_error (DBusError *src, + DBusError *dest); +DBUS_EXPORT +dbus_bool_t dbus_error_has_name (const DBusError *error, + const char *name); +DBUS_EXPORT +dbus_bool_t dbus_error_is_set (const DBusError *error); + +/** @} */ + +DBUS_END_DECLS + +#endif /* DBUS_ERROR_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-macros.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-macros.h new file mode 100644 index 000000000..5ca7bf0a9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-macros.h @@ -0,0 +1,237 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-macros.h generic macros + * + * Copyright (C) 2002 Red Hat Inc. + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_MACROS_H +#define DBUS_MACROS_H + +#ifdef __cplusplus +# define DBUS_BEGIN_DECLS extern "C" { +# define DBUS_END_DECLS } +#else +# define DBUS_BEGIN_DECLS +# define DBUS_END_DECLS +#endif + +#ifndef TRUE +# define TRUE 1 +#endif +#ifndef FALSE +# define FALSE 0 +#endif + +#ifndef NULL +# ifdef __cplusplus +# define NULL (0L) +# else /* !__cplusplus */ +# define NULL ((void*) 0) +# endif /* !__cplusplus */ +#endif + +#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) +# define DBUS_DEPRECATED __attribute__ ((__deprecated__)) +#elif defined(_MSC_VER) && (_MSC_VER >= 1300) +# define DBUS_DEPRECATED __declspec(deprecated) +#else +# define DBUS_DEPRECATED +#endif + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8) +# define _DBUS_GNUC_EXTENSION __extension__ +#else +# define _DBUS_GNUC_EXTENSION +#endif + +#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)) || \ + defined(__clang__) +#define _DBUS_GNUC_PRINTF( format_idx, arg_idx ) \ + __attribute__((__format__ (__printf__, format_idx, arg_idx))) +#define _DBUS_GNUC_NORETURN \ + __attribute__((__noreturn__)) +#define _DBUS_GNUC_UNUSED \ + __attribute__((__unused__)) +#else /* !__GNUC__ */ +#define _DBUS_GNUC_PRINTF( format_idx, arg_idx ) +#define _DBUS_GNUC_NORETURN +#define _DBUS_GNUC_UNUSED +#endif /* !__GNUC__ */ + +#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) +#define DBUS_MALLOC __attribute__((__malloc__)) +#else +#define DBUS_MALLOC +#endif + +#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) +#define DBUS_ALLOC_SIZE(x) __attribute__((__alloc_size__(x))) +#define DBUS_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y))) +#else +#define DBUS_ALLOC_SIZE(x) +#define DBUS_ALLOC_SIZE2(x,y) +#endif + +/** @def _DBUS_WARN_UNUSED_RESULT + * + * An attribute for functions whose result must be checked by the caller. + * + * This macro is used in function declarations. Unlike gcc-specific + * attributes, to avoid compilation failure with MSVC it must appear + * somewhere before the function name in the declaration. Our preferred + * coding style is to place it before the return type, for example: + * + * DBUS_PRIVATE_EXPORT _DBUS_WARN_UNUSED_RESULT + * dbus_bool_t _dbus_user_database_lock_system (void); + */ +#if defined(_MSC_VER) && (_MSC_VER >= 1700) +#define _DBUS_WARN_UNUSED_RESULT _Must_inspect_result_ +#elif (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +#define _DBUS_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +#define _DBUS_WARN_UNUSED_RESULT +#endif + +/** @def _DBUS_GNUC_PRINTF + * used to tell gcc about printf format strings + */ +/** @def _DBUS_GNUC_NORETURN + * used to tell gcc about functions that never return, such as _dbus_abort() + */ + +/* Normally docs are in .c files, but there isn't a .c file for this. */ +/** + * @defgroup DBusMacros Utility macros + * @ingroup DBus + * @brief #TRUE, #FALSE, #NULL, and so on + * + * Utility macros. + * + * @{ + */ + +/** + * @def DBUS_BEGIN_DECLS + * + * Macro used prior to declaring functions in the D-Bus header + * files. Expands to "extern "C"" when using a C++ compiler, + * and expands to nothing when using a C compiler. + * + * Please don't use this in your own code, consider it + * D-Bus internal. + */ +/** + * @def DBUS_END_DECLS + * + * Macro used after declaring functions in the D-Bus header + * files. Expands to "}" when using a C++ compiler, + * and expands to nothing when using a C compiler. + * + * Please don't use this in your own code, consider it + * D-Bus internal. + */ +/** + * @def TRUE + * + * Expands to "1" + */ +/** + * @def FALSE + * + * Expands to "0" + */ +/** + * @def NULL + * + * A null pointer, defined appropriately for C or C++. + */ +/** + * @def DBUS_DEPRECATED + * + * Tells the compiler to warn about a function or type if it's used. + * Code marked in this way should also be enclosed in + * @code + * #ifndef DBUS_DISABLE_DEPRECATED + * deprecated stuff here + * #endif + * @endcode + * + * Please don't use this in your own code, consider it + * D-Bus internal. + */ +/** + * @def _DBUS_GNUC_EXTENSION + * + * Tells gcc not to warn about extensions to the C standard in the + * following expression, even if compiling with -pedantic. Do not use + * this macro in your own code; please consider it to be internal to libdbus. + */ + +/* + * @def DBUS_EXPORT + * + * Declare the following symbol as public. This is currently a noop on + * platforms other than Windows. + */ + +#if defined(DBUS_EXPORT) + /* value forced by compiler command line, don't redefine */ +#elif defined(_WIN32) +# if defined(DBUS_STATIC_BUILD) +# define DBUS_EXPORT +# elif defined(dbus_1_EXPORTS) +# define DBUS_EXPORT __declspec(dllexport) +# else +# define DBUS_EXPORT __declspec(dllimport) +# endif +#elif defined(__GNUC__) && __GNUC__ >= 4 +# define DBUS_EXPORT __attribute__ ((__visibility__ ("default"))) +#else +#define DBUS_EXPORT +#endif + +/* Implementation for dbus_clear_message() etc. This is not API, + * do not use it directly. + * + * We're using a specific type (T ** and T *) instead of void ** and + * void * partly for type-safety, partly to be strict-aliasing-compliant, + * and partly to keep C++ compilers happy. This code is inlined into + * users of libdbus, so we can't rely on it having dbus' own compiler + * settings. */ +#define _dbus_clear_pointer_impl(T, pointer_to_pointer, destroy) \ + do { \ + T **_pp = (pointer_to_pointer); \ + T *_value = *_pp; \ + \ + *_pp = NULL; \ + \ + if (_value != NULL) \ + destroy (_value); \ + } while (0) +/* Not (destroy) (_value) in case destroy() is a function-like macro */ + +/** @} */ + +#endif /* DBUS_MACROS_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-memory.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-memory.h new file mode 100644 index 000000000..5b5a41e16 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-memory.h @@ -0,0 +1,74 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-memory.h D-Bus memory handling + * + * Copyright (C) 2002 Red Hat Inc. + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_MEMORY_H +#define DBUS_MEMORY_H + +#include +#include + +DBUS_BEGIN_DECLS + +/** + * @addtogroup DBusMemory + * @{ + */ + +DBUS_EXPORT +DBUS_MALLOC +DBUS_ALLOC_SIZE(1) +void* dbus_malloc (size_t bytes); + +DBUS_EXPORT +DBUS_MALLOC +DBUS_ALLOC_SIZE(1) +void* dbus_malloc0 (size_t bytes); + +DBUS_EXPORT +DBUS_ALLOC_SIZE(2) +void* dbus_realloc (void *memory, + size_t bytes); +DBUS_EXPORT +void dbus_free (void *memory); + +#define dbus_new(type, count) ((type*)dbus_malloc (sizeof (type) * (count))) +#define dbus_new0(type, count) ((type*)dbus_malloc0 (sizeof (type) * (count))) + +DBUS_EXPORT +void dbus_free_string_array (char **str_array); + +typedef void (* DBusFreeFunction) (void *memory); + +DBUS_EXPORT +void dbus_shutdown (void); + +/** @} */ + +DBUS_END_DECLS + +#endif /* DBUS_MEMORY_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-message.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-message.h new file mode 100644 index 000000000..0bbad3d18 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-message.h @@ -0,0 +1,401 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-message.h DBusMessage object + * + * Copyright (C) 2002, 2003, 2005 Red Hat Inc. + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_MESSAGE_H +#define DBUS_MESSAGE_H + +#include +#include +#include +#include +#include +#include + +DBUS_BEGIN_DECLS + +/** + * @addtogroup DBusMessage + * @{ + */ + +typedef struct DBusMessage DBusMessage; +/** + * Opaque type representing a message iterator. Can be copied by value and + * allocated on the stack. + * + * A DBusMessageIter usually contains no allocated memory. However, there + * is one special case: after a successful call to + * dbus_message_iter_open_container(), the caller is responsible for calling + * either dbus_message_iter_close_container() or + * dbus_message_iter_abandon_container() exactly once, with the same pair + * of iterators. + */ +typedef struct DBusMessageIter DBusMessageIter; + +/** + * DBusMessageIter struct; contains no public fields. + */ +struct DBusMessageIter +{ +#if DBUS_SIZEOF_VOID_P > 8 + void *dummy[16]; /**< Don't use this */ +#else + void *dummy1; /**< Don't use this */ + void *dummy2; /**< Don't use this */ + dbus_uint32_t dummy3; /**< Don't use this */ + int dummy4; /**< Don't use this */ + int dummy5; /**< Don't use this */ + int dummy6; /**< Don't use this */ + int dummy7; /**< Don't use this */ + int dummy8; /**< Don't use this */ + int dummy9; /**< Don't use this */ + int dummy10; /**< Don't use this */ + int dummy11; /**< Don't use this */ + int pad1; /**< Don't use this */ + void *pad2; /**< Don't use this */ + void *pad3; /**< Don't use this */ +#endif +}; + +/** + * A message iterator for which dbus_message_iter_abandon_container_if_open() + * is the only valid operation. + */ +#if DBUS_SIZEOF_VOID_P > 8 +#define DBUS_MESSAGE_ITER_INIT_CLOSED \ +{ \ + { \ + NULL, NULL, NULL, NULL, \ + NULL, NULL, NULL, NULL, \ + NULL, NULL, NULL, NULL, \ + NULL, NULL, NULL, NULL \ + } \ +} +#else +#define DBUS_MESSAGE_ITER_INIT_CLOSED \ +{ \ + NULL, /* dummy1 */ \ + NULL, /* dummy2 */ \ + 0, /* dummy3 */ \ + 0, /* dummy4 */ \ + 0, /* dummy5 */ \ + 0, /* dummy6 */ \ + 0, /* dummy7 */ \ + 0, /* dummy8 */ \ + 0, /* dummy9 */ \ + 0, /* dummy10 */ \ + 0, /* dummy11 */ \ + 0, /* pad1 */ \ + NULL, /* pad2 */ \ + NULL /* pad3 */ \ +} +#endif + +DBUS_EXPORT +DBusMessage* dbus_message_new (int message_type); +DBUS_EXPORT +DBusMessage* dbus_message_new_method_call (const char *bus_name, + const char *path, + const char *iface, + const char *method); +DBUS_EXPORT +DBusMessage* dbus_message_new_method_return (DBusMessage *method_call); +DBUS_EXPORT +DBusMessage* dbus_message_new_signal (const char *path, + const char *iface, + const char *name); +DBUS_EXPORT +DBusMessage* dbus_message_new_error (DBusMessage *reply_to, + const char *error_name, + const char *error_message); +DBUS_EXPORT +DBusMessage* dbus_message_new_error_printf (DBusMessage *reply_to, + const char *error_name, + const char *error_format, + ...) _DBUS_GNUC_PRINTF (3, 4); + +DBUS_EXPORT +DBusMessage* dbus_message_copy (const DBusMessage *message); + +DBUS_EXPORT +DBusMessage* dbus_message_ref (DBusMessage *message); +DBUS_EXPORT +void dbus_message_unref (DBusMessage *message); +DBUS_EXPORT +int dbus_message_get_type (DBusMessage *message); +DBUS_EXPORT +dbus_bool_t dbus_message_set_path (DBusMessage *message, + const char *object_path); +DBUS_EXPORT +const char* dbus_message_get_path (DBusMessage *message); +DBUS_EXPORT +dbus_bool_t dbus_message_has_path (DBusMessage *message, + const char *object_path); +DBUS_EXPORT +dbus_bool_t dbus_message_set_interface (DBusMessage *message, + const char *iface); +DBUS_EXPORT +const char* dbus_message_get_interface (DBusMessage *message); +DBUS_EXPORT +dbus_bool_t dbus_message_has_interface (DBusMessage *message, + const char *iface); +DBUS_EXPORT +dbus_bool_t dbus_message_set_member (DBusMessage *message, + const char *member); +DBUS_EXPORT +const char* dbus_message_get_member (DBusMessage *message); +DBUS_EXPORT +dbus_bool_t dbus_message_has_member (DBusMessage *message, + const char *member); +DBUS_EXPORT +dbus_bool_t dbus_message_set_error_name (DBusMessage *message, + const char *name); +DBUS_EXPORT +const char* dbus_message_get_error_name (DBusMessage *message); +DBUS_EXPORT +dbus_bool_t dbus_message_set_destination (DBusMessage *message, + const char *destination); +DBUS_EXPORT +const char* dbus_message_get_destination (DBusMessage *message); +DBUS_EXPORT +dbus_bool_t dbus_message_set_sender (DBusMessage *message, + const char *sender); +DBUS_EXPORT +const char* dbus_message_get_sender (DBusMessage *message); +DBUS_EXPORT +const char* dbus_message_get_signature (DBusMessage *message); +DBUS_EXPORT +void dbus_message_set_no_reply (DBusMessage *message, + dbus_bool_t no_reply); +DBUS_EXPORT +dbus_bool_t dbus_message_get_no_reply (DBusMessage *message); +DBUS_EXPORT +dbus_bool_t dbus_message_is_method_call (DBusMessage *message, + const char *iface, + const char *method); +DBUS_EXPORT +dbus_bool_t dbus_message_is_signal (DBusMessage *message, + const char *iface, + const char *signal_name); +DBUS_EXPORT +dbus_bool_t dbus_message_is_error (DBusMessage *message, + const char *error_name); +DBUS_EXPORT +dbus_bool_t dbus_message_has_destination (DBusMessage *message, + const char *bus_name); +DBUS_EXPORT +dbus_bool_t dbus_message_has_sender (DBusMessage *message, + const char *unique_bus_name); +DBUS_EXPORT +dbus_bool_t dbus_message_has_signature (DBusMessage *message, + const char *signature); +DBUS_EXPORT +dbus_uint32_t dbus_message_get_serial (DBusMessage *message); +DBUS_EXPORT +void dbus_message_set_serial (DBusMessage *message, + dbus_uint32_t serial); +DBUS_EXPORT +dbus_bool_t dbus_message_set_reply_serial (DBusMessage *message, + dbus_uint32_t reply_serial); +DBUS_EXPORT +dbus_uint32_t dbus_message_get_reply_serial (DBusMessage *message); + +DBUS_EXPORT +void dbus_message_set_auto_start (DBusMessage *message, + dbus_bool_t auto_start); +DBUS_EXPORT +dbus_bool_t dbus_message_get_auto_start (DBusMessage *message); + +DBUS_EXPORT +dbus_bool_t dbus_message_get_path_decomposed (DBusMessage *message, + char ***path); + +DBUS_EXPORT +const char *dbus_message_get_container_instance (DBusMessage *message); +DBUS_EXPORT +dbus_bool_t dbus_message_set_container_instance (DBusMessage *message, + const char *object_path); + +DBUS_EXPORT +dbus_bool_t dbus_message_append_args (DBusMessage *message, + int first_arg_type, + ...); +DBUS_EXPORT +dbus_bool_t dbus_message_append_args_valist (DBusMessage *message, + int first_arg_type, + va_list var_args); +DBUS_EXPORT +dbus_bool_t dbus_message_get_args (DBusMessage *message, + DBusError *error, + int first_arg_type, + ...); +DBUS_EXPORT +dbus_bool_t dbus_message_get_args_valist (DBusMessage *message, + DBusError *error, + int first_arg_type, + va_list var_args); + +DBUS_EXPORT +dbus_bool_t dbus_message_contains_unix_fds (DBusMessage *message); + +DBUS_EXPORT +void dbus_message_iter_init_closed (DBusMessageIter *iter); +DBUS_EXPORT +dbus_bool_t dbus_message_iter_init (DBusMessage *message, + DBusMessageIter *iter); +DBUS_EXPORT +dbus_bool_t dbus_message_iter_has_next (DBusMessageIter *iter); +DBUS_EXPORT +dbus_bool_t dbus_message_iter_next (DBusMessageIter *iter); +DBUS_EXPORT +char* dbus_message_iter_get_signature (DBusMessageIter *iter); +DBUS_EXPORT +int dbus_message_iter_get_arg_type (DBusMessageIter *iter); +DBUS_EXPORT +int dbus_message_iter_get_element_type (DBusMessageIter *iter); +DBUS_EXPORT +void dbus_message_iter_recurse (DBusMessageIter *iter, + DBusMessageIter *sub); +DBUS_EXPORT +void dbus_message_iter_get_basic (DBusMessageIter *iter, + void *value); +DBUS_EXPORT +int dbus_message_iter_get_element_count(DBusMessageIter *iter); + +#ifndef DBUS_DISABLE_DEPRECATED +/* This function returns the wire protocol size of the array in bytes, + * you do not want to know that probably + */ +DBUS_EXPORT +DBUS_DEPRECATED int dbus_message_iter_get_array_len (DBusMessageIter *iter); +#endif +DBUS_EXPORT +void dbus_message_iter_get_fixed_array (DBusMessageIter *iter, + void *value, + int *n_elements); + + +DBUS_EXPORT +void dbus_message_iter_init_append (DBusMessage *message, + DBusMessageIter *iter); +DBUS_EXPORT +dbus_bool_t dbus_message_iter_append_basic (DBusMessageIter *iter, + int type, + const void *value); +DBUS_EXPORT +dbus_bool_t dbus_message_iter_append_fixed_array (DBusMessageIter *iter, + int element_type, + const void *value, + int n_elements); +DBUS_EXPORT +dbus_bool_t dbus_message_iter_open_container (DBusMessageIter *iter, + int type, + const char *contained_signature, + DBusMessageIter *sub); +DBUS_EXPORT +dbus_bool_t dbus_message_iter_close_container (DBusMessageIter *iter, + DBusMessageIter *sub); +DBUS_EXPORT +void dbus_message_iter_abandon_container (DBusMessageIter *iter, + DBusMessageIter *sub); + +DBUS_EXPORT +void dbus_message_iter_abandon_container_if_open (DBusMessageIter *iter, + DBusMessageIter *sub); + +DBUS_EXPORT +void dbus_message_lock (DBusMessage *message); + +DBUS_EXPORT +dbus_bool_t dbus_set_error_from_message (DBusError *error, + DBusMessage *message); + + +DBUS_EXPORT +dbus_bool_t dbus_message_allocate_data_slot (dbus_int32_t *slot_p); +DBUS_EXPORT +void dbus_message_free_data_slot (dbus_int32_t *slot_p); +DBUS_EXPORT +dbus_bool_t dbus_message_set_data (DBusMessage *message, + dbus_int32_t slot, + void *data, + DBusFreeFunction free_data_func); +DBUS_EXPORT +void* dbus_message_get_data (DBusMessage *message, + dbus_int32_t slot); + +DBUS_EXPORT +int dbus_message_type_from_string (const char *type_str); +DBUS_EXPORT +const char* dbus_message_type_to_string (int type); + +DBUS_EXPORT +dbus_bool_t dbus_message_marshal (DBusMessage *msg, + char **marshalled_data_p, + int *len_p); +DBUS_EXPORT +DBusMessage* dbus_message_demarshal (const char *str, + int len, + DBusError *error); + +DBUS_EXPORT +int dbus_message_demarshal_bytes_needed (const char *str, + int len); + +DBUS_EXPORT +void dbus_message_set_allow_interactive_authorization (DBusMessage *message, + dbus_bool_t allow); + +DBUS_EXPORT +dbus_bool_t dbus_message_get_allow_interactive_authorization ( + DBusMessage *message); + +/** + * Clear a variable or struct member that contains a #DBusMessage. + * If it does not contain #NULL, the message that was previously + * there is unreferenced with dbus_message_unref(). + * + * This is very similar to dbus_clear_connection(): see that function + * for more details. + * + * @param pointer_to_message A pointer to a variable or struct member. + * pointer_to_message must not be #NULL, but *pointer_to_message + * may be #NULL. + */ +static inline void +dbus_clear_message (DBusMessage **pointer_to_message) +{ + _dbus_clear_pointer_impl (DBusMessage, pointer_to_message, + dbus_message_unref); +} + +/** @} */ + +DBUS_END_DECLS + +#endif /* DBUS_MESSAGE_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-misc.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-misc.h new file mode 100644 index 000000000..3442ab784 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-misc.h @@ -0,0 +1,60 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-misc.h A few assorted public functions that don't fit elsewhere + * + * Copyright (C) 2006 Red Hat, Inc. + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_MISC_H +#define DBUS_MISC_H + +#include +#include + +DBUS_BEGIN_DECLS + +/** + * @addtogroup DBusMisc + * @{ + */ +DBUS_EXPORT +char* dbus_get_local_machine_id (void); + +DBUS_EXPORT +void dbus_get_version (int *major_version_p, + int *minor_version_p, + int *micro_version_p); + +DBUS_EXPORT +dbus_bool_t dbus_setenv (const char *variable, + const char *value); + +DBUS_EXPORT +char *dbus_try_get_local_machine_id (DBusError *error); + +/** @} */ + +DBUS_END_DECLS + +#endif /* DBUS_MISC_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-pending-call.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-pending-call.h new file mode 100644 index 000000000..3539a1f24 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-pending-call.h @@ -0,0 +1,100 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-pending-call.h Object representing a call in progress. + * + * Copyright (C) 2002, 2003 Red Hat Inc. + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_PENDING_CALL_H +#define DBUS_PENDING_CALL_H + +#include +#include +#include + +DBUS_BEGIN_DECLS + +/** + * @addtogroup DBusPendingCall + * @{ + */ + +#define DBUS_TIMEOUT_INFINITE ((int) 0x7fffffff) +#define DBUS_TIMEOUT_USE_DEFAULT (-1) + +DBUS_EXPORT +DBusPendingCall* dbus_pending_call_ref (DBusPendingCall *pending); +DBUS_EXPORT +void dbus_pending_call_unref (DBusPendingCall *pending); +DBUS_EXPORT +dbus_bool_t dbus_pending_call_set_notify (DBusPendingCall *pending, + DBusPendingCallNotifyFunction function, + void *user_data, + DBusFreeFunction free_user_data); +DBUS_EXPORT +void dbus_pending_call_cancel (DBusPendingCall *pending); +DBUS_EXPORT +dbus_bool_t dbus_pending_call_get_completed (DBusPendingCall *pending); +DBUS_EXPORT +DBusMessage* dbus_pending_call_steal_reply (DBusPendingCall *pending); +DBUS_EXPORT +void dbus_pending_call_block (DBusPendingCall *pending); + +DBUS_EXPORT +dbus_bool_t dbus_pending_call_allocate_data_slot (dbus_int32_t *slot_p); +DBUS_EXPORT +void dbus_pending_call_free_data_slot (dbus_int32_t *slot_p); +DBUS_EXPORT +dbus_bool_t dbus_pending_call_set_data (DBusPendingCall *pending, + dbus_int32_t slot, + void *data, + DBusFreeFunction free_data_func); +DBUS_EXPORT +void* dbus_pending_call_get_data (DBusPendingCall *pending, + dbus_int32_t slot); + +/** + * Clear a variable or struct member that contains a #DBusPendingCall. + * If it does not contain #NULL, the pending call that was previously + * there is unreferenced with dbus_pending_call_unref(). + * + * This is very similar to dbus_clear_connection(): see that function + * for more details. + * + * @param pointer_to_pending_call A pointer to a variable or struct member. + * pointer_to_pending_call must not be #NULL, but *pointer_to_pending_call + * may be #NULL. + */ +static inline void +dbus_clear_pending_call (DBusPendingCall **pointer_to_pending_call) +{ + _dbus_clear_pointer_impl (DBusPendingCall, pointer_to_pending_call, + dbus_pending_call_unref); +} + +/** @} */ + +DBUS_END_DECLS + +#endif /* DBUS_PENDING_CALL_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-protocol.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-protocol.h new file mode 100644 index 000000000..33e39df31 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-protocol.h @@ -0,0 +1,488 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-protocol.h D-Bus protocol constants + * + * Copyright (C) 2002, 2003 CodeFactory AB + * Copyright (C) 2004, 2005 Red Hat, Inc. + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifndef DBUS_PROTOCOL_H +#define DBUS_PROTOCOL_H + +/* Don't include anything in here from anywhere else. It's + * intended for use by any random library. + */ + +#ifdef __cplusplus +extern "C" { +#if 0 +} /* avoids confusing emacs indentation */ +#endif +#endif + +/* Normally docs are in .c files, but there isn't a .c file for this. */ +/** + * @defgroup DBusProtocol Protocol constants + * @ingroup DBus + * + * @brief Defines constants which are part of the D-Bus protocol + * + * This header is intended for use by any library, not only libdbus. + * + * @{ + */ + + +/* Message byte order */ +#define DBUS_LITTLE_ENDIAN ('l') /**< Code marking LSB-first byte order in the wire protocol. */ +#define DBUS_BIG_ENDIAN ('B') /**< Code marking MSB-first byte order in the wire protocol. */ + +/** Protocol version. */ +#define DBUS_MAJOR_PROTOCOL_VERSION 1 + +/** Type code that is never equal to a legitimate type code */ +#define DBUS_TYPE_INVALID ((int) '\0') +/** #DBUS_TYPE_INVALID as a string literal instead of a int literal */ +#define DBUS_TYPE_INVALID_AS_STRING "\0" + +/* Primitive types */ +/** Type code marking an 8-bit unsigned integer */ +#define DBUS_TYPE_BYTE ((int) 'y') +/** #DBUS_TYPE_BYTE as a string literal instead of a int literal */ +#define DBUS_TYPE_BYTE_AS_STRING "y" +/** Type code marking a boolean */ +#define DBUS_TYPE_BOOLEAN ((int) 'b') +/** #DBUS_TYPE_BOOLEAN as a string literal instead of a int literal */ +#define DBUS_TYPE_BOOLEAN_AS_STRING "b" +/** Type code marking a 16-bit signed integer */ +#define DBUS_TYPE_INT16 ((int) 'n') +/** #DBUS_TYPE_INT16 as a string literal instead of a int literal */ +#define DBUS_TYPE_INT16_AS_STRING "n" +/** Type code marking a 16-bit unsigned integer */ +#define DBUS_TYPE_UINT16 ((int) 'q') +/** #DBUS_TYPE_UINT16 as a string literal instead of a int literal */ +#define DBUS_TYPE_UINT16_AS_STRING "q" +/** Type code marking a 32-bit signed integer */ +#define DBUS_TYPE_INT32 ((int) 'i') +/** #DBUS_TYPE_INT32 as a string literal instead of a int literal */ +#define DBUS_TYPE_INT32_AS_STRING "i" +/** Type code marking a 32-bit unsigned integer */ +#define DBUS_TYPE_UINT32 ((int) 'u') +/** #DBUS_TYPE_UINT32 as a string literal instead of a int literal */ +#define DBUS_TYPE_UINT32_AS_STRING "u" +/** Type code marking a 64-bit signed integer */ +#define DBUS_TYPE_INT64 ((int) 'x') +/** #DBUS_TYPE_INT64 as a string literal instead of a int literal */ +#define DBUS_TYPE_INT64_AS_STRING "x" +/** Type code marking a 64-bit unsigned integer */ +#define DBUS_TYPE_UINT64 ((int) 't') +/** #DBUS_TYPE_UINT64 as a string literal instead of a int literal */ +#define DBUS_TYPE_UINT64_AS_STRING "t" +/** Type code marking an 8-byte double in IEEE 754 format */ +#define DBUS_TYPE_DOUBLE ((int) 'd') +/** #DBUS_TYPE_DOUBLE as a string literal instead of a int literal */ +#define DBUS_TYPE_DOUBLE_AS_STRING "d" +/** Type code marking a UTF-8 encoded, nul-terminated Unicode string */ +#define DBUS_TYPE_STRING ((int) 's') +/** #DBUS_TYPE_STRING as a string literal instead of a int literal */ +#define DBUS_TYPE_STRING_AS_STRING "s" +/** Type code marking a D-Bus object path */ +#define DBUS_TYPE_OBJECT_PATH ((int) 'o') +/** #DBUS_TYPE_OBJECT_PATH as a string literal instead of a int literal */ +#define DBUS_TYPE_OBJECT_PATH_AS_STRING "o" +/** Type code marking a D-Bus type signature */ +#define DBUS_TYPE_SIGNATURE ((int) 'g') +/** #DBUS_TYPE_SIGNATURE as a string literal instead of a int literal */ +#define DBUS_TYPE_SIGNATURE_AS_STRING "g" +/** Type code marking a unix file descriptor */ +#define DBUS_TYPE_UNIX_FD ((int) 'h') +/** #DBUS_TYPE_UNIX_FD as a string literal instead of a int literal */ +#define DBUS_TYPE_UNIX_FD_AS_STRING "h" + +/* Compound types */ +/** Type code marking a D-Bus array type */ +#define DBUS_TYPE_ARRAY ((int) 'a') +/** #DBUS_TYPE_ARRAY as a string literal instead of a int literal */ +#define DBUS_TYPE_ARRAY_AS_STRING "a" +/** Type code marking a D-Bus variant type */ +#define DBUS_TYPE_VARIANT ((int) 'v') +/** #DBUS_TYPE_VARIANT as a string literal instead of a int literal */ +#define DBUS_TYPE_VARIANT_AS_STRING "v" + +/** STRUCT and DICT_ENTRY are sort of special since their codes can't + * appear in a type string, instead + * DBUS_STRUCT_BEGIN_CHAR/DBUS_DICT_ENTRY_BEGIN_CHAR have to appear + */ +/** Type code used to represent a struct; however, this type code does not appear + * in type signatures, instead #DBUS_STRUCT_BEGIN_CHAR and #DBUS_STRUCT_END_CHAR will + * appear in a signature. + */ +#define DBUS_TYPE_STRUCT ((int) 'r') +/** #DBUS_TYPE_STRUCT as a string literal instead of a int literal */ +#define DBUS_TYPE_STRUCT_AS_STRING "r" +/** Type code used to represent a dict entry; however, this type code does not appear + * in type signatures, instead #DBUS_DICT_ENTRY_BEGIN_CHAR and #DBUS_DICT_ENTRY_END_CHAR will + * appear in a signature. + */ +#define DBUS_TYPE_DICT_ENTRY ((int) 'e') +/** #DBUS_TYPE_DICT_ENTRY as a string literal instead of a int literal */ +#define DBUS_TYPE_DICT_ENTRY_AS_STRING "e" + +/** Does not include #DBUS_TYPE_INVALID, #DBUS_STRUCT_BEGIN_CHAR, #DBUS_STRUCT_END_CHAR, + * #DBUS_DICT_ENTRY_BEGIN_CHAR, or #DBUS_DICT_ENTRY_END_CHAR - i.e. it is the number of + * valid types, not the number of distinct characters that may appear in a type signature. + */ +#define DBUS_NUMBER_OF_TYPES (16) + +/* characters other than typecodes that appear in type signatures */ + +/** Code marking the start of a struct type in a type signature */ +#define DBUS_STRUCT_BEGIN_CHAR ((int) '(') +/** #DBUS_STRUCT_BEGIN_CHAR as a string literal instead of a int literal */ +#define DBUS_STRUCT_BEGIN_CHAR_AS_STRING "(" +/** Code marking the end of a struct type in a type signature */ +#define DBUS_STRUCT_END_CHAR ((int) ')') +/** #DBUS_STRUCT_END_CHAR a string literal instead of a int literal */ +#define DBUS_STRUCT_END_CHAR_AS_STRING ")" +/** Code marking the start of a dict entry type in a type signature */ +#define DBUS_DICT_ENTRY_BEGIN_CHAR ((int) '{') +/** #DBUS_DICT_ENTRY_BEGIN_CHAR as a string literal instead of a int literal */ +#define DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING "{" +/** Code marking the end of a dict entry type in a type signature */ +#define DBUS_DICT_ENTRY_END_CHAR ((int) '}') +/** #DBUS_DICT_ENTRY_END_CHAR as a string literal instead of a int literal */ +#define DBUS_DICT_ENTRY_END_CHAR_AS_STRING "}" + +/** Max length in bytes of a bus name, interface, or member (not object + * path, paths are unlimited). This is limited because lots of stuff + * is O(n) in this number, plus it would be obnoxious to type in a + * paragraph-long method name so most likely something like that would + * be an exploit. + */ +#define DBUS_MAXIMUM_NAME_LENGTH 255 + +/** This one is 255 so it fits in a byte */ +#define DBUS_MAXIMUM_SIGNATURE_LENGTH 255 + +/** Max length of a match rule string; to keep people from hosing the + * daemon with some huge rule + */ +#define DBUS_MAXIMUM_MATCH_RULE_LENGTH 1024 + +/** Max arg number you can match on in a match rule, e.g. + * arg0='hello' is OK, arg3489720987='hello' is not + */ +#define DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER 63 + +/** Max length of a marshaled array in bytes (64M, 2^26) We use signed + * int for lengths so must be INT_MAX or less. We need something a + * bit smaller than INT_MAX because the array is inside a message with + * header info, etc. so an INT_MAX array wouldn't allow the message + * overhead. The 64M number is an attempt at a larger number than + * we'd reasonably ever use, but small enough that your bus would chew + * through it fairly quickly without locking up forever. If you have + * data that's likely to be larger than this, you should probably be + * sending it in multiple incremental messages anyhow. + */ +#define DBUS_MAXIMUM_ARRAY_LENGTH (67108864) +/** Number of bits you need in an unsigned to store the max array size */ +#define DBUS_MAXIMUM_ARRAY_LENGTH_BITS 26 + +/** The maximum total message size including header and body; similar + * rationale to max array size. + */ +#define DBUS_MAXIMUM_MESSAGE_LENGTH (DBUS_MAXIMUM_ARRAY_LENGTH * 2) +/** Number of bits you need in an unsigned to store the max message size */ +#define DBUS_MAXIMUM_MESSAGE_LENGTH_BITS 27 + +/** The maximum total number of unix fds in a message. Similar + * rationale as DBUS_MAXIMUM_MESSAGE_LENGTH. However we divide by four + * given that one fd is an int and hence at least 32 bits. + */ +#define DBUS_MAXIMUM_MESSAGE_UNIX_FDS (DBUS_MAXIMUM_MESSAGE_LENGTH/4) +/** Number of bits you need in an unsigned to store the max message unix fds */ +#define DBUS_MAXIMUM_MESSAGE_UNIX_FDS_BITS (DBUS_MAXIMUM_MESSAGE_LENGTH_BITS-2) + +/** Depth of recursion in the type tree. This is automatically limited + * to DBUS_MAXIMUM_SIGNATURE_LENGTH since you could only have an array + * of array of array of ... that fit in the max signature. But that's + * probably a bit too large. + */ +#define DBUS_MAXIMUM_TYPE_RECURSION_DEPTH 32 + +/* Types of message */ + +/** This value is never a valid message type, see dbus_message_get_type() */ +#define DBUS_MESSAGE_TYPE_INVALID 0 +/** Message type of a method call message, see dbus_message_get_type() */ +#define DBUS_MESSAGE_TYPE_METHOD_CALL 1 +/** Message type of a method return message, see dbus_message_get_type() */ +#define DBUS_MESSAGE_TYPE_METHOD_RETURN 2 +/** Message type of an error reply message, see dbus_message_get_type() */ +#define DBUS_MESSAGE_TYPE_ERROR 3 +/** Message type of a signal message, see dbus_message_get_type() */ +#define DBUS_MESSAGE_TYPE_SIGNAL 4 + +#define DBUS_NUM_MESSAGE_TYPES 5 + +/* Header flags */ + +/** If set, this flag means that the sender of a message does not care about getting + * a reply, so the recipient need not send one. See dbus_message_set_no_reply(). + */ +#define DBUS_HEADER_FLAG_NO_REPLY_EXPECTED 0x1 +/** + * If set, this flag means that even if the message bus knows how to start an owner for + * the destination bus name (see dbus_message_set_destination()), it should not + * do so. If this flag is not set, the bus may launch a program to process the + * message. + */ +#define DBUS_HEADER_FLAG_NO_AUTO_START 0x2 +/** + * If set on a method call, this flag means that the caller is prepared to + * wait for interactive authorization. + */ +#define DBUS_HEADER_FLAG_ALLOW_INTERACTIVE_AUTHORIZATION 0x4 + +/* Header fields */ + +/** Not equal to any valid header field code */ +#define DBUS_HEADER_FIELD_INVALID 0 +/** Header field code for the path - the path is the object emitting a signal or the object receiving a method call. + * See dbus_message_set_path(). + */ +#define DBUS_HEADER_FIELD_PATH 1 +/** Header field code for the interface containing a member (method or signal). + * See dbus_message_set_interface(). + */ +#define DBUS_HEADER_FIELD_INTERFACE 2 +/** Header field code for a member (method or signal). See dbus_message_set_member(). */ +#define DBUS_HEADER_FIELD_MEMBER 3 +/** Header field code for an error name (found in #DBUS_MESSAGE_TYPE_ERROR messages). + * See dbus_message_set_error_name(). + */ +#define DBUS_HEADER_FIELD_ERROR_NAME 4 +/** Header field code for a reply serial, used to match a #DBUS_MESSAGE_TYPE_METHOD_RETURN message with the + * message that it's a reply to. See dbus_message_set_reply_serial(). + */ +#define DBUS_HEADER_FIELD_REPLY_SERIAL 5 +/** + * Header field code for the destination bus name of a message. See dbus_message_set_destination(). + */ +#define DBUS_HEADER_FIELD_DESTINATION 6 +/** + * Header field code for the sender of a message; usually initialized by the message bus. + * See dbus_message_set_sender(). + */ +#define DBUS_HEADER_FIELD_SENDER 7 +/** + * Header field code for the type signature of a message. + */ +#define DBUS_HEADER_FIELD_SIGNATURE 8 +/** + * Header field code for the number of unix file descriptors associated + * with this message. + */ +#define DBUS_HEADER_FIELD_UNIX_FDS 9 +/** + * Header field code for the container instance that sent this message. + */ +#define DBUS_HEADER_FIELD_CONTAINER_INSTANCE 10 + + +/** + * Value of the highest-numbered header field code, can be used to determine + * the size of an array indexed by header field code. Remember though + * that unknown codes must be ignored, so check for that before + * indexing the array. + */ +#define DBUS_HEADER_FIELD_LAST DBUS_HEADER_FIELD_CONTAINER_INSTANCE + +/** Header format is defined as a signature: + * byte byte order + * byte message type ID + * byte flags + * byte protocol version + * uint32 body length + * uint32 serial + * array of struct (byte,variant) (field name, value) + * + * The length of the header can be computed as the + * fixed size of the initial data, plus the length of + * the array at the end, plus padding to an 8-boundary. + */ +#define DBUS_HEADER_SIGNATURE \ + DBUS_TYPE_BYTE_AS_STRING \ + DBUS_TYPE_BYTE_AS_STRING \ + DBUS_TYPE_BYTE_AS_STRING \ + DBUS_TYPE_BYTE_AS_STRING \ + DBUS_TYPE_UINT32_AS_STRING \ + DBUS_TYPE_UINT32_AS_STRING \ + DBUS_TYPE_ARRAY_AS_STRING \ + DBUS_STRUCT_BEGIN_CHAR_AS_STRING \ + DBUS_TYPE_BYTE_AS_STRING \ + DBUS_TYPE_VARIANT_AS_STRING \ + DBUS_STRUCT_END_CHAR_AS_STRING + + +/** + * The smallest header size that can occur. (It won't be valid due to + * missing required header fields.) This is 4 bytes, two uint32, an + * array length. This isn't any kind of resource limit, just the + * necessary/logical outcome of the header signature. + */ +#define DBUS_MINIMUM_HEADER_SIZE 16 + +/* Errors */ +/* WARNING these get autoconverted to an enum in dbus-glib.h. Thus, + * if you change the order it breaks the ABI. Keep them in order. + * Also, don't change the formatting since that will break the sed + * script. + */ +/** A generic error; "something went wrong" - see the error message for more. */ +#define DBUS_ERROR_FAILED "org.freedesktop.DBus.Error.Failed" +/** There was not enough memory to complete an operation. */ +#define DBUS_ERROR_NO_MEMORY "org.freedesktop.DBus.Error.NoMemory" +/** The bus doesn't know how to launch a service to supply the bus name you wanted. */ +#define DBUS_ERROR_SERVICE_UNKNOWN "org.freedesktop.DBus.Error.ServiceUnknown" +/** The bus name you referenced doesn't exist (i.e. no application owns it). */ +#define DBUS_ERROR_NAME_HAS_NO_OWNER "org.freedesktop.DBus.Error.NameHasNoOwner" +/** No reply to a message expecting one, usually means a timeout occurred. */ +#define DBUS_ERROR_NO_REPLY "org.freedesktop.DBus.Error.NoReply" +/** Something went wrong reading or writing to a socket, for example. */ +#define DBUS_ERROR_IO_ERROR "org.freedesktop.DBus.Error.IOError" +/** A D-Bus bus address was malformed. */ +#define DBUS_ERROR_BAD_ADDRESS "org.freedesktop.DBus.Error.BadAddress" +/** Requested operation isn't supported (like ENOSYS on UNIX). */ +#define DBUS_ERROR_NOT_SUPPORTED "org.freedesktop.DBus.Error.NotSupported" +/** Some limited resource is exhausted. */ +#define DBUS_ERROR_LIMITS_EXCEEDED "org.freedesktop.DBus.Error.LimitsExceeded" +/** Security restrictions don't allow doing what you're trying to do. */ +#define DBUS_ERROR_ACCESS_DENIED "org.freedesktop.DBus.Error.AccessDenied" +/** Authentication didn't work. */ +#define DBUS_ERROR_AUTH_FAILED "org.freedesktop.DBus.Error.AuthFailed" +/** Unable to connect to server (probably caused by ECONNREFUSED on a socket). */ +#define DBUS_ERROR_NO_SERVER "org.freedesktop.DBus.Error.NoServer" +/** Certain timeout errors, possibly ETIMEDOUT on a socket. + * Note that #DBUS_ERROR_NO_REPLY is used for message reply timeouts. + * @warning this is confusingly-named given that #DBUS_ERROR_TIMED_OUT also exists. We can't fix + * it for compatibility reasons so just be careful. + */ +#define DBUS_ERROR_TIMEOUT "org.freedesktop.DBus.Error.Timeout" +/** No network access (probably ENETUNREACH on a socket). */ +#define DBUS_ERROR_NO_NETWORK "org.freedesktop.DBus.Error.NoNetwork" +/** Can't bind a socket since its address is in use (i.e. EADDRINUSE). */ +#define DBUS_ERROR_ADDRESS_IN_USE "org.freedesktop.DBus.Error.AddressInUse" +/** The connection is disconnected and you're trying to use it. */ +#define DBUS_ERROR_DISCONNECTED "org.freedesktop.DBus.Error.Disconnected" +/** Invalid arguments passed to a method call. */ +#define DBUS_ERROR_INVALID_ARGS "org.freedesktop.DBus.Error.InvalidArgs" +/** Missing file. */ +#define DBUS_ERROR_FILE_NOT_FOUND "org.freedesktop.DBus.Error.FileNotFound" +/** Existing file and the operation you're using does not silently overwrite. */ +#define DBUS_ERROR_FILE_EXISTS "org.freedesktop.DBus.Error.FileExists" +/** Method name you invoked isn't known by the object you invoked it on. */ +#define DBUS_ERROR_UNKNOWN_METHOD "org.freedesktop.DBus.Error.UnknownMethod" +/** Object you invoked a method on isn't known. */ +#define DBUS_ERROR_UNKNOWN_OBJECT "org.freedesktop.DBus.Error.UnknownObject" +/** Interface you invoked a method on isn't known by the object. */ +#define DBUS_ERROR_UNKNOWN_INTERFACE "org.freedesktop.DBus.Error.UnknownInterface" +/** Property you tried to access isn't known by the object. */ +#define DBUS_ERROR_UNKNOWN_PROPERTY "org.freedesktop.DBus.Error.UnknownProperty" +/** Property you tried to set is read-only. */ +#define DBUS_ERROR_PROPERTY_READ_ONLY "org.freedesktop.DBus.Error.PropertyReadOnly" +/** Certain timeout errors, e.g. while starting a service. + * @warning this is confusingly-named given that #DBUS_ERROR_TIMEOUT also exists. We can't fix + * it for compatibility reasons so just be careful. + */ +#define DBUS_ERROR_TIMED_OUT "org.freedesktop.DBus.Error.TimedOut" +/** Tried to remove or modify a match rule that didn't exist. */ +#define DBUS_ERROR_MATCH_RULE_NOT_FOUND "org.freedesktop.DBus.Error.MatchRuleNotFound" +/** The match rule isn't syntactically valid. */ +#define DBUS_ERROR_MATCH_RULE_INVALID "org.freedesktop.DBus.Error.MatchRuleInvalid" +/** While starting a new process, the exec() call failed. */ +#define DBUS_ERROR_SPAWN_EXEC_FAILED "org.freedesktop.DBus.Error.Spawn.ExecFailed" +/** While starting a new process, the fork() call failed. */ +#define DBUS_ERROR_SPAWN_FORK_FAILED "org.freedesktop.DBus.Error.Spawn.ForkFailed" +/** While starting a new process, the child exited with a status code. */ +#define DBUS_ERROR_SPAWN_CHILD_EXITED "org.freedesktop.DBus.Error.Spawn.ChildExited" +/** While starting a new process, the child exited on a signal. */ +#define DBUS_ERROR_SPAWN_CHILD_SIGNALED "org.freedesktop.DBus.Error.Spawn.ChildSignaled" +/** While starting a new process, something went wrong. */ +#define DBUS_ERROR_SPAWN_FAILED "org.freedesktop.DBus.Error.Spawn.Failed" +/** We failed to setup the environment correctly. */ +#define DBUS_ERROR_SPAWN_SETUP_FAILED "org.freedesktop.DBus.Error.Spawn.FailedToSetup" +/** We failed to setup the config parser correctly. */ +#define DBUS_ERROR_SPAWN_CONFIG_INVALID "org.freedesktop.DBus.Error.Spawn.ConfigInvalid" +/** Bus name was not valid. */ +#define DBUS_ERROR_SPAWN_SERVICE_INVALID "org.freedesktop.DBus.Error.Spawn.ServiceNotValid" +/** Service file not found in system-services directory. */ +#define DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND "org.freedesktop.DBus.Error.Spawn.ServiceNotFound" +/** Permissions are incorrect on the setuid helper. */ +#define DBUS_ERROR_SPAWN_PERMISSIONS_INVALID "org.freedesktop.DBus.Error.Spawn.PermissionsInvalid" +/** Service file invalid (Name, User or Exec missing). */ +#define DBUS_ERROR_SPAWN_FILE_INVALID "org.freedesktop.DBus.Error.Spawn.FileInvalid" +/** There was not enough memory to complete the operation. */ +#define DBUS_ERROR_SPAWN_NO_MEMORY "org.freedesktop.DBus.Error.Spawn.NoMemory" +/** Tried to get a UNIX process ID and it wasn't available. */ +#define DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN "org.freedesktop.DBus.Error.UnixProcessIdUnknown" +/** A type signature is not valid. */ +#define DBUS_ERROR_INVALID_SIGNATURE "org.freedesktop.DBus.Error.InvalidSignature" +/** A file contains invalid syntax or is otherwise broken. */ +#define DBUS_ERROR_INVALID_FILE_CONTENT "org.freedesktop.DBus.Error.InvalidFileContent" +/** Asked for SELinux security context and it wasn't available. */ +#define DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN "org.freedesktop.DBus.Error.SELinuxSecurityContextUnknown" +/** Asked for ADT audit data and it wasn't available. */ +#define DBUS_ERROR_ADT_AUDIT_DATA_UNKNOWN "org.freedesktop.DBus.Error.AdtAuditDataUnknown" +/** There's already an object with the requested object path. */ +#define DBUS_ERROR_OBJECT_PATH_IN_USE "org.freedesktop.DBus.Error.ObjectPathInUse" +/** The message meta data does not match the payload. e.g. expected + number of file descriptors were not sent over the socket this message was received on. */ +#define DBUS_ERROR_INCONSISTENT_MESSAGE "org.freedesktop.DBus.Error.InconsistentMessage" +/** The message is not allowed without performing interactive authorization, + * but could have succeeded if an interactive authorization step was + * allowed. */ +#define DBUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED "org.freedesktop.DBus.Error.InteractiveAuthorizationRequired" +/** The connection is not from a container, or the specified container instance + * does not exist. */ +#define DBUS_ERROR_NOT_CONTAINER "org.freedesktop.DBus.Error.NotContainer" + +/* XML introspection format */ + +/** XML namespace of the introspection format version 1.0 */ +#define DBUS_INTROSPECT_1_0_XML_NAMESPACE "http://www.freedesktop.org/standards/dbus" +/** XML public identifier of the introspection format version 1.0 */ +#define DBUS_INTROSPECT_1_0_XML_PUBLIC_IDENTIFIER "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" +/** XML system identifier of the introspection format version 1.0 */ +#define DBUS_INTROSPECT_1_0_XML_SYSTEM_IDENTIFIER "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" +/** XML document type declaration of the introspection format version 1.0 */ +#define DBUS_INTROSPECT_1_0_XML_DOCTYPE_DECL_NODE "\n" + +/** @} */ + +#ifdef __cplusplus +#if 0 +{ /* avoids confusing emacs indentation */ +#endif +} +#endif + +#endif /* DBUS_PROTOCOL_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-server.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-server.h new file mode 100644 index 000000000..1f8c59491 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-server.h @@ -0,0 +1,127 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-server.h DBusServer object + * + * Copyright (C) 2002, 2003 Red Hat Inc. + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_SERVER_H +#define DBUS_SERVER_H + +#include +#include +#include +#include +#include + +DBUS_BEGIN_DECLS + +/** + * @addtogroup DBusServer + * @{ + */ + +typedef struct DBusServer DBusServer; + +/** Called when a new connection to the server is available. Must reference and save the new + * connection, or close the new connection. Set with dbus_server_set_new_connection_function(). + */ +typedef void (* DBusNewConnectionFunction) (DBusServer *server, + DBusConnection *new_connection, + void *data); + +DBUS_EXPORT +DBusServer* dbus_server_listen (const char *address, + DBusError *error); +DBUS_EXPORT +DBusServer* dbus_server_ref (DBusServer *server); +DBUS_EXPORT +void dbus_server_unref (DBusServer *server); +DBUS_EXPORT +void dbus_server_disconnect (DBusServer *server); +DBUS_EXPORT +dbus_bool_t dbus_server_get_is_connected (DBusServer *server); +DBUS_EXPORT +char* dbus_server_get_address (DBusServer *server); +DBUS_EXPORT +char* dbus_server_get_id (DBusServer *server); +DBUS_EXPORT +void dbus_server_set_new_connection_function (DBusServer *server, + DBusNewConnectionFunction function, + void *data, + DBusFreeFunction free_data_function); +DBUS_EXPORT +dbus_bool_t dbus_server_set_watch_functions (DBusServer *server, + DBusAddWatchFunction add_function, + DBusRemoveWatchFunction remove_function, + DBusWatchToggledFunction toggled_function, + void *data, + DBusFreeFunction free_data_function); +DBUS_EXPORT +dbus_bool_t dbus_server_set_timeout_functions (DBusServer *server, + DBusAddTimeoutFunction add_function, + DBusRemoveTimeoutFunction remove_function, + DBusTimeoutToggledFunction toggled_function, + void *data, + DBusFreeFunction free_data_function); +DBUS_EXPORT +dbus_bool_t dbus_server_set_auth_mechanisms (DBusServer *server, + const char **mechanisms); + +DBUS_EXPORT +dbus_bool_t dbus_server_allocate_data_slot (dbus_int32_t *slot_p); +DBUS_EXPORT +void dbus_server_free_data_slot (dbus_int32_t *slot_p); +DBUS_EXPORT +dbus_bool_t dbus_server_set_data (DBusServer *server, + int slot, + void *data, + DBusFreeFunction free_data_func); +DBUS_EXPORT +void* dbus_server_get_data (DBusServer *server, + int slot); + +/** + * Clear a variable or struct member that contains a #DBusServer. + * If it does not contain #NULL, the server that was previously + * there is unreferenced with dbus_server_unref(). + * + * This is very similar to dbus_clear_connection(): see that function + * for more details. + * + * @param pointer_to_server A pointer to a variable or struct member. + * pointer_to_server must not be #NULL, but *pointer_to_server + * may be #NULL. + */ +static inline void +dbus_clear_server (DBusServer **pointer_to_server) +{ + _dbus_clear_pointer_impl (DBusServer, pointer_to_server, dbus_server_unref); +} + +/** @} */ + +DBUS_END_DECLS + +#endif /* DBUS_SERVER_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-shared.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-shared.h new file mode 100644 index 000000000..87c0bd846 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-shared.h @@ -0,0 +1,138 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-shared.h Stuff used by both dbus/dbus.h low-level and C/C++ binding APIs + * + * Copyright (C) 2004 Red Hat, Inc. + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifndef DBUS_SHARED_H +#define DBUS_SHARED_H + +/* Don't include anything in here from anywhere else. It's + * intended for use by any random library. + */ + +#ifdef __cplusplus +extern "C" { +#if 0 +} /* avoids confusing emacs indentation */ +#endif +#endif + +/* Normally docs are in .c files, but there isn't a .c file for this. */ +/** + * @defgroup DBusShared Shared constants + * @ingroup DBus + * + * @brief Shared header included by both libdbus and C/C++ bindings such as the GLib bindings. + * + * Usually a C/C++ binding such as the GLib or Qt binding won't want to include dbus.h in its + * public headers. However, a few constants and macros may be useful to include; those are + * found here and in dbus-protocol.h + * + * @{ + */ + + +/** + * Well-known bus types. See dbus_bus_get(). + */ +typedef enum +{ + DBUS_BUS_SESSION, /**< The login session bus */ + DBUS_BUS_SYSTEM, /**< The systemwide bus */ + DBUS_BUS_STARTER /**< The bus that started us, if any */ +} DBusBusType; + +/** + * Results that a message handler can return. + */ +typedef enum +{ + DBUS_HANDLER_RESULT_HANDLED, /**< Message has had its effect - no need to run more handlers. */ + DBUS_HANDLER_RESULT_NOT_YET_HANDLED, /**< Message has not had any effect - see if other handlers want it. */ + DBUS_HANDLER_RESULT_NEED_MEMORY /**< Need more memory in order to return #DBUS_HANDLER_RESULT_HANDLED or #DBUS_HANDLER_RESULT_NOT_YET_HANDLED. Please try again later with more memory. */ +} DBusHandlerResult; + +/* Bus names */ + +/** The bus name used to talk to the bus itself. */ +#define DBUS_SERVICE_DBUS "org.freedesktop.DBus" + +/* Paths */ +/** The object path used to talk to the bus itself. */ +#define DBUS_PATH_DBUS "/org/freedesktop/DBus" +/** The object path used in local/in-process-generated messages. */ +#define DBUS_PATH_LOCAL "/org/freedesktop/DBus/Local" + +/* Interfaces, these #define don't do much other than + * catch typos at compile time + */ +/** The interface exported by the object with #DBUS_SERVICE_DBUS and #DBUS_PATH_DBUS */ +#define DBUS_INTERFACE_DBUS "org.freedesktop.DBus" +/** The monitoring interface exported by the dbus-daemon */ +#define DBUS_INTERFACE_MONITORING "org.freedesktop.DBus.Monitoring" + +/** The verbose interface exported by the dbus-daemon */ +#define DBUS_INTERFACE_VERBOSE "org.freedesktop.DBus.Verbose" +/** The interface supported by introspectable objects */ +#define DBUS_INTERFACE_INTROSPECTABLE "org.freedesktop.DBus.Introspectable" +/** The interface supported by objects with properties */ +#define DBUS_INTERFACE_PROPERTIES "org.freedesktop.DBus.Properties" +/** The interface supported by most dbus peers */ +#define DBUS_INTERFACE_PEER "org.freedesktop.DBus.Peer" + +/** This is a special interface whose methods can only be invoked + * by the local implementation (messages from remote apps aren't + * allowed to specify this interface). + */ +#define DBUS_INTERFACE_LOCAL "org.freedesktop.DBus.Local" + +/* Owner flags */ +#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT 0x1 /**< Allow another service to become the primary owner if requested */ +#define DBUS_NAME_FLAG_REPLACE_EXISTING 0x2 /**< Request to replace the current primary owner */ +#define DBUS_NAME_FLAG_DO_NOT_QUEUE 0x4 /**< If we can not become the primary owner do not place us in the queue */ + +/* Replies to request for a name */ +#define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1 /**< Service has become the primary owner of the requested name */ +#define DBUS_REQUEST_NAME_REPLY_IN_QUEUE 2 /**< Service could not become the primary owner and has been placed in the queue */ +#define DBUS_REQUEST_NAME_REPLY_EXISTS 3 /**< Service is already in the queue */ +#define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4 /**< Service is already the primary owner */ + +/* Replies to releasing a name */ +#define DBUS_RELEASE_NAME_REPLY_RELEASED 1 /**< Service was released from the given name */ +#define DBUS_RELEASE_NAME_REPLY_NON_EXISTENT 2 /**< The given name does not exist on the bus */ +#define DBUS_RELEASE_NAME_REPLY_NOT_OWNER 3 /**< Service is not an owner of the given name */ + +/* Replies to service starts */ +#define DBUS_START_REPLY_SUCCESS 1 /**< Service was auto started */ +#define DBUS_START_REPLY_ALREADY_RUNNING 2 /**< Service was already running */ + +/** @} */ + +#ifdef __cplusplus +#if 0 +{ /* avoids confusing emacs indentation */ +#endif +} +#endif + +#endif /* DBUS_SHARED_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-signature.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-signature.h new file mode 100644 index 000000000..a8a0486b1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-signature.h @@ -0,0 +1,97 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-signatures.h utility functions for D-Bus types + * + * Copyright (C) 2005 Red Hat Inc. + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_SIGNATURES_H +#define DBUS_SIGNATURES_H + +#include +#include +#include + +DBUS_BEGIN_DECLS + +/** + * @addtogroup DBusSignature + * @{ + */ + +/** + * DBusSignatureIter struct; contains no public fields + */ +typedef struct +{ + void *dummy1; /**< Don't use this */ + void *dummy2; /**< Don't use this */ + dbus_uint32_t dummy8; /**< Don't use this */ + int dummy12; /**< Don't use this */ + int dummy17; /**< Don't use this */ +} DBusSignatureIter; + +DBUS_EXPORT +void dbus_signature_iter_init (DBusSignatureIter *iter, + const char *signature); + +DBUS_EXPORT +int dbus_signature_iter_get_current_type (const DBusSignatureIter *iter); + +DBUS_EXPORT +char * dbus_signature_iter_get_signature (const DBusSignatureIter *iter); + +DBUS_EXPORT +int dbus_signature_iter_get_element_type (const DBusSignatureIter *iter); + +DBUS_EXPORT +dbus_bool_t dbus_signature_iter_next (DBusSignatureIter *iter); + +DBUS_EXPORT +void dbus_signature_iter_recurse (const DBusSignatureIter *iter, + DBusSignatureIter *subiter); + +DBUS_EXPORT +dbus_bool_t dbus_signature_validate (const char *signature, + DBusError *error); + +DBUS_EXPORT +dbus_bool_t dbus_signature_validate_single (const char *signature, + DBusError *error); + +DBUS_EXPORT +dbus_bool_t dbus_type_is_valid (int typecode); + +DBUS_EXPORT +dbus_bool_t dbus_type_is_basic (int typecode); +DBUS_EXPORT +dbus_bool_t dbus_type_is_container (int typecode); +DBUS_EXPORT +dbus_bool_t dbus_type_is_fixed (int typecode); + +/** @} */ + +DBUS_END_DECLS + +#endif /* DBUS_SIGNATURE_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-syntax.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-syntax.h new file mode 100644 index 000000000..57459b17c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-syntax.h @@ -0,0 +1,60 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-syntax.h - utility functions for strings with special syntax + * + * Author: Simon McVittie + * Copyright © 2011 Nokia Corporation + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_SYNTAX_H +#define DBUS_SYNTAX_H + +#include +#include +#include + +DBUS_BEGIN_DECLS + +DBUS_EXPORT +dbus_bool_t dbus_validate_path (const char *path, + DBusError *error); +DBUS_EXPORT +dbus_bool_t dbus_validate_interface (const char *name, + DBusError *error); +DBUS_EXPORT +dbus_bool_t dbus_validate_member (const char *name, + DBusError *error); +DBUS_EXPORT +dbus_bool_t dbus_validate_error_name (const char *name, + DBusError *error); +DBUS_EXPORT +dbus_bool_t dbus_validate_bus_name (const char *name, + DBusError *error); +DBUS_EXPORT +dbus_bool_t dbus_validate_utf8 (const char *alleged_utf8, + DBusError *error); + +DBUS_END_DECLS + +#endif /* multiple-inclusion guard */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-threads.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-threads.h new file mode 100644 index 000000000..33e1e3274 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-threads.h @@ -0,0 +1,191 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-threads.h D-Bus threads handling + * + * Copyright (C) 2002 Red Hat Inc. + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_THREADS_H +#define DBUS_THREADS_H + +#include +#include + +DBUS_BEGIN_DECLS + +/** + * @addtogroup DBusThreads + * @{ + */ + +/** An opaque mutex type provided by the #DBusThreadFunctions implementation installed by dbus_threads_init(). */ +typedef struct DBusMutex DBusMutex; +/** An opaque condition variable type provided by the #DBusThreadFunctions implementation installed by dbus_threads_init(). */ +typedef struct DBusCondVar DBusCondVar; + +/** Deprecated, provide DBusRecursiveMutexNewFunction instead. */ +typedef DBusMutex* (* DBusMutexNewFunction) (void); +/** Deprecated, provide DBusRecursiveMutexFreeFunction instead. */ +typedef void (* DBusMutexFreeFunction) (DBusMutex *mutex); +/** Deprecated, provide DBusRecursiveMutexLockFunction instead. Return value is lock success, but gets ignored in practice. */ +typedef dbus_bool_t (* DBusMutexLockFunction) (DBusMutex *mutex); +/** Deprecated, provide DBusRecursiveMutexUnlockFunction instead. Return value is unlock success, but gets ignored in practice. */ +typedef dbus_bool_t (* DBusMutexUnlockFunction) (DBusMutex *mutex); + +/** Creates a new recursively-lockable mutex, or returns #NULL if not + * enough memory. Can only fail due to lack of memory. Found in + * #DBusThreadFunctions. Do not just use PTHREAD_MUTEX_RECURSIVE for + * this, because it does not save/restore the recursion count when + * waiting on a condition. libdbus requires the Java-style behavior + * where the mutex is fully unlocked to wait on a condition. + */ +typedef DBusMutex* (* DBusRecursiveMutexNewFunction) (void); +/** Frees a recursively-lockable mutex. Found in #DBusThreadFunctions. + */ +typedef void (* DBusRecursiveMutexFreeFunction) (DBusMutex *mutex); +/** Locks a recursively-lockable mutex. Found in #DBusThreadFunctions. + * Can only fail due to lack of memory. + */ +typedef void (* DBusRecursiveMutexLockFunction) (DBusMutex *mutex); +/** Unlocks a recursively-lockable mutex. Found in #DBusThreadFunctions. + * Can only fail due to lack of memory. + */ +typedef void (* DBusRecursiveMutexUnlockFunction) (DBusMutex *mutex); + +/** Creates a new condition variable. Found in #DBusThreadFunctions. + * Can only fail (returning #NULL) due to lack of memory. + */ +typedef DBusCondVar* (* DBusCondVarNewFunction) (void); +/** Frees a condition variable. Found in #DBusThreadFunctions. + */ +typedef void (* DBusCondVarFreeFunction) (DBusCondVar *cond); + +/** Waits on a condition variable. Found in + * #DBusThreadFunctions. Must work with either a recursive or + * nonrecursive mutex, whichever the thread implementation + * provides. Note that PTHREAD_MUTEX_RECURSIVE does not work with + * condition variables (does not save/restore the recursion count) so + * don't try using simply pthread_cond_wait() and a + * PTHREAD_MUTEX_RECURSIVE to implement this, it won't work right. + * + * Has no error conditions. Must succeed if it returns. + */ +typedef void (* DBusCondVarWaitFunction) (DBusCondVar *cond, + DBusMutex *mutex); + +/** Waits on a condition variable with a timeout. Found in + * #DBusThreadFunctions. Returns #TRUE if the wait did not + * time out, and #FALSE if it did. + * + * Has no error conditions. Must succeed if it returns. + */ +typedef dbus_bool_t (* DBusCondVarWaitTimeoutFunction) (DBusCondVar *cond, + DBusMutex *mutex, + int timeout_milliseconds); +/** Wakes one waiting thread on a condition variable. Found in #DBusThreadFunctions. + * + * Has no error conditions. Must succeed if it returns. + */ +typedef void (* DBusCondVarWakeOneFunction) (DBusCondVar *cond); + +/** Wakes all waiting threads on a condition variable. Found in #DBusThreadFunctions. + * + * Has no error conditions. Must succeed if it returns. + */ +typedef void (* DBusCondVarWakeAllFunction) (DBusCondVar *cond); + +/** + * Flags indicating which functions are present in #DBusThreadFunctions. Used to allow + * the library to detect older callers of dbus_threads_init() if new possible functions + * are added to #DBusThreadFunctions. + */ +typedef enum +{ + DBUS_THREAD_FUNCTIONS_MUTEX_NEW_MASK = 1 << 0, + DBUS_THREAD_FUNCTIONS_MUTEX_FREE_MASK = 1 << 1, + DBUS_THREAD_FUNCTIONS_MUTEX_LOCK_MASK = 1 << 2, + DBUS_THREAD_FUNCTIONS_MUTEX_UNLOCK_MASK = 1 << 3, + DBUS_THREAD_FUNCTIONS_CONDVAR_NEW_MASK = 1 << 4, + DBUS_THREAD_FUNCTIONS_CONDVAR_FREE_MASK = 1 << 5, + DBUS_THREAD_FUNCTIONS_CONDVAR_WAIT_MASK = 1 << 6, + DBUS_THREAD_FUNCTIONS_CONDVAR_WAIT_TIMEOUT_MASK = 1 << 7, + DBUS_THREAD_FUNCTIONS_CONDVAR_WAKE_ONE_MASK = 1 << 8, + DBUS_THREAD_FUNCTIONS_CONDVAR_WAKE_ALL_MASK = 1 << 9, + DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_NEW_MASK = 1 << 10, + DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_FREE_MASK = 1 << 11, + DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_LOCK_MASK = 1 << 12, + DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_UNLOCK_MASK = 1 << 13, + DBUS_THREAD_FUNCTIONS_ALL_MASK = (1 << 14) - 1 +} DBusThreadFunctionsMask; + +/** + * Functions that must be implemented to make the D-Bus library + * thread-aware. + * + * If you supply both recursive and non-recursive mutexes, + * libdbus will use the non-recursive version for condition variables, + * and the recursive version in other contexts. + * + * The condition variable functions have to work with nonrecursive + * mutexes if you provide those, or with recursive mutexes if you + * don't. + */ +typedef struct +{ + unsigned int mask; /**< Mask indicating which functions are present. */ + + DBusMutexNewFunction mutex_new; /**< Function to create a mutex; optional and deprecated. */ + DBusMutexFreeFunction mutex_free; /**< Function to free a mutex; optional and deprecated. */ + DBusMutexLockFunction mutex_lock; /**< Function to lock a mutex; optional and deprecated. */ + DBusMutexUnlockFunction mutex_unlock; /**< Function to unlock a mutex; optional and deprecated. */ + + DBusCondVarNewFunction condvar_new; /**< Function to create a condition variable */ + DBusCondVarFreeFunction condvar_free; /**< Function to free a condition variable */ + DBusCondVarWaitFunction condvar_wait; /**< Function to wait on a condition */ + DBusCondVarWaitTimeoutFunction condvar_wait_timeout; /**< Function to wait on a condition with a timeout */ + DBusCondVarWakeOneFunction condvar_wake_one; /**< Function to wake one thread waiting on the condition */ + DBusCondVarWakeAllFunction condvar_wake_all; /**< Function to wake all threads waiting on the condition */ + + DBusRecursiveMutexNewFunction recursive_mutex_new; /**< Function to create a recursive mutex */ + DBusRecursiveMutexFreeFunction recursive_mutex_free; /**< Function to free a recursive mutex */ + DBusRecursiveMutexLockFunction recursive_mutex_lock; /**< Function to lock a recursive mutex */ + DBusRecursiveMutexUnlockFunction recursive_mutex_unlock; /**< Function to unlock a recursive mutex */ + + void (* padding1) (void); /**< Reserved for future expansion */ + void (* padding2) (void); /**< Reserved for future expansion */ + void (* padding3) (void); /**< Reserved for future expansion */ + void (* padding4) (void); /**< Reserved for future expansion */ + +} DBusThreadFunctions; + +DBUS_EXPORT +dbus_bool_t dbus_threads_init (const DBusThreadFunctions *functions); +DBUS_EXPORT +dbus_bool_t dbus_threads_init_default (void); + +/** @} */ + +DBUS_END_DECLS + +#endif /* DBUS_THREADS_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-types.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-types.h new file mode 100644 index 000000000..5ace27331 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus-types.h @@ -0,0 +1,179 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus-types.h types such as dbus_bool_t + * + * Copyright (C) 2002 Red Hat Inc. + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_TYPES_H +#define DBUS_TYPES_H + +#include +#include + +typedef dbus_uint32_t dbus_unichar_t; +/* boolean size must be fixed at 4 bytes due to wire protocol! */ +typedef dbus_uint32_t dbus_bool_t; + +/* Normally docs are in .c files, but there isn't a .c file for this. */ +/** + * @defgroup DBusTypes Basic types + * @ingroup DBus + * @brief dbus_bool_t, dbus_int32_t, etc. + * + * Typedefs for common primitive types. + * + * @{ + */ + +/** + * @typedef dbus_bool_t + * + * A boolean, valid values are #TRUE and #FALSE. + */ + +/** + * @typedef dbus_uint32_t + * + * A 32-bit unsigned integer on all platforms. + */ + +/** + * @typedef dbus_int32_t + * + * A 32-bit signed integer on all platforms. + */ + +/** + * @typedef dbus_uint16_t + * + * A 16-bit unsigned integer on all platforms. + */ + +/** + * @typedef dbus_int16_t + * + * A 16-bit signed integer on all platforms. + */ + + +/** + * @typedef dbus_uint64_t + * + * A 64-bit unsigned integer. + */ + +/** + * @typedef dbus_int64_t + * + * A 64-bit signed integer. + */ + +/** + * @def DBUS_HAVE_INT64 + * + * Always defined. + * + * In older libdbus versions, this would be undefined if there was no + * 64-bit integer type on that platform. libdbus no longer supports + * such platforms. + */ + +/** + * @def DBUS_INT64_CONSTANT + * + * Declare a 64-bit signed integer constant. The macro + * adds the necessary "LL" or whatever after the integer, + * giving a literal such as "325145246765LL" + */ + +/** + * @def DBUS_UINT64_CONSTANT + * + * Declare a 64-bit unsigned integer constant. The macro + * adds the necessary "ULL" or whatever after the integer, + * giving a literal such as "325145246765ULL" + */ + +/** + * @def DBUS_INT64_MODIFIER + * + * A string literal for a length modifier that is appropriate to print + * the #dbus_int64_t and #dbus_uint64_t types. + * For example, it might be an empty string, "l", "ll", or "I64". + * + * This modifier needs to be concatenated with a literal "%" and a + * conversion specifier that can print signed or unsigned integers, + * for example: + * + * @code + * dbus_int64_t i = -123; + * dbus_uint64_t u = 456; + * + * printf ("signed: %" DBUS_INT64_MODIFIER "d\n", i); + * printf ("unsigned decimal: %" DBUS_INT64_MODIFIER "u\n", u); + * printf ("unsigned hex: 0x%" DBUS_INT64_MODIFIER "x\n", x); + * @endcode + */ + +/** + * An 8-byte struct you could use to access int64 without having + * int64 support. Use #dbus_int64_t or #dbus_uint64_t instead. + */ +typedef struct +{ + dbus_uint32_t first32; /**< first 32 bits in the 8 bytes (beware endian issues) */ + dbus_uint32_t second32; /**< second 32 bits in the 8 bytes (beware endian issues) */ +} DBus8ByteStruct; + +/** + * A simple value union that lets you access bytes as if they + * were various types; useful when dealing with basic types via + * void pointers and varargs. + * + * This union also contains a pointer member (which can be used + * to retrieve a string from dbus_message_iter_get_basic(), for + * instance), so on future platforms it could conceivably be larger + * than 8 bytes. + */ +typedef union +{ + unsigned char bytes[8]; /**< as 8 individual bytes */ + dbus_int16_t i16; /**< as int16 */ + dbus_uint16_t u16; /**< as int16 */ + dbus_int32_t i32; /**< as int32 */ + dbus_uint32_t u32; /**< as int32 */ + dbus_bool_t bool_val; /**< as boolean */ + dbus_int64_t i64; /**< as int64 */ + dbus_uint64_t u64; /**< as int64 */ + DBus8ByteStruct eight; /**< as 8-byte struct */ + double dbl; /**< as double */ + unsigned char byt; /**< as byte */ + char *str; /**< as char* (string, object path or signature) */ + int fd; /**< as Unix file descriptor */ +} DBusBasicValue; + +/** @} */ + +#endif /* DBUS_TYPES_H */ diff --git a/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus.h b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus.h new file mode 100644 index 000000000..53998c54b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/dbus-1.0/dbus/dbus.h @@ -0,0 +1,106 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ +/* dbus.h Convenience header including all other headers + * + * Copyright (C) 2002, 2003 Red Hat Inc. + * + * SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.1 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ + +#ifndef DBUS_H +#define DBUS_H + +#define DBUS_INSIDE_DBUS_H 1 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#undef DBUS_INSIDE_DBUS_H + +/** + * @defgroup DBus D-Bus low-level public API + * @brief The low-level public API of the D-Bus library + * + * libdbus provides a low-level C API intended primarily for use by + * bindings to specific object systems and languages. D-Bus is most + * convenient when used with the GLib bindings, Python bindings, Qt + * bindings, Mono bindings, and so forth. This low-level API has a + * lot of complexity useful only for bindings. + * + * @{ + */ + +/** @} */ + +/** + * @mainpage + * + * This manual documents the low-level D-Bus C API. If you use + * this low-level API directly, you're signing up for some pain. + * + * Caveats aside, you might get started learning the low-level API by reading + * about @ref DBusConnection and @ref DBusMessage. + * + * There are several other places to look for D-Bus information, such + * as the tutorial and the specification; those can be found at the D-Bus + * website. If you're interested in a sysadmin or package + * maintainer's perspective on the dbus-daemon itself and its + * configuration, be sure to check out the man pages as well. + * + * The low-level API documented in this manual deliberately lacks + * most convenience functions - those are left up to higher-level libraries + * based on frameworks such as GLib, Qt, Python, Mono, Java, + * etc. These higher-level libraries (often called "D-Bus bindings") + * have features such as object systems and main loops that allow a + * much more convenient API. + * + * The low-level API also contains plenty of clutter to support + * integration with arbitrary object systems, languages, main loops, + * and so forth. These features add a lot of noise to the API that you + * probably don't care about unless you're coding a binding. + * + * This manual also contains docs for @ref DBusInternals "D-Bus internals", + * so you can use it to get oriented to the D-Bus source code if you're + * interested in patching the code. You should also read the + * file CONTRIBUTING.md which comes with the source code if you plan to + * contribute to D-Bus. + * + * As you read the code, you can identify internal D-Bus functions + * because they start with an underscore ('_') character. Also, any + * identifier or macro that lacks a DBus, dbus_, or DBUS_ namepace + * prefix is internal, with a couple of exceptions such as #NULL, + * #TRUE, and #FALSE. + */ + +#endif /* DBUS_H */ diff --git a/code/application/source/sf_app/tools/blue/include/eti.h b/code/application/source/sf_app/tools/blue/include/eti.h new file mode 100644 index 000000000..3c3302d0f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/eti.h @@ -0,0 +1,55 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2002,2003 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1995,1997 * + ****************************************************************************/ + +/* $Id: eti.h,v 1.9 2020/02/02 23:34:34 tom Exp $ */ + +#ifndef NCURSES_ETI_H_incl +#define NCURSES_ETI_H_incl 1 + +#define E_OK (0) +#define E_SYSTEM_ERROR (-1) +#define E_BAD_ARGUMENT (-2) +#define E_POSTED (-3) +#define E_CONNECTED (-4) +#define E_BAD_STATE (-5) +#define E_NO_ROOM (-6) +#define E_NOT_POSTED (-7) +#define E_UNKNOWN_COMMAND (-8) +#define E_NO_MATCH (-9) +#define E_NOT_SELECTABLE (-10) +#define E_NOT_CONNECTED (-11) +#define E_REQUEST_DENIED (-12) +#define E_INVALID_FIELD (-13) +#define E_CURRENT (-14) + +#endif diff --git a/code/application/source/sf_app/tools/blue/include/expat.h b/code/application/source/sf_app/tools/blue/include/expat.h new file mode 100644 index 000000000..1c83563cb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/expat.h @@ -0,0 +1,1064 @@ +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2000-2005 Fred L. Drake, Jr. + Copyright (c) 2001-2002 Greg Stein + Copyright (c) 2002-2016 Karl Waclawek + Copyright (c) 2016-2022 Sebastian Pipping + Copyright (c) 2016 Cristian Rodríguez + Copyright (c) 2016 Thomas Beutlich + Copyright (c) 2017 Rhodri James + Copyright (c) 2022 Thijs Schreijer + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#ifndef Expat_INCLUDED +#define Expat_INCLUDED 1 + +#include +#include "expat_external.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct XML_ParserStruct; +typedef struct XML_ParserStruct *XML_Parser; + +typedef unsigned char XML_Bool; +#define XML_TRUE ((XML_Bool)1) +#define XML_FALSE ((XML_Bool)0) + +/* The XML_Status enum gives the possible return values for several + API functions. The preprocessor #defines are included so this + stanza can be added to code that still needs to support older + versions of Expat 1.95.x: + + #ifndef XML_STATUS_OK + #define XML_STATUS_OK 1 + #define XML_STATUS_ERROR 0 + #endif + + Otherwise, the #define hackery is quite ugly and would have been + dropped. +*/ +enum XML_Status { + XML_STATUS_ERROR = 0, +#define XML_STATUS_ERROR XML_STATUS_ERROR + XML_STATUS_OK = 1, +#define XML_STATUS_OK XML_STATUS_OK + XML_STATUS_SUSPENDED = 2 +#define XML_STATUS_SUSPENDED XML_STATUS_SUSPENDED +}; + +enum XML_Error { + XML_ERROR_NONE, + XML_ERROR_NO_MEMORY, + XML_ERROR_SYNTAX, + XML_ERROR_NO_ELEMENTS, + XML_ERROR_INVALID_TOKEN, + XML_ERROR_UNCLOSED_TOKEN, + XML_ERROR_PARTIAL_CHAR, + XML_ERROR_TAG_MISMATCH, + XML_ERROR_DUPLICATE_ATTRIBUTE, + XML_ERROR_JUNK_AFTER_DOC_ELEMENT, + XML_ERROR_PARAM_ENTITY_REF, + XML_ERROR_UNDEFINED_ENTITY, + XML_ERROR_RECURSIVE_ENTITY_REF, + XML_ERROR_ASYNC_ENTITY, + XML_ERROR_BAD_CHAR_REF, + XML_ERROR_BINARY_ENTITY_REF, + XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF, + XML_ERROR_MISPLACED_XML_PI, + XML_ERROR_UNKNOWN_ENCODING, + XML_ERROR_INCORRECT_ENCODING, + XML_ERROR_UNCLOSED_CDATA_SECTION, + XML_ERROR_EXTERNAL_ENTITY_HANDLING, + XML_ERROR_NOT_STANDALONE, + XML_ERROR_UNEXPECTED_STATE, + XML_ERROR_ENTITY_DECLARED_IN_PE, + XML_ERROR_FEATURE_REQUIRES_XML_DTD, + XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING, + /* Added in 1.95.7. */ + XML_ERROR_UNBOUND_PREFIX, + /* Added in 1.95.8. */ + XML_ERROR_UNDECLARING_PREFIX, + XML_ERROR_INCOMPLETE_PE, + XML_ERROR_XML_DECL, + XML_ERROR_TEXT_DECL, + XML_ERROR_PUBLICID, + XML_ERROR_SUSPENDED, + XML_ERROR_NOT_SUSPENDED, + XML_ERROR_ABORTED, + XML_ERROR_FINISHED, + XML_ERROR_SUSPEND_PE, + /* Added in 2.0. */ + XML_ERROR_RESERVED_PREFIX_XML, + XML_ERROR_RESERVED_PREFIX_XMLNS, + XML_ERROR_RESERVED_NAMESPACE_URI, + /* Added in 2.2.1. */ + XML_ERROR_INVALID_ARGUMENT, + /* Added in 2.3.0. */ + XML_ERROR_NO_BUFFER, + /* Added in 2.4.0. */ + XML_ERROR_AMPLIFICATION_LIMIT_BREACH +}; + +enum XML_Content_Type { + XML_CTYPE_EMPTY = 1, + XML_CTYPE_ANY, + XML_CTYPE_MIXED, + XML_CTYPE_NAME, + XML_CTYPE_CHOICE, + XML_CTYPE_SEQ +}; + +enum XML_Content_Quant { + XML_CQUANT_NONE, + XML_CQUANT_OPT, + XML_CQUANT_REP, + XML_CQUANT_PLUS +}; + +/* If type == XML_CTYPE_EMPTY or XML_CTYPE_ANY, then quant will be + XML_CQUANT_NONE, and the other fields will be zero or NULL. + If type == XML_CTYPE_MIXED, then quant will be NONE or REP and + numchildren will contain number of elements that may be mixed in + and children point to an array of XML_Content cells that will be + all of XML_CTYPE_NAME type with no quantification. + + If type == XML_CTYPE_NAME, then the name points to the name, and + the numchildren field will be zero and children will be NULL. The + quant fields indicates any quantifiers placed on the name. + + CHOICE and SEQ will have name NULL, the number of children in + numchildren and children will point, recursively, to an array + of XML_Content cells. + + The EMPTY, ANY, and MIXED types will only occur at top level. +*/ + +typedef struct XML_cp XML_Content; + +struct XML_cp { + enum XML_Content_Type type; + enum XML_Content_Quant quant; + XML_Char *name; + unsigned int numchildren; + XML_Content *children; +}; + +/* This is called for an element declaration. See above for + description of the model argument. It's the user code's responsibility + to free model when finished with it. See XML_FreeContentModel. + There is no need to free the model from the handler, it can be kept + around and freed at a later stage. +*/ +typedef void(XMLCALL *XML_ElementDeclHandler)(void *userData, + const XML_Char *name, + XML_Content *model); + +XMLPARSEAPI(void) +XML_SetElementDeclHandler(XML_Parser parser, XML_ElementDeclHandler eldecl); + +/* The Attlist declaration handler is called for *each* attribute. So + a single Attlist declaration with multiple attributes declared will + generate multiple calls to this handler. The "default" parameter + may be NULL in the case of the "#IMPLIED" or "#REQUIRED" + keyword. The "isrequired" parameter will be true and the default + value will be NULL in the case of "#REQUIRED". If "isrequired" is + true and default is non-NULL, then this is a "#FIXED" default. +*/ +typedef void(XMLCALL *XML_AttlistDeclHandler)( + void *userData, const XML_Char *elname, const XML_Char *attname, + const XML_Char *att_type, const XML_Char *dflt, int isrequired); + +XMLPARSEAPI(void) +XML_SetAttlistDeclHandler(XML_Parser parser, XML_AttlistDeclHandler attdecl); + +/* The XML declaration handler is called for *both* XML declarations + and text declarations. The way to distinguish is that the version + parameter will be NULL for text declarations. The encoding + parameter may be NULL for XML declarations. The standalone + parameter will be -1, 0, or 1 indicating respectively that there + was no standalone parameter in the declaration, that it was given + as no, or that it was given as yes. +*/ +typedef void(XMLCALL *XML_XmlDeclHandler)(void *userData, + const XML_Char *version, + const XML_Char *encoding, + int standalone); + +XMLPARSEAPI(void) +XML_SetXmlDeclHandler(XML_Parser parser, XML_XmlDeclHandler xmldecl); + +typedef struct { + void *(*malloc_fcn)(size_t size); + void *(*realloc_fcn)(void *ptr, size_t size); + void (*free_fcn)(void *ptr); +} XML_Memory_Handling_Suite; + +/* Constructs a new parser; encoding is the encoding specified by the + external protocol or NULL if there is none specified. +*/ +XMLPARSEAPI(XML_Parser) +XML_ParserCreate(const XML_Char *encoding); + +/* Constructs a new parser and namespace processor. Element type + names and attribute names that belong to a namespace will be + expanded; unprefixed attribute names are never expanded; unprefixed + element type names are expanded only if there is a default + namespace. The expanded name is the concatenation of the namespace + URI, the namespace separator character, and the local part of the + name. If the namespace separator is '\0' then the namespace URI + and the local part will be concatenated without any separator. + It is a programming error to use the separator '\0' with namespace + triplets (see XML_SetReturnNSTriplet). + If a namespace separator is chosen that can be part of a URI or + part of an XML name, splitting an expanded name back into its + 1, 2 or 3 original parts on application level in the element handler + may end up vulnerable, so these are advised against; sane choices for + a namespace separator are e.g. '\n' (line feed) and '|' (pipe). + + Note that Expat does not validate namespace URIs (beyond encoding) + against RFC 3986 today (and is not required to do so with regard to + the XML 1.0 namespaces specification) but it may start doing that + in future releases. Before that, an application using Expat must + be ready to receive namespace URIs containing non-URI characters. +*/ +XMLPARSEAPI(XML_Parser) +XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator); + +/* Constructs a new parser using the memory management suite referred to + by memsuite. If memsuite is NULL, then use the standard library memory + suite. If namespaceSeparator is non-NULL it creates a parser with + namespace processing as described above. The character pointed at + will serve as the namespace separator. + + All further memory operations used for the created parser will come from + the given suite. +*/ +XMLPARSEAPI(XML_Parser) +XML_ParserCreate_MM(const XML_Char *encoding, + const XML_Memory_Handling_Suite *memsuite, + const XML_Char *namespaceSeparator); + +/* Prepare a parser object to be re-used. This is particularly + valuable when memory allocation overhead is disproportionately high, + such as when a large number of small documnents need to be parsed. + All handlers are cleared from the parser, except for the + unknownEncodingHandler. The parser's external state is re-initialized + except for the values of ns and ns_triplets. + + Added in Expat 1.95.3. +*/ +XMLPARSEAPI(XML_Bool) +XML_ParserReset(XML_Parser parser, const XML_Char *encoding); + +/* atts is array of name/value pairs, terminated by 0; + names and values are 0 terminated. +*/ +typedef void(XMLCALL *XML_StartElementHandler)(void *userData, + const XML_Char *name, + const XML_Char **atts); + +typedef void(XMLCALL *XML_EndElementHandler)(void *userData, + const XML_Char *name); + +/* s is not 0 terminated. */ +typedef void(XMLCALL *XML_CharacterDataHandler)(void *userData, + const XML_Char *s, int len); + +/* target and data are 0 terminated */ +typedef void(XMLCALL *XML_ProcessingInstructionHandler)(void *userData, + const XML_Char *target, + const XML_Char *data); + +/* data is 0 terminated */ +typedef void(XMLCALL *XML_CommentHandler)(void *userData, const XML_Char *data); + +typedef void(XMLCALL *XML_StartCdataSectionHandler)(void *userData); +typedef void(XMLCALL *XML_EndCdataSectionHandler)(void *userData); + +/* This is called for any characters in the XML document for which + there is no applicable handler. This includes both characters that + are part of markup which is of a kind that is not reported + (comments, markup declarations), or characters that are part of a + construct which could be reported but for which no handler has been + supplied. The characters are passed exactly as they were in the XML + document except that they will be encoded in UTF-8 or UTF-16. + Line boundaries are not normalized. Note that a byte order mark + character is not passed to the default handler. There are no + guarantees about how characters are divided between calls to the + default handler: for example, a comment might be split between + multiple calls. +*/ +typedef void(XMLCALL *XML_DefaultHandler)(void *userData, const XML_Char *s, + int len); + +/* This is called for the start of the DOCTYPE declaration, before + any DTD or internal subset is parsed. +*/ +typedef void(XMLCALL *XML_StartDoctypeDeclHandler)(void *userData, + const XML_Char *doctypeName, + const XML_Char *sysid, + const XML_Char *pubid, + int has_internal_subset); + +/* This is called for the end of the DOCTYPE declaration when the + closing > is encountered, but after processing any external + subset. +*/ +typedef void(XMLCALL *XML_EndDoctypeDeclHandler)(void *userData); + +/* This is called for entity declarations. The is_parameter_entity + argument will be non-zero if the entity is a parameter entity, zero + otherwise. + + For internal entities (), value will + be non-NULL and systemId, publicID, and notationName will be NULL. + The value string is NOT null-terminated; the length is provided in + the value_length argument. Since it is legal to have zero-length + values, do not use this argument to test for internal entities. + + For external entities, value will be NULL and systemId will be + non-NULL. The publicId argument will be NULL unless a public + identifier was provided. The notationName argument will have a + non-NULL value only for unparsed entity declarations. + + Note that is_parameter_entity can't be changed to XML_Bool, since + that would break binary compatibility. +*/ +typedef void(XMLCALL *XML_EntityDeclHandler)( + void *userData, const XML_Char *entityName, int is_parameter_entity, + const XML_Char *value, int value_length, const XML_Char *base, + const XML_Char *systemId, const XML_Char *publicId, + const XML_Char *notationName); + +XMLPARSEAPI(void) +XML_SetEntityDeclHandler(XML_Parser parser, XML_EntityDeclHandler handler); + +/* OBSOLETE -- OBSOLETE -- OBSOLETE + This handler has been superseded by the EntityDeclHandler above. + It is provided here for backward compatibility. + + This is called for a declaration of an unparsed (NDATA) entity. + The base argument is whatever was set by XML_SetBase. The + entityName, systemId and notationName arguments will never be + NULL. The other arguments may be. +*/ +typedef void(XMLCALL *XML_UnparsedEntityDeclHandler)( + void *userData, const XML_Char *entityName, const XML_Char *base, + const XML_Char *systemId, const XML_Char *publicId, + const XML_Char *notationName); + +/* This is called for a declaration of notation. The base argument is + whatever was set by XML_SetBase. The notationName will never be + NULL. The other arguments can be. +*/ +typedef void(XMLCALL *XML_NotationDeclHandler)(void *userData, + const XML_Char *notationName, + const XML_Char *base, + const XML_Char *systemId, + const XML_Char *publicId); + +/* When namespace processing is enabled, these are called once for + each namespace declaration. The call to the start and end element + handlers occur between the calls to the start and end namespace + declaration handlers. For an xmlns attribute, prefix will be + NULL. For an xmlns="" attribute, uri will be NULL. +*/ +typedef void(XMLCALL *XML_StartNamespaceDeclHandler)(void *userData, + const XML_Char *prefix, + const XML_Char *uri); + +typedef void(XMLCALL *XML_EndNamespaceDeclHandler)(void *userData, + const XML_Char *prefix); + +/* This is called if the document is not standalone, that is, it has an + external subset or a reference to a parameter entity, but does not + have standalone="yes". If this handler returns XML_STATUS_ERROR, + then processing will not continue, and the parser will return a + XML_ERROR_NOT_STANDALONE error. + If parameter entity parsing is enabled, then in addition to the + conditions above this handler will only be called if the referenced + entity was actually read. +*/ +typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData); + +/* This is called for a reference to an external parsed general + entity. The referenced entity is not automatically parsed. The + application can parse it immediately or later using + XML_ExternalEntityParserCreate. + + The parser argument is the parser parsing the entity containing the + reference; it can be passed as the parser argument to + XML_ExternalEntityParserCreate. The systemId argument is the + system identifier as specified in the entity declaration; it will + not be NULL. + + The base argument is the system identifier that should be used as + the base for resolving systemId if systemId was relative; this is + set by XML_SetBase; it may be NULL. + + The publicId argument is the public identifier as specified in the + entity declaration, or NULL if none was specified; the whitespace + in the public identifier will have been normalized as required by + the XML spec. + + The context argument specifies the parsing context in the format + expected by the context argument to XML_ExternalEntityParserCreate; + context is valid only until the handler returns, so if the + referenced entity is to be parsed later, it must be copied. + context is NULL only when the entity is a parameter entity. + + The handler should return XML_STATUS_ERROR if processing should not + continue because of a fatal error in the handling of the external + entity. In this case the calling parser will return an + XML_ERROR_EXTERNAL_ENTITY_HANDLING error. + + Note that unlike other handlers the first argument is the parser, + not userData. +*/ +typedef int(XMLCALL *XML_ExternalEntityRefHandler)(XML_Parser parser, + const XML_Char *context, + const XML_Char *base, + const XML_Char *systemId, + const XML_Char *publicId); + +/* This is called in two situations: + 1) An entity reference is encountered for which no declaration + has been read *and* this is not an error. + 2) An internal entity reference is read, but not expanded, because + XML_SetDefaultHandler has been called. + Note: skipped parameter entities in declarations and skipped general + entities in attribute values cannot be reported, because + the event would be out of sync with the reporting of the + declarations or attribute values +*/ +typedef void(XMLCALL *XML_SkippedEntityHandler)(void *userData, + const XML_Char *entityName, + int is_parameter_entity); + +/* This structure is filled in by the XML_UnknownEncodingHandler to + provide information to the parser about encodings that are unknown + to the parser. + + The map[b] member gives information about byte sequences whose + first byte is b. + + If map[b] is c where c is >= 0, then b by itself encodes the + Unicode scalar value c. + + If map[b] is -1, then the byte sequence is malformed. + + If map[b] is -n, where n >= 2, then b is the first byte of an + n-byte sequence that encodes a single Unicode scalar value. + + The data member will be passed as the first argument to the convert + function. + + The convert function is used to convert multibyte sequences; s will + point to a n-byte sequence where map[(unsigned char)*s] == -n. The + convert function must return the Unicode scalar value represented + by this byte sequence or -1 if the byte sequence is malformed. + + The convert function may be NULL if the encoding is a single-byte + encoding, that is if map[b] >= -1 for all bytes b. + + When the parser is finished with the encoding, then if release is + not NULL, it will call release passing it the data member; once + release has been called, the convert function will not be called + again. + + Expat places certain restrictions on the encodings that are supported + using this mechanism. + + 1. Every ASCII character that can appear in a well-formed XML document, + other than the characters + + $@\^`{}~ + + must be represented by a single byte, and that byte must be the + same byte that represents that character in ASCII. + + 2. No character may require more than 4 bytes to encode. + + 3. All characters encoded must have Unicode scalar values <= + 0xFFFF, (i.e., characters that would be encoded by surrogates in + UTF-16 are not allowed). Note that this restriction doesn't + apply to the built-in support for UTF-8 and UTF-16. + + 4. No Unicode character may be encoded by more than one distinct + sequence of bytes. +*/ +typedef struct { + int map[256]; + void *data; + int(XMLCALL *convert)(void *data, const char *s); + void(XMLCALL *release)(void *data); +} XML_Encoding; + +/* This is called for an encoding that is unknown to the parser. + + The encodingHandlerData argument is that which was passed as the + second argument to XML_SetUnknownEncodingHandler. + + The name argument gives the name of the encoding as specified in + the encoding declaration. + + If the callback can provide information about the encoding, it must + fill in the XML_Encoding structure, and return XML_STATUS_OK. + Otherwise it must return XML_STATUS_ERROR. + + If info does not describe a suitable encoding, then the parser will + return an XML_ERROR_UNKNOWN_ENCODING error. +*/ +typedef int(XMLCALL *XML_UnknownEncodingHandler)(void *encodingHandlerData, + const XML_Char *name, + XML_Encoding *info); + +XMLPARSEAPI(void) +XML_SetElementHandler(XML_Parser parser, XML_StartElementHandler start, + XML_EndElementHandler end); + +XMLPARSEAPI(void) +XML_SetStartElementHandler(XML_Parser parser, XML_StartElementHandler handler); + +XMLPARSEAPI(void) +XML_SetEndElementHandler(XML_Parser parser, XML_EndElementHandler handler); + +XMLPARSEAPI(void) +XML_SetCharacterDataHandler(XML_Parser parser, + XML_CharacterDataHandler handler); + +XMLPARSEAPI(void) +XML_SetProcessingInstructionHandler(XML_Parser parser, + XML_ProcessingInstructionHandler handler); +XMLPARSEAPI(void) +XML_SetCommentHandler(XML_Parser parser, XML_CommentHandler handler); + +XMLPARSEAPI(void) +XML_SetCdataSectionHandler(XML_Parser parser, + XML_StartCdataSectionHandler start, + XML_EndCdataSectionHandler end); + +XMLPARSEAPI(void) +XML_SetStartCdataSectionHandler(XML_Parser parser, + XML_StartCdataSectionHandler start); + +XMLPARSEAPI(void) +XML_SetEndCdataSectionHandler(XML_Parser parser, + XML_EndCdataSectionHandler end); + +/* This sets the default handler and also inhibits expansion of + internal entities. These entity references will be passed to the + default handler, or to the skipped entity handler, if one is set. +*/ +XMLPARSEAPI(void) +XML_SetDefaultHandler(XML_Parser parser, XML_DefaultHandler handler); + +/* This sets the default handler but does not inhibit expansion of + internal entities. The entity reference will not be passed to the + default handler. +*/ +XMLPARSEAPI(void) +XML_SetDefaultHandlerExpand(XML_Parser parser, XML_DefaultHandler handler); + +XMLPARSEAPI(void) +XML_SetDoctypeDeclHandler(XML_Parser parser, XML_StartDoctypeDeclHandler start, + XML_EndDoctypeDeclHandler end); + +XMLPARSEAPI(void) +XML_SetStartDoctypeDeclHandler(XML_Parser parser, + XML_StartDoctypeDeclHandler start); + +XMLPARSEAPI(void) +XML_SetEndDoctypeDeclHandler(XML_Parser parser, XML_EndDoctypeDeclHandler end); + +XMLPARSEAPI(void) +XML_SetUnparsedEntityDeclHandler(XML_Parser parser, + XML_UnparsedEntityDeclHandler handler); + +XMLPARSEAPI(void) +XML_SetNotationDeclHandler(XML_Parser parser, XML_NotationDeclHandler handler); + +XMLPARSEAPI(void) +XML_SetNamespaceDeclHandler(XML_Parser parser, + XML_StartNamespaceDeclHandler start, + XML_EndNamespaceDeclHandler end); + +XMLPARSEAPI(void) +XML_SetStartNamespaceDeclHandler(XML_Parser parser, + XML_StartNamespaceDeclHandler start); + +XMLPARSEAPI(void) +XML_SetEndNamespaceDeclHandler(XML_Parser parser, + XML_EndNamespaceDeclHandler end); + +XMLPARSEAPI(void) +XML_SetNotStandaloneHandler(XML_Parser parser, + XML_NotStandaloneHandler handler); + +XMLPARSEAPI(void) +XML_SetExternalEntityRefHandler(XML_Parser parser, + XML_ExternalEntityRefHandler handler); + +/* If a non-NULL value for arg is specified here, then it will be + passed as the first argument to the external entity ref handler + instead of the parser object. +*/ +XMLPARSEAPI(void) +XML_SetExternalEntityRefHandlerArg(XML_Parser parser, void *arg); + +XMLPARSEAPI(void) +XML_SetSkippedEntityHandler(XML_Parser parser, + XML_SkippedEntityHandler handler); + +XMLPARSEAPI(void) +XML_SetUnknownEncodingHandler(XML_Parser parser, + XML_UnknownEncodingHandler handler, + void *encodingHandlerData); + +/* This can be called within a handler for a start element, end + element, processing instruction or character data. It causes the + corresponding markup to be passed to the default handler. +*/ +XMLPARSEAPI(void) +XML_DefaultCurrent(XML_Parser parser); + +/* If do_nst is non-zero, and namespace processing is in effect, and + a name has a prefix (i.e. an explicit namespace qualifier) then + that name is returned as a triplet in a single string separated by + the separator character specified when the parser was created: URI + + sep + local_name + sep + prefix. + + If do_nst is zero, then namespace information is returned in the + default manner (URI + sep + local_name) whether or not the name + has a prefix. + + Note: Calling XML_SetReturnNSTriplet after XML_Parse or + XML_ParseBuffer has no effect. +*/ + +XMLPARSEAPI(void) +XML_SetReturnNSTriplet(XML_Parser parser, int do_nst); + +/* This value is passed as the userData argument to callbacks. */ +XMLPARSEAPI(void) +XML_SetUserData(XML_Parser parser, void *userData); + +/* Returns the last value set by XML_SetUserData or NULL. */ +#define XML_GetUserData(parser) (*(void **)(parser)) + +/* This is equivalent to supplying an encoding argument to + XML_ParserCreate. On success XML_SetEncoding returns non-zero, + zero otherwise. + Note: Calling XML_SetEncoding after XML_Parse or XML_ParseBuffer + has no effect and returns XML_STATUS_ERROR. +*/ +XMLPARSEAPI(enum XML_Status) +XML_SetEncoding(XML_Parser parser, const XML_Char *encoding); + +/* If this function is called, then the parser will be passed as the + first argument to callbacks instead of userData. The userData will + still be accessible using XML_GetUserData. +*/ +XMLPARSEAPI(void) +XML_UseParserAsHandlerArg(XML_Parser parser); + +/* If useDTD == XML_TRUE is passed to this function, then the parser + will assume that there is an external subset, even if none is + specified in the document. In such a case the parser will call the + externalEntityRefHandler with a value of NULL for the systemId + argument (the publicId and context arguments will be NULL as well). + Note: For the purpose of checking WFC: Entity Declared, passing + useDTD == XML_TRUE will make the parser behave as if the document + had a DTD with an external subset. + Note: If this function is called, then this must be done before + the first call to XML_Parse or XML_ParseBuffer, since it will + have no effect after that. Returns + XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING. + Note: If the document does not have a DOCTYPE declaration at all, + then startDoctypeDeclHandler and endDoctypeDeclHandler will not + be called, despite an external subset being parsed. + Note: If XML_DTD is not defined when Expat is compiled, returns + XML_ERROR_FEATURE_REQUIRES_XML_DTD. + Note: If parser == NULL, returns XML_ERROR_INVALID_ARGUMENT. +*/ +XMLPARSEAPI(enum XML_Error) +XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD); + +/* Sets the base to be used for resolving relative URIs in system + identifiers in declarations. Resolving relative identifiers is + left to the application: this value will be passed through as the + base argument to the XML_ExternalEntityRefHandler, + XML_NotationDeclHandler and XML_UnparsedEntityDeclHandler. The base + argument will be copied. Returns XML_STATUS_ERROR if out of memory, + XML_STATUS_OK otherwise. +*/ +XMLPARSEAPI(enum XML_Status) +XML_SetBase(XML_Parser parser, const XML_Char *base); + +XMLPARSEAPI(const XML_Char *) +XML_GetBase(XML_Parser parser); + +/* Returns the number of the attribute/value pairs passed in last call + to the XML_StartElementHandler that were specified in the start-tag + rather than defaulted. Each attribute/value pair counts as 2; thus + this corresponds to an index into the atts array passed to the + XML_StartElementHandler. Returns -1 if parser == NULL. +*/ +XMLPARSEAPI(int) +XML_GetSpecifiedAttributeCount(XML_Parser parser); + +/* Returns the index of the ID attribute passed in the last call to + XML_StartElementHandler, or -1 if there is no ID attribute or + parser == NULL. Each attribute/value pair counts as 2; thus this + corresponds to an index into the atts array passed to the + XML_StartElementHandler. +*/ +XMLPARSEAPI(int) +XML_GetIdAttributeIndex(XML_Parser parser); + +#ifdef XML_ATTR_INFO +/* Source file byte offsets for the start and end of attribute names and values. + The value indices are exclusive of surrounding quotes; thus in a UTF-8 source + file an attribute value of "blah" will yield: + info->valueEnd - info->valueStart = 4 bytes. +*/ +typedef struct { + XML_Index nameStart; /* Offset to beginning of the attribute name. */ + XML_Index nameEnd; /* Offset after the attribute name's last byte. */ + XML_Index valueStart; /* Offset to beginning of the attribute value. */ + XML_Index valueEnd; /* Offset after the attribute value's last byte. */ +} XML_AttrInfo; + +/* Returns an array of XML_AttrInfo structures for the attribute/value pairs + passed in last call to the XML_StartElementHandler that were specified + in the start-tag rather than defaulted. Each attribute/value pair counts + as 1; thus the number of entries in the array is + XML_GetSpecifiedAttributeCount(parser) / 2. +*/ +XMLPARSEAPI(const XML_AttrInfo *) +XML_GetAttributeInfo(XML_Parser parser); +#endif + +/* Parses some input. Returns XML_STATUS_ERROR if a fatal error is + detected. The last call to XML_Parse must have isFinal true; len + may be zero for this call (or any other). + + Though the return values for these functions has always been + described as a Boolean value, the implementation, at least for the + 1.95.x series, has always returned exactly one of the XML_Status + values. +*/ +XMLPARSEAPI(enum XML_Status) +XML_Parse(XML_Parser parser, const char *s, int len, int isFinal); + +XMLPARSEAPI(void *) +XML_GetBuffer(XML_Parser parser, int len); + +XMLPARSEAPI(enum XML_Status) +XML_ParseBuffer(XML_Parser parser, int len, int isFinal); + +/* Stops parsing, causing XML_Parse() or XML_ParseBuffer() to return. + Must be called from within a call-back handler, except when aborting + (resumable = 0) an already suspended parser. Some call-backs may + still follow because they would otherwise get lost. Examples: + - endElementHandler() for empty elements when stopped in + startElementHandler(), + - endNameSpaceDeclHandler() when stopped in endElementHandler(), + and possibly others. + + Can be called from most handlers, including DTD related call-backs, + except when parsing an external parameter entity and resumable != 0. + Returns XML_STATUS_OK when successful, XML_STATUS_ERROR otherwise. + Possible error codes: + - XML_ERROR_SUSPENDED: when suspending an already suspended parser. + - XML_ERROR_FINISHED: when the parser has already finished. + - XML_ERROR_SUSPEND_PE: when suspending while parsing an external PE. + + When resumable != 0 (true) then parsing is suspended, that is, + XML_Parse() and XML_ParseBuffer() return XML_STATUS_SUSPENDED. + Otherwise, parsing is aborted, that is, XML_Parse() and XML_ParseBuffer() + return XML_STATUS_ERROR with error code XML_ERROR_ABORTED. + + *Note*: + This will be applied to the current parser instance only, that is, if + there is a parent parser then it will continue parsing when the + externalEntityRefHandler() returns. It is up to the implementation of + the externalEntityRefHandler() to call XML_StopParser() on the parent + parser (recursively), if one wants to stop parsing altogether. + + When suspended, parsing can be resumed by calling XML_ResumeParser(). +*/ +XMLPARSEAPI(enum XML_Status) +XML_StopParser(XML_Parser parser, XML_Bool resumable); + +/* Resumes parsing after it has been suspended with XML_StopParser(). + Must not be called from within a handler call-back. Returns same + status codes as XML_Parse() or XML_ParseBuffer(). + Additional error code XML_ERROR_NOT_SUSPENDED possible. + + *Note*: + This must be called on the most deeply nested child parser instance + first, and on its parent parser only after the child parser has finished, + to be applied recursively until the document entity's parser is restarted. + That is, the parent parser will not resume by itself and it is up to the + application to call XML_ResumeParser() on it at the appropriate moment. +*/ +XMLPARSEAPI(enum XML_Status) +XML_ResumeParser(XML_Parser parser); + +enum XML_Parsing { XML_INITIALIZED, XML_PARSING, XML_FINISHED, XML_SUSPENDED }; + +typedef struct { + enum XML_Parsing parsing; + XML_Bool finalBuffer; +} XML_ParsingStatus; + +/* Returns status of parser with respect to being initialized, parsing, + finished, or suspended and processing the final buffer. + XXX XML_Parse() and XML_ParseBuffer() should return XML_ParsingStatus, + XXX with XML_FINISHED_OK or XML_FINISHED_ERROR replacing XML_FINISHED +*/ +XMLPARSEAPI(void) +XML_GetParsingStatus(XML_Parser parser, XML_ParsingStatus *status); + +/* Creates an XML_Parser object that can parse an external general + entity; context is a '\0'-terminated string specifying the parse + context; encoding is a '\0'-terminated string giving the name of + the externally specified encoding, or NULL if there is no + externally specified encoding. The context string consists of a + sequence of tokens separated by formfeeds (\f); a token consisting + of a name specifies that the general entity of the name is open; a + token of the form prefix=uri specifies the namespace for a + particular prefix; a token of the form =uri specifies the default + namespace. This can be called at any point after the first call to + an ExternalEntityRefHandler so longer as the parser has not yet + been freed. The new parser is completely independent and may + safely be used in a separate thread. The handlers and userData are + initialized from the parser argument. Returns NULL if out of memory. + Otherwise returns a new XML_Parser object. +*/ +XMLPARSEAPI(XML_Parser) +XML_ExternalEntityParserCreate(XML_Parser parser, const XML_Char *context, + const XML_Char *encoding); + +enum XML_ParamEntityParsing { + XML_PARAM_ENTITY_PARSING_NEVER, + XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE, + XML_PARAM_ENTITY_PARSING_ALWAYS +}; + +/* Controls parsing of parameter entities (including the external DTD + subset). If parsing of parameter entities is enabled, then + references to external parameter entities (including the external + DTD subset) will be passed to the handler set with + XML_SetExternalEntityRefHandler. The context passed will be 0. + + Unlike external general entities, external parameter entities can + only be parsed synchronously. If the external parameter entity is + to be parsed, it must be parsed during the call to the external + entity ref handler: the complete sequence of + XML_ExternalEntityParserCreate, XML_Parse/XML_ParseBuffer and + XML_ParserFree calls must be made during this call. After + XML_ExternalEntityParserCreate has been called to create the parser + for the external parameter entity (context must be 0 for this + call), it is illegal to make any calls on the old parser until + XML_ParserFree has been called on the newly created parser. + If the library has been compiled without support for parameter + entity parsing (ie without XML_DTD being defined), then + XML_SetParamEntityParsing will return 0 if parsing of parameter + entities is requested; otherwise it will return non-zero. + Note: If XML_SetParamEntityParsing is called after XML_Parse or + XML_ParseBuffer, then it has no effect and will always return 0. + Note: If parser == NULL, the function will do nothing and return 0. +*/ +XMLPARSEAPI(int) +XML_SetParamEntityParsing(XML_Parser parser, + enum XML_ParamEntityParsing parsing); + +/* Sets the hash salt to use for internal hash calculations. + Helps in preventing DoS attacks based on predicting hash + function behavior. This must be called before parsing is started. + Returns 1 if successful, 0 when called after parsing has started. + Note: If parser == NULL, the function will do nothing and return 0. +*/ +XMLPARSEAPI(int) +XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt); + +/* If XML_Parse or XML_ParseBuffer have returned XML_STATUS_ERROR, then + XML_GetErrorCode returns information about the error. +*/ +XMLPARSEAPI(enum XML_Error) +XML_GetErrorCode(XML_Parser parser); + +/* These functions return information about the current parse + location. They may be called from any callback called to report + some parse event; in this case the location is the location of the + first of the sequence of characters that generated the event. When + called from callbacks generated by declarations in the document + prologue, the location identified isn't as neatly defined, but will + be within the relevant markup. When called outside of the callback + functions, the position indicated will be just past the last parse + event (regardless of whether there was an associated callback). + + They may also be called after returning from a call to XML_Parse + or XML_ParseBuffer. If the return value is XML_STATUS_ERROR then + the location is the location of the character at which the error + was detected; otherwise the location is the location of the last + parse event, as described above. + + Note: XML_GetCurrentLineNumber and XML_GetCurrentColumnNumber + return 0 to indicate an error. + Note: XML_GetCurrentByteIndex returns -1 to indicate an error. +*/ +XMLPARSEAPI(XML_Size) XML_GetCurrentLineNumber(XML_Parser parser); +XMLPARSEAPI(XML_Size) XML_GetCurrentColumnNumber(XML_Parser parser); +XMLPARSEAPI(XML_Index) XML_GetCurrentByteIndex(XML_Parser parser); + +/* Return the number of bytes in the current event. + Returns 0 if the event is in an internal entity. +*/ +XMLPARSEAPI(int) +XML_GetCurrentByteCount(XML_Parser parser); + +/* If XML_CONTEXT_BYTES is defined, returns the input buffer, sets + the integer pointed to by offset to the offset within this buffer + of the current parse position, and sets the integer pointed to by size + to the size of this buffer (the number of input bytes). Otherwise + returns a NULL pointer. Also returns a NULL pointer if a parse isn't + active. + + NOTE: The character pointer returned should not be used outside + the handler that makes the call. +*/ +XMLPARSEAPI(const char *) +XML_GetInputContext(XML_Parser parser, int *offset, int *size); + +/* For backwards compatibility with previous versions. */ +#define XML_GetErrorLineNumber XML_GetCurrentLineNumber +#define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber +#define XML_GetErrorByteIndex XML_GetCurrentByteIndex + +/* Frees the content model passed to the element declaration handler */ +XMLPARSEAPI(void) +XML_FreeContentModel(XML_Parser parser, XML_Content *model); + +/* Exposing the memory handling functions used in Expat */ +XMLPARSEAPI(void *) +XML_ATTR_MALLOC +XML_ATTR_ALLOC_SIZE(2) +XML_MemMalloc(XML_Parser parser, size_t size); + +XMLPARSEAPI(void *) +XML_ATTR_ALLOC_SIZE(3) +XML_MemRealloc(XML_Parser parser, void *ptr, size_t size); + +XMLPARSEAPI(void) +XML_MemFree(XML_Parser parser, void *ptr); + +/* Frees memory used by the parser. */ +XMLPARSEAPI(void) +XML_ParserFree(XML_Parser parser); + +/* Returns a string describing the error. */ +XMLPARSEAPI(const XML_LChar *) +XML_ErrorString(enum XML_Error code); + +/* Return a string containing the version number of this expat */ +XMLPARSEAPI(const XML_LChar *) +XML_ExpatVersion(void); + +typedef struct { + int major; + int minor; + int micro; +} XML_Expat_Version; + +/* Return an XML_Expat_Version structure containing numeric version + number information for this version of expat. +*/ +XMLPARSEAPI(XML_Expat_Version) +XML_ExpatVersionInfo(void); + +/* Added in Expat 1.95.5. */ +enum XML_FeatureEnum { + XML_FEATURE_END = 0, + XML_FEATURE_UNICODE, + XML_FEATURE_UNICODE_WCHAR_T, + XML_FEATURE_DTD, + XML_FEATURE_CONTEXT_BYTES, + XML_FEATURE_MIN_SIZE, + XML_FEATURE_SIZEOF_XML_CHAR, + XML_FEATURE_SIZEOF_XML_LCHAR, + XML_FEATURE_NS, + XML_FEATURE_LARGE_SIZE, + XML_FEATURE_ATTR_INFO, + /* Added in Expat 2.4.0. */ + XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_MAXIMUM_AMPLIFICATION_DEFAULT, + XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_ACTIVATION_THRESHOLD_DEFAULT + /* Additional features must be added to the end of this enum. */ +}; + +typedef struct { + enum XML_FeatureEnum feature; + const XML_LChar *name; + long int value; +} XML_Feature; + +XMLPARSEAPI(const XML_Feature *) +XML_GetFeatureList(void); + +#ifdef XML_DTD +/* Added in Expat 2.4.0. */ +XMLPARSEAPI(XML_Bool) +XML_SetBillionLaughsAttackProtectionMaximumAmplification( + XML_Parser parser, float maximumAmplificationFactor); + +/* Added in Expat 2.4.0. */ +XMLPARSEAPI(XML_Bool) +XML_SetBillionLaughsAttackProtectionActivationThreshold( + XML_Parser parser, unsigned long long activationThresholdBytes); +#endif + +/* Expat follows the semantic versioning convention. + See http://semver.org. +*/ +#define XML_MAJOR_VERSION 2 +#define XML_MINOR_VERSION 5 +#define XML_MICRO_VERSION 0 + +#ifdef __cplusplus +} +#endif + +#endif /* not Expat_INCLUDED */ diff --git a/code/application/source/sf_app/tools/blue/include/expat_config.h b/code/application/source/sf_app/tools/blue/include/expat_config.h new file mode 100644 index 000000000..b7ec82ece --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/expat_config.h @@ -0,0 +1,140 @@ +/* expat_config.h. Generated from expat_config.h.in by configure. */ +/* expat_config.h.in. Generated from configure.ac by autoheader. */ + +#ifndef EXPAT_CONFIG_H +#define EXPAT_CONFIG_H 1 + +/* Define if building universal (internal helper macro) */ +/* #undef AC_APPLE_UNIVERSAL_BUILD */ + +/* 1234 = LILENDIAN, 4321 = BIGENDIAN */ +#define BYTEORDER 1234 + +/* Define to 1 if you have the `arc4random' function. */ +/* #undef HAVE_ARC4RANDOM */ + +/* Define to 1 if you have the `arc4random_buf' function. */ +/* #undef HAVE_ARC4RANDOM_BUF */ + +/* Define to 1 if you have the header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_FCNTL_H 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the `getrandom' function. */ +#define HAVE_GETRANDOM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `bsd' library (-lbsd). */ +/* #undef HAVE_LIBBSD */ + +/* Define to 1 if you have a working `mmap' system call. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDIO_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have `syscall' and `SYS_getrandom'. */ +#define HAVE_SYSCALL_GETRANDOM 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_PARAM_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#define LT_OBJDIR ".libs/" + +/* Name of package */ +#define PACKAGE "expat" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "expat-bugs@libexpat.org" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "expat" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "expat 2.5.0" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "expat" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "2.5.0" + +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ +#define STDC_HEADERS 1 + +/* Version number of package */ +#define VERSION "2.5.0" + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +/* # undef WORDS_BIGENDIAN */ +# endif +#endif + +/* Define to allow retrieving the byte offsets for attribute names and values. + */ +/* #undef XML_ATTR_INFO */ + +/* Define to specify how much context to retain around the current parse + point. */ +#define XML_CONTEXT_BYTES 1024 + +/* Define to include code reading entropy from `/dev/urandom'. */ +#define XML_DEV_URANDOM 1 + +/* Define to make parameter entity parsing functionality available. */ +#define XML_DTD 1 + +/* Define to make XML Namespaces functionality available. */ +#define XML_NS 1 + +/* Define to empty if `const' does not conform to ANSI C. */ +/* #undef const */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + +#endif // ndef EXPAT_CONFIG_H diff --git a/code/application/source/sf_app/tools/blue/include/expat_external.h b/code/application/source/sf_app/tools/blue/include/expat_external.h new file mode 100644 index 000000000..8829f7709 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/expat_external.h @@ -0,0 +1,165 @@ +/* + __ __ _ + ___\ \/ /_ __ __ _| |_ + / _ \\ /| '_ \ / _` | __| + | __// \| |_) | (_| | |_ + \___/_/\_\ .__/ \__,_|\__| + |_| XML parser + + Copyright (c) 1997-2000 Thai Open Source Software Center Ltd + Copyright (c) 2000 Clark Cooper + Copyright (c) 2000-2004 Fred L. Drake, Jr. + Copyright (c) 2001-2002 Greg Stein + Copyright (c) 2002-2006 Karl Waclawek + Copyright (c) 2016 Cristian Rodríguez + Copyright (c) 2016-2019 Sebastian Pipping + Copyright (c) 2017 Rhodri James + Copyright (c) 2018 Yury Gribov + Licensed under the MIT license: + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#ifndef Expat_External_INCLUDED +#define Expat_External_INCLUDED 1 + +/* External API definitions */ + +/* Expat tries very hard to make the API boundary very specifically + defined. There are two macros defined to control this boundary; + each of these can be defined before including this header to + achieve some different behavior, but doing so it not recommended or + tested frequently. + + XMLCALL - The calling convention to use for all calls across the + "library boundary." This will default to cdecl, and + try really hard to tell the compiler that's what we + want. + + XMLIMPORT - Whatever magic is needed to note that a function is + to be imported from a dynamically loaded library + (.dll, .so, or .sl, depending on your platform). + + The XMLCALL macro was added in Expat 1.95.7. The only one which is + expected to be directly useful in client code is XMLCALL. + + Note that on at least some Unix versions, the Expat library must be + compiled with the cdecl calling convention as the default since + system headers may assume the cdecl convention. +*/ +#ifndef XMLCALL +# if defined(_MSC_VER) +# define XMLCALL __cdecl +# elif defined(__GNUC__) && defined(__i386) && ! defined(__INTEL_COMPILER) +# define XMLCALL __attribute__((cdecl)) +# else +/* For any platform which uses this definition and supports more than + one calling convention, we need to extend this definition to + declare the convention used on that platform, if it's possible to + do so. + + If this is the case for your platform, please file a bug report + with information on how to identify your platform via the C + pre-processor and how to specify the same calling convention as the + platform's malloc() implementation. +*/ +# define XMLCALL +# endif +#endif /* not defined XMLCALL */ + +#if ! defined(XML_STATIC) && ! defined(XMLIMPORT) +# ifndef XML_BUILDING_EXPAT +/* using Expat from an application */ + +# if defined(_MSC_EXTENSIONS) && ! defined(__BEOS__) && ! defined(__CYGWIN__) +# define XMLIMPORT __declspec(dllimport) +# endif + +# endif +#endif /* not defined XML_STATIC */ + +#ifndef XML_ENABLE_VISIBILITY +# define XML_ENABLE_VISIBILITY 0 +#endif + +#if ! defined(XMLIMPORT) && XML_ENABLE_VISIBILITY +# define XMLIMPORT __attribute__((visibility("default"))) +#endif + +/* If we didn't define it above, define it away: */ +#ifndef XMLIMPORT +# define XMLIMPORT +#endif + +#if defined(__GNUC__) \ + && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)) +# define XML_ATTR_MALLOC __attribute__((__malloc__)) +#else +# define XML_ATTR_MALLOC +#endif + +#if defined(__GNUC__) \ + && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) +# define XML_ATTR_ALLOC_SIZE(x) __attribute__((__alloc_size__(x))) +#else +# define XML_ATTR_ALLOC_SIZE(x) +#endif + +#define XMLPARSEAPI(type) XMLIMPORT type XMLCALL + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef XML_UNICODE_WCHAR_T +# ifndef XML_UNICODE +# define XML_UNICODE +# endif +# if defined(__SIZEOF_WCHAR_T__) && (__SIZEOF_WCHAR_T__ != 2) +# error "sizeof(wchar_t) != 2; Need -fshort-wchar for both Expat and libc" +# endif +#endif + +#ifdef XML_UNICODE /* Information is UTF-16 encoded. */ +# ifdef XML_UNICODE_WCHAR_T +typedef wchar_t XML_Char; +typedef wchar_t XML_LChar; +# else +typedef unsigned short XML_Char; +typedef char XML_LChar; +# endif /* XML_UNICODE_WCHAR_T */ +#else /* Information is UTF-8 encoded. */ +typedef char XML_Char; +typedef char XML_LChar; +#endif /* XML_UNICODE */ + +#ifdef XML_LARGE_SIZE /* Use large integers for file/stream positions. */ +typedef long long XML_Index; +typedef unsigned long long XML_Size; +#else +typedef long XML_Index; +typedef unsigned long XML_Size; +#endif /* XML_LARGE_SIZE */ + +#ifdef __cplusplus +} +#endif + +#endif /* not Expat_External_INCLUDED */ diff --git a/code/application/source/sf_app/tools/blue/include/ffi-arm.h b/code/application/source/sf_app/tools/blue/include/ffi-arm.h new file mode 100644 index 000000000..e78adf2da --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/ffi-arm.h @@ -0,0 +1,500 @@ +/* -----------------------------------------------------------------*-C-*- + libffi 3.2.9999 - Copyright (c) 2011, 2014 Anthony Green + - Copyright (c) 1996-2003, 2007, 2008 Red Hat, Inc. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the ``Software''), to deal in the Software without + restriction, including without limitation the rights to use, copy, + modify, merge, publish, distribute, sublicense, and/or sell copies + of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + ----------------------------------------------------------------------- */ + +/* ------------------------------------------------------------------- + Most of the API is documented in doc/libffi.texi. + + The raw API is designed to bypass some of the argument packing and + unpacking on architectures for which it can be avoided. Routines + are provided to emulate the raw API if the underlying platform + doesn't allow faster implementation. + + More details on the raw API can be found in: + + http://gcc.gnu.org/ml/java/1999-q3/msg00138.html + + and + + http://gcc.gnu.org/ml/java/1999-q3/msg00174.html + -------------------------------------------------------------------- */ + +#ifndef LIBFFI_H +#define LIBFFI_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Specify which architecture libffi is configured for. */ +#ifndef ARM +#define ARM +#endif + +/* ---- System configuration information --------------------------------- */ + +#include + +/* Need minimal decorations for DLLs to works on Windows. GCC has + autoimport and autoexport. Rely on Libtool to help MSVC export + from a DLL, but always declare data to be imported for MSVC + clients. This costs an extra indirection for MSVC clients using + the static version of the library, but don't worry about that. + Besides, as a workaround, they can define FFI_BUILDING if they + *know* they are going to link with the static library. */ +#if defined _MSC_VER && !defined FFI_STATIC_BUILD +#ifdef FFI_BUILDING +#define FFI_EXTERN __declspec(dllexport) +#else +#define FFI_EXTERN __declspec(dllimport) +#endif +#else +#define FFI_EXTERN extern +#endif + +#ifndef LIBFFI_ASM + +#if defined(_MSC_VER) && !defined(__clang__) +#define __attribute__(X) +#endif + +#include +#include + +/* LONG_LONG_MAX is not always defined (not if STRICT_ANSI, for example). + But we can find it either under the correct ANSI name, or under GNU + C's internal name. */ + +#define FFI_64_BIT_MAX 9223372036854775807 + +#ifdef LONG_LONG_MAX +# define FFI_LONG_LONG_MAX LONG_LONG_MAX +#else +# ifdef LLONG_MAX +# define FFI_LONG_LONG_MAX LLONG_MAX +# ifdef _AIX52 /* or newer has C99 LLONG_MAX */ +# undef FFI_64_BIT_MAX +# define FFI_64_BIT_MAX 9223372036854775807LL +# endif /* _AIX52 or newer */ +# else +# ifdef __GNUC__ +# define FFI_LONG_LONG_MAX __LONG_LONG_MAX__ +# endif +# ifdef _AIX /* AIX 5.1 and earlier have LONGLONG_MAX */ +# ifndef __PPC64__ +# if defined (__IBMC__) || defined (__IBMCPP__) +# define FFI_LONG_LONG_MAX LONGLONG_MAX +# endif +# endif /* __PPC64__ */ +# undef FFI_64_BIT_MAX +# define FFI_64_BIT_MAX 9223372036854775807LL +# endif +# endif +#endif + +/* The closure code assumes that this works on pointers, i.e. a size_t + can hold a pointer. */ + +typedef struct _ffi_type +{ + size_t size; + unsigned short alignment; + unsigned short type; + struct _ffi_type **elements; +} ffi_type; + +#ifndef LIBFFI_HIDE_BASIC_TYPES +#if SCHAR_MAX == 127 +# define ffi_type_uchar ffi_type_uint8 +# define ffi_type_schar ffi_type_sint8 +#else + #error "char size not supported" +#endif + +#if SHRT_MAX == 32767 +# define ffi_type_ushort ffi_type_uint16 +# define ffi_type_sshort ffi_type_sint16 +#elif SHRT_MAX == 2147483647 +# define ffi_type_ushort ffi_type_uint32 +# define ffi_type_sshort ffi_type_sint32 +#else + #error "short size not supported" +#endif + +#if INT_MAX == 32767 +# define ffi_type_uint ffi_type_uint16 +# define ffi_type_sint ffi_type_sint16 +#elif INT_MAX == 2147483647 +# define ffi_type_uint ffi_type_uint32 +# define ffi_type_sint ffi_type_sint32 +#elif INT_MAX == 9223372036854775807 +# define ffi_type_uint ffi_type_uint64 +# define ffi_type_sint ffi_type_sint64 +#else + #error "int size not supported" +#endif + +#if LONG_MAX == 2147483647 +# if FFI_LONG_LONG_MAX != FFI_64_BIT_MAX + #error "no 64-bit data type supported" +# endif +#elif LONG_MAX != FFI_64_BIT_MAX + #error "long size not supported" +#endif + +#if LONG_MAX == 2147483647 +# define ffi_type_ulong ffi_type_uint32 +# define ffi_type_slong ffi_type_sint32 +#elif LONG_MAX == FFI_64_BIT_MAX +# define ffi_type_ulong ffi_type_uint64 +# define ffi_type_slong ffi_type_sint64 +#else + #error "long size not supported" +#endif + +/* These are defined in types.c. */ +FFI_EXTERN ffi_type ffi_type_void; +FFI_EXTERN ffi_type ffi_type_uint8; +FFI_EXTERN ffi_type ffi_type_sint8; +FFI_EXTERN ffi_type ffi_type_uint16; +FFI_EXTERN ffi_type ffi_type_sint16; +FFI_EXTERN ffi_type ffi_type_uint32; +FFI_EXTERN ffi_type ffi_type_sint32; +FFI_EXTERN ffi_type ffi_type_uint64; +FFI_EXTERN ffi_type ffi_type_sint64; +FFI_EXTERN ffi_type ffi_type_float; +FFI_EXTERN ffi_type ffi_type_double; +FFI_EXTERN ffi_type ffi_type_pointer; + +#if 0 +FFI_EXTERN ffi_type ffi_type_longdouble; +#else +#define ffi_type_longdouble ffi_type_double +#endif + +#ifdef FFI_TARGET_HAS_COMPLEX_TYPE +FFI_EXTERN ffi_type ffi_type_complex_float; +FFI_EXTERN ffi_type ffi_type_complex_double; +#if 0 +FFI_EXTERN ffi_type ffi_type_complex_longdouble; +#else +#define ffi_type_complex_longdouble ffi_type_complex_double +#endif +#endif +#endif /* LIBFFI_HIDE_BASIC_TYPES */ + +typedef enum { + FFI_OK = 0, + FFI_BAD_TYPEDEF, + FFI_BAD_ABI +} ffi_status; + +typedef struct { + ffi_abi abi; + unsigned nargs; + ffi_type **arg_types; + ffi_type *rtype; + unsigned bytes; + unsigned flags; + unsigned isVariadic; +#ifdef FFI_EXTRA_CIF_FIELDS + FFI_EXTRA_CIF_FIELDS; +#endif +} ffi_cif; + +/* ---- Definitions for the raw API -------------------------------------- */ + +#ifndef FFI_SIZEOF_ARG +# if LONG_MAX == 2147483647 +# define FFI_SIZEOF_ARG 4 +# elif LONG_MAX == FFI_64_BIT_MAX +# define FFI_SIZEOF_ARG 8 +# endif +#endif + +#ifndef FFI_SIZEOF_JAVA_RAW +# define FFI_SIZEOF_JAVA_RAW FFI_SIZEOF_ARG +#endif + +typedef union { + ffi_sarg sint; + ffi_arg uint; + float flt; + char data[FFI_SIZEOF_ARG]; + void* ptr; +} ffi_raw; + +#if FFI_SIZEOF_JAVA_RAW == 4 && FFI_SIZEOF_ARG == 8 +/* This is a special case for mips64/n32 ABI (and perhaps others) where + sizeof(void *) is 4 and FFI_SIZEOF_ARG is 8. */ +typedef union { + signed int sint; + unsigned int uint; + float flt; + char data[FFI_SIZEOF_JAVA_RAW]; + void* ptr; +} ffi_java_raw; +#else +typedef ffi_raw ffi_java_raw; +#endif + +FFI_EXTERN +void ffi_raw_call (ffi_cif *cif, + void (*fn)(void), + void *rvalue, + ffi_raw *avalue); + +FFI_EXTERN void ffi_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw); +FFI_EXTERN void ffi_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args); +FFI_EXTERN size_t ffi_raw_size (ffi_cif *cif); + +/* This is analogous to the raw API, except it uses Java parameter + packing, even on 64-bit machines. I.e. on 64-bit machines longs + and doubles are followed by an empty 64-bit word. */ +FFI_EXTERN +void ffi_java_raw_call (ffi_cif *cif, + void (*fn)(void), + void *rvalue, + ffi_java_raw *avalue); + +FFI_EXTERN void ffi_java_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_java_raw *raw); +FFI_EXTERN void ffi_java_raw_to_ptrarray (ffi_cif *cif, ffi_java_raw *raw, void **args); +FFI_EXTERN size_t ffi_java_raw_size (ffi_cif *cif); + +/* ---- Definitions for closures ----------------------------------------- */ + +#if FFI_CLOSURES + +#ifdef _MSC_VER +__declspec(align(8)) +#endif +typedef struct { +#if 0 + void *trampoline_table; + void *trampoline_table_entry; +#else + char tramp[FFI_TRAMPOLINE_SIZE]; +#endif + ffi_cif *cif; + void (*fun)(ffi_cif*,void*,void**,void*); + void *user_data; +} ffi_closure +#ifdef __GNUC__ + __attribute__((aligned (8))) +#endif + ; + +#ifndef __GNUC__ +# ifdef __sgi +# pragma pack 0 +# endif +#endif + +FFI_EXTERN void *ffi_closure_alloc (size_t size, void **code); +FFI_EXTERN void ffi_closure_free (void *); + +FFI_EXTERN ffi_status +ffi_prep_closure (ffi_closure*, + ffi_cif *, + void (*fun)(ffi_cif*,void*,void**,void*), + void *user_data) +#if defined(__GNUC__) && (((__GNUC__ * 100) + __GNUC_MINOR__) >= 405) + __attribute__((deprecated ("use ffi_prep_closure_loc instead"))) +#elif defined(__GNUC__) && __GNUC__ >= 3 + __attribute__((deprecated)) +#endif + ; + +FFI_EXTERN ffi_status +ffi_prep_closure_loc (ffi_closure*, + ffi_cif *, + void (*fun)(ffi_cif*,void*,void**,void*), + void *user_data, + void*codeloc); + +#ifdef __sgi +# pragma pack 8 +#endif +typedef struct { +#if 0 + void *trampoline_table; + void *trampoline_table_entry; +#else + char tramp[FFI_TRAMPOLINE_SIZE]; +#endif + ffi_cif *cif; + +#if !FFI_NATIVE_RAW_API + + /* If this is enabled, then a raw closure has the same layout + as a regular closure. We use this to install an intermediate + handler to do the transaltion, void** -> ffi_raw*. */ + + void (*translate_args)(ffi_cif*,void*,void**,void*); + void *this_closure; + +#endif + + void (*fun)(ffi_cif*,void*,ffi_raw*,void*); + void *user_data; + +} ffi_raw_closure; + +typedef struct { +#if 0 + void *trampoline_table; + void *trampoline_table_entry; +#else + char tramp[FFI_TRAMPOLINE_SIZE]; +#endif + + ffi_cif *cif; + +#if !FFI_NATIVE_RAW_API + + /* If this is enabled, then a raw closure has the same layout + as a regular closure. We use this to install an intermediate + handler to do the translation, void** -> ffi_raw*. */ + + void (*translate_args)(ffi_cif*,void*,void**,void*); + void *this_closure; + +#endif + + void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*); + void *user_data; + +} ffi_java_raw_closure; + +FFI_EXTERN ffi_status +ffi_prep_raw_closure (ffi_raw_closure*, + ffi_cif *cif, + void (*fun)(ffi_cif*,void*,ffi_raw*,void*), + void *user_data); + +FFI_EXTERN ffi_status +ffi_prep_raw_closure_loc (ffi_raw_closure*, + ffi_cif *cif, + void (*fun)(ffi_cif*,void*,ffi_raw*,void*), + void *user_data, + void *codeloc); + +FFI_EXTERN ffi_status +ffi_prep_java_raw_closure (ffi_java_raw_closure*, + ffi_cif *cif, + void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*), + void *user_data); + +FFI_EXTERN ffi_status +ffi_prep_java_raw_closure_loc (ffi_java_raw_closure*, + ffi_cif *cif, + void (*fun)(ffi_cif*,void*,ffi_java_raw*,void*), + void *user_data, + void *codeloc); + +#endif /* FFI_CLOSURES */ + +#if FFI_GO_CLOSURES + +typedef struct { + void *tramp; + ffi_cif *cif; + void (*fun)(ffi_cif*,void*,void**,void*); +} ffi_go_closure; + +FFI_EXTERN +ffi_status ffi_prep_go_closure (ffi_go_closure*, ffi_cif *, + void (*fun)(ffi_cif*,void*,void**,void*)); + +FFI_EXTERN +void ffi_call_go (ffi_cif *cif, void (*fn)(void), void *rvalue, + void **avalue, void *closure); + +#endif /* FFI_GO_CLOSURES */ + +/* ---- Public interface definition -------------------------------------- */ + +FFI_EXTERN +ffi_status ffi_prep_cif(ffi_cif *cif, + ffi_abi abi, + unsigned int nargs, + ffi_type *rtype, + ffi_type **atypes); + +FFI_EXTERN +ffi_status ffi_prep_cif_var(ffi_cif *cif, + ffi_abi abi, + unsigned int nfixedargs, + unsigned int ntotalargs, + ffi_type *rtype, + ffi_type **atypes); + +FFI_EXTERN +void ffi_call(ffi_cif *cif, + void (*fn)(void), + void *rvalue, + void **avalue); + +FFI_EXTERN +ffi_status ffi_get_struct_offsets (ffi_abi abi, ffi_type *struct_type, + size_t *offsets); + +/* Useful for eliminating compiler warnings. */ +#define FFI_FN(f) ((void (*)(void))f) + +/* ---- Definitions shared with assembly code ---------------------------- */ + +#endif /* !LIBFFI_ASM */ + +/* If these change, update src/mips/ffitarget.h. */ +#define FFI_TYPE_VOID 0 +#define FFI_TYPE_INT 1 +#define FFI_TYPE_FLOAT 2 +#define FFI_TYPE_DOUBLE 3 +#if 0 +#define FFI_TYPE_LONGDOUBLE 4 +#else +#define FFI_TYPE_LONGDOUBLE FFI_TYPE_DOUBLE +#endif +#define FFI_TYPE_UINT8 5 +#define FFI_TYPE_SINT8 6 +#define FFI_TYPE_UINT16 7 +#define FFI_TYPE_SINT16 8 +#define FFI_TYPE_UINT32 9 +#define FFI_TYPE_SINT32 10 +#define FFI_TYPE_UINT64 11 +#define FFI_TYPE_SINT64 12 +#define FFI_TYPE_STRUCT 13 +#define FFI_TYPE_POINTER 14 +#define FFI_TYPE_COMPLEX 15 + +/* This should always refer to the last type code (for sanity checks). */ +#define FFI_TYPE_LAST FFI_TYPE_COMPLEX + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/code/application/source/sf_app/tools/blue/include/ffi.h b/code/application/source/sf_app/tools/blue/include/ffi.h new file mode 100644 index 000000000..320b946e0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/ffi.h @@ -0,0 +1,23 @@ +/* Include the correct ffi.h automatically. This helps us create prefixes + * with multi-lib Linux and OSX/iOS universal builds. To avoid listing all + * possible architectures here, we try the configured target arch first and then + * include the most common multilib/universal setups in the #elif ladder */ +#ifdef __arm__ +#include "ffi-arm.h" +#elif defined(__i386__) || defined(_M_IX86) +#include "ffi-x86.h" +#elif defined(__x86_64__) || defined(_M_X64) +#include "ffi-x86_64.h" +#elif defined(__arm__) || defined(_M_ARM) +#include "ffi-arm.h" +#elif defined(__aarch64__) || defined(_M_ARM64) +#include "ffi-aarch64.h" +#elif defined(__powerpc__) || defined(_M_PPC) +#include "ffi-powerpc.h" +#elif defined(__powerpc64__) +#include "ffi-powerpc64.h" +#elif defined (__riscv) && __riscv_xlen == 64 +#include "ffi-riscv64.h" +#else +#error "Unsupported Architecture" +#endif diff --git a/code/application/source/sf_app/tools/blue/include/ffitarget-arm.h b/code/application/source/sf_app/tools/blue/include/ffitarget-arm.h new file mode 100644 index 000000000..1cf103640 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/ffitarget-arm.h @@ -0,0 +1,82 @@ +/* -----------------------------------------------------------------*-C-*- + ffitarget.h - Copyright (c) 2012 Anthony Green + Copyright (c) 2010 CodeSourcery + Copyright (c) 1996-2003 Red Hat, Inc. + + Target configuration macros for ARM. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + ``Software''), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + ----------------------------------------------------------------------- */ + +#ifndef LIBFFI_TARGET_H +#define LIBFFI_TARGET_H + +#ifndef LIBFFI_H +#error "Please do not include ffitarget.h directly into your source. Use ffi.h instead." +#endif + +#ifndef LIBFFI_ASM +typedef unsigned long ffi_arg; +typedef signed long ffi_sarg; + +typedef enum ffi_abi { + FFI_FIRST_ABI = 0, + FFI_SYSV, + FFI_VFP, + FFI_LAST_ABI, +#ifdef __ARM_PCS_VFP + FFI_DEFAULT_ABI = FFI_VFP, +#else + FFI_DEFAULT_ABI = FFI_SYSV, +#endif +} ffi_abi; +#endif + +#define FFI_EXTRA_CIF_FIELDS \ + int vfp_used; \ + unsigned short vfp_reg_free, vfp_nargs; \ + signed char vfp_args[16] \ + +#define FFI_TARGET_SPECIFIC_VARIADIC +#define FFI_TARGET_HAS_COMPLEX_TYPE + +/* ---- Definitions for closures ----------------------------------------- */ + +#define FFI_CLOSURES 1 +#define FFI_GO_CLOSURES 1 +#define FFI_NATIVE_RAW_API 0 + +#if defined (FFI_EXEC_TRAMPOLINE_TABLE) && FFI_EXEC_TRAMPOLINE_TABLE + +#ifdef __MACH__ +#define FFI_TRAMPOLINE_SIZE 12 +#define FFI_TRAMPOLINE_CLOSURE_OFFSET 8 +#else +#error "No trampoline table implementation" +#endif + +#else +#define FFI_TRAMPOLINE_SIZE 12 +#define FFI_TRAMPOLINE_CLOSURE_OFFSET FFI_TRAMPOLINE_SIZE +#endif + +#endif diff --git a/code/application/source/sf_app/tools/blue/include/ffitarget.h b/code/application/source/sf_app/tools/blue/include/ffitarget.h new file mode 100644 index 000000000..b721e27a2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/ffitarget.h @@ -0,0 +1,23 @@ +/* Include the correct ffitarget.h automatically. This helps us create prefixes + * with multi-lib Linux and OSX/iOS universal builds. To avoid listing all + * possible architectures here, we try the configured target arch first and then + * include the most common multilib/universal setups in the #elif ladder */ +#ifdef __arm__ +#include "ffitarget-arm.h" +#elif defined(__i386__) || defined(_M_IX86) +#include "ffitarget-x86.h" +#elif defined(__x86_64__) || defined(_M_X64) +#include "ffitarget-x86_64.h" +#elif defined(__arm__) || defined(_M_ARM) +#include "ffitarget-arm.h" +#elif defined(__aarch64__) || defined(_M_ARM64) +#include "ffitarget-aarch64.h" +#elif defined(__powerpc__) || defined(_M_PPC) +#include "ffitarget-powerpc.h" +#elif defined(__powerpc64__) +#include "ffitarget-powerpc64.h" +#elif defined (__riscv) && __riscv_xlen == 64 +#include "ffitarget-riscv64.h" +#else +#error "Unsupported Architecture" +#endif diff --git a/code/application/source/sf_app/tools/blue/include/form.h b/code/application/source/sf_app/tools/blue/include/form.h new file mode 100644 index 000000000..3b62e3901 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/form.h @@ -0,0 +1,460 @@ +/**************************************************************************** + * Copyright 2018-2019-2020,2021 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1995,1997 * + ****************************************************************************/ + +/* $Id: form.h,v 0.32 2021/06/17 21:26:02 tom Exp $ */ + +#ifndef FORM_H +#define FORM_H +/* *INDENT-OFF*/ + +#include +#include + +#ifdef __cplusplus + extern "C" { +#endif + +#if defined(BUILDING_FORM) +# define FORM_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT +#else +# define FORM_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT +#endif + +#define FORM_WRAPPED_VAR(type,name) extern FORM_IMPEXP type NCURSES_PUBLIC_VAR(name)(void) + +#define FORM_EXPORT(type) FORM_IMPEXP type NCURSES_API +#define FORM_EXPORT_VAR(type) FORM_IMPEXP type + +#ifndef FORM_PRIV_H +typedef void *FIELD_CELL; +#endif + +#ifndef NCURSES_FIELD_INTERNALS +#define NCURSES_FIELD_INTERNALS /* nothing */ +#endif + +typedef int Form_Options; +typedef int Field_Options; + + /********** + * _PAGE * + **********/ + +typedef struct pagenode +#if !NCURSES_OPAQUE_FORM +{ + short pmin; /* index of first field on page */ + short pmax; /* index of last field on page */ + short smin; /* index of top leftmost field on page */ + short smax; /* index of bottom rightmost field on page */ +} +#endif /* !NCURSES_OPAQUE_FORM */ +_PAGE; + + /********** + * FIELD * + **********/ + +typedef struct fieldnode +#if 1 /* not yet: !NCURSES_OPAQUE_FORM */ +{ + unsigned short status; /* flags */ + short rows; /* size in rows */ + short cols; /* size in cols */ + short frow; /* first row */ + short fcol; /* first col */ + int drows; /* dynamic rows */ + int dcols; /* dynamic cols */ + int maxgrow; /* maximum field growth */ + int nrow; /* off-screen rows */ + short nbuf; /* additional buffers */ + short just; /* justification */ + short page; /* page on form */ + short index; /* into form -> field */ + int pad; /* pad character */ + chtype fore; /* foreground attribute */ + chtype back; /* background attribute */ + Field_Options opts; /* options */ + struct fieldnode * snext; /* sorted order pointer */ + struct fieldnode * sprev; /* sorted order pointer */ + struct fieldnode * link; /* linked field chain */ + struct formnode * form; /* containing form */ + struct typenode * type; /* field type */ + void * arg; /* argument for type */ + FIELD_CELL * buf; /* field buffers */ + void * usrptr; /* user pointer */ + /* + * The wide-character configuration requires extra information. Because + * there are existing applications that manipulate the members of FIELD + * directly, we cannot make the struct opaque, except by changing the ABI. + * Offsets of members up to this point are the same in the narrow- and + * wide-character configuration. But note that the type of buf depends on + * the configuration, and is made opaque for that reason. + */ + NCURSES_FIELD_INTERNALS +} +#endif /* NCURSES_OPAQUE_FORM */ +FIELD; + + + /********* + * FORM * + *********/ + +typedef struct formnode +#if 1 /* not yet: !NCURSES_OPAQUE_FORM */ +{ + unsigned short status; /* flags */ + short rows; /* size in rows */ + short cols; /* size in cols */ + int currow; /* current row in field window */ + int curcol; /* current col in field window */ + int toprow; /* in scrollable field window */ + int begincol; /* in horiz. scrollable field */ + short maxfield; /* number of fields */ + short maxpage; /* number of pages */ + short curpage; /* index into page */ + Form_Options opts; /* options */ + WINDOW * win; /* window */ + WINDOW * sub; /* subwindow */ + WINDOW * w; /* window for current field */ + FIELD ** field; /* field [maxfield] */ + FIELD * current; /* current field */ + _PAGE * page; /* page [maxpage] */ + void * usrptr; /* user pointer */ + + void (*forminit)(struct formnode *); + void (*formterm)(struct formnode *); + void (*fieldinit)(struct formnode *); + void (*fieldterm)(struct formnode *); + +} +#endif /* !NCURSES_OPAQUE_FORM */ +FORM; + + + /************** + * FIELDTYPE * + **************/ + +typedef struct typenode +#if !NCURSES_OPAQUE_FORM +{ + unsigned short status; /* flags */ + long ref; /* reference count */ + struct typenode * left; /* ptr to operand for | */ + struct typenode * right; /* ptr to operand for | */ + + void* (*makearg)(va_list *); /* make fieldtype arg */ + void* (*copyarg)(const void *); /* copy fieldtype arg */ + void (*freearg)(void *); /* free fieldtype arg */ + +#if NCURSES_INTEROP_FUNCS + union { + bool (*ofcheck)(FIELD *,const void *); /* field validation */ + bool (*gfcheck)(FORM*,FIELD *,const void*); /* generic field validation */ + } fieldcheck; + union { + bool (*occheck)(int,const void *); /* character validation */ + bool (*gccheck)(int,FORM*, + FIELD*,const void*); /* generic char validation */ + } charcheck; + union { + bool (*onext)(FIELD *,const void *); /* enumerate next value */ + bool (*gnext)(FORM*,FIELD*,const void*); /* generic enumerate next */ + } enum_next; + union { + bool (*oprev)(FIELD *,const void *); /* enumerate prev value */ + bool (*gprev)(FORM*,FIELD*,const void*); /* generic enumerate prev */ + } enum_prev; + void* (*genericarg)(void*); /* Alternate Arg method */ +#else + bool (*fcheck)(FIELD *,const void *); /* field validation */ + bool (*ccheck)(int,const void *); /* character validation */ + + bool (*next)(FIELD *,const void *); /* enumerate next value */ + bool (*prev)(FIELD *,const void *); /* enumerate prev value */ +#endif +} +#endif /* !NCURSES_OPAQUE_FORM */ +FIELDTYPE; + +typedef void (*Form_Hook)(FORM *); + + /*************************** + * miscellaneous #defines * + ***************************/ + +/* field justification */ +#define NO_JUSTIFICATION (0) +#define JUSTIFY_LEFT (1) +#define JUSTIFY_CENTER (2) +#define JUSTIFY_RIGHT (3) + +/* field options */ +#define O_VISIBLE (0x0001U) +#define O_ACTIVE (0x0002U) +#define O_PUBLIC (0x0004U) +#define O_EDIT (0x0008U) +#define O_WRAP (0x0010U) +#define O_BLANK (0x0020U) +#define O_AUTOSKIP (0x0040U) +#define O_NULLOK (0x0080U) +#define O_PASSOK (0x0100U) +#define O_STATIC (0x0200U) +#define O_DYNAMIC_JUSTIFY (0x0400U) /* ncurses extension */ +#define O_NO_LEFT_STRIP (0x0800U) /* ncurses extension */ +#define O_EDGE_INSERT_STAY (0x1000U) /* ncurses extension */ +#define O_INPUT_LIMIT (0x2000U) /* ncurses extension */ + +/* form options */ +#define O_NL_OVERLOAD (0x0001U) +#define O_BS_OVERLOAD (0x0002U) + +/* form driver commands */ +#define REQ_NEXT_PAGE (KEY_MAX + 1) /* move to next page */ +#define REQ_PREV_PAGE (KEY_MAX + 2) /* move to previous page */ +#define REQ_FIRST_PAGE (KEY_MAX + 3) /* move to first page */ +#define REQ_LAST_PAGE (KEY_MAX + 4) /* move to last page */ + +#define REQ_NEXT_FIELD (KEY_MAX + 5) /* move to next field */ +#define REQ_PREV_FIELD (KEY_MAX + 6) /* move to previous field */ +#define REQ_FIRST_FIELD (KEY_MAX + 7) /* move to first field */ +#define REQ_LAST_FIELD (KEY_MAX + 8) /* move to last field */ +#define REQ_SNEXT_FIELD (KEY_MAX + 9) /* move to sorted next field */ +#define REQ_SPREV_FIELD (KEY_MAX + 10) /* move to sorted prev field */ +#define REQ_SFIRST_FIELD (KEY_MAX + 11) /* move to sorted first field */ +#define REQ_SLAST_FIELD (KEY_MAX + 12) /* move to sorted last field */ +#define REQ_LEFT_FIELD (KEY_MAX + 13) /* move to left to field */ +#define REQ_RIGHT_FIELD (KEY_MAX + 14) /* move to right to field */ +#define REQ_UP_FIELD (KEY_MAX + 15) /* move to up to field */ +#define REQ_DOWN_FIELD (KEY_MAX + 16) /* move to down to field */ + +#define REQ_NEXT_CHAR (KEY_MAX + 17) /* move to next char in field */ +#define REQ_PREV_CHAR (KEY_MAX + 18) /* move to prev char in field */ +#define REQ_NEXT_LINE (KEY_MAX + 19) /* move to next line in field */ +#define REQ_PREV_LINE (KEY_MAX + 20) /* move to prev line in field */ +#define REQ_NEXT_WORD (KEY_MAX + 21) /* move to next word in field */ +#define REQ_PREV_WORD (KEY_MAX + 22) /* move to prev word in field */ +#define REQ_BEG_FIELD (KEY_MAX + 23) /* move to first char in field */ +#define REQ_END_FIELD (KEY_MAX + 24) /* move after last char in fld */ +#define REQ_BEG_LINE (KEY_MAX + 25) /* move to beginning of line */ +#define REQ_END_LINE (KEY_MAX + 26) /* move after last char in line */ +#define REQ_LEFT_CHAR (KEY_MAX + 27) /* move left in field */ +#define REQ_RIGHT_CHAR (KEY_MAX + 28) /* move right in field */ +#define REQ_UP_CHAR (KEY_MAX + 29) /* move up in field */ +#define REQ_DOWN_CHAR (KEY_MAX + 30) /* move down in field */ + +#define REQ_NEW_LINE (KEY_MAX + 31) /* insert/overlay new line */ +#define REQ_INS_CHAR (KEY_MAX + 32) /* insert blank char at cursor */ +#define REQ_INS_LINE (KEY_MAX + 33) /* insert blank line at cursor */ +#define REQ_DEL_CHAR (KEY_MAX + 34) /* delete char at cursor */ +#define REQ_DEL_PREV (KEY_MAX + 35) /* delete char before cursor */ +#define REQ_DEL_LINE (KEY_MAX + 36) /* delete line at cursor */ +#define REQ_DEL_WORD (KEY_MAX + 37) /* delete word at cursor */ +#define REQ_CLR_EOL (KEY_MAX + 38) /* clear to end of line */ +#define REQ_CLR_EOF (KEY_MAX + 39) /* clear to end of field */ +#define REQ_CLR_FIELD (KEY_MAX + 40) /* clear entire field */ +#define REQ_OVL_MODE (KEY_MAX + 41) /* begin overlay mode */ +#define REQ_INS_MODE (KEY_MAX + 42) /* begin insert mode */ +#define REQ_SCR_FLINE (KEY_MAX + 43) /* scroll field forward a line */ +#define REQ_SCR_BLINE (KEY_MAX + 44) /* scroll field backward a line */ +#define REQ_SCR_FPAGE (KEY_MAX + 45) /* scroll field forward a page */ +#define REQ_SCR_BPAGE (KEY_MAX + 46) /* scroll field backward a page */ +#define REQ_SCR_FHPAGE (KEY_MAX + 47) /* scroll field forward half page */ +#define REQ_SCR_BHPAGE (KEY_MAX + 48) /* scroll field backward half page */ +#define REQ_SCR_FCHAR (KEY_MAX + 49) /* horizontal scroll char */ +#define REQ_SCR_BCHAR (KEY_MAX + 50) /* horizontal scroll char */ +#define REQ_SCR_HFLINE (KEY_MAX + 51) /* horizontal scroll line */ +#define REQ_SCR_HBLINE (KEY_MAX + 52) /* horizontal scroll line */ +#define REQ_SCR_HFHALF (KEY_MAX + 53) /* horizontal scroll half line */ +#define REQ_SCR_HBHALF (KEY_MAX + 54) /* horizontal scroll half line */ + +#define REQ_VALIDATION (KEY_MAX + 55) /* validate field */ +#define REQ_NEXT_CHOICE (KEY_MAX + 56) /* display next field choice */ +#define REQ_PREV_CHOICE (KEY_MAX + 57) /* display prev field choice */ + +#define MIN_FORM_COMMAND (KEY_MAX + 1) /* used by form_driver */ +#define MAX_FORM_COMMAND (KEY_MAX + 57) /* used by form_driver */ + +#if defined(MAX_COMMAND) +# if (MAX_FORM_COMMAND > MAX_COMMAND) +# error Something is wrong -- MAX_FORM_COMMAND is greater than MAX_COMMAND +# elif (MAX_COMMAND != (KEY_MAX + 128)) +# error Something is wrong -- MAX_COMMAND is already inconsistently defined. +# endif +#else +# define MAX_COMMAND (KEY_MAX + 128) +#endif + + /************************* + * standard field types * + *************************/ +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALPHA; +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ALNUM; +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM; +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_INTEGER; +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC; +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP; + + /************************************ + * built-in additional field types * + * They are not defined in SVr4 * + ************************************/ +extern FORM_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4; /* Internet IP Version 4 address */ + + /*********************** + * FIELDTYPE routines * + ***********************/ +extern FORM_EXPORT(FIELDTYPE *) new_fieldtype ( + bool (* const field_check)(FIELD *,const void *), + bool (* const char_check)(int,const void *)); +extern FORM_EXPORT(FIELDTYPE *) link_fieldtype( + FIELDTYPE *, FIELDTYPE *); + +extern FORM_EXPORT(int) free_fieldtype (FIELDTYPE *); +extern FORM_EXPORT(int) set_fieldtype_arg (FIELDTYPE *, + void * (* const make_arg)(va_list *), + void * (* const copy_arg)(const void *), + void (* const free_arg)(void *)); +extern FORM_EXPORT(int) set_fieldtype_choice (FIELDTYPE *, + bool (* const next_choice)(FIELD *,const void *), + bool (* const prev_choice)(FIELD *,const void *)); + + /******************* + * FIELD routines * + *******************/ +extern FORM_EXPORT(FIELD *) new_field (int,int,int,int,int,int); +extern FORM_EXPORT(FIELD *) dup_field (FIELD *,int,int); +extern FORM_EXPORT(FIELD *) link_field (FIELD *,int,int); + +extern FORM_EXPORT(int) free_field (FIELD *); +extern FORM_EXPORT(int) field_info (const FIELD *,int *,int *,int *,int *,int *,int *); +extern FORM_EXPORT(int) dynamic_field_info (const FIELD *,int *,int *,int *); +extern FORM_EXPORT(int) set_max_field ( FIELD *,int); +extern FORM_EXPORT(int) move_field (FIELD *,int,int); +extern FORM_EXPORT(int) set_field_type (FIELD *,FIELDTYPE *,...); +extern FORM_EXPORT(int) set_new_page (FIELD *,bool); +extern FORM_EXPORT(int) set_field_just (FIELD *,int); +extern FORM_EXPORT(int) field_just (const FIELD *); +extern FORM_EXPORT(int) set_field_fore (FIELD *,chtype); +extern FORM_EXPORT(int) set_field_back (FIELD *,chtype); +extern FORM_EXPORT(int) set_field_pad (FIELD *,int); +extern FORM_EXPORT(int) field_pad (const FIELD *); +extern FORM_EXPORT(int) set_field_buffer (FIELD *,int,const char *); +extern FORM_EXPORT(int) set_field_status (FIELD *,bool); +extern FORM_EXPORT(int) set_field_userptr (FIELD *, void *); +extern FORM_EXPORT(int) set_field_opts (FIELD *,Field_Options); +extern FORM_EXPORT(int) field_opts_on (FIELD *,Field_Options); +extern FORM_EXPORT(int) field_opts_off (FIELD *,Field_Options); + +extern FORM_EXPORT(chtype) field_fore (const FIELD *); +extern FORM_EXPORT(chtype) field_back (const FIELD *); + +extern FORM_EXPORT(bool) new_page (const FIELD *); +extern FORM_EXPORT(bool) field_status (const FIELD *); + +extern FORM_EXPORT(void *) field_arg (const FIELD *); + +extern FORM_EXPORT(void *) field_userptr (const FIELD *); + +extern FORM_EXPORT(FIELDTYPE *) field_type (const FIELD *); + +extern FORM_EXPORT(char *) field_buffer (const FIELD *,int); + +extern FORM_EXPORT(Field_Options) field_opts (const FIELD *); + + /****************** + * FORM routines * + ******************/ + +extern FORM_EXPORT(FORM *) new_form (FIELD **); + +extern FORM_EXPORT(FIELD **) form_fields (const FORM *); +extern FORM_EXPORT(FIELD *) current_field (const FORM *); + +extern FORM_EXPORT(WINDOW *) form_win (const FORM *); +extern FORM_EXPORT(WINDOW *) form_sub (const FORM *); + +extern FORM_EXPORT(Form_Hook) form_init (const FORM *); +extern FORM_EXPORT(Form_Hook) form_term (const FORM *); +extern FORM_EXPORT(Form_Hook) field_init (const FORM *); +extern FORM_EXPORT(Form_Hook) field_term (const FORM *); + +extern FORM_EXPORT(int) free_form (FORM *); +extern FORM_EXPORT(int) set_form_fields (FORM *,FIELD **); +extern FORM_EXPORT(int) field_count (const FORM *); +extern FORM_EXPORT(int) set_form_win (FORM *,WINDOW *); +extern FORM_EXPORT(int) set_form_sub (FORM *,WINDOW *); +extern FORM_EXPORT(int) set_current_field (FORM *,FIELD *); +extern FORM_EXPORT(int) unfocus_current_field (FORM *); +extern FORM_EXPORT(int) field_index (const FIELD *); +extern FORM_EXPORT(int) set_form_page (FORM *,int); +extern FORM_EXPORT(int) form_page (const FORM *); +extern FORM_EXPORT(int) scale_form (const FORM *,int *,int *); +extern FORM_EXPORT(int) set_form_init (FORM *,Form_Hook); +extern FORM_EXPORT(int) set_form_term (FORM *,Form_Hook); +extern FORM_EXPORT(int) set_field_init (FORM *,Form_Hook); +extern FORM_EXPORT(int) set_field_term (FORM *,Form_Hook); +extern FORM_EXPORT(int) post_form (FORM *); +extern FORM_EXPORT(int) unpost_form (FORM *); +extern FORM_EXPORT(int) pos_form_cursor (FORM *); +extern FORM_EXPORT(int) form_driver (FORM *,int); +# if NCURSES_WIDECHAR +extern FORM_EXPORT(int) form_driver_w (FORM *,int,wchar_t); +# endif +extern FORM_EXPORT(int) set_form_userptr (FORM *,void *); +extern FORM_EXPORT(int) set_form_opts (FORM *,Form_Options); +extern FORM_EXPORT(int) form_opts_on (FORM *,Form_Options); +extern FORM_EXPORT(int) form_opts_off (FORM *,Form_Options); +extern FORM_EXPORT(int) form_request_by_name (const char *); + +extern FORM_EXPORT(const char *) form_request_name (int); + +extern FORM_EXPORT(void *) form_userptr (const FORM *); + +extern FORM_EXPORT(Form_Options) form_opts (const FORM *); + +extern FORM_EXPORT(bool) data_ahead (const FORM *); +extern FORM_EXPORT(bool) data_behind (const FORM *); + +#if NCURSES_SP_FUNCS +extern FORM_EXPORT(FORM *) NCURSES_SP_NAME(new_form) (SCREEN*, FIELD **); +#endif + +#ifdef __cplusplus + } +#endif +/* *INDENT-ON*/ + +#endif /* FORM_H */ diff --git a/code/application/source/sf_app/tools/blue/include/gettext-po.h b/code/application/source/sf_app/tools/blue/include/gettext-po.h new file mode 100644 index 000000000..b69b6606b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/gettext-po.h @@ -0,0 +1,357 @@ +/* Public API for GNU gettext PO files - contained in libgettextpo. + Copyright (C) 2003-2008, 2010, 2012-2016, 2019-2023 Free Software Foundation, Inc. + Written by Bruno Haible , 2003. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifndef _GETTEXT_PO_H +#define _GETTEXT_PO_H 1 + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* =========================== Meta Information ============================ */ + +/* Version number: (major<<16) + (minor<<8) + subminor */ +#define LIBGETTEXTPO_VERSION 0x001600 +extern int libgettextpo_version; + +/* ================================= Types ================================= */ + +/* A po_file_t represents the contents of a PO file. */ +typedef struct po_file *po_file_t; + +/* A po_message_iterator_t represents an iterator through a domain of a + PO file. */ +typedef struct po_message_iterator *po_message_iterator_t; + +/* A po_message_t represents a message in a PO file. */ +typedef struct po_message *po_message_t; + +/* A po_filepos_t represents a string's position within a source file. */ +typedef struct po_filepos *po_filepos_t; + +/* A po_error_handler handles error situations. */ +struct po_error_handler +{ + /* Signal an error. The error message is built from FORMAT and the following + arguments. ERRNUM, if nonzero, is an errno value. + Must increment the error_message_count variable declared in error.h. + Must not return if STATUS is nonzero. */ + void (*error) (int status, int errnum, + const char *format, ...) +#if ((__GNUC__ == 3 && __GNUC_MINOR__ >= 1) || __GNUC__ > 3) && !__STRICT_ANSI__ + __attribute__ ((__format__ (__printf__, 3, 4))) +#endif + ; + + /* Signal an error. The error message is built from FORMAT and the following + arguments. The error location is at FILENAME line LINENO. ERRNUM, if + nonzero, is an errno value. + Must increment the error_message_count variable declared in error.h. + Must not return if STATUS is nonzero. */ + void (*error_at_line) (int status, int errnum, + const char *filename, unsigned int lineno, + const char *format, ...) +#if ((__GNUC__ == 3 && __GNUC_MINOR__ >= 1) || __GNUC__ > 3) && !__STRICT_ANSI__ + __attribute__ ((__format__ (__printf__, 5, 6))) +#endif + ; + + /* Signal a multiline warning. The PREFIX applies to all lines of the + MESSAGE. Free the PREFIX and MESSAGE when done. */ + void (*multiline_warning) (char *prefix, char *message); + + /* Signal a multiline error. The PREFIX applies to all lines of the + MESSAGE. Free the PREFIX and MESSAGE when done. + Must increment the error_message_count variable declared in error.h if + PREFIX is non-NULL. */ + void (*multiline_error) (char *prefix, char *message); +}; +typedef const struct po_error_handler *po_error_handler_t; + +/* A po_xerror_handler handles warnings, error and fatal error situations. */ +#define PO_SEVERITY_WARNING 0 /* just a warning, tell the user */ +#define PO_SEVERITY_ERROR 1 /* an error, the operation cannot complete */ +#define PO_SEVERITY_FATAL_ERROR 2 /* an error, the operation must be aborted */ +struct po_xerror_handler +{ + /* Signal a problem of the given severity. + MESSAGE and/or FILENAME + LINENO indicate where the problem occurred. + If FILENAME is NULL, FILENAME and LINENO and COLUMN should be ignored. + If LINENO is (size_t)(-1), LINENO and COLUMN should be ignored. + If COLUMN is (size_t)(-1), it should be ignored. + MESSAGE_TEXT is the problem description (if MULTILINE_P is true, + multiple lines of text, each terminated with a newline, otherwise + usually a single line). + Must not return if SEVERITY is PO_SEVERITY_FATAL_ERROR. */ + void (*xerror) (int severity, + po_message_t message, + const char *filename, size_t lineno, size_t column, + int multiline_p, const char *message_text); + /* Signal a problem that refers to two messages. + Similar to two calls to xerror. + If possible, a "..." can be appended to MESSAGE_TEXT1 and prepended to + MESSAGE_TEXT2. */ + void (*xerror2) (int severity, + po_message_t message1, + const char *filename1, size_t lineno1, size_t column1, + int multiline_p1, const char *message_text1, + po_message_t message2, + const char *filename2, size_t lineno2, size_t column2, + int multiline_p2, const char *message_text2); +}; +typedef const struct po_xerror_handler *po_xerror_handler_t; + +/* Memory allocation: + The memory allocations performed by these functions use xmalloc(), + therefore will cause a program exit if memory is exhausted. + The memory allocated by po_file_read, and implicitly returned through + the po_message_* functions, lasts until freed with po_file_free. */ + + +/* ============================= po_file_t API ============================= */ + +/* Create an empty PO file representation in memory. */ +extern po_file_t po_file_create (void); + +/* Read a PO file into memory. + Return its contents. Upon failure, call function from handler. */ +#define po_file_read po_file_read_v3 +extern po_file_t po_file_read (const char *filename, + po_xerror_handler_t handler); + +/* Write an in-memory PO file to a file. + Upon failure, call function from handler. */ +#define po_file_write po_file_write_v2 +extern po_file_t po_file_write (po_file_t file, const char *filename, + po_xerror_handler_t handler); + +/* Free a PO file from memory. */ +extern void po_file_free (po_file_t file); + +/* Return the names of the domains covered by a PO file in memory. */ +extern const char * const * po_file_domains (po_file_t file); + + +/* =========================== Header entry API ============================ */ + +/* Return the header entry of a domain of a PO file in memory. + The domain NULL denotes the default domain. + Return NULL if there is no header entry. */ +extern const char * po_file_domain_header (po_file_t file, const char *domain); + +/* Return the value of a field in a header entry. + The return value is either a freshly allocated string, to be freed by the + caller, or NULL. */ +extern char * po_header_field (const char *header, const char *field); + +/* Return the header entry with a given field set to a given value. The field + is added if necessary. + The return value is a freshly allocated string. */ +extern char * po_header_set_field (const char *header, const char *field, const char *value); + + +/* ======================= po_message_iterator_t API ======================= */ + +/* Create an iterator for traversing a domain of a PO file in memory. + The domain NULL denotes the default domain. */ +extern po_message_iterator_t po_message_iterator (po_file_t file, const char *domain); + +/* Free an iterator. */ +extern void po_message_iterator_free (po_message_iterator_t iterator); + +/* Return the next message, and advance the iterator. + Return NULL at the end of the message list. */ +extern po_message_t po_next_message (po_message_iterator_t iterator); + +/* Insert a message in a PO file in memory, in the domain and at the position + indicated by the iterator. The iterator thereby advances past the freshly + inserted message. */ +extern void po_message_insert (po_message_iterator_t iterator, po_message_t message); + + +/* =========================== po_message_t API ============================ */ + +/* Return a freshly constructed message. + To finish initializing the message, you must set the msgid and msgstr. */ +extern po_message_t po_message_create (void); + +/* Return the context of a message, or NULL for a message not restricted to a + context. */ +extern const char * po_message_msgctxt (po_message_t message); + +/* Change the context of a message. NULL means a message not restricted to a + context. */ +extern void po_message_set_msgctxt (po_message_t message, const char *msgctxt); + +/* Return the msgid (untranslated English string) of a message. */ +extern const char * po_message_msgid (po_message_t message); + +/* Change the msgid (untranslated English string) of a message. */ +extern void po_message_set_msgid (po_message_t message, const char *msgid); + +/* Return the msgid_plural (untranslated English plural string) of a message, + or NULL for a message without plural. */ +extern const char * po_message_msgid_plural (po_message_t message); + +/* Change the msgid_plural (untranslated English plural string) of a message. + NULL means a message without plural. */ +extern void po_message_set_msgid_plural (po_message_t message, const char *msgid_plural); + +/* Return the msgstr (translation) of a message. + Return the empty string for an untranslated message. */ +extern const char * po_message_msgstr (po_message_t message); + +/* Change the msgstr (translation) of a message. + Use an empty string to denote an untranslated message. */ +extern void po_message_set_msgstr (po_message_t message, const char *msgstr); + +/* Return the msgstr[index] for a message with plural handling, or + NULL when the index is out of range or for a message without plural. */ +extern const char * po_message_msgstr_plural (po_message_t message, int index); + +/* Change the msgstr[index] for a message with plural handling. + Use a NULL value at the end to reduce the number of plural forms. */ +extern void po_message_set_msgstr_plural (po_message_t message, int index, const char *msgstr); + +/* Return the comments for a message. */ +extern const char * po_message_comments (po_message_t message); + +/* Change the comments for a message. + comments should be a multiline string, ending in a newline, or empty. */ +extern void po_message_set_comments (po_message_t message, const char *comments); + +/* Return the extracted comments for a message. */ +extern const char * po_message_extracted_comments (po_message_t message); + +/* Change the extracted comments for a message. + comments should be a multiline string, ending in a newline, or empty. */ +extern void po_message_set_extracted_comments (po_message_t message, const char *comments); + +/* Return the i-th file position for a message, or NULL if i is out of + range. */ +extern po_filepos_t po_message_filepos (po_message_t message, int i); + +/* Remove the i-th file position from a message. + The indices of all following file positions for the message are decremented + by one. */ +extern void po_message_remove_filepos (po_message_t message, int i); + +/* Add a file position to a message, if it is not already present for the + message. + file is the file name. + start_line is the line number where the string starts, or (size_t)(-1) if no + line number is available. */ +extern void po_message_add_filepos (po_message_t message, const char *file, size_t start_line); + +/* Return the previous context of a message, or NULL for none. */ +extern const char * po_message_prev_msgctxt (po_message_t message); + +/* Change the previous context of a message. NULL is allowed. */ +extern void po_message_set_prev_msgctxt (po_message_t message, const char *prev_msgctxt); + +/* Return the previous msgid (untranslated English string) of a message, or + NULL for none. */ +extern const char * po_message_prev_msgid (po_message_t message); + +/* Change the previous msgid (untranslated English string) of a message. + NULL is allowed. */ +extern void po_message_set_prev_msgid (po_message_t message, const char *prev_msgid); + +/* Return the previous msgid_plural (untranslated English plural string) of a + message, or NULL for none. */ +extern const char * po_message_prev_msgid_plural (po_message_t message); + +/* Change the previous msgid_plural (untranslated English plural string) of a + message. NULL is allowed. */ +extern void po_message_set_prev_msgid_plural (po_message_t message, const char *prev_msgid_plural); + +/* Return true if the message is marked obsolete. */ +extern int po_message_is_obsolete (po_message_t message); + +/* Change the obsolete mark of a message. */ +extern void po_message_set_obsolete (po_message_t message, int obsolete); + +/* Return true if the message is marked fuzzy. */ +extern int po_message_is_fuzzy (po_message_t message); + +/* Change the fuzzy mark of a message. */ +extern void po_message_set_fuzzy (po_message_t message, int fuzzy); + +/* Return true if the message is marked as being a format string of the given + type (e.g. "c-format"). */ +extern int po_message_is_format (po_message_t message, const char *format_type); + +/* Change the format string mark for a given type of a message. */ +extern void po_message_set_format (po_message_t message, const char *format_type, /*bool*/int value); + +/* If a numeric range of a message is set, return true and store the minimum + and maximum value in *MINP and *MAXP. */ +extern int po_message_is_range (po_message_t message, int *minp, int *maxp); + +/* Change the numeric range of a message. MIN and MAX must be non-negative, + with MIN < MAX. Use MIN = MAX = -1 to remove the numeric range of a + message. */ +extern void po_message_set_range (po_message_t message, int min, int max); + + +/* =========================== po_filepos_t API ============================ */ + +/* Return the file name. */ +extern const char * po_filepos_file (po_filepos_t filepos); + +/* Return the line number where the string starts, or (size_t)(-1) if no line + number is available. */ +extern size_t po_filepos_start_line (po_filepos_t filepos); + + +/* ============================ Format type API ============================= */ + +/* Return a NULL terminated array of the supported format types. */ +extern const char * const * po_format_list (void); + +/* Return the pretty name associated with a format type. + For example, for "csharp-format", return "C#". + Return NULL if the argument is not a supported format type. */ +extern const char * po_format_pretty_name (const char *format_type); + + +/* ============================= Checking API ============================== */ + +/* Test whether an entire file PO file is valid, like msgfmt does it. + If it is invalid, pass the reasons to the handler. */ +extern void po_file_check_all (po_file_t file, po_xerror_handler_t handler); + +/* Test a single message, to be inserted in a PO file in memory, like msgfmt + does it. If it is invalid, pass the reasons to the handler. The iterator + is not modified by this call; it only specifies the file and the domain. */ +extern void po_message_check_all (po_message_t message, po_message_iterator_t iterator, po_xerror_handler_t handler); + +/* Test whether the message translation is a valid format string if the message + is marked as being a format string. If it is invalid, pass the reasons to + the handler. */ +#define po_message_check_format po_message_check_format_v2 +extern void po_message_check_format (po_message_t message, po_xerror_handler_t handler); + + +#ifdef __cplusplus +} +#endif + +#endif /* _GETTEXT_PO_H */ diff --git a/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gdesktopappinfo.h b/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gdesktopappinfo.h new file mode 100644 index 000000000..1ca7d51ba --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gdesktopappinfo.h @@ -0,0 +1,200 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_DESKTOP_APP_INFO_H__ +#define __G_DESKTOP_APP_INFO_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DESKTOP_APP_INFO (g_desktop_app_info_get_type ()) +#define G_DESKTOP_APP_INFO(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfo)) +#define G_DESKTOP_APP_INFO_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfoClass)) +#define G_IS_DESKTOP_APP_INFO(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DESKTOP_APP_INFO)) +#define G_IS_DESKTOP_APP_INFO_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_DESKTOP_APP_INFO)) +#define G_DESKTOP_APP_INFO_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfoClass)) + +typedef struct _GDesktopAppInfo GDesktopAppInfo; +typedef struct _GDesktopAppInfoClass GDesktopAppInfoClass; + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDesktopAppInfo, g_object_unref) + +struct _GDesktopAppInfoClass +{ + GObjectClass parent_class; +}; + + +GIO_AVAILABLE_IN_ALL +GType g_desktop_app_info_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GDesktopAppInfo *g_desktop_app_info_new_from_filename (const char *filename); +GIO_AVAILABLE_IN_ALL +GDesktopAppInfo *g_desktop_app_info_new_from_keyfile (GKeyFile *key_file); + +GIO_AVAILABLE_IN_ALL +const char * g_desktop_app_info_get_filename (GDesktopAppInfo *info); + +GIO_AVAILABLE_IN_2_30 +const char * g_desktop_app_info_get_generic_name (GDesktopAppInfo *info); +GIO_AVAILABLE_IN_2_30 +const char * g_desktop_app_info_get_categories (GDesktopAppInfo *info); +GIO_AVAILABLE_IN_2_30 +const char * const *g_desktop_app_info_get_keywords (GDesktopAppInfo *info); +GIO_AVAILABLE_IN_2_30 +gboolean g_desktop_app_info_get_nodisplay (GDesktopAppInfo *info); +GIO_AVAILABLE_IN_2_30 +gboolean g_desktop_app_info_get_show_in (GDesktopAppInfo *info, + const gchar *desktop_env); +GIO_AVAILABLE_IN_2_34 +const char * g_desktop_app_info_get_startup_wm_class (GDesktopAppInfo *info); + +GIO_AVAILABLE_IN_ALL +GDesktopAppInfo *g_desktop_app_info_new (const char *desktop_id); +GIO_AVAILABLE_IN_ALL +gboolean g_desktop_app_info_get_is_hidden (GDesktopAppInfo *info); + +GIO_DEPRECATED_IN_2_42 +void g_desktop_app_info_set_desktop_env (const char *desktop_env); + +GIO_AVAILABLE_IN_2_36 +gboolean g_desktop_app_info_has_key (GDesktopAppInfo *info, + const char *key); +GIO_AVAILABLE_IN_2_36 +char * g_desktop_app_info_get_string (GDesktopAppInfo *info, + const char *key); +GIO_AVAILABLE_IN_2_56 +char * g_desktop_app_info_get_locale_string (GDesktopAppInfo *info, + const char *key); +GIO_AVAILABLE_IN_2_36 +gboolean g_desktop_app_info_get_boolean (GDesktopAppInfo *info, + const char *key); + +GIO_AVAILABLE_IN_2_60 +gchar ** g_desktop_app_info_get_string_list (GDesktopAppInfo *info, + const char *key, + gsize *length); + +GIO_AVAILABLE_IN_2_38 +const gchar * const * g_desktop_app_info_list_actions (GDesktopAppInfo *info); + +GIO_AVAILABLE_IN_2_38 +void g_desktop_app_info_launch_action (GDesktopAppInfo *info, + const gchar *action_name, + GAppLaunchContext *launch_context); + +GIO_AVAILABLE_IN_2_38 +gchar * g_desktop_app_info_get_action_name (GDesktopAppInfo *info, + const gchar *action_name); + +#define G_TYPE_DESKTOP_APP_INFO_LOOKUP (g_desktop_app_info_lookup_get_type ()) GIO_DEPRECATED_MACRO_IN_2_28 +#define G_DESKTOP_APP_INFO_LOOKUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP, GDesktopAppInfoLookup)) GIO_DEPRECATED_MACRO_IN_2_28 +#define G_IS_DESKTOP_APP_INFO_LOOKUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP)) GIO_DEPRECATED_MACRO_IN_2_28 +#define G_DESKTOP_APP_INFO_LOOKUP_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_DESKTOP_APP_INFO_LOOKUP, GDesktopAppInfoLookupIface)) GIO_DEPRECATED_MACRO_IN_2_28 + +/** + * G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME: + * + * Extension point for default handler to URI association. See + * [Extending GIO][extending-gio]. + * + * Deprecated: 2.28: The #GDesktopAppInfoLookup interface is deprecated and + * unused by GIO. + */ +#define G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME "gio-desktop-app-info-lookup" GIO_DEPRECATED_MACRO_IN_2_28 + +/** + * GDesktopAppInfoLookupIface: + * @get_default_for_uri_scheme: Virtual method for + * g_desktop_app_info_lookup_get_default_for_uri_scheme(). + * + * Interface that is used by backends to associate default + * handlers with URI schemes. + */ +typedef struct _GDesktopAppInfoLookup GDesktopAppInfoLookup; +typedef struct _GDesktopAppInfoLookupIface GDesktopAppInfoLookupIface; + +struct _GDesktopAppInfoLookupIface +{ + GTypeInterface g_iface; + + GAppInfo * (* get_default_for_uri_scheme) (GDesktopAppInfoLookup *lookup, + const char *uri_scheme); +}; + +GIO_DEPRECATED +GType g_desktop_app_info_lookup_get_type (void) G_GNUC_CONST; + +GIO_DEPRECATED +GAppInfo *g_desktop_app_info_lookup_get_default_for_uri_scheme (GDesktopAppInfoLookup *lookup, + const char *uri_scheme); + +/** + * GDesktopAppLaunchCallback: + * @appinfo: a #GDesktopAppInfo + * @pid: Process identifier + * @user_data: User data + * + * During invocation, g_desktop_app_info_launch_uris_as_manager() may + * create one or more child processes. This callback is invoked once + * for each, providing the process ID. + */ +typedef void (*GDesktopAppLaunchCallback) (GDesktopAppInfo *appinfo, + GPid pid, + gpointer user_data); + +GIO_AVAILABLE_IN_2_28 +gboolean g_desktop_app_info_launch_uris_as_manager (GDesktopAppInfo *appinfo, + GList *uris, + GAppLaunchContext *launch_context, + GSpawnFlags spawn_flags, + GSpawnChildSetupFunc user_setup, + gpointer user_setup_data, + GDesktopAppLaunchCallback pid_callback, + gpointer pid_callback_data, + GError **error); + +GIO_AVAILABLE_IN_2_58 +gboolean g_desktop_app_info_launch_uris_as_manager_with_fds (GDesktopAppInfo *appinfo, + GList *uris, + GAppLaunchContext *launch_context, + GSpawnFlags spawn_flags, + GSpawnChildSetupFunc user_setup, + gpointer user_setup_data, + GDesktopAppLaunchCallback pid_callback, + gpointer pid_callback_data, + gint stdin_fd, + gint stdout_fd, + gint stderr_fd, + GError **error); + +GIO_AVAILABLE_IN_2_40 +gchar *** g_desktop_app_info_search (const gchar *search_string); + +GIO_AVAILABLE_IN_2_42 +GList *g_desktop_app_info_get_implementations (const gchar *interface); + +G_END_DECLS + +#endif /* __G_DESKTOP_APP_INFO_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gfiledescriptorbased.h b/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gfiledescriptorbased.h new file mode 100644 index 000000000..46fdbf525 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gfiledescriptorbased.h @@ -0,0 +1,67 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Christian Kellner + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Christian Kellner + */ + +#ifndef __G_FILE_DESCRIPTOR_BASED_H__ +#define __G_FILE_DESCRIPTOR_BASED_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_FILE_DESCRIPTOR_BASED (g_file_descriptor_based_get_type ()) +#define G_FILE_DESCRIPTOR_BASED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_FILE_DESCRIPTOR_BASED, GFileDescriptorBased)) +#define G_IS_FILE_DESCRIPTOR_BASED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_FILE_DESCRIPTOR_BASED)) +#define G_FILE_DESCRIPTOR_BASED_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_FILE_DESCRIPTOR_BASED, GFileDescriptorBasedIface)) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFileDescriptorBased, g_object_unref) + +/** + * GFileDescriptorBased: + * + * An interface for file descriptor based io objects. + **/ +typedef struct _GFileDescriptorBasedIface GFileDescriptorBasedIface; + +/** + * GFileDescriptorBasedIface: + * @g_iface: The parent interface. + * @get_fd: Gets the underlying file descriptor. + * + * An interface for file descriptor based io objects. + **/ +struct _GFileDescriptorBasedIface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + int (*get_fd) (GFileDescriptorBased *fd_based); +}; + +GIO_AVAILABLE_IN_ALL +GType g_file_descriptor_based_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +int g_file_descriptor_based_get_fd (GFileDescriptorBased *fd_based); + +G_END_DECLS + + +#endif /* __G_FILE_DESCRIPTOR_BASED_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gunixfdmessage.h b/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gunixfdmessage.h new file mode 100644 index 000000000..0424b1150 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gunixfdmessage.h @@ -0,0 +1,86 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2009 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_UNIX_FD_MESSAGE_H__ +#define __G_UNIX_FD_MESSAGE_H__ + +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_UNIX_FD_MESSAGE (g_unix_fd_message_get_type ()) +#define G_UNIX_FD_MESSAGE(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_UNIX_FD_MESSAGE, GUnixFDMessage)) +#define G_UNIX_FD_MESSAGE_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_UNIX_FD_MESSAGE, GUnixFDMessageClass)) +#define G_IS_UNIX_FD_MESSAGE(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_UNIX_FD_MESSAGE)) +#define G_IS_UNIX_FD_MESSAGE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_UNIX_FD_MESSAGE)) +#define G_UNIX_FD_MESSAGE_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_UNIX_FD_MESSAGE, GUnixFDMessageClass)) + +typedef struct _GUnixFDMessagePrivate GUnixFDMessagePrivate; +typedef struct _GUnixFDMessageClass GUnixFDMessageClass; +typedef struct _GUnixFDMessage GUnixFDMessage; + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixFDMessage, g_object_unref) + +struct _GUnixFDMessageClass +{ + GSocketControlMessageClass parent_class; + + /*< private >*/ + + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); +}; + +struct _GUnixFDMessage +{ + GSocketControlMessage parent_instance; + GUnixFDMessagePrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_unix_fd_message_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GSocketControlMessage * g_unix_fd_message_new_with_fd_list (GUnixFDList *fd_list); +GIO_AVAILABLE_IN_ALL +GSocketControlMessage * g_unix_fd_message_new (void); + +GIO_AVAILABLE_IN_ALL +GUnixFDList * g_unix_fd_message_get_fd_list (GUnixFDMessage *message); + +GIO_AVAILABLE_IN_ALL +gint * g_unix_fd_message_steal_fds (GUnixFDMessage *message, + gint *length); +GIO_AVAILABLE_IN_ALL +gboolean g_unix_fd_message_append_fd (GUnixFDMessage *message, + gint fd, + GError **error); + +G_END_DECLS + +#endif /* __G_UNIX_FD_MESSAGE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gunixinputstream.h b/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gunixinputstream.h new file mode 100644 index 000000000..78b2cbb9a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gunixinputstream.h @@ -0,0 +1,85 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_UNIX_INPUT_STREAM_H__ +#define __G_UNIX_INPUT_STREAM_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_UNIX_INPUT_STREAM (g_unix_input_stream_get_type ()) +#define G_UNIX_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_UNIX_INPUT_STREAM, GUnixInputStream)) +#define G_UNIX_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_UNIX_INPUT_STREAM, GUnixInputStreamClass)) +#define G_IS_UNIX_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_UNIX_INPUT_STREAM)) +#define G_IS_UNIX_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_UNIX_INPUT_STREAM)) +#define G_UNIX_INPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_UNIX_INPUT_STREAM, GUnixInputStreamClass)) + +/** + * GUnixInputStream: + * + * Implements #GInputStream for reading from selectable unix file descriptors + **/ +typedef struct _GUnixInputStream GUnixInputStream; +typedef struct _GUnixInputStreamClass GUnixInputStreamClass; +typedef struct _GUnixInputStreamPrivate GUnixInputStreamPrivate; + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixInputStream, g_object_unref) + +struct _GUnixInputStream +{ + GInputStream parent_instance; + + /*< private >*/ + GUnixInputStreamPrivate *priv; +}; + +struct _GUnixInputStreamClass +{ + GInputStreamClass parent_class; + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_unix_input_stream_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GInputStream * g_unix_input_stream_new (gint fd, + gboolean close_fd); +GIO_AVAILABLE_IN_ALL +void g_unix_input_stream_set_close_fd (GUnixInputStream *stream, + gboolean close_fd); +GIO_AVAILABLE_IN_ALL +gboolean g_unix_input_stream_get_close_fd (GUnixInputStream *stream); +GIO_AVAILABLE_IN_ALL +gint g_unix_input_stream_get_fd (GUnixInputStream *stream); + +G_END_DECLS + +#endif /* __G_UNIX_INPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gunixmounts.h b/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gunixmounts.h new file mode 100644 index 000000000..11fc5f6d9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gunixmounts.h @@ -0,0 +1,172 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_UNIX_MOUNTS_H__ +#define __G_UNIX_MOUNTS_H__ + +#include + +G_BEGIN_DECLS + +/** + * GUnixMountEntry: + * + * Defines a Unix mount entry (e.g. /media/cdrom). + * This corresponds roughly to a mtab entry. + **/ +typedef struct _GUnixMountEntry GUnixMountEntry; + +#define G_TYPE_UNIX_MOUNT_ENTRY (g_unix_mount_entry_get_type ()) +GIO_AVAILABLE_IN_2_54 +GType g_unix_mount_entry_get_type (void) G_GNUC_CONST; + +/** + * GUnixMountPoint: + * + * Defines a Unix mount point (e.g. /dev). + * This corresponds roughly to a fstab entry. + **/ +typedef struct _GUnixMountPoint GUnixMountPoint; + +#define G_TYPE_UNIX_MOUNT_POINT (g_unix_mount_point_get_type ()) +GIO_AVAILABLE_IN_2_54 +GType g_unix_mount_point_get_type (void) G_GNUC_CONST; + +/** + * GUnixMountMonitor: + * + * Watches #GUnixMounts for changes. + **/ +typedef struct _GUnixMountMonitor GUnixMountMonitor; +typedef struct _GUnixMountMonitorClass GUnixMountMonitorClass; + +#define G_TYPE_UNIX_MOUNT_MONITOR (g_unix_mount_monitor_get_type ()) +#define G_UNIX_MOUNT_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_UNIX_MOUNT_MONITOR, GUnixMountMonitor)) +#define G_UNIX_MOUNT_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_UNIX_MOUNT_MONITOR, GUnixMountMonitorClass)) +#define G_IS_UNIX_MOUNT_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_UNIX_MOUNT_MONITOR)) +#define G_IS_UNIX_MOUNT_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_UNIX_MOUNT_MONITOR)) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixMountMonitor, g_object_unref) + +GIO_AVAILABLE_IN_ALL +void g_unix_mount_free (GUnixMountEntry *mount_entry); +GIO_AVAILABLE_IN_2_54 +GUnixMountEntry *g_unix_mount_copy (GUnixMountEntry *mount_entry); +GIO_AVAILABLE_IN_ALL +void g_unix_mount_point_free (GUnixMountPoint *mount_point); +GIO_AVAILABLE_IN_2_54 +GUnixMountPoint *g_unix_mount_point_copy (GUnixMountPoint *mount_point); +GIO_AVAILABLE_IN_ALL +gint g_unix_mount_compare (GUnixMountEntry *mount1, + GUnixMountEntry *mount2); +GIO_AVAILABLE_IN_ALL +const char * g_unix_mount_get_mount_path (GUnixMountEntry *mount_entry); +GIO_AVAILABLE_IN_ALL +const char * g_unix_mount_get_device_path (GUnixMountEntry *mount_entry); +GIO_AVAILABLE_IN_2_60 +const char * g_unix_mount_get_root_path (GUnixMountEntry *mount_entry); +GIO_AVAILABLE_IN_ALL +const char * g_unix_mount_get_fs_type (GUnixMountEntry *mount_entry); +GIO_AVAILABLE_IN_2_58 +const char * g_unix_mount_get_options (GUnixMountEntry *mount_entry); +GIO_AVAILABLE_IN_ALL +gboolean g_unix_mount_is_readonly (GUnixMountEntry *mount_entry); +GIO_AVAILABLE_IN_ALL +gboolean g_unix_mount_is_system_internal (GUnixMountEntry *mount_entry); +GIO_AVAILABLE_IN_ALL +gboolean g_unix_mount_guess_can_eject (GUnixMountEntry *mount_entry); +GIO_AVAILABLE_IN_ALL +gboolean g_unix_mount_guess_should_display (GUnixMountEntry *mount_entry); +GIO_AVAILABLE_IN_ALL +char * g_unix_mount_guess_name (GUnixMountEntry *mount_entry); +GIO_AVAILABLE_IN_ALL +GIcon * g_unix_mount_guess_icon (GUnixMountEntry *mount_entry); +GIO_AVAILABLE_IN_ALL +GIcon * g_unix_mount_guess_symbolic_icon (GUnixMountEntry *mount_entry); + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixMountEntry, g_unix_mount_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixMountPoint, g_unix_mount_point_free) + +GIO_AVAILABLE_IN_ALL +gint g_unix_mount_point_compare (GUnixMountPoint *mount1, + GUnixMountPoint *mount2); +GIO_AVAILABLE_IN_ALL +const char * g_unix_mount_point_get_mount_path (GUnixMountPoint *mount_point); +GIO_AVAILABLE_IN_ALL +const char * g_unix_mount_point_get_device_path (GUnixMountPoint *mount_point); +GIO_AVAILABLE_IN_ALL +const char * g_unix_mount_point_get_fs_type (GUnixMountPoint *mount_point); +GIO_AVAILABLE_IN_2_32 +const char * g_unix_mount_point_get_options (GUnixMountPoint *mount_point); +GIO_AVAILABLE_IN_ALL +gboolean g_unix_mount_point_is_readonly (GUnixMountPoint *mount_point); +GIO_AVAILABLE_IN_ALL +gboolean g_unix_mount_point_is_user_mountable (GUnixMountPoint *mount_point); +GIO_AVAILABLE_IN_ALL +gboolean g_unix_mount_point_is_loopback (GUnixMountPoint *mount_point); +GIO_AVAILABLE_IN_ALL +gboolean g_unix_mount_point_guess_can_eject (GUnixMountPoint *mount_point); +GIO_AVAILABLE_IN_ALL +char * g_unix_mount_point_guess_name (GUnixMountPoint *mount_point); +GIO_AVAILABLE_IN_ALL +GIcon * g_unix_mount_point_guess_icon (GUnixMountPoint *mount_point); +GIO_AVAILABLE_IN_ALL +GIcon * g_unix_mount_point_guess_symbolic_icon (GUnixMountPoint *mount_point); + + +GIO_AVAILABLE_IN_ALL +GList * g_unix_mount_points_get (guint64 *time_read); +GIO_AVAILABLE_IN_2_66 +GUnixMountPoint *g_unix_mount_point_at (const char *mount_path, + guint64 *time_read); +GIO_AVAILABLE_IN_ALL +GList * g_unix_mounts_get (guint64 *time_read); +GIO_AVAILABLE_IN_ALL +GUnixMountEntry *g_unix_mount_at (const char *mount_path, + guint64 *time_read); +GIO_AVAILABLE_IN_2_52 +GUnixMountEntry *g_unix_mount_for (const char *file_path, + guint64 *time_read); +GIO_AVAILABLE_IN_ALL +gboolean g_unix_mounts_changed_since (guint64 time); +GIO_AVAILABLE_IN_ALL +gboolean g_unix_mount_points_changed_since (guint64 time); + +GIO_AVAILABLE_IN_ALL +GType g_unix_mount_monitor_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_2_44 +GUnixMountMonitor *g_unix_mount_monitor_get (void); +GIO_DEPRECATED_IN_2_44_FOR(g_unix_mount_monitor_get) +GUnixMountMonitor *g_unix_mount_monitor_new (void); +GIO_DEPRECATED_IN_2_44 +void g_unix_mount_monitor_set_rate_limit (GUnixMountMonitor *mount_monitor, + int limit_msec); + +GIO_AVAILABLE_IN_ALL +gboolean g_unix_is_mount_path_system_internal (const char *mount_path); +GIO_AVAILABLE_IN_2_56 +gboolean g_unix_is_system_fs_type (const char *fs_type); +GIO_AVAILABLE_IN_2_56 +gboolean g_unix_is_system_device_path (const char *device_path); + +G_END_DECLS + +#endif /* __G_UNIX_MOUNTS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gunixoutputstream.h b/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gunixoutputstream.h new file mode 100644 index 000000000..37aa22584 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/gio-unix-2.0/gio/gunixoutputstream.h @@ -0,0 +1,84 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_UNIX_OUTPUT_STREAM_H__ +#define __G_UNIX_OUTPUT_STREAM_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_UNIX_OUTPUT_STREAM (g_unix_output_stream_get_type ()) +#define G_UNIX_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_UNIX_OUTPUT_STREAM, GUnixOutputStream)) +#define G_UNIX_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_UNIX_OUTPUT_STREAM, GUnixOutputStreamClass)) +#define G_IS_UNIX_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_UNIX_OUTPUT_STREAM)) +#define G_IS_UNIX_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_UNIX_OUTPUT_STREAM)) +#define G_UNIX_OUTPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_UNIX_OUTPUT_STREAM, GUnixOutputStreamClass)) + +/** + * GUnixOutputStream: + * + * Implements #GOutputStream for outputting to selectable unix file descriptors + **/ +typedef struct _GUnixOutputStream GUnixOutputStream; +typedef struct _GUnixOutputStreamClass GUnixOutputStreamClass; +typedef struct _GUnixOutputStreamPrivate GUnixOutputStreamPrivate; + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixOutputStream, g_object_unref) + +struct _GUnixOutputStream +{ + GOutputStream parent_instance; + + /*< private >*/ + GUnixOutputStreamPrivate *priv; +}; + +struct _GUnixOutputStreamClass +{ + GOutputStreamClass parent_class; + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_unix_output_stream_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GOutputStream * g_unix_output_stream_new (gint fd, + gboolean close_fd); +GIO_AVAILABLE_IN_ALL +void g_unix_output_stream_set_close_fd (GUnixOutputStream *stream, + gboolean close_fd); +GIO_AVAILABLE_IN_ALL +gboolean g_unix_output_stream_get_close_fd (GUnixOutputStream *stream); +GIO_AVAILABLE_IN_ALL +gint g_unix_output_stream_get_fd (GUnixOutputStream *stream); +G_END_DECLS + +#endif /* __G_UNIX_OUTPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gaction.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gaction.h new file mode 100644 index 000000000..c3666b49d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gaction.h @@ -0,0 +1,100 @@ +/* + * Copyright © 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_ACTION_H__ +#define __G_ACTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_ACTION (g_action_get_type ()) +#define G_ACTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_ACTION, GAction)) +#define G_IS_ACTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_ACTION)) +#define G_ACTION_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), \ + G_TYPE_ACTION, GActionInterface)) + +typedef struct _GActionInterface GActionInterface; + +struct _GActionInterface +{ + GTypeInterface g_iface; + + /* virtual functions */ + const gchar * (* get_name) (GAction *action); + const GVariantType * (* get_parameter_type) (GAction *action); + const GVariantType * (* get_state_type) (GAction *action); + GVariant * (* get_state_hint) (GAction *action); + + gboolean (* get_enabled) (GAction *action); + GVariant * (* get_state) (GAction *action); + + void (* change_state) (GAction *action, + GVariant *value); + void (* activate) (GAction *action, + GVariant *parameter); +}; + +GIO_AVAILABLE_IN_2_30 +GType g_action_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +const gchar * g_action_get_name (GAction *action); +GIO_AVAILABLE_IN_ALL +const GVariantType * g_action_get_parameter_type (GAction *action); +GIO_AVAILABLE_IN_ALL +const GVariantType * g_action_get_state_type (GAction *action); +GIO_AVAILABLE_IN_ALL +GVariant * g_action_get_state_hint (GAction *action); + +GIO_AVAILABLE_IN_ALL +gboolean g_action_get_enabled (GAction *action); +GIO_AVAILABLE_IN_ALL +GVariant * g_action_get_state (GAction *action); + +GIO_AVAILABLE_IN_ALL +void g_action_change_state (GAction *action, + GVariant *value); +GIO_AVAILABLE_IN_ALL +void g_action_activate (GAction *action, + GVariant *parameter); + +GIO_AVAILABLE_IN_2_28 +gboolean g_action_name_is_valid (const gchar *action_name); + +GIO_AVAILABLE_IN_2_38 +gboolean g_action_parse_detailed_name (const gchar *detailed_name, + gchar **action_name, + GVariant **target_value, + GError **error); + +GIO_AVAILABLE_IN_2_38 +gchar * g_action_print_detailed_name (const gchar *action_name, + GVariant *target_value); + +G_END_DECLS + +#endif /* __G_ACTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gactiongroup.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gactiongroup.h new file mode 100644 index 000000000..06213df8a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gactiongroup.h @@ -0,0 +1,163 @@ +/* + * Copyright © 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_ACTION_GROUP_H__ +#define __G_ACTION_GROUP_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + + +#define G_TYPE_ACTION_GROUP (g_action_group_get_type ()) +#define G_ACTION_GROUP(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_ACTION_GROUP, GActionGroup)) +#define G_IS_ACTION_GROUP(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_ACTION_GROUP)) +#define G_ACTION_GROUP_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), \ + G_TYPE_ACTION_GROUP, GActionGroupInterface)) + +typedef struct _GActionGroupInterface GActionGroupInterface; + +struct _GActionGroupInterface +{ + GTypeInterface g_iface; + + /* virtual functions */ + gboolean (* has_action) (GActionGroup *action_group, + const gchar *action_name); + + gchar ** (* list_actions) (GActionGroup *action_group); + + gboolean (* get_action_enabled) (GActionGroup *action_group, + const gchar *action_name); + + const GVariantType * (* get_action_parameter_type) (GActionGroup *action_group, + const gchar *action_name); + + const GVariantType * (* get_action_state_type) (GActionGroup *action_group, + const gchar *action_name); + + GVariant * (* get_action_state_hint) (GActionGroup *action_group, + const gchar *action_name); + + GVariant * (* get_action_state) (GActionGroup *action_group, + const gchar *action_name); + + void (* change_action_state) (GActionGroup *action_group, + const gchar *action_name, + GVariant *value); + + void (* activate_action) (GActionGroup *action_group, + const gchar *action_name, + GVariant *parameter); + + /* signals */ + void (* action_added) (GActionGroup *action_group, + const gchar *action_name); + void (* action_removed) (GActionGroup *action_group, + const gchar *action_name); + void (* action_enabled_changed) (GActionGroup *action_group, + const gchar *action_name, + gboolean enabled); + void (* action_state_changed) (GActionGroup *action_group, + const gchar *action_name, + GVariant *state); + + /* more virtual functions */ + gboolean (* query_action) (GActionGroup *action_group, + const gchar *action_name, + gboolean *enabled, + const GVariantType **parameter_type, + const GVariantType **state_type, + GVariant **state_hint, + GVariant **state); +}; + +GIO_AVAILABLE_IN_ALL +GType g_action_group_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +gboolean g_action_group_has_action (GActionGroup *action_group, + const gchar *action_name); +GIO_AVAILABLE_IN_ALL +gchar ** g_action_group_list_actions (GActionGroup *action_group); + +GIO_AVAILABLE_IN_ALL +const GVariantType * g_action_group_get_action_parameter_type (GActionGroup *action_group, + const gchar *action_name); +GIO_AVAILABLE_IN_ALL +const GVariantType * g_action_group_get_action_state_type (GActionGroup *action_group, + const gchar *action_name); +GIO_AVAILABLE_IN_ALL +GVariant * g_action_group_get_action_state_hint (GActionGroup *action_group, + const gchar *action_name); + +GIO_AVAILABLE_IN_ALL +gboolean g_action_group_get_action_enabled (GActionGroup *action_group, + const gchar *action_name); + +GIO_AVAILABLE_IN_ALL +GVariant * g_action_group_get_action_state (GActionGroup *action_group, + const gchar *action_name); +GIO_AVAILABLE_IN_ALL +void g_action_group_change_action_state (GActionGroup *action_group, + const gchar *action_name, + GVariant *value); + +GIO_AVAILABLE_IN_ALL +void g_action_group_activate_action (GActionGroup *action_group, + const gchar *action_name, + GVariant *parameter); + +/* signals */ +GIO_AVAILABLE_IN_ALL +void g_action_group_action_added (GActionGroup *action_group, + const gchar *action_name); +GIO_AVAILABLE_IN_ALL +void g_action_group_action_removed (GActionGroup *action_group, + const gchar *action_name); +GIO_AVAILABLE_IN_ALL +void g_action_group_action_enabled_changed (GActionGroup *action_group, + const gchar *action_name, + gboolean enabled); + +GIO_AVAILABLE_IN_ALL +void g_action_group_action_state_changed (GActionGroup *action_group, + const gchar *action_name, + GVariant *state); + +GIO_AVAILABLE_IN_2_32 +gboolean g_action_group_query_action (GActionGroup *action_group, + const gchar *action_name, + gboolean *enabled, + const GVariantType **parameter_type, + const GVariantType **state_type, + GVariant **state_hint, + GVariant **state) G_GNUC_WARN_UNUSED_RESULT; + +G_END_DECLS + +#endif /* __G_ACTION_GROUP_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gactiongroupexporter.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gactiongroupexporter.h new file mode 100644 index 000000000..52f40af2b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gactiongroupexporter.h @@ -0,0 +1,47 @@ +/* + * Copyright © 2010 Codethink Limited + * Copyright © 2011 Canonical Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + + +#ifndef __G_ACTION_GROUP_EXPORTER_H__ +#define __G_ACTION_GROUP_EXPORTER_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GIO_AVAILABLE_IN_2_32 +guint g_dbus_connection_export_action_group (GDBusConnection *connection, + const gchar *object_path, + GActionGroup *action_group, + GError **error); + +GIO_AVAILABLE_IN_2_32 +void g_dbus_connection_unexport_action_group (GDBusConnection *connection, + guint export_id); + +G_END_DECLS + +#endif /* __G_ACTION_GROUP_EXPORTER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gactionmap.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gactionmap.h new file mode 100644 index 000000000..4d5a816b7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gactionmap.h @@ -0,0 +1,101 @@ +/* + * Copyright © 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_ACTION_MAP_H__ +#define __G_ACTION_MAP_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + + +#define G_TYPE_ACTION_MAP (g_action_map_get_type ()) +#define G_ACTION_MAP(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_ACTION_MAP, GActionMap)) +#define G_IS_ACTION_MAP(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_ACTION_MAP)) +#define G_ACTION_MAP_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), \ + G_TYPE_ACTION_MAP, GActionMapInterface)) + +typedef struct _GActionMapInterface GActionMapInterface; +typedef struct _GActionEntry GActionEntry; + +struct _GActionMapInterface +{ + GTypeInterface g_iface; + + GAction * (* lookup_action) (GActionMap *action_map, + const gchar *action_name); + void (* add_action) (GActionMap *action_map, + GAction *action); + void (* remove_action) (GActionMap *action_map, + const gchar *action_name); +}; + +struct _GActionEntry +{ + const gchar *name; + + void (* activate) (GSimpleAction *action, + GVariant *parameter, + gpointer user_data); + + const gchar *parameter_type; + + const gchar *state; + + void (* change_state) (GSimpleAction *action, + GVariant *value, + gpointer user_data); + + /*< private >*/ + gsize padding[3]; +}; + +GIO_AVAILABLE_IN_2_32 +GType g_action_map_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_32 +GAction * g_action_map_lookup_action (GActionMap *action_map, + const gchar *action_name); +GIO_AVAILABLE_IN_2_32 +void g_action_map_add_action (GActionMap *action_map, + GAction *action); +GIO_AVAILABLE_IN_2_32 +void g_action_map_remove_action (GActionMap *action_map, + const gchar *action_name); +GIO_AVAILABLE_IN_2_32 +void g_action_map_add_action_entries (GActionMap *action_map, + const GActionEntry *entries, + gint n_entries, + gpointer user_data); +GIO_AVAILABLE_IN_2_78 +void g_action_map_remove_action_entries (GActionMap *action_map, + const GActionEntry *entries, + gint n_entries); + +G_END_DECLS + +#endif /* __G_ACTION_MAP_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gappinfo.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gappinfo.h new file mode 100644 index 000000000..6b13596b2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gappinfo.h @@ -0,0 +1,369 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_APP_INFO_H__ +#define __G_APP_INFO_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_APP_INFO (g_app_info_get_type ()) +#define G_APP_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_APP_INFO, GAppInfo)) +#define G_IS_APP_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_APP_INFO)) +#define G_APP_INFO_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_APP_INFO, GAppInfoIface)) + +#define G_TYPE_APP_LAUNCH_CONTEXT (g_app_launch_context_get_type ()) +#define G_APP_LAUNCH_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_APP_LAUNCH_CONTEXT, GAppLaunchContext)) +#define G_APP_LAUNCH_CONTEXT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_APP_LAUNCH_CONTEXT, GAppLaunchContextClass)) +#define G_IS_APP_LAUNCH_CONTEXT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_APP_LAUNCH_CONTEXT)) +#define G_IS_APP_LAUNCH_CONTEXT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_APP_LAUNCH_CONTEXT)) +#define G_APP_LAUNCH_CONTEXT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_APP_LAUNCH_CONTEXT, GAppLaunchContextClass)) + +typedef struct _GAppLaunchContextClass GAppLaunchContextClass; +typedef struct _GAppLaunchContextPrivate GAppLaunchContextPrivate; + +/** + * GAppInfo: + * + * Information about an installed application and methods to launch + * it (with file arguments). + */ + +/** + * GAppInfoIface: + * @g_iface: The parent interface. + * @dup: Copies a #GAppInfo. + * @equal: Checks two #GAppInfos for equality. + * @get_id: Gets a string identifier for a #GAppInfo. + * @get_name: Gets the name of the application for a #GAppInfo. + * @get_description: Gets a short description for the application described by the #GAppInfo. + * @get_executable: Gets the executable name for the #GAppInfo. + * @get_icon: Gets the #GIcon for the #GAppInfo. + * @launch: Launches an application specified by the #GAppInfo. + * @supports_uris: Indicates whether the application specified supports launching URIs. + * @supports_files: Indicates whether the application specified accepts filename arguments. + * @launch_uris: Launches an application with a list of URIs. + * @should_show: Returns whether an application should be shown (e.g. when getting a list of installed applications). + * [FreeDesktop.Org Startup Notification Specification](http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt). + * @set_as_default_for_type: Sets an application as default for a given content type. + * @set_as_default_for_extension: Sets an application as default for a given file extension. + * @add_supports_type: Adds to the #GAppInfo information about supported file types. + * @can_remove_supports_type: Checks for support for removing supported file types from a #GAppInfo. + * @remove_supports_type: Removes a supported application type from a #GAppInfo. + * @can_delete: Checks if a #GAppInfo can be deleted. Since 2.20 + * @do_delete: Deletes a #GAppInfo. Since 2.20 + * @get_commandline: Gets the commandline for the #GAppInfo. Since 2.20 + * @get_display_name: Gets the display name for the #GAppInfo. Since 2.24 + * @set_as_last_used_for_type: Sets the application as the last used. See g_app_info_set_as_last_used_for_type(). + * @get_supported_types: Retrieves the list of content types that @app_info claims to support. + * @launch_uris_async: Asynchronously launches an application with a list of URIs. (Since: 2.60) + * @launch_uris_finish: Finishes an operation started with @launch_uris_async. (Since: 2.60) + + * Application Information interface, for operating system portability. + */ +typedef struct _GAppInfoIface GAppInfoIface; + +struct _GAppInfoIface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + + GAppInfo * (* dup) (GAppInfo *appinfo); + gboolean (* equal) (GAppInfo *appinfo1, + GAppInfo *appinfo2); + const char * (* get_id) (GAppInfo *appinfo); + const char * (* get_name) (GAppInfo *appinfo); + const char * (* get_description) (GAppInfo *appinfo); + const char * (* get_executable) (GAppInfo *appinfo); + GIcon * (* get_icon) (GAppInfo *appinfo); + gboolean (* launch) (GAppInfo *appinfo, + GList *files, + GAppLaunchContext *context, + GError **error); + gboolean (* supports_uris) (GAppInfo *appinfo); + gboolean (* supports_files) (GAppInfo *appinfo); + gboolean (* launch_uris) (GAppInfo *appinfo, + GList *uris, + GAppLaunchContext *context, + GError **error); + gboolean (* should_show) (GAppInfo *appinfo); + + /* For changing associations */ + gboolean (* set_as_default_for_type) (GAppInfo *appinfo, + const char *content_type, + GError **error); + gboolean (* set_as_default_for_extension) (GAppInfo *appinfo, + const char *extension, + GError **error); + gboolean (* add_supports_type) (GAppInfo *appinfo, + const char *content_type, + GError **error); + gboolean (* can_remove_supports_type) (GAppInfo *appinfo); + gboolean (* remove_supports_type) (GAppInfo *appinfo, + const char *content_type, + GError **error); + gboolean (* can_delete) (GAppInfo *appinfo); + gboolean (* do_delete) (GAppInfo *appinfo); + const char * (* get_commandline) (GAppInfo *appinfo); + const char * (* get_display_name) (GAppInfo *appinfo); + gboolean (* set_as_last_used_for_type) (GAppInfo *appinfo, + const char *content_type, + GError **error); + const char ** (* get_supported_types) (GAppInfo *appinfo); + void (* launch_uris_async) (GAppInfo *appinfo, + GList *uris, + GAppLaunchContext *context, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* launch_uris_finish) (GAppInfo *appinfo, + GAsyncResult *result, + GError **error); +}; + +GIO_AVAILABLE_IN_ALL +GType g_app_info_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GAppInfo * g_app_info_create_from_commandline (const char *commandline, + const char *application_name, + GAppInfoCreateFlags flags, + GError **error); +GIO_AVAILABLE_IN_ALL +GAppInfo * g_app_info_dup (GAppInfo *appinfo); +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_equal (GAppInfo *appinfo1, + GAppInfo *appinfo2); +GIO_AVAILABLE_IN_ALL +const char *g_app_info_get_id (GAppInfo *appinfo); +GIO_AVAILABLE_IN_ALL +const char *g_app_info_get_name (GAppInfo *appinfo); +GIO_AVAILABLE_IN_ALL +const char *g_app_info_get_display_name (GAppInfo *appinfo); +GIO_AVAILABLE_IN_ALL +const char *g_app_info_get_description (GAppInfo *appinfo); +GIO_AVAILABLE_IN_ALL +const char *g_app_info_get_executable (GAppInfo *appinfo); +GIO_AVAILABLE_IN_ALL +const char *g_app_info_get_commandline (GAppInfo *appinfo); +GIO_AVAILABLE_IN_ALL +GIcon * g_app_info_get_icon (GAppInfo *appinfo); +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_launch (GAppInfo *appinfo, + GList *files, + GAppLaunchContext *context, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_supports_uris (GAppInfo *appinfo); +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_supports_files (GAppInfo *appinfo); +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_launch_uris (GAppInfo *appinfo, + GList *uris, + GAppLaunchContext *context, + GError **error); +GIO_AVAILABLE_IN_2_60 +void g_app_info_launch_uris_async (GAppInfo *appinfo, + GList *uris, + GAppLaunchContext *context, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_60 +gboolean g_app_info_launch_uris_finish (GAppInfo *appinfo, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_should_show (GAppInfo *appinfo); + +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_set_as_default_for_type (GAppInfo *appinfo, + const char *content_type, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_set_as_default_for_extension (GAppInfo *appinfo, + const char *extension, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_add_supports_type (GAppInfo *appinfo, + const char *content_type, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_can_remove_supports_type (GAppInfo *appinfo); +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_remove_supports_type (GAppInfo *appinfo, + const char *content_type, + GError **error); +GIO_AVAILABLE_IN_2_34 +const char **g_app_info_get_supported_types (GAppInfo *appinfo); + +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_can_delete (GAppInfo *appinfo); +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_delete (GAppInfo *appinfo); + +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_set_as_last_used_for_type (GAppInfo *appinfo, + const char *content_type, + GError **error); + +GIO_AVAILABLE_IN_ALL +GList * g_app_info_get_all (void); +GIO_AVAILABLE_IN_ALL +GList * g_app_info_get_all_for_type (const char *content_type); +GIO_AVAILABLE_IN_ALL +GList * g_app_info_get_recommended_for_type (const gchar *content_type); +GIO_AVAILABLE_IN_ALL +GList * g_app_info_get_fallback_for_type (const gchar *content_type); + +GIO_AVAILABLE_IN_ALL +void g_app_info_reset_type_associations (const char *content_type); +GIO_AVAILABLE_IN_ALL +GAppInfo *g_app_info_get_default_for_type (const char *content_type, + gboolean must_support_uris); +GIO_AVAILABLE_IN_2_74 +void g_app_info_get_default_for_type_async (const char *content_type, + gboolean must_support_uris, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_74 +GAppInfo *g_app_info_get_default_for_type_finish (GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +GAppInfo *g_app_info_get_default_for_uri_scheme (const char *uri_scheme); + +GIO_AVAILABLE_IN_2_74 +void g_app_info_get_default_for_uri_scheme_async (const char *uri_scheme, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_74 +GAppInfo *g_app_info_get_default_for_uri_scheme_finish (GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_app_info_launch_default_for_uri (const char *uri, + GAppLaunchContext *context, + GError **error); + +GIO_AVAILABLE_IN_2_50 +void g_app_info_launch_default_for_uri_async (const char *uri, + GAppLaunchContext *context, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_50 +gboolean g_app_info_launch_default_for_uri_finish (GAsyncResult *result, + GError **error); + + +/** + * GAppLaunchContext: + * + * Integrating the launch with the launching application. This is used to + * handle for instance startup notification and launching the new application + * on the same screen as the launching window. + */ +struct _GAppLaunchContext +{ + GObject parent_instance; + + /*< private >*/ + GAppLaunchContextPrivate *priv; +}; + +struct _GAppLaunchContextClass +{ + GObjectClass parent_class; + + char * (* get_display) (GAppLaunchContext *context, + GAppInfo *info, + GList *files); + char * (* get_startup_notify_id) (GAppLaunchContext *context, + GAppInfo *info, + GList *files); + void (* launch_failed) (GAppLaunchContext *context, + const char *startup_notify_id); + void (* launched) (GAppLaunchContext *context, + GAppInfo *info, + GVariant *platform_data); + void (* launch_started) (GAppLaunchContext *context, + GAppInfo *info, + GVariant *platform_data); + + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_app_launch_context_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GAppLaunchContext *g_app_launch_context_new (void); + +GIO_AVAILABLE_IN_2_32 +void g_app_launch_context_setenv (GAppLaunchContext *context, + const char *variable, + const char *value); +GIO_AVAILABLE_IN_2_32 +void g_app_launch_context_unsetenv (GAppLaunchContext *context, + const char *variable); +GIO_AVAILABLE_IN_2_32 +char ** g_app_launch_context_get_environment (GAppLaunchContext *context); + +GIO_AVAILABLE_IN_ALL +char * g_app_launch_context_get_display (GAppLaunchContext *context, + GAppInfo *info, + GList *files); +GIO_AVAILABLE_IN_ALL +char * g_app_launch_context_get_startup_notify_id (GAppLaunchContext *context, + GAppInfo *info, + GList *files); +GIO_AVAILABLE_IN_ALL +void g_app_launch_context_launch_failed (GAppLaunchContext *context, + const char * startup_notify_id); + +#define G_TYPE_APP_INFO_MONITOR (g_app_info_monitor_get_type ()) +#define G_APP_INFO_MONITOR(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_APP_INFO_MONITOR, GAppInfoMonitor)) +#define G_IS_APP_INFO_MONITOR(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_APP_INFO_MONITOR)) + +typedef struct _GAppInfoMonitor GAppInfoMonitor; + +GIO_AVAILABLE_IN_2_40 +GType g_app_info_monitor_get_type (void); + +GIO_AVAILABLE_IN_2_40 +GAppInfoMonitor * g_app_info_monitor_get (void); + +G_END_DECLS + +#endif /* __G_APP_INFO_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gapplication.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gapplication.h new file mode 100644 index 000000000..cb6b90867 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gapplication.h @@ -0,0 +1,257 @@ +/* + * Copyright © 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_APPLICATION_H__ +#define __G_APPLICATION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_APPLICATION (g_application_get_type ()) +#define G_APPLICATION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_APPLICATION, GApplication)) +#define G_APPLICATION_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_APPLICATION, GApplicationClass)) +#define G_IS_APPLICATION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_APPLICATION)) +#define G_IS_APPLICATION_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_APPLICATION)) +#define G_APPLICATION_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_APPLICATION, GApplicationClass)) + +typedef struct _GApplicationPrivate GApplicationPrivate; +typedef struct _GApplicationClass GApplicationClass; + +struct _GApplication +{ + /*< private >*/ + GObject parent_instance; + + GApplicationPrivate *priv; +}; + +struct _GApplicationClass +{ + /*< private >*/ + GObjectClass parent_class; + + /*< public >*/ + /* signals */ + void (* startup) (GApplication *application); + + void (* activate) (GApplication *application); + + void (* open) (GApplication *application, + GFile **files, + gint n_files, + const gchar *hint); + + int (* command_line) (GApplication *application, + GApplicationCommandLine *command_line); + + /* vfuncs */ + + /** + * GApplicationClass::local_command_line: + * @application: a #GApplication + * @arguments: (inout) (array zero-terminated=1): array of command line arguments + * @exit_status: (out): exit status to fill after processing the command line. + * + * This virtual function is always invoked in the local instance. It + * gets passed a pointer to a %NULL-terminated copy of @argv and is + * expected to remove arguments that it handled (shifting up remaining + * arguments). + * + * The last argument to local_command_line() is a pointer to the @status + * variable which can used to set the exit status that is returned from + * g_application_run(). + * + * See g_application_run() for more details on #GApplication startup. + * + * Returns: %TRUE if the commandline has been completely handled + */ + gboolean (* local_command_line) (GApplication *application, + gchar ***arguments, + int *exit_status); + + /* @platform_data comes from an external process and is untrusted. All value types + * must be validated before being used. */ + void (* before_emit) (GApplication *application, + GVariant *platform_data); + /* Same as for @before_emit. */ + void (* after_emit) (GApplication *application, + GVariant *platform_data); + void (* add_platform_data) (GApplication *application, + GVariantBuilder *builder); + void (* quit_mainloop) (GApplication *application); + void (* run_mainloop) (GApplication *application); + void (* shutdown) (GApplication *application); + + gboolean (* dbus_register) (GApplication *application, + GDBusConnection *connection, + const gchar *object_path, + GError **error); + void (* dbus_unregister) (GApplication *application, + GDBusConnection *connection, + const gchar *object_path); + gint (* handle_local_options)(GApplication *application, + GVariantDict *options); + gboolean (* name_lost) (GApplication *application); + + /*< private >*/ + gpointer padding[7]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_application_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +gboolean g_application_id_is_valid (const gchar *application_id); + +GIO_AVAILABLE_IN_ALL +GApplication * g_application_new (const gchar *application_id, + GApplicationFlags flags); + +GIO_AVAILABLE_IN_ALL +const gchar * g_application_get_application_id (GApplication *application); +GIO_AVAILABLE_IN_ALL +void g_application_set_application_id (GApplication *application, + const gchar *application_id); + +GIO_AVAILABLE_IN_2_34 +GDBusConnection * g_application_get_dbus_connection (GApplication *application); +GIO_AVAILABLE_IN_2_34 +const gchar * g_application_get_dbus_object_path (GApplication *application); + +GIO_AVAILABLE_IN_ALL +guint g_application_get_inactivity_timeout (GApplication *application); +GIO_AVAILABLE_IN_ALL +void g_application_set_inactivity_timeout (GApplication *application, + guint inactivity_timeout); + +GIO_AVAILABLE_IN_ALL +GApplicationFlags g_application_get_flags (GApplication *application); +GIO_AVAILABLE_IN_ALL +void g_application_set_flags (GApplication *application, + GApplicationFlags flags); + +GIO_AVAILABLE_IN_2_42 +const gchar * g_application_get_resource_base_path (GApplication *application); +GIO_AVAILABLE_IN_2_42 +void g_application_set_resource_base_path (GApplication *application, + const gchar *resource_path); + +GIO_DEPRECATED +void g_application_set_action_group (GApplication *application, + GActionGroup *action_group); + +GIO_AVAILABLE_IN_2_40 +void g_application_add_main_option_entries (GApplication *application, + const GOptionEntry *entries); + +GIO_AVAILABLE_IN_2_42 +void g_application_add_main_option (GApplication *application, + const char *long_name, + char short_name, + GOptionFlags flags, + GOptionArg arg, + const char *description, + const char *arg_description); +GIO_AVAILABLE_IN_2_40 +void g_application_add_option_group (GApplication *application, + GOptionGroup *group); +GIO_AVAILABLE_IN_2_56 +void g_application_set_option_context_parameter_string (GApplication *application, + const gchar *parameter_string); +GIO_AVAILABLE_IN_2_56 +void g_application_set_option_context_summary (GApplication *application, + const gchar *summary); +GIO_AVAILABLE_IN_2_56 +void g_application_set_option_context_description (GApplication *application, + const gchar *description); +GIO_AVAILABLE_IN_ALL +gboolean g_application_get_is_registered (GApplication *application); +GIO_AVAILABLE_IN_ALL +gboolean g_application_get_is_remote (GApplication *application); + +GIO_AVAILABLE_IN_ALL +gboolean g_application_register (GApplication *application, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_application_hold (GApplication *application); +GIO_AVAILABLE_IN_ALL +void g_application_release (GApplication *application); + +GIO_AVAILABLE_IN_ALL +void g_application_activate (GApplication *application); + +GIO_AVAILABLE_IN_ALL +void g_application_open (GApplication *application, + GFile **files, + gint n_files, + const gchar *hint); + +GIO_AVAILABLE_IN_ALL +int g_application_run (GApplication *application, + int argc, + char **argv); + +GIO_AVAILABLE_IN_2_32 +void g_application_quit (GApplication *application); + +GIO_AVAILABLE_IN_2_32 +GApplication * g_application_get_default (void); +GIO_AVAILABLE_IN_2_32 +void g_application_set_default (GApplication *application); + +GIO_AVAILABLE_IN_2_38 +void g_application_mark_busy (GApplication *application); +GIO_AVAILABLE_IN_2_38 +void g_application_unmark_busy (GApplication *application); +GIO_AVAILABLE_IN_2_44 +gboolean g_application_get_is_busy (GApplication *application); + +GIO_AVAILABLE_IN_2_40 +void g_application_send_notification (GApplication *application, + const gchar *id, + GNotification *notification); +GIO_AVAILABLE_IN_2_40 +void g_application_withdraw_notification (GApplication *application, + const gchar *id); + +GIO_AVAILABLE_IN_2_44 +void g_application_bind_busy_property (GApplication *application, + gpointer object, + const gchar *property); + +GIO_AVAILABLE_IN_2_44 +void g_application_unbind_busy_property (GApplication *application, + gpointer object, + const gchar *property); + +G_END_DECLS + +#endif /* __G_APPLICATION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gapplicationcommandline.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gapplicationcommandline.h new file mode 100644 index 000000000..abb68526f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gapplicationcommandline.h @@ -0,0 +1,124 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_APPLICATION_COMMAND_LINE_H__ +#define __G_APPLICATION_COMMAND_LINE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_APPLICATION_COMMAND_LINE (g_application_command_line_get_type ()) +#define G_APPLICATION_COMMAND_LINE(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_APPLICATION_COMMAND_LINE, \ + GApplicationCommandLine)) +#define G_APPLICATION_COMMAND_LINE_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_APPLICATION_COMMAND_LINE, \ + GApplicationCommandLineClass)) +#define G_IS_APPLICATION_COMMAND_LINE(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_APPLICATION_COMMAND_LINE)) +#define G_IS_APPLICATION_COMMAND_LINE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_APPLICATION_COMMAND_LINE)) +#define G_APPLICATION_COMMAND_LINE_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_APPLICATION_COMMAND_LINE, \ + GApplicationCommandLineClass)) + +typedef struct _GApplicationCommandLinePrivate GApplicationCommandLinePrivate; +typedef struct _GApplicationCommandLineClass GApplicationCommandLineClass; + +struct _GApplicationCommandLine +{ + /*< private >*/ + GObject parent_instance; + + GApplicationCommandLinePrivate *priv; +}; + +struct _GApplicationCommandLineClass +{ + /*< private >*/ + GObjectClass parent_class; + + void (* print_literal) (GApplicationCommandLine *cmdline, + const gchar *message); + void (* printerr_literal) (GApplicationCommandLine *cmdline, + const gchar *message); + GInputStream * (* get_stdin) (GApplicationCommandLine *cmdline); + + gpointer padding[11]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_application_command_line_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +gchar ** g_application_command_line_get_arguments (GApplicationCommandLine *cmdline, + int *argc); + +GIO_AVAILABLE_IN_2_40 +GVariantDict * g_application_command_line_get_options_dict (GApplicationCommandLine *cmdline); + +GIO_AVAILABLE_IN_2_36 +GInputStream * g_application_command_line_get_stdin (GApplicationCommandLine *cmdline); + +GIO_AVAILABLE_IN_ALL +const gchar * const * g_application_command_line_get_environ (GApplicationCommandLine *cmdline); + +GIO_AVAILABLE_IN_ALL +const gchar * g_application_command_line_getenv (GApplicationCommandLine *cmdline, + const gchar *name); + +GIO_AVAILABLE_IN_ALL +const gchar * g_application_command_line_get_cwd (GApplicationCommandLine *cmdline); + +GIO_AVAILABLE_IN_ALL +gboolean g_application_command_line_get_is_remote (GApplicationCommandLine *cmdline); + +GIO_AVAILABLE_IN_ALL +void g_application_command_line_print (GApplicationCommandLine *cmdline, + const gchar *format, + ...) G_GNUC_PRINTF(2, 3); +GIO_AVAILABLE_IN_ALL +void g_application_command_line_printerr (GApplicationCommandLine *cmdline, + const gchar *format, + ...) G_GNUC_PRINTF(2, 3); + +GIO_AVAILABLE_IN_ALL +int g_application_command_line_get_exit_status (GApplicationCommandLine *cmdline); +GIO_AVAILABLE_IN_ALL +void g_application_command_line_set_exit_status (GApplicationCommandLine *cmdline, + int exit_status); + +GIO_AVAILABLE_IN_ALL +GVariant * g_application_command_line_get_platform_data (GApplicationCommandLine *cmdline); + +GIO_AVAILABLE_IN_2_36 +GFile * g_application_command_line_create_file_for_arg (GApplicationCommandLine *cmdline, + const gchar *arg); + +G_END_DECLS + +#endif /* __G_APPLICATION_COMMAND_LINE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gasyncinitable.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gasyncinitable.h new file mode 100644 index 000000000..18083982e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gasyncinitable.h @@ -0,0 +1,132 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2009 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_ASYNC_INITABLE_H__ +#define __G_ASYNC_INITABLE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_ASYNC_INITABLE (g_async_initable_get_type ()) +#define G_ASYNC_INITABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_ASYNC_INITABLE, GAsyncInitable)) +#define G_IS_ASYNC_INITABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_ASYNC_INITABLE)) +#define G_ASYNC_INITABLE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_ASYNC_INITABLE, GAsyncInitableIface)) +#define G_TYPE_IS_ASYNC_INITABLE(type) (g_type_is_a ((type), G_TYPE_ASYNC_INITABLE)) + +/** + * GAsyncInitable: + * + * Interface for asynchronously initializable objects. + * + * Since: 2.22 + **/ +typedef struct _GAsyncInitableIface GAsyncInitableIface; + +/** + * GAsyncInitableIface: + * @g_iface: The parent interface. + * @init_async: Starts initialization of the object. + * @init_finish: Finishes initialization of the object. + * + * Provides an interface for asynchronous initializing object such that + * initialization may fail. + * + * Since: 2.22 + **/ +struct _GAsyncInitableIface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + + void (* init_async) (GAsyncInitable *initable, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* init_finish) (GAsyncInitable *initable, + GAsyncResult *res, + GError **error); +}; + +GIO_AVAILABLE_IN_ALL +GType g_async_initable_get_type (void) G_GNUC_CONST; + + +GIO_AVAILABLE_IN_ALL +void g_async_initable_init_async (GAsyncInitable *initable, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_async_initable_init_finish (GAsyncInitable *initable, + GAsyncResult *res, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_async_initable_new_async (GType object_type, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data, + const gchar *first_property_name, + ...); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + +GIO_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties and g_async_initable_init_async) +void g_async_initable_newv_async (GType object_type, + guint n_parameters, + GParameter *parameters, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +G_GNUC_END_IGNORE_DEPRECATIONS + +GIO_AVAILABLE_IN_ALL +void g_async_initable_new_valist_async (GType object_type, + const gchar *first_property_name, + va_list var_args, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GObject *g_async_initable_new_finish (GAsyncInitable *initable, + GAsyncResult *res, + GError **error); + + + +G_END_DECLS + + +#endif /* __G_ASYNC_INITABLE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gasyncresult.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gasyncresult.h new file mode 100644 index 000000000..4a98c5f44 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gasyncresult.h @@ -0,0 +1,87 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_ASYNC_RESULT_H__ +#define __G_ASYNC_RESULT_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_ASYNC_RESULT (g_async_result_get_type ()) +#define G_ASYNC_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_ASYNC_RESULT, GAsyncResult)) +#define G_IS_ASYNC_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_ASYNC_RESULT)) +#define G_ASYNC_RESULT_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_ASYNC_RESULT, GAsyncResultIface)) + +/** + * GAsyncResult: + * + * Holds results information for an asynchronous operation, + * usually passed directly to an asynchronous _finish() operation. + **/ +typedef struct _GAsyncResultIface GAsyncResultIface; + + +/** + * GAsyncResultIface: + * @g_iface: The parent interface. + * @get_user_data: Gets the user data passed to the callback. + * @get_source_object: Gets the source object that issued the asynchronous operation. + * @is_tagged: Checks if a result is tagged with a particular source. + * + * Interface definition for #GAsyncResult. + **/ +struct _GAsyncResultIface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + + gpointer (* get_user_data) (GAsyncResult *res); + GObject * (* get_source_object) (GAsyncResult *res); + + gboolean (* is_tagged) (GAsyncResult *res, + gpointer source_tag); +}; + +GIO_AVAILABLE_IN_ALL +GType g_async_result_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +gpointer g_async_result_get_user_data (GAsyncResult *res); +GIO_AVAILABLE_IN_ALL +GObject *g_async_result_get_source_object (GAsyncResult *res); + +GIO_AVAILABLE_IN_2_34 +gboolean g_async_result_legacy_propagate_error (GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_2_34 +gboolean g_async_result_is_tagged (GAsyncResult *res, + gpointer source_tag); + +G_END_DECLS + +#endif /* __G_ASYNC_RESULT_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gbufferedinputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gbufferedinputstream.h new file mode 100644 index 000000000..c6b1deadc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gbufferedinputstream.h @@ -0,0 +1,135 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Christian Kellner + */ + +#ifndef __G_BUFFERED_INPUT_STREAM_H__ +#define __G_BUFFERED_INPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_BUFFERED_INPUT_STREAM (g_buffered_input_stream_get_type ()) +#define G_BUFFERED_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_BUFFERED_INPUT_STREAM, GBufferedInputStream)) +#define G_BUFFERED_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_BUFFERED_INPUT_STREAM, GBufferedInputStreamClass)) +#define G_IS_BUFFERED_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_BUFFERED_INPUT_STREAM)) +#define G_IS_BUFFERED_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_BUFFERED_INPUT_STREAM)) +#define G_BUFFERED_INPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_BUFFERED_INPUT_STREAM, GBufferedInputStreamClass)) + +/** + * GBufferedInputStream: + * + * Implements #GFilterInputStream with a sized input buffer. + **/ +typedef struct _GBufferedInputStreamClass GBufferedInputStreamClass; +typedef struct _GBufferedInputStreamPrivate GBufferedInputStreamPrivate; + +struct _GBufferedInputStream +{ + GFilterInputStream parent_instance; + + /*< private >*/ + GBufferedInputStreamPrivate *priv; +}; + +struct _GBufferedInputStreamClass +{ + GFilterInputStreamClass parent_class; + + gssize (* fill) (GBufferedInputStream *stream, + gssize count, + GCancellable *cancellable, + GError **error); + + /* Async ops: (optional in derived classes) */ + void (* fill_async) (GBufferedInputStream *stream, + gssize count, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gssize (* fill_finish) (GBufferedInputStream *stream, + GAsyncResult *result, + GError **error); + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + + +GIO_AVAILABLE_IN_ALL +GType g_buffered_input_stream_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GInputStream* g_buffered_input_stream_new (GInputStream *base_stream); +GIO_AVAILABLE_IN_ALL +GInputStream* g_buffered_input_stream_new_sized (GInputStream *base_stream, + gsize size); + +GIO_AVAILABLE_IN_ALL +gsize g_buffered_input_stream_get_buffer_size (GBufferedInputStream *stream); +GIO_AVAILABLE_IN_ALL +void g_buffered_input_stream_set_buffer_size (GBufferedInputStream *stream, + gsize size); +GIO_AVAILABLE_IN_ALL +gsize g_buffered_input_stream_get_available (GBufferedInputStream *stream); +GIO_AVAILABLE_IN_ALL +gsize g_buffered_input_stream_peek (GBufferedInputStream *stream, + void *buffer, + gsize offset, + gsize count); +GIO_AVAILABLE_IN_ALL +const void* g_buffered_input_stream_peek_buffer (GBufferedInputStream *stream, + gsize *count); + +GIO_AVAILABLE_IN_ALL +gssize g_buffered_input_stream_fill (GBufferedInputStream *stream, + gssize count, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_buffered_input_stream_fill_async (GBufferedInputStream *stream, + gssize count, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gssize g_buffered_input_stream_fill_finish (GBufferedInputStream *stream, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +int g_buffered_input_stream_read_byte (GBufferedInputStream *stream, + GCancellable *cancellable, + GError **error); + +G_END_DECLS + +#endif /* __G_BUFFERED_INPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gbufferedoutputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gbufferedoutputstream.h new file mode 100644 index 000000000..1259c76fb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gbufferedoutputstream.h @@ -0,0 +1,88 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Christian Kellner + */ + +#ifndef __G_BUFFERED_OUTPUT_STREAM_H__ +#define __G_BUFFERED_OUTPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_BUFFERED_OUTPUT_STREAM (g_buffered_output_stream_get_type ()) +#define G_BUFFERED_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_BUFFERED_OUTPUT_STREAM, GBufferedOutputStream)) +#define G_BUFFERED_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_BUFFERED_OUTPUT_STREAM, GBufferedOutputStreamClass)) +#define G_IS_BUFFERED_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_BUFFERED_OUTPUT_STREAM)) +#define G_IS_BUFFERED_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_BUFFERED_OUTPUT_STREAM)) +#define G_BUFFERED_OUTPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_BUFFERED_OUTPUT_STREAM, GBufferedOutputStreamClass)) + +/** + * GBufferedOutputStream: + * + * An implementation of #GFilterOutputStream with a sized buffer. + **/ +typedef struct _GBufferedOutputStreamClass GBufferedOutputStreamClass; +typedef struct _GBufferedOutputStreamPrivate GBufferedOutputStreamPrivate; + +struct _GBufferedOutputStream +{ + GFilterOutputStream parent_instance; + + /*< protected >*/ + GBufferedOutputStreamPrivate *priv; +}; + +struct _GBufferedOutputStreamClass +{ + GFilterOutputStreamClass parent_class; + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); +}; + + +GIO_AVAILABLE_IN_ALL +GType g_buffered_output_stream_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GOutputStream* g_buffered_output_stream_new (GOutputStream *base_stream); +GIO_AVAILABLE_IN_ALL +GOutputStream* g_buffered_output_stream_new_sized (GOutputStream *base_stream, + gsize size); +GIO_AVAILABLE_IN_ALL +gsize g_buffered_output_stream_get_buffer_size (GBufferedOutputStream *stream); +GIO_AVAILABLE_IN_ALL +void g_buffered_output_stream_set_buffer_size (GBufferedOutputStream *stream, + gsize size); +GIO_AVAILABLE_IN_ALL +gboolean g_buffered_output_stream_get_auto_grow (GBufferedOutputStream *stream); +GIO_AVAILABLE_IN_ALL +void g_buffered_output_stream_set_auto_grow (GBufferedOutputStream *stream, + gboolean auto_grow); + +G_END_DECLS + +#endif /* __G_BUFFERED_OUTPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gbytesicon.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gbytesicon.h new file mode 100644 index 000000000..c917d3816 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gbytesicon.h @@ -0,0 +1,54 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#ifndef __G_BYTES_ICON_H__ +#define __G_BYTES_ICON_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_BYTES_ICON (g_bytes_icon_get_type ()) +#define G_BYTES_ICON(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), G_TYPE_BYTES_ICON, GBytesIcon)) +#define G_IS_BYTES_ICON(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_BYTES_ICON)) + +/** + * GBytesIcon: + * + * Gets an icon for a #GBytes. Implements #GLoadableIcon. + **/ +GIO_AVAILABLE_IN_2_38 +GType g_bytes_icon_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_38 +GIcon * g_bytes_icon_new (GBytes *bytes); + +GIO_AVAILABLE_IN_2_38 +GBytes * g_bytes_icon_get_bytes (GBytesIcon *icon); + +G_END_DECLS + +#endif /* __G_BYTES_ICON_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gcancellable.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gcancellable.h new file mode 100644 index 000000000..d33215db3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gcancellable.h @@ -0,0 +1,120 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_CANCELLABLE_H__ +#define __G_CANCELLABLE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_CANCELLABLE (g_cancellable_get_type ()) +#define G_CANCELLABLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_CANCELLABLE, GCancellable)) +#define G_CANCELLABLE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_CANCELLABLE, GCancellableClass)) +#define G_IS_CANCELLABLE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_CANCELLABLE)) +#define G_IS_CANCELLABLE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_CANCELLABLE)) +#define G_CANCELLABLE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_CANCELLABLE, GCancellableClass)) + +/** + * GCancellable: + * + * Allows actions to be cancelled. + */ +typedef struct _GCancellableClass GCancellableClass; +typedef struct _GCancellablePrivate GCancellablePrivate; + +struct _GCancellable +{ + GObject parent_instance; + + /*< private >*/ + GCancellablePrivate *priv; +}; + +struct _GCancellableClass +{ + GObjectClass parent_class; + + void (* cancelled) (GCancellable *cancellable); + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_cancellable_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GCancellable *g_cancellable_new (void); + +/* These are only safe to call inside a cancellable op */ +GIO_AVAILABLE_IN_ALL +gboolean g_cancellable_is_cancelled (GCancellable *cancellable); +GIO_AVAILABLE_IN_ALL +gboolean g_cancellable_set_error_if_cancelled (GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +int g_cancellable_get_fd (GCancellable *cancellable); +GIO_AVAILABLE_IN_ALL +gboolean g_cancellable_make_pollfd (GCancellable *cancellable, + GPollFD *pollfd); +GIO_AVAILABLE_IN_ALL +void g_cancellable_release_fd (GCancellable *cancellable); + +GIO_AVAILABLE_IN_ALL +GSource * g_cancellable_source_new (GCancellable *cancellable); + +GIO_AVAILABLE_IN_ALL +GCancellable *g_cancellable_get_current (void); +GIO_AVAILABLE_IN_ALL +void g_cancellable_push_current (GCancellable *cancellable); +GIO_AVAILABLE_IN_ALL +void g_cancellable_pop_current (GCancellable *cancellable); +GIO_AVAILABLE_IN_ALL +void g_cancellable_reset (GCancellable *cancellable); +GIO_AVAILABLE_IN_ALL +gulong g_cancellable_connect (GCancellable *cancellable, + GCallback callback, + gpointer data, + GDestroyNotify data_destroy_func); +GIO_AVAILABLE_IN_ALL +void g_cancellable_disconnect (GCancellable *cancellable, + gulong handler_id); + + +/* This is safe to call from another thread */ +GIO_AVAILABLE_IN_ALL +void g_cancellable_cancel (GCancellable *cancellable); + +G_END_DECLS + +#endif /* __G_CANCELLABLE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gcharsetconverter.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gcharsetconverter.h new file mode 100644 index 000000000..455ca7cb5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gcharsetconverter.h @@ -0,0 +1,65 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2009 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_CHARSET_CONVERTER_H__ +#define __G_CHARSET_CONVERTER_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_CHARSET_CONVERTER (g_charset_converter_get_type ()) +#define G_CHARSET_CONVERTER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_CHARSET_CONVERTER, GCharsetConverter)) +#define G_CHARSET_CONVERTER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_CHARSET_CONVERTER, GCharsetConverterClass)) +#define G_IS_CHARSET_CONVERTER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_CHARSET_CONVERTER)) +#define G_IS_CHARSET_CONVERTER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_CHARSET_CONVERTER)) +#define G_CHARSET_CONVERTER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_CHARSET_CONVERTER, GCharsetConverterClass)) + +typedef struct _GCharsetConverterClass GCharsetConverterClass; + +struct _GCharsetConverterClass +{ + GObjectClass parent_class; +}; + +GIO_AVAILABLE_IN_ALL +GType g_charset_converter_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GCharsetConverter *g_charset_converter_new (const gchar *to_charset, + const gchar *from_charset, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_charset_converter_set_use_fallback (GCharsetConverter *converter, + gboolean use_fallback); +GIO_AVAILABLE_IN_ALL +gboolean g_charset_converter_get_use_fallback (GCharsetConverter *converter); +GIO_AVAILABLE_IN_ALL +guint g_charset_converter_get_num_fallbacks (GCharsetConverter *converter); + +G_END_DECLS + +#endif /* __G_CHARSET_CONVERTER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gcontenttype.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gcontenttype.h new file mode 100644 index 000000000..910c2e241 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gcontenttype.h @@ -0,0 +1,84 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_CONTENT_TYPE_H__ +#define __G_CONTENT_TYPE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GIO_AVAILABLE_IN_ALL +gboolean g_content_type_equals (const gchar *type1, + const gchar *type2); +GIO_AVAILABLE_IN_ALL +gboolean g_content_type_is_a (const gchar *type, + const gchar *supertype); +GIO_AVAILABLE_IN_2_52 +gboolean g_content_type_is_mime_type (const gchar *type, + const gchar *mime_type); +GIO_AVAILABLE_IN_ALL +gboolean g_content_type_is_unknown (const gchar *type); +GIO_AVAILABLE_IN_ALL +gchar * g_content_type_get_description (const gchar *type); +GIO_AVAILABLE_IN_ALL +gchar * g_content_type_get_mime_type (const gchar *type); +GIO_AVAILABLE_IN_ALL +GIcon * g_content_type_get_icon (const gchar *type); +GIO_AVAILABLE_IN_2_34 +GIcon * g_content_type_get_symbolic_icon (const gchar *type); +GIO_AVAILABLE_IN_2_34 +gchar * g_content_type_get_generic_icon_name (const gchar *type); + +GIO_AVAILABLE_IN_ALL +gboolean g_content_type_can_be_executable (const gchar *type); + +GIO_AVAILABLE_IN_ALL +gchar * g_content_type_from_mime_type (const gchar *mime_type); + +GIO_AVAILABLE_IN_ALL +gchar * g_content_type_guess (const gchar *filename, + const guchar *data, + gsize data_size, + gboolean *result_uncertain); + +GIO_AVAILABLE_IN_ALL +gchar ** g_content_type_guess_for_tree (GFile *root); + +GIO_AVAILABLE_IN_ALL +GList * g_content_types_get_registered (void); + +/*< private >*/ +#ifndef __GTK_DOC_IGNORE__ +GIO_AVAILABLE_IN_2_60 +const gchar * const *g_content_type_get_mime_dirs (void); +GIO_AVAILABLE_IN_2_60 +void g_content_type_set_mime_dirs (const gchar * const *dirs); +#endif /* __GTK_DOC_IGNORE__ */ + +G_END_DECLS + +#endif /* __G_CONTENT_TYPE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gconverter.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gconverter.h new file mode 100644 index 000000000..16e94a1bd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gconverter.h @@ -0,0 +1,98 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2009 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_CONVERTER_H__ +#define __G_CONVERTER_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_CONVERTER (g_converter_get_type ()) +#define G_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_CONVERTER, GConverter)) +#define G_IS_CONVERTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_CONVERTER)) +#define G_CONVERTER_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_CONVERTER, GConverterIface)) + +/** + * GConverter: + * + * Seek object for streaming operations. + * + * Since: 2.24 + **/ +typedef struct _GConverterIface GConverterIface; + +/** + * GConverterIface: + * @g_iface: The parent interface. + * @convert: Converts data. + * @reset: Reverts the internal state of the converter to its initial state. + * + * Provides an interface for converting data from one type + * to another type. The conversion can be stateful + * and may fail at any place. + * + * Since: 2.24 + **/ +struct _GConverterIface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + + GConverterResult (* convert) (GConverter *converter, + const void *inbuf, + gsize inbuf_size, + void *outbuf, + gsize outbuf_size, + GConverterFlags flags, + gsize *bytes_read, + gsize *bytes_written, + GError **error); + void (* reset) (GConverter *converter); +}; + +GIO_AVAILABLE_IN_ALL +GType g_converter_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GConverterResult g_converter_convert (GConverter *converter, + const void *inbuf, + gsize inbuf_size, + void *outbuf, + gsize outbuf_size, + GConverterFlags flags, + gsize *bytes_read, + gsize *bytes_written, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_converter_reset (GConverter *converter); + + +G_END_DECLS + + +#endif /* __G_CONVERTER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gconverterinputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gconverterinputstream.h new file mode 100644 index 000000000..01de11ed3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gconverterinputstream.h @@ -0,0 +1,82 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2009 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_CONVERTER_INPUT_STREAM_H__ +#define __G_CONVERTER_INPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_CONVERTER_INPUT_STREAM (g_converter_input_stream_get_type ()) +#define G_CONVERTER_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_CONVERTER_INPUT_STREAM, GConverterInputStream)) +#define G_CONVERTER_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_CONVERTER_INPUT_STREAM, GConverterInputStreamClass)) +#define G_IS_CONVERTER_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_CONVERTER_INPUT_STREAM)) +#define G_IS_CONVERTER_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_CONVERTER_INPUT_STREAM)) +#define G_CONVERTER_INPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_CONVERTER_INPUT_STREAM, GConverterInputStreamClass)) + +/** + * GConverterInputStream: + * + * An implementation of #GFilterInputStream that allows data + * conversion. + **/ +typedef struct _GConverterInputStreamClass GConverterInputStreamClass; +typedef struct _GConverterInputStreamPrivate GConverterInputStreamPrivate; + +struct _GConverterInputStream +{ + GFilterInputStream parent_instance; + + /*< private >*/ + GConverterInputStreamPrivate *priv; +}; + +struct _GConverterInputStreamClass +{ + GFilterInputStreamClass parent_class; + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_converter_input_stream_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GInputStream *g_converter_input_stream_new (GInputStream *base_stream, + GConverter *converter); +GIO_AVAILABLE_IN_ALL +GConverter *g_converter_input_stream_get_converter (GConverterInputStream *converter_stream); + +G_END_DECLS + +#endif /* __G_CONVERTER_INPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gconverteroutputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gconverteroutputstream.h new file mode 100644 index 000000000..c09084606 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gconverteroutputstream.h @@ -0,0 +1,82 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2009 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_CONVERTER_OUTPUT_STREAM_H__ +#define __G_CONVERTER_OUTPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_CONVERTER_OUTPUT_STREAM (g_converter_output_stream_get_type ()) +#define G_CONVERTER_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_CONVERTER_OUTPUT_STREAM, GConverterOutputStream)) +#define G_CONVERTER_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_CONVERTER_OUTPUT_STREAM, GConverterOutputStreamClass)) +#define G_IS_CONVERTER_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_CONVERTER_OUTPUT_STREAM)) +#define G_IS_CONVERTER_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_CONVERTER_OUTPUT_STREAM)) +#define G_CONVERTER_OUTPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_CONVERTER_OUTPUT_STREAM, GConverterOutputStreamClass)) + +/** + * GConverterOutputStream: + * + * An implementation of #GFilterOutputStream that allows data + * conversion. + **/ +typedef struct _GConverterOutputStreamClass GConverterOutputStreamClass; +typedef struct _GConverterOutputStreamPrivate GConverterOutputStreamPrivate; + +struct _GConverterOutputStream +{ + GFilterOutputStream parent_instance; + + /*< private >*/ + GConverterOutputStreamPrivate *priv; +}; + +struct _GConverterOutputStreamClass +{ + GFilterOutputStreamClass parent_class; + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_converter_output_stream_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GOutputStream *g_converter_output_stream_new (GOutputStream *base_stream, + GConverter *converter); +GIO_AVAILABLE_IN_ALL +GConverter *g_converter_output_stream_get_converter (GConverterOutputStream *converter_stream); + +G_END_DECLS + +#endif /* __G_CONVERTER_OUTPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gcredentials.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gcredentials.h new file mode 100644 index 000000000..c30f31fc1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gcredentials.h @@ -0,0 +1,87 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_CREDENTIALS_H__ +#define __G_CREDENTIALS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +#ifdef G_OS_UNIX +/* To get the uid_t type */ +#include +#include +#endif + +G_BEGIN_DECLS + +#define G_TYPE_CREDENTIALS (g_credentials_get_type ()) +#define G_CREDENTIALS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_CREDENTIALS, GCredentials)) +#define G_CREDENTIALS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_CREDENTIALS, GCredentialsClass)) +#define G_CREDENTIALS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_CREDENTIALS, GCredentialsClass)) +#define G_IS_CREDENTIALS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_CREDENTIALS)) +#define G_IS_CREDENTIALS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_CREDENTIALS)) + +typedef struct _GCredentialsClass GCredentialsClass; + +GIO_AVAILABLE_IN_ALL +GType g_credentials_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GCredentials *g_credentials_new (void); + +GIO_AVAILABLE_IN_ALL +gchar *g_credentials_to_string (GCredentials *credentials); + +GIO_AVAILABLE_IN_ALL +gpointer g_credentials_get_native (GCredentials *credentials, + GCredentialsType native_type); + +GIO_AVAILABLE_IN_ALL +void g_credentials_set_native (GCredentials *credentials, + GCredentialsType native_type, + gpointer native); + +GIO_AVAILABLE_IN_ALL +gboolean g_credentials_is_same_user (GCredentials *credentials, + GCredentials *other_credentials, + GError **error); + +#ifdef G_OS_UNIX +GIO_AVAILABLE_IN_2_36 +pid_t g_credentials_get_unix_pid (GCredentials *credentials, + GError **error); +GIO_AVAILABLE_IN_ALL +uid_t g_credentials_get_unix_user (GCredentials *credentials, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_credentials_set_unix_user (GCredentials *credentials, + uid_t uid, + GError **error); +#endif + +G_END_DECLS + +#endif /* __G_CREDENTIALS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdatagrambased.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdatagrambased.h new file mode 100644 index 000000000..585728c3f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdatagrambased.h @@ -0,0 +1,146 @@ +/* + * Copyright 2015 Collabora Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Philip Withnall + */ + +#ifndef __G_DATAGRAM_BASED_H__ +#define __G_DATAGRAM_BASED_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DATAGRAM_BASED (g_datagram_based_get_type ()) +#define G_DATAGRAM_BASED(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_DATAGRAM_BASED, GDatagramBased)) +#define G_IS_DATAGRAM_BASED(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_DATAGRAM_BASED)) +#define G_DATAGRAM_BASED_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), \ + G_TYPE_DATAGRAM_BASED, \ + GDatagramBasedInterface)) +#define G_TYPE_IS_DATAGRAM_BASED(type) (g_type_is_a ((type), \ + G_TYPE_DATAGRAM_BASED)) + +/** + * GDatagramBased: + * + * Interface for socket-like objects with datagram semantics. + * + * Since: 2.48 + */ +typedef struct _GDatagramBasedInterface GDatagramBasedInterface; + +/** + * GDatagramBasedInterface: + * @g_iface: The parent interface. + * @receive_messages: Virtual method for g_datagram_based_receive_messages(). + * @send_messages: Virtual method for g_datagram_based_send_messages(). + * @create_source: Virtual method for g_datagram_based_create_source(). + * @condition_check: Virtual method for g_datagram_based_condition_check(). + * @condition_wait: Virtual method for + * g_datagram_based_condition_wait(). + * + * Provides an interface for socket-like objects which have datagram semantics, + * following the Berkeley sockets API. The interface methods are thin wrappers + * around the corresponding virtual methods, and no pre-processing of inputs is + * implemented — so implementations of this API must handle all functionality + * documented in the interface methods. + * + * Since: 2.48 + */ +struct _GDatagramBasedInterface +{ + GTypeInterface g_iface; + + /* Virtual table */ + gint (*receive_messages) (GDatagramBased *datagram_based, + GInputMessage *messages, + guint num_messages, + gint flags, + gint64 timeout, + GCancellable *cancellable, + GError **error); + gint (*send_messages) (GDatagramBased *datagram_based, + GOutputMessage *messages, + guint num_messages, + gint flags, + gint64 timeout, + GCancellable *cancellable, + GError **error); + + GSource *(*create_source) (GDatagramBased *datagram_based, + GIOCondition condition, + GCancellable *cancellable); + GIOCondition (*condition_check) (GDatagramBased *datagram_based, + GIOCondition condition); + gboolean (*condition_wait) (GDatagramBased *datagram_based, + GIOCondition condition, + gint64 timeout, + GCancellable *cancellable, + GError **error); +}; + +GIO_AVAILABLE_IN_2_48 +GType +g_datagram_based_get_type (void); + +GIO_AVAILABLE_IN_2_48 +gint +g_datagram_based_receive_messages (GDatagramBased *datagram_based, + GInputMessage *messages, + guint num_messages, + gint flags, + gint64 timeout, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_48 +gint +g_datagram_based_send_messages (GDatagramBased *datagram_based, + GOutputMessage *messages, + guint num_messages, + gint flags, + gint64 timeout, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_48 +GSource * +g_datagram_based_create_source (GDatagramBased *datagram_based, + GIOCondition condition, + GCancellable *cancellable); +GIO_AVAILABLE_IN_2_48 +GIOCondition +g_datagram_based_condition_check (GDatagramBased *datagram_based, + GIOCondition condition); +GIO_AVAILABLE_IN_2_48 +gboolean +g_datagram_based_condition_wait (GDatagramBased *datagram_based, + GIOCondition condition, + gint64 timeout, + GCancellable *cancellable, + GError **error); + +G_END_DECLS + +#endif /* __G_DATAGRAM_BASED_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdatainputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdatainputstream.h new file mode 100644 index 000000000..e13029553 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdatainputstream.h @@ -0,0 +1,182 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_DATA_INPUT_STREAM_H__ +#define __G_DATA_INPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DATA_INPUT_STREAM (g_data_input_stream_get_type ()) +#define G_DATA_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DATA_INPUT_STREAM, GDataInputStream)) +#define G_DATA_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DATA_INPUT_STREAM, GDataInputStreamClass)) +#define G_IS_DATA_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DATA_INPUT_STREAM)) +#define G_IS_DATA_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_DATA_INPUT_STREAM)) +#define G_DATA_INPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_DATA_INPUT_STREAM, GDataInputStreamClass)) + +/** + * GDataInputStream: + * + * An implementation of #GBufferedInputStream that allows for high-level + * data manipulation of arbitrary data (including binary operations). + **/ +typedef struct _GDataInputStreamClass GDataInputStreamClass; +typedef struct _GDataInputStreamPrivate GDataInputStreamPrivate; + +struct _GDataInputStream +{ + GBufferedInputStream parent_instance; + + /*< private >*/ + GDataInputStreamPrivate *priv; +}; + +struct _GDataInputStreamClass +{ + GBufferedInputStreamClass parent_class; + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_data_input_stream_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GDataInputStream * g_data_input_stream_new (GInputStream *base_stream); + +GIO_AVAILABLE_IN_ALL +void g_data_input_stream_set_byte_order (GDataInputStream *stream, + GDataStreamByteOrder order); +GIO_AVAILABLE_IN_ALL +GDataStreamByteOrder g_data_input_stream_get_byte_order (GDataInputStream *stream); +GIO_AVAILABLE_IN_ALL +void g_data_input_stream_set_newline_type (GDataInputStream *stream, + GDataStreamNewlineType type); +GIO_AVAILABLE_IN_ALL +GDataStreamNewlineType g_data_input_stream_get_newline_type (GDataInputStream *stream); +GIO_AVAILABLE_IN_ALL +guchar g_data_input_stream_read_byte (GDataInputStream *stream, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gint16 g_data_input_stream_read_int16 (GDataInputStream *stream, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +guint16 g_data_input_stream_read_uint16 (GDataInputStream *stream, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gint32 g_data_input_stream_read_int32 (GDataInputStream *stream, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +guint32 g_data_input_stream_read_uint32 (GDataInputStream *stream, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gint64 g_data_input_stream_read_int64 (GDataInputStream *stream, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +guint64 g_data_input_stream_read_uint64 (GDataInputStream *stream, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +char * g_data_input_stream_read_line (GDataInputStream *stream, + gsize *length, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_30 +char * g_data_input_stream_read_line_utf8 (GDataInputStream *stream, + gsize *length, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_data_input_stream_read_line_async (GDataInputStream *stream, + gint io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +char * g_data_input_stream_read_line_finish (GDataInputStream *stream, + GAsyncResult *result, + gsize *length, + GError **error); +GIO_AVAILABLE_IN_2_30 +char * g_data_input_stream_read_line_finish_utf8(GDataInputStream *stream, + GAsyncResult *result, + gsize *length, + GError **error); +GIO_DEPRECATED_IN_2_56_FOR (g_data_input_stream_read_upto) +char * g_data_input_stream_read_until (GDataInputStream *stream, + const gchar *stop_chars, + gsize *length, + GCancellable *cancellable, + GError **error); +GIO_DEPRECATED_IN_2_56_FOR (g_data_input_stream_read_upto_async) +void g_data_input_stream_read_until_async (GDataInputStream *stream, + const gchar *stop_chars, + gint io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_DEPRECATED_IN_2_56_FOR (g_data_input_stream_read_upto_finish) +char * g_data_input_stream_read_until_finish (GDataInputStream *stream, + GAsyncResult *result, + gsize *length, + GError **error); + +GIO_AVAILABLE_IN_ALL +char * g_data_input_stream_read_upto (GDataInputStream *stream, + const gchar *stop_chars, + gssize stop_chars_len, + gsize *length, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_data_input_stream_read_upto_async (GDataInputStream *stream, + const gchar *stop_chars, + gssize stop_chars_len, + gint io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +char * g_data_input_stream_read_upto_finish (GDataInputStream *stream, + GAsyncResult *result, + gsize *length, + GError **error); + +G_END_DECLS + +#endif /* __G_DATA_INPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdataoutputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdataoutputstream.h new file mode 100644 index 000000000..a8d434a40 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdataoutputstream.h @@ -0,0 +1,127 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_DATA_OUTPUT_STREAM_H__ +#define __G_DATA_OUTPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DATA_OUTPUT_STREAM (g_data_output_stream_get_type ()) +#define G_DATA_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DATA_OUTPUT_STREAM, GDataOutputStream)) +#define G_DATA_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DATA_OUTPUT_STREAM, GDataOutputStreamClass)) +#define G_IS_DATA_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DATA_OUTPUT_STREAM)) +#define G_IS_DATA_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_DATA_OUTPUT_STREAM)) +#define G_DATA_OUTPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_DATA_OUTPUT_STREAM, GDataOutputStreamClass)) + +/** + * GDataOutputStream: + * + * An implementation of #GBufferedOutputStream that allows for high-level + * data manipulation of arbitrary data (including binary operations). + **/ +typedef struct _GDataOutputStream GDataOutputStream; +typedef struct _GDataOutputStreamClass GDataOutputStreamClass; +typedef struct _GDataOutputStreamPrivate GDataOutputStreamPrivate; + +struct _GDataOutputStream +{ + GFilterOutputStream parent_instance; + + /*< private >*/ + GDataOutputStreamPrivate *priv; +}; + +struct _GDataOutputStreamClass +{ + GFilterOutputStreamClass parent_class; + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + + +GIO_AVAILABLE_IN_ALL +GType g_data_output_stream_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GDataOutputStream * g_data_output_stream_new (GOutputStream *base_stream); + +GIO_AVAILABLE_IN_ALL +void g_data_output_stream_set_byte_order (GDataOutputStream *stream, + GDataStreamByteOrder order); +GIO_AVAILABLE_IN_ALL +GDataStreamByteOrder g_data_output_stream_get_byte_order (GDataOutputStream *stream); + +GIO_AVAILABLE_IN_ALL +gboolean g_data_output_stream_put_byte (GDataOutputStream *stream, + guchar data, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_data_output_stream_put_int16 (GDataOutputStream *stream, + gint16 data, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_data_output_stream_put_uint16 (GDataOutputStream *stream, + guint16 data, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_data_output_stream_put_int32 (GDataOutputStream *stream, + gint32 data, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_data_output_stream_put_uint32 (GDataOutputStream *stream, + guint32 data, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_data_output_stream_put_int64 (GDataOutputStream *stream, + gint64 data, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_data_output_stream_put_uint64 (GDataOutputStream *stream, + guint64 data, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_data_output_stream_put_string (GDataOutputStream *stream, + const char *str, + GCancellable *cancellable, + GError **error); + +G_END_DECLS + +#endif /* __G_DATA_OUTPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusactiongroup.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusactiongroup.h new file mode 100644 index 000000000..84868f07e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusactiongroup.h @@ -0,0 +1,56 @@ +/* + * Copyright © 2010 Codethink Limited + * Copyright © 2011 Canonical Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_DBUS_ACTION_GROUP_H__ +#define __G_DBUS_ACTION_GROUP_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include "giotypes.h" + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_ACTION_GROUP (g_dbus_action_group_get_type ()) +#define G_DBUS_ACTION_GROUP(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_DBUS_ACTION_GROUP, GDBusActionGroup)) +#define G_DBUS_ACTION_GROUP_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_DBUS_ACTION_GROUP, GDBusActionGroupClass)) +#define G_IS_DBUS_ACTION_GROUP(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_DBUS_ACTION_GROUP)) +#define G_IS_DBUS_ACTION_GROUP_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_DBUS_ACTION_GROUP)) +#define G_DBUS_ACTION_GROUP_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_DBUS_ACTION_GROUP, GDBusActionGroupClass)) + +GIO_AVAILABLE_IN_ALL +GType g_dbus_action_group_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_32 +GDBusActionGroup * g_dbus_action_group_get (GDBusConnection *connection, + const gchar *bus_name, + const gchar *object_path); + +G_END_DECLS + +#endif /* __G_DBUS_ACTION_GROUP_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusaddress.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusaddress.h new file mode 100644 index 000000000..09734adef --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusaddress.h @@ -0,0 +1,67 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_ADDRESS_H__ +#define __G_DBUS_ADDRESS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GIO_AVAILABLE_IN_2_36 +gchar *g_dbus_address_escape_value (const gchar *string); + +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_is_address (const gchar *string); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_is_supported_address (const gchar *string, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_dbus_address_get_stream (const gchar *address, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_ALL +GIOStream *g_dbus_address_get_stream_finish (GAsyncResult *res, + gchar **out_guid, + GError **error); + +GIO_AVAILABLE_IN_ALL +GIOStream *g_dbus_address_get_stream_sync (const gchar *address, + gchar **out_guid, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +gchar *g_dbus_address_get_for_bus_sync (GBusType bus_type, + GCancellable *cancellable, + GError **error); + +G_END_DECLS + +#endif /* __G_DBUS_ADDRESS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusauthobserver.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusauthobserver.h new file mode 100644 index 000000000..715095d40 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusauthobserver.h @@ -0,0 +1,53 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_AUTH_OBSERVER_H__ +#define __G_DBUS_AUTH_OBSERVER_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_AUTH_OBSERVER (g_dbus_auth_observer_get_type ()) +#define G_DBUS_AUTH_OBSERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_AUTH_OBSERVER, GDBusAuthObserver)) +#define G_IS_DBUS_AUTH_OBSERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_AUTH_OBSERVER)) + +GIO_AVAILABLE_IN_ALL +GType g_dbus_auth_observer_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GDBusAuthObserver *g_dbus_auth_observer_new (void); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_auth_observer_authorize_authenticated_peer (GDBusAuthObserver *observer, + GIOStream *stream, + GCredentials *credentials); + +GIO_AVAILABLE_IN_2_34 +gboolean g_dbus_auth_observer_allow_mechanism (GDBusAuthObserver *observer, + const gchar *mechanism); + +G_END_DECLS + +#endif /* _G_DBUS_AUTH_OBSERVER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusconnection.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusconnection.h new file mode 100644 index 000000000..3a8cb9d27 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusconnection.h @@ -0,0 +1,691 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_CONNECTION_H__ +#define __G_DBUS_CONNECTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_CONNECTION (g_dbus_connection_get_type ()) +#define G_DBUS_CONNECTION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_CONNECTION, GDBusConnection)) +#define G_IS_DBUS_CONNECTION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_CONNECTION)) + +GIO_AVAILABLE_IN_ALL +GType g_dbus_connection_get_type (void) G_GNUC_CONST; + +/* ---------------------------------------------------------------------------------------------------- */ + +GIO_AVAILABLE_IN_ALL +void g_bus_get (GBusType bus_type, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GDBusConnection *g_bus_get_finish (GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GDBusConnection *g_bus_get_sync (GBusType bus_type, + GCancellable *cancellable, + GError **error); + +/* ---------------------------------------------------------------------------------------------------- */ + +GIO_AVAILABLE_IN_ALL +void g_dbus_connection_new (GIOStream *stream, + const gchar *guid, + GDBusConnectionFlags flags, + GDBusAuthObserver *observer, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GDBusConnection *g_dbus_connection_new_finish (GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GDBusConnection *g_dbus_connection_new_sync (GIOStream *stream, + const gchar *guid, + GDBusConnectionFlags flags, + GDBusAuthObserver *observer, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_dbus_connection_new_for_address (const gchar *address, + GDBusConnectionFlags flags, + GDBusAuthObserver *observer, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GDBusConnection *g_dbus_connection_new_for_address_finish (GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GDBusConnection *g_dbus_connection_new_for_address_sync (const gchar *address, + GDBusConnectionFlags flags, + GDBusAuthObserver *observer, + GCancellable *cancellable, + GError **error); + +/* ---------------------------------------------------------------------------------------------------- */ + +GIO_AVAILABLE_IN_ALL +void g_dbus_connection_start_message_processing (GDBusConnection *connection); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_connection_is_closed (GDBusConnection *connection); +GIO_AVAILABLE_IN_ALL +GIOStream *g_dbus_connection_get_stream (GDBusConnection *connection); +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_connection_get_guid (GDBusConnection *connection); +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_connection_get_unique_name (GDBusConnection *connection); +GIO_AVAILABLE_IN_ALL +GCredentials *g_dbus_connection_get_peer_credentials (GDBusConnection *connection); + +GIO_AVAILABLE_IN_2_34 +guint32 g_dbus_connection_get_last_serial (GDBusConnection *connection); + +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_connection_get_exit_on_close (GDBusConnection *connection); +GIO_AVAILABLE_IN_ALL +void g_dbus_connection_set_exit_on_close (GDBusConnection *connection, + gboolean exit_on_close); +GIO_AVAILABLE_IN_ALL +GDBusCapabilityFlags g_dbus_connection_get_capabilities (GDBusConnection *connection); +GIO_AVAILABLE_IN_2_60 +GDBusConnectionFlags g_dbus_connection_get_flags (GDBusConnection *connection); + +/* ---------------------------------------------------------------------------------------------------- */ + +GIO_AVAILABLE_IN_ALL +void g_dbus_connection_close (GDBusConnection *connection, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_connection_close_finish (GDBusConnection *connection, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_connection_close_sync (GDBusConnection *connection, + GCancellable *cancellable, + GError **error); + +/* ---------------------------------------------------------------------------------------------------- */ + +GIO_AVAILABLE_IN_ALL +void g_dbus_connection_flush (GDBusConnection *connection, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_connection_flush_finish (GDBusConnection *connection, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_connection_flush_sync (GDBusConnection *connection, + GCancellable *cancellable, + GError **error); + +/* ---------------------------------------------------------------------------------------------------- */ + +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_connection_send_message (GDBusConnection *connection, + GDBusMessage *message, + GDBusSendMessageFlags flags, + volatile guint32 *out_serial, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_dbus_connection_send_message_with_reply (GDBusConnection *connection, + GDBusMessage *message, + GDBusSendMessageFlags flags, + gint timeout_msec, + volatile guint32 *out_serial, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GDBusMessage *g_dbus_connection_send_message_with_reply_finish (GDBusConnection *connection, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GDBusMessage *g_dbus_connection_send_message_with_reply_sync (GDBusConnection *connection, + GDBusMessage *message, + GDBusSendMessageFlags flags, + gint timeout_msec, + volatile guint32 *out_serial, + GCancellable *cancellable, + GError **error); + +/* ---------------------------------------------------------------------------------------------------- */ + +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_connection_emit_signal (GDBusConnection *connection, + const gchar *destination_bus_name, + const gchar *object_path, + const gchar *interface_name, + const gchar *signal_name, + GVariant *parameters, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_dbus_connection_call (GDBusConnection *connection, + const gchar *bus_name, + const gchar *object_path, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + const GVariantType *reply_type, + GDBusCallFlags flags, + gint timeout_msec, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GVariant *g_dbus_connection_call_finish (GDBusConnection *connection, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GVariant *g_dbus_connection_call_sync (GDBusConnection *connection, + const gchar *bus_name, + const gchar *object_path, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + const GVariantType *reply_type, + GDBusCallFlags flags, + gint timeout_msec, + GCancellable *cancellable, + GError **error); + +#ifdef G_OS_UNIX + +GIO_AVAILABLE_IN_2_30 +void g_dbus_connection_call_with_unix_fd_list (GDBusConnection *connection, + const gchar *bus_name, + const gchar *object_path, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + const GVariantType *reply_type, + GDBusCallFlags flags, + gint timeout_msec, + GUnixFDList *fd_list, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_30 +GVariant *g_dbus_connection_call_with_unix_fd_list_finish (GDBusConnection *connection, + GUnixFDList **out_fd_list, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_2_30 +GVariant *g_dbus_connection_call_with_unix_fd_list_sync (GDBusConnection *connection, + const gchar *bus_name, + const gchar *object_path, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + const GVariantType *reply_type, + GDBusCallFlags flags, + gint timeout_msec, + GUnixFDList *fd_list, + GUnixFDList **out_fd_list, + GCancellable *cancellable, + GError **error); + +#endif /* G_OS_UNIX */ + +/* ---------------------------------------------------------------------------------------------------- */ + + +/** + * GDBusInterfaceMethodCallFunc: + * @connection: A #GDBusConnection. + * @sender: The unique bus name of the remote caller. + * @object_path: The object path that the method was invoked on. + * @interface_name: The D-Bus interface name the method was invoked on. + * @method_name: The name of the method that was invoked. + * @parameters: A #GVariant tuple with parameters. + * @invocation: (transfer full): A #GDBusMethodInvocation object that must be used to return a value or error. + * @user_data: The @user_data #gpointer passed to g_dbus_connection_register_object(). + * + * The type of the @method_call function in #GDBusInterfaceVTable. + * + * Since: 2.26 + */ +typedef void (*GDBusInterfaceMethodCallFunc) (GDBusConnection *connection, + const gchar *sender, + const gchar *object_path, + const gchar *interface_name, + const gchar *method_name, + GVariant *parameters, + GDBusMethodInvocation *invocation, + gpointer user_data); + +/** + * GDBusInterfaceGetPropertyFunc: + * @connection: A #GDBusConnection. + * @sender: The unique bus name of the remote caller. + * @object_path: The object path that the method was invoked on. + * @interface_name: The D-Bus interface name for the property. + * @property_name: The name of the property to get the value of. + * @error: Return location for error. + * @user_data: The @user_data #gpointer passed to g_dbus_connection_register_object(). + * + * The type of the @get_property function in #GDBusInterfaceVTable. + * + * Returns: A #GVariant with the value for @property_name or %NULL if + * @error is set. If the returned #GVariant is floating, it is + * consumed - otherwise its reference count is decreased by one. + * + * Since: 2.26 + */ +typedef GVariant *(*GDBusInterfaceGetPropertyFunc) (GDBusConnection *connection, + const gchar *sender, + const gchar *object_path, + const gchar *interface_name, + const gchar *property_name, + GError **error, + gpointer user_data); + +/** + * GDBusInterfaceSetPropertyFunc: + * @connection: A #GDBusConnection. + * @sender: The unique bus name of the remote caller. + * @object_path: The object path that the method was invoked on. + * @interface_name: The D-Bus interface name for the property. + * @property_name: The name of the property to get the value of. + * @value: The value to set the property to. + * @error: Return location for error. + * @user_data: The @user_data #gpointer passed to g_dbus_connection_register_object(). + * + * The type of the @set_property function in #GDBusInterfaceVTable. + * + * Returns: %TRUE if the property was set to @value, %FALSE if @error is set. + * + * Since: 2.26 + */ +typedef gboolean (*GDBusInterfaceSetPropertyFunc) (GDBusConnection *connection, + const gchar *sender, + const gchar *object_path, + const gchar *interface_name, + const gchar *property_name, + GVariant *value, + GError **error, + gpointer user_data); + +/** + * GDBusInterfaceVTable: + * @method_call: Function for handling incoming method calls. + * @get_property: Function for getting a property. + * @set_property: Function for setting a property. + * + * Virtual table for handling properties and method calls for a D-Bus + * interface. + * + * Since 2.38, if you want to handle getting/setting D-Bus properties + * asynchronously, give %NULL as your get_property() or set_property() + * function. The D-Bus call will be directed to your @method_call function, + * with the provided @interface_name set to "org.freedesktop.DBus.Properties". + * + * Ownership of the #GDBusMethodInvocation object passed to the + * method_call() function is transferred to your handler; you must + * call one of the methods of #GDBusMethodInvocation to return a reply + * (possibly empty), or an error. These functions also take ownership + * of the passed-in invocation object, so unless the invocation + * object has otherwise been referenced, it will be then be freed. + * Calling one of these functions may be done within your + * method_call() implementation but it also can be done at a later + * point to handle the method asynchronously. + * + * The usual checks on the validity of the calls is performed. For + * `Get` calls, an error is automatically returned if the property does + * not exist or the permissions do not allow access. The same checks are + * performed for `Set` calls, and the provided value is also checked for + * being the correct type. + * + * For both `Get` and `Set` calls, the #GDBusMethodInvocation + * passed to the @method_call handler can be queried with + * g_dbus_method_invocation_get_property_info() to get a pointer + * to the #GDBusPropertyInfo of the property. + * + * If you have readable properties specified in your interface info, + * you must ensure that you either provide a non-%NULL @get_property() + * function or provide implementations of both the `Get` and `GetAll` + * methods on org.freedesktop.DBus.Properties interface in your @method_call + * function. Note that the required return type of the `Get` call is + * `(v)`, not the type of the property. `GetAll` expects a return value + * of type `a{sv}`. + * + * If you have writable properties specified in your interface info, + * you must ensure that you either provide a non-%NULL @set_property() + * function or provide an implementation of the `Set` call. If implementing + * the call, you must return the value of type %G_VARIANT_TYPE_UNIT. + * + * Since: 2.26 + */ +struct _GDBusInterfaceVTable +{ + GDBusInterfaceMethodCallFunc method_call; + GDBusInterfaceGetPropertyFunc get_property; + GDBusInterfaceSetPropertyFunc set_property; + + /*< private >*/ + /* Padding for future expansion - also remember to update + * gdbusconnection.c:_g_dbus_interface_vtable_copy() when + * changing this. + */ + gpointer padding[8]; +}; + +GIO_AVAILABLE_IN_ALL +guint g_dbus_connection_register_object (GDBusConnection *connection, + const gchar *object_path, + GDBusInterfaceInfo *interface_info, + const GDBusInterfaceVTable *vtable, + gpointer user_data, + GDestroyNotify user_data_free_func, + GError **error); +GIO_AVAILABLE_IN_2_46 +guint g_dbus_connection_register_object_with_closures (GDBusConnection *connection, + const gchar *object_path, + GDBusInterfaceInfo *interface_info, + GClosure *method_call_closure, + GClosure *get_property_closure, + GClosure *set_property_closure, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_connection_unregister_object (GDBusConnection *connection, + guint registration_id); + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * GDBusSubtreeEnumerateFunc: + * @connection: A #GDBusConnection. + * @sender: The unique bus name of the remote caller. + * @object_path: The object path that was registered with g_dbus_connection_register_subtree(). + * @user_data: The @user_data #gpointer passed to g_dbus_connection_register_subtree(). + * + * The type of the @enumerate function in #GDBusSubtreeVTable. + * + * This function is called when generating introspection data and also + * when preparing to dispatch incoming messages in the event that the + * %G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES flag is not + * specified (ie: to verify that the object path is valid). + * + * Hierarchies are not supported; the items that you return should not + * contain the `/` character. + * + * The return value will be freed with g_strfreev(). + * + * Returns: (array zero-terminated=1) (transfer full): A newly allocated array of strings for node names that are children of @object_path. + * + * Since: 2.26 + */ +typedef gchar** (*GDBusSubtreeEnumerateFunc) (GDBusConnection *connection, + const gchar *sender, + const gchar *object_path, + gpointer user_data); + +/** + * GDBusSubtreeIntrospectFunc: + * @connection: A #GDBusConnection. + * @sender: The unique bus name of the remote caller. + * @object_path: The object path that was registered with g_dbus_connection_register_subtree(). + * @node: A node that is a child of @object_path (relative to @object_path) or %NULL for the root of the subtree. + * @user_data: The @user_data #gpointer passed to g_dbus_connection_register_subtree(). + * + * The type of the @introspect function in #GDBusSubtreeVTable. + * + * Subtrees are flat. @node, if non-%NULL, is always exactly one + * segment of the object path (ie: it never contains a slash). + * + * This function should return %NULL to indicate that there is no object + * at this node. + * + * If this function returns non-%NULL, the return value is expected to + * be a %NULL-terminated array of pointers to #GDBusInterfaceInfo + * structures describing the interfaces implemented by @node. This + * array will have g_dbus_interface_info_unref() called on each item + * before being freed with g_free(). + * + * The difference between returning %NULL and an array containing zero + * items is that the standard DBus interfaces will returned to the + * remote introspector in the empty array case, but not in the %NULL + * case. + * + * Returns: (array zero-terminated=1) (nullable) (transfer full): A %NULL-terminated array of pointers to #GDBusInterfaceInfo, or %NULL. + * + * Since: 2.26 + */ +typedef GDBusInterfaceInfo ** (*GDBusSubtreeIntrospectFunc) (GDBusConnection *connection, + const gchar *sender, + const gchar *object_path, + const gchar *node, + gpointer user_data); + +/** + * GDBusSubtreeDispatchFunc: + * @connection: A #GDBusConnection. + * @sender: The unique bus name of the remote caller. + * @object_path: The object path that was registered with g_dbus_connection_register_subtree(). + * @interface_name: The D-Bus interface name that the method call or property access is for. + * @node: A node that is a child of @object_path (relative to @object_path) or %NULL for the root of the subtree. + * @out_user_data: (nullable) (not optional): Return location for user data to pass to functions in the returned #GDBusInterfaceVTable. + * @user_data: The @user_data #gpointer passed to g_dbus_connection_register_subtree(). + * + * The type of the @dispatch function in #GDBusSubtreeVTable. + * + * Subtrees are flat. @node, if non-%NULL, is always exactly one + * segment of the object path (ie: it never contains a slash). + * + * Returns: (nullable): A #GDBusInterfaceVTable or %NULL if you don't want to handle the methods. + * + * Since: 2.26 + */ +typedef const GDBusInterfaceVTable * (*GDBusSubtreeDispatchFunc) (GDBusConnection *connection, + const gchar *sender, + const gchar *object_path, + const gchar *interface_name, + const gchar *node, + gpointer *out_user_data, + gpointer user_data); + +/** + * GDBusSubtreeVTable: + * @enumerate: Function for enumerating child nodes. + * @introspect: Function for introspecting a child node. + * @dispatch: Function for dispatching a remote call on a child node. + * + * Virtual table for handling subtrees registered with g_dbus_connection_register_subtree(). + * + * Since: 2.26 + */ +struct _GDBusSubtreeVTable +{ + GDBusSubtreeEnumerateFunc enumerate; + GDBusSubtreeIntrospectFunc introspect; + GDBusSubtreeDispatchFunc dispatch; + + /*< private >*/ + /* Padding for future expansion - also remember to update + * gdbusconnection.c:_g_dbus_subtree_vtable_copy() when + * changing this. + */ + gpointer padding[8]; +}; + +GIO_AVAILABLE_IN_ALL +guint g_dbus_connection_register_subtree (GDBusConnection *connection, + const gchar *object_path, + const GDBusSubtreeVTable *vtable, + GDBusSubtreeFlags flags, + gpointer user_data, + GDestroyNotify user_data_free_func, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_connection_unregister_subtree (GDBusConnection *connection, + guint registration_id); + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * GDBusSignalCallback: + * @connection: A #GDBusConnection. + * @sender_name: (nullable): The unique bus name of the sender of the signal, + or %NULL on a peer-to-peer D-Bus connection. + * @object_path: The object path that the signal was emitted on. + * @interface_name: The name of the interface. + * @signal_name: The name of the signal. + * @parameters: A #GVariant tuple with parameters for the signal. + * @user_data: User data passed when subscribing to the signal. + * + * Signature for callback function used in g_dbus_connection_signal_subscribe(). + * + * Since: 2.26 + */ +typedef void (*GDBusSignalCallback) (GDBusConnection *connection, + const gchar *sender_name, + const gchar *object_path, + const gchar *interface_name, + const gchar *signal_name, + GVariant *parameters, + gpointer user_data); + +GIO_AVAILABLE_IN_ALL +guint g_dbus_connection_signal_subscribe (GDBusConnection *connection, + const gchar *sender, + const gchar *interface_name, + const gchar *member, + const gchar *object_path, + const gchar *arg0, + GDBusSignalFlags flags, + GDBusSignalCallback callback, + gpointer user_data, + GDestroyNotify user_data_free_func); +GIO_AVAILABLE_IN_ALL +void g_dbus_connection_signal_unsubscribe (GDBusConnection *connection, + guint subscription_id); + +/* ---------------------------------------------------------------------------------------------------- */ + +/** + * GDBusMessageFilterFunction: + * @connection: (transfer none): A #GDBusConnection. + * @message: (transfer full): A locked #GDBusMessage that the filter function takes ownership of. + * @incoming: %TRUE if it is a message received from the other peer, %FALSE if it is + * a message to be sent to the other peer. + * @user_data: User data passed when adding the filter. + * + * Signature for function used in g_dbus_connection_add_filter(). + * + * A filter function is passed a #GDBusMessage and expected to return + * a #GDBusMessage too. Passive filter functions that don't modify the + * message can simply return the @message object: + * |[ + * static GDBusMessage * + * passive_filter (GDBusConnection *connection + * GDBusMessage *message, + * gboolean incoming, + * gpointer user_data) + * { + * // inspect @message + * return message; + * } + * ]| + * Filter functions that wants to drop a message can simply return %NULL: + * |[ + * static GDBusMessage * + * drop_filter (GDBusConnection *connection + * GDBusMessage *message, + * gboolean incoming, + * gpointer user_data) + * { + * if (should_drop_message) + * { + * g_object_unref (message); + * message = NULL; + * } + * return message; + * } + * ]| + * Finally, a filter function may modify a message by copying it: + * |[ + * static GDBusMessage * + * modifying_filter (GDBusConnection *connection + * GDBusMessage *message, + * gboolean incoming, + * gpointer user_data) + * { + * GDBusMessage *copy; + * GError *error; + * + * error = NULL; + * copy = g_dbus_message_copy (message, &error); + * // handle @error being set + * g_object_unref (message); + * + * // modify @copy + * + * return copy; + * } + * ]| + * If the returned #GDBusMessage is different from @message and cannot + * be sent on @connection (it could use features, such as file + * descriptors, not compatible with @connection), then a warning is + * logged to standard error. Applications can + * check this ahead of time using g_dbus_message_to_blob() passing a + * #GDBusCapabilityFlags value obtained from @connection. + * + * Returns: (transfer full) (nullable): A #GDBusMessage that will be freed with + * g_object_unref() or %NULL to drop the message. Passive filter + * functions can simply return the passed @message object. + * + * Since: 2.26 + */ +typedef GDBusMessage *(*GDBusMessageFilterFunction) (GDBusConnection *connection, + GDBusMessage *message, + gboolean incoming, + gpointer user_data); + +GIO_AVAILABLE_IN_ALL +guint g_dbus_connection_add_filter (GDBusConnection *connection, + GDBusMessageFilterFunction filter_function, + gpointer user_data, + GDestroyNotify user_data_free_func); + +GIO_AVAILABLE_IN_ALL +void g_dbus_connection_remove_filter (GDBusConnection *connection, + guint filter_id); + +/* ---------------------------------------------------------------------------------------------------- */ + + +G_END_DECLS + +#endif /* __G_DBUS_CONNECTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbuserror.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbuserror.h new file mode 100644 index 000000000..6a849348f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbuserror.h @@ -0,0 +1,111 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_ERROR_H__ +#define __G_DBUS_ERROR_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * G_DBUS_ERROR: + * + * Error domain for errors generated by a remote message bus. Errors + * in this domain will be from the #GDBusError enumeration. See + * #GError for more information on error domains. + * + * Note that this error domain is intended only for + * returning errors from a remote message bus process. Errors + * generated locally in-process by e.g. #GDBusConnection should use the + * %G_IO_ERROR domain. + * + * Since: 2.26 + */ +#define G_DBUS_ERROR g_dbus_error_quark() + +GIO_AVAILABLE_IN_ALL +GQuark g_dbus_error_quark (void); + +/* Used by applications to check, get and strip the D-Bus error name */ +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_error_is_remote_error (const GError *error); +GIO_AVAILABLE_IN_ALL +gchar *g_dbus_error_get_remote_error (const GError *error); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_error_strip_remote_error (GError *error); + +/** + * GDBusErrorEntry: + * @error_code: An error code. + * @dbus_error_name: The D-Bus error name to associate with @error_code. + * + * Struct used in g_dbus_error_register_error_domain(). + * + * Since: 2.26 + */ +struct _GDBusErrorEntry +{ + gint error_code; + const gchar *dbus_error_name; +}; + +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_error_register_error (GQuark error_domain, + gint error_code, + const gchar *dbus_error_name); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_error_unregister_error (GQuark error_domain, + gint error_code, + const gchar *dbus_error_name); +GIO_AVAILABLE_IN_ALL +void g_dbus_error_register_error_domain (const gchar *error_domain_quark_name, + volatile gsize *quark_volatile, + const GDBusErrorEntry *entries, + guint num_entries); + +/* Only used by object mappings to map back and forth to GError */ +GIO_AVAILABLE_IN_ALL +GError *g_dbus_error_new_for_dbus_error (const gchar *dbus_error_name, + const gchar *dbus_error_message); +GIO_AVAILABLE_IN_ALL +void g_dbus_error_set_dbus_error (GError **error, + const gchar *dbus_error_name, + const gchar *dbus_error_message, + const gchar *format, + ...) G_GNUC_PRINTF(4, 5); +GIO_AVAILABLE_IN_ALL +void g_dbus_error_set_dbus_error_valist (GError **error, + const gchar *dbus_error_name, + const gchar *dbus_error_message, + const gchar *format, + va_list var_args) G_GNUC_PRINTF(4, 0); +GIO_AVAILABLE_IN_ALL +gchar *g_dbus_error_encode_gerror (const GError *error); + +G_END_DECLS + +#endif /* __G_DBUS_ERROR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusinterface.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusinterface.h new file mode 100644 index 000000000..838a54e07 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusinterface.h @@ -0,0 +1,83 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_INTERFACE_H__ +#define __G_DBUS_INTERFACE_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_INTERFACE (g_dbus_interface_get_type()) +#define G_DBUS_INTERFACE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_INTERFACE, GDBusInterface)) +#define G_IS_DBUS_INTERFACE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_INTERFACE)) +#define G_DBUS_INTERFACE_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE((o), G_TYPE_DBUS_INTERFACE, GDBusInterfaceIface)) + +/** + * GDBusInterface: + * + * Base type for D-Bus interfaces. + * + * Since: 2.30 + */ + +typedef struct _GDBusInterfaceIface GDBusInterfaceIface; + +/** + * GDBusInterfaceIface: + * @parent_iface: The parent interface. + * @get_info: Returns a #GDBusInterfaceInfo. See g_dbus_interface_get_info(). + * @get_object: Gets the enclosing #GDBusObject. See g_dbus_interface_get_object(). + * @set_object: Sets the enclosing #GDBusObject. See g_dbus_interface_set_object(). + * @dup_object: Gets a reference to the enclosing #GDBusObject. See g_dbus_interface_dup_object(). Added in 2.32. + * + * Base type for D-Bus interfaces. + * + * Since: 2.30 + */ +struct _GDBusInterfaceIface +{ + GTypeInterface parent_iface; + + /* Virtual Functions */ + GDBusInterfaceInfo *(*get_info) (GDBusInterface *interface_); + GDBusObject *(*get_object) (GDBusInterface *interface_); + void (*set_object) (GDBusInterface *interface_, + GDBusObject *object); + GDBusObject *(*dup_object) (GDBusInterface *interface_); +}; + +GIO_AVAILABLE_IN_ALL +GType g_dbus_interface_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GDBusInterfaceInfo *g_dbus_interface_get_info (GDBusInterface *interface_); +GIO_AVAILABLE_IN_ALL +GDBusObject *g_dbus_interface_get_object (GDBusInterface *interface_); +GIO_AVAILABLE_IN_ALL +void g_dbus_interface_set_object (GDBusInterface *interface_, + GDBusObject *object); +GIO_AVAILABLE_IN_2_32 +GDBusObject *g_dbus_interface_dup_object (GDBusInterface *interface_); + +G_END_DECLS + +#endif /* __G_DBUS_INTERFACE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusinterfaceskeleton.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusinterfaceskeleton.h new file mode 100644 index 000000000..244ee0e64 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusinterfaceskeleton.h @@ -0,0 +1,129 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_INTERFACE_SKELETON_H__ +#define __G_DBUS_INTERFACE_SKELETON_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_INTERFACE_SKELETON (g_dbus_interface_skeleton_get_type ()) +#define G_DBUS_INTERFACE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_INTERFACE_SKELETON, GDBusInterfaceSkeleton)) +#define G_DBUS_INTERFACE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DBUS_INTERFACE_SKELETON, GDBusInterfaceSkeletonClass)) +#define G_DBUS_INTERFACE_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_DBUS_INTERFACE_SKELETON, GDBusInterfaceSkeletonClass)) +#define G_IS_DBUS_INTERFACE_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_INTERFACE_SKELETON)) +#define G_IS_DBUS_INTERFACE_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_DBUS_INTERFACE_SKELETON)) + +typedef struct _GDBusInterfaceSkeletonClass GDBusInterfaceSkeletonClass; +typedef struct _GDBusInterfaceSkeletonPrivate GDBusInterfaceSkeletonPrivate; + +/** + * GDBusInterfaceSkeleton: + * + * The #GDBusInterfaceSkeleton structure contains private data and should + * only be accessed using the provided API. + * + * Since: 2.30 + */ +struct _GDBusInterfaceSkeleton +{ + /*< private >*/ + GObject parent_instance; + GDBusInterfaceSkeletonPrivate *priv; +}; + +/** + * GDBusInterfaceSkeletonClass: + * @parent_class: The parent class. + * @get_info: Returns a #GDBusInterfaceInfo. See g_dbus_interface_skeleton_get_info() for details. + * @get_vtable: Returns a #GDBusInterfaceVTable. See g_dbus_interface_skeleton_get_vtable() for details. + * @get_properties: Returns a #GVariant with all properties. See g_dbus_interface_skeleton_get_properties(). + * @flush: Emits outstanding changes, if any. See g_dbus_interface_skeleton_flush(). + * @g_authorize_method: Signal class handler for the #GDBusInterfaceSkeleton::g-authorize-method signal. + * + * Class structure for #GDBusInterfaceSkeleton. + * + * Since: 2.30 + */ +struct _GDBusInterfaceSkeletonClass +{ + GObjectClass parent_class; + + /* Virtual Functions */ + GDBusInterfaceInfo *(*get_info) (GDBusInterfaceSkeleton *interface_); + GDBusInterfaceVTable *(*get_vtable) (GDBusInterfaceSkeleton *interface_); + GVariant *(*get_properties) (GDBusInterfaceSkeleton *interface_); + void (*flush) (GDBusInterfaceSkeleton *interface_); + + /*< private >*/ + gpointer vfunc_padding[8]; + /*< public >*/ + + /* Signals */ + gboolean (*g_authorize_method) (GDBusInterfaceSkeleton *interface_, + GDBusMethodInvocation *invocation); + + /*< private >*/ + gpointer signal_padding[8]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_dbus_interface_skeleton_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GDBusInterfaceSkeletonFlags g_dbus_interface_skeleton_get_flags (GDBusInterfaceSkeleton *interface_); +GIO_AVAILABLE_IN_ALL +void g_dbus_interface_skeleton_set_flags (GDBusInterfaceSkeleton *interface_, + GDBusInterfaceSkeletonFlags flags); +GIO_AVAILABLE_IN_ALL +GDBusInterfaceInfo *g_dbus_interface_skeleton_get_info (GDBusInterfaceSkeleton *interface_); +GIO_AVAILABLE_IN_ALL +GDBusInterfaceVTable *g_dbus_interface_skeleton_get_vtable (GDBusInterfaceSkeleton *interface_); +GIO_AVAILABLE_IN_ALL +GVariant *g_dbus_interface_skeleton_get_properties (GDBusInterfaceSkeleton *interface_); +GIO_AVAILABLE_IN_ALL +void g_dbus_interface_skeleton_flush (GDBusInterfaceSkeleton *interface_); + +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_interface_skeleton_export (GDBusInterfaceSkeleton *interface_, + GDBusConnection *connection, + const gchar *object_path, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_dbus_interface_skeleton_unexport (GDBusInterfaceSkeleton *interface_); +GIO_AVAILABLE_IN_ALL +void g_dbus_interface_skeleton_unexport_from_connection (GDBusInterfaceSkeleton *interface_, + GDBusConnection *connection); + +GIO_AVAILABLE_IN_ALL +GDBusConnection *g_dbus_interface_skeleton_get_connection (GDBusInterfaceSkeleton *interface_); +GIO_AVAILABLE_IN_ALL +GList *g_dbus_interface_skeleton_get_connections (GDBusInterfaceSkeleton *interface_); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_interface_skeleton_has_connection (GDBusInterfaceSkeleton *interface_, + GDBusConnection *connection); +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_interface_skeleton_get_object_path (GDBusInterfaceSkeleton *interface_); + +G_END_DECLS + +#endif /* __G_DBUS_INTERFACE_SKELETON_H */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusintrospection.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusintrospection.h new file mode 100644 index 000000000..53f468500 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusintrospection.h @@ -0,0 +1,327 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_INTROSPECTION_H__ +#define __G_DBUS_INTROSPECTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * GDBusAnnotationInfo: + * @ref_count: The reference count or -1 if statically allocated. + * @key: The name of the annotation, e.g. "org.freedesktop.DBus.Deprecated". + * @value: The value of the annotation. + * @annotations: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations. + * + * Information about an annotation. + * + * Since: 2.26 + */ +struct _GDBusAnnotationInfo +{ + /*< public >*/ + gint ref_count; /* (atomic) */ + gchar *key; + gchar *value; + GDBusAnnotationInfo **annotations; +}; + +/** + * GDBusArgInfo: + * @ref_count: The reference count or -1 if statically allocated. + * @name: Name of the argument, e.g. @unix_user_id. + * @signature: D-Bus signature of the argument (a single complete type). + * @annotations: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations. + * + * Information about an argument for a method or a signal. + * + * Since: 2.26 + */ +struct _GDBusArgInfo +{ + /*< public >*/ + gint ref_count; /* (atomic) */ + gchar *name; + gchar *signature; + GDBusAnnotationInfo **annotations; +}; + +/** + * GDBusMethodInfo: + * @ref_count: The reference count or -1 if statically allocated. + * @name: The name of the D-Bus method, e.g. @RequestName. + * @in_args: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusArgInfo structures or %NULL if there are no in arguments. + * @out_args: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusArgInfo structures or %NULL if there are no out arguments. + * @annotations: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations. + * + * Information about a method on an D-Bus interface. + * + * Since: 2.26 + */ +struct _GDBusMethodInfo +{ + /*< public >*/ + gint ref_count; /* (atomic) */ + gchar *name; + GDBusArgInfo **in_args; + GDBusArgInfo **out_args; + GDBusAnnotationInfo **annotations; +}; + +/** + * GDBusSignalInfo: + * @ref_count: The reference count or -1 if statically allocated. + * @name: The name of the D-Bus signal, e.g. "NameOwnerChanged". + * @args: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusArgInfo structures or %NULL if there are no arguments. + * @annotations: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations. + * + * Information about a signal on a D-Bus interface. + * + * Since: 2.26 + */ +struct _GDBusSignalInfo +{ + /*< public >*/ + gint ref_count; /* (atomic) */ + gchar *name; + GDBusArgInfo **args; + GDBusAnnotationInfo **annotations; +}; + +/** + * GDBusPropertyInfo: + * @ref_count: The reference count or -1 if statically allocated. + * @name: The name of the D-Bus property, e.g. "SupportedFilesystems". + * @signature: The D-Bus signature of the property (a single complete type). + * @flags: Access control flags for the property. + * @annotations: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations. + * + * Information about a D-Bus property on a D-Bus interface. + * + * Since: 2.26 + */ +struct _GDBusPropertyInfo +{ + /*< public >*/ + gint ref_count; /* (atomic) */ + gchar *name; + gchar *signature; + GDBusPropertyInfoFlags flags; + GDBusAnnotationInfo **annotations; +}; + +/** + * GDBusInterfaceInfo: + * @ref_count: The reference count or -1 if statically allocated. + * @name: The name of the D-Bus interface, e.g. "org.freedesktop.DBus.Properties". + * @methods: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusMethodInfo structures or %NULL if there are no methods. + * @signals: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusSignalInfo structures or %NULL if there are no signals. + * @properties: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusPropertyInfo structures or %NULL if there are no properties. + * @annotations: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations. + * + * Information about a D-Bus interface. + * + * Since: 2.26 + */ +struct _GDBusInterfaceInfo +{ + /*< public >*/ + gint ref_count; /* (atomic) */ + gchar *name; + GDBusMethodInfo **methods; + GDBusSignalInfo **signals; + GDBusPropertyInfo **properties; + GDBusAnnotationInfo **annotations; +}; + +/** + * GDBusNodeInfo: + * @ref_count: The reference count or -1 if statically allocated. + * @path: The path of the node or %NULL if omitted. Note that this may be a relative path. See the D-Bus specification for more details. + * @interfaces: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusInterfaceInfo structures or %NULL if there are no interfaces. + * @nodes: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusNodeInfo structures or %NULL if there are no nodes. + * @annotations: (array zero-terminated=1): A pointer to a %NULL-terminated array of pointers to #GDBusAnnotationInfo structures or %NULL if there are no annotations. + * + * Information about nodes in a remote object hierarchy. + * + * Since: 2.26 + */ +struct _GDBusNodeInfo +{ + /*< public >*/ + gint ref_count; /* (atomic) */ + gchar *path; + GDBusInterfaceInfo **interfaces; + GDBusNodeInfo **nodes; + GDBusAnnotationInfo **annotations; +}; + +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_annotation_info_lookup (GDBusAnnotationInfo **annotations, + const gchar *name); +GIO_AVAILABLE_IN_ALL +GDBusMethodInfo *g_dbus_interface_info_lookup_method (GDBusInterfaceInfo *info, + const gchar *name); +GIO_AVAILABLE_IN_ALL +GDBusSignalInfo *g_dbus_interface_info_lookup_signal (GDBusInterfaceInfo *info, + const gchar *name); +GIO_AVAILABLE_IN_ALL +GDBusPropertyInfo *g_dbus_interface_info_lookup_property (GDBusInterfaceInfo *info, + const gchar *name); +GIO_AVAILABLE_IN_ALL +void g_dbus_interface_info_cache_build (GDBusInterfaceInfo *info); +GIO_AVAILABLE_IN_ALL +void g_dbus_interface_info_cache_release (GDBusInterfaceInfo *info); + +GIO_AVAILABLE_IN_ALL +void g_dbus_interface_info_generate_xml (GDBusInterfaceInfo *info, + guint indent, + GString *string_builder); + +GIO_AVAILABLE_IN_ALL +GDBusNodeInfo *g_dbus_node_info_new_for_xml (const gchar *xml_data, + GError **error); +GIO_AVAILABLE_IN_ALL +GDBusInterfaceInfo *g_dbus_node_info_lookup_interface (GDBusNodeInfo *info, + const gchar *name); +GIO_AVAILABLE_IN_ALL +void g_dbus_node_info_generate_xml (GDBusNodeInfo *info, + guint indent, + GString *string_builder); + +GIO_AVAILABLE_IN_ALL +GDBusNodeInfo *g_dbus_node_info_ref (GDBusNodeInfo *info); +GIO_AVAILABLE_IN_ALL +GDBusInterfaceInfo *g_dbus_interface_info_ref (GDBusInterfaceInfo *info); +GIO_AVAILABLE_IN_ALL +GDBusMethodInfo *g_dbus_method_info_ref (GDBusMethodInfo *info); +GIO_AVAILABLE_IN_ALL +GDBusSignalInfo *g_dbus_signal_info_ref (GDBusSignalInfo *info); +GIO_AVAILABLE_IN_ALL +GDBusPropertyInfo *g_dbus_property_info_ref (GDBusPropertyInfo *info); +GIO_AVAILABLE_IN_ALL +GDBusArgInfo *g_dbus_arg_info_ref (GDBusArgInfo *info); +GIO_AVAILABLE_IN_ALL +GDBusAnnotationInfo *g_dbus_annotation_info_ref (GDBusAnnotationInfo *info); + +GIO_AVAILABLE_IN_ALL +void g_dbus_node_info_unref (GDBusNodeInfo *info); +GIO_AVAILABLE_IN_ALL +void g_dbus_interface_info_unref (GDBusInterfaceInfo *info); +GIO_AVAILABLE_IN_ALL +void g_dbus_method_info_unref (GDBusMethodInfo *info); +GIO_AVAILABLE_IN_ALL +void g_dbus_signal_info_unref (GDBusSignalInfo *info); +GIO_AVAILABLE_IN_ALL +void g_dbus_property_info_unref (GDBusPropertyInfo *info); +GIO_AVAILABLE_IN_ALL +void g_dbus_arg_info_unref (GDBusArgInfo *info); +GIO_AVAILABLE_IN_ALL +void g_dbus_annotation_info_unref (GDBusAnnotationInfo *info); + +/** + * G_TYPE_DBUS_NODE_INFO: + * + * The #GType for a boxed type holding a #GDBusNodeInfo. + * + * Since: 2.26 + */ +#define G_TYPE_DBUS_NODE_INFO (g_dbus_node_info_get_type ()) + +/** + * G_TYPE_DBUS_INTERFACE_INFO: + * + * The #GType for a boxed type holding a #GDBusInterfaceInfo. + * + * Since: 2.26 + */ +#define G_TYPE_DBUS_INTERFACE_INFO (g_dbus_interface_info_get_type ()) + +/** + * G_TYPE_DBUS_METHOD_INFO: + * + * The #GType for a boxed type holding a #GDBusMethodInfo. + * + * Since: 2.26 + */ +#define G_TYPE_DBUS_METHOD_INFO (g_dbus_method_info_get_type ()) + +/** + * G_TYPE_DBUS_SIGNAL_INFO: + * + * The #GType for a boxed type holding a #GDBusSignalInfo. + * + * Since: 2.26 + */ +#define G_TYPE_DBUS_SIGNAL_INFO (g_dbus_signal_info_get_type ()) + +/** + * G_TYPE_DBUS_PROPERTY_INFO: + * + * The #GType for a boxed type holding a #GDBusPropertyInfo. + * + * Since: 2.26 + */ +#define G_TYPE_DBUS_PROPERTY_INFO (g_dbus_property_info_get_type ()) + +/** + * G_TYPE_DBUS_ARG_INFO: + * + * The #GType for a boxed type holding a #GDBusArgInfo. + * + * Since: 2.26 + */ +#define G_TYPE_DBUS_ARG_INFO (g_dbus_arg_info_get_type ()) + +/** + * G_TYPE_DBUS_ANNOTATION_INFO: + * + * The #GType for a boxed type holding a #GDBusAnnotationInfo. + * + * Since: 2.26 + */ +#define G_TYPE_DBUS_ANNOTATION_INFO (g_dbus_annotation_info_get_type ()) + +GIO_AVAILABLE_IN_ALL +GType g_dbus_node_info_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GType g_dbus_interface_info_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GType g_dbus_method_info_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GType g_dbus_signal_info_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GType g_dbus_property_info_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GType g_dbus_arg_info_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GType g_dbus_annotation_info_get_type (void) G_GNUC_CONST; + +G_END_DECLS + +#endif /* __G_DBUS_INTROSPECTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusmenumodel.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusmenumodel.h new file mode 100644 index 000000000..73489b5bb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusmenumodel.h @@ -0,0 +1,47 @@ +/* + * Copyright © 2011 Canonical Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#ifndef __G_DBUS_MENU_MODEL_H__ +#define __G_DBUS_MENU_MODEL_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_MENU_MODEL (g_dbus_menu_model_get_type ()) +#define G_DBUS_MENU_MODEL(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_DBUS_MENU_MODEL, GDBusMenuModel)) +#define G_IS_DBUS_MENU_MODEL(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_DBUS_MENU_MODEL)) + +typedef struct _GDBusMenuModel GDBusMenuModel; + +GIO_AVAILABLE_IN_ALL +GType g_dbus_menu_model_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GDBusMenuModel * g_dbus_menu_model_get (GDBusConnection *connection, + const gchar *bus_name, + const gchar *object_path); + +G_END_DECLS + +#endif /* __G_DBUS_MENU_MODEL_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusmessage.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusmessage.h new file mode 100644 index 000000000..6e4bb9e8e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusmessage.h @@ -0,0 +1,204 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_MESSAGE_H__ +#define __G_DBUS_MESSAGE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_MESSAGE (g_dbus_message_get_type ()) +#define G_DBUS_MESSAGE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_MESSAGE, GDBusMessage)) +#define G_IS_DBUS_MESSAGE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_MESSAGE)) + +GIO_AVAILABLE_IN_ALL +GType g_dbus_message_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GDBusMessage *g_dbus_message_new (void); +GIO_AVAILABLE_IN_ALL +GDBusMessage *g_dbus_message_new_signal (const gchar *path, + const gchar *interface_, + const gchar *signal); +GIO_AVAILABLE_IN_ALL +GDBusMessage *g_dbus_message_new_method_call (const gchar *name, + const gchar *path, + const gchar *interface_, + const gchar *method); +GIO_AVAILABLE_IN_ALL +GDBusMessage *g_dbus_message_new_method_reply (GDBusMessage *method_call_message); +GIO_AVAILABLE_IN_ALL +GDBusMessage *g_dbus_message_new_method_error (GDBusMessage *method_call_message, + const gchar *error_name, + const gchar *error_message_format, + ...) G_GNUC_PRINTF(3, 4); +GIO_AVAILABLE_IN_ALL +GDBusMessage *g_dbus_message_new_method_error_valist (GDBusMessage *method_call_message, + const gchar *error_name, + const gchar *error_message_format, + va_list var_args); +GIO_AVAILABLE_IN_ALL +GDBusMessage *g_dbus_message_new_method_error_literal (GDBusMessage *method_call_message, + const gchar *error_name, + const gchar *error_message); +GIO_AVAILABLE_IN_ALL +gchar *g_dbus_message_print (GDBusMessage *message, + guint indent); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_message_get_locked (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_lock (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +GDBusMessage *g_dbus_message_copy (GDBusMessage *message, + GError **error); +GIO_AVAILABLE_IN_ALL +GDBusMessageByteOrder g_dbus_message_get_byte_order (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_byte_order (GDBusMessage *message, + GDBusMessageByteOrder byte_order); + +GIO_AVAILABLE_IN_ALL +GDBusMessageType g_dbus_message_get_message_type (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_message_type (GDBusMessage *message, + GDBusMessageType type); +GIO_AVAILABLE_IN_ALL +GDBusMessageFlags g_dbus_message_get_flags (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_flags (GDBusMessage *message, + GDBusMessageFlags flags); +GIO_AVAILABLE_IN_ALL +guint32 g_dbus_message_get_serial (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_serial (GDBusMessage *message, + guint32 serial); +GIO_AVAILABLE_IN_ALL +GVariant *g_dbus_message_get_header (GDBusMessage *message, + GDBusMessageHeaderField header_field); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_header (GDBusMessage *message, + GDBusMessageHeaderField header_field, + GVariant *value); +GIO_AVAILABLE_IN_ALL +guchar *g_dbus_message_get_header_fields (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +GVariant *g_dbus_message_get_body (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_body (GDBusMessage *message, + GVariant *body); + +#ifdef G_OS_UNIX + +GIO_AVAILABLE_IN_ALL +GUnixFDList *g_dbus_message_get_unix_fd_list (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_unix_fd_list (GDBusMessage *message, + GUnixFDList *fd_list); + +#endif /* G_OS_UNIX */ + +GIO_AVAILABLE_IN_ALL +guint32 g_dbus_message_get_reply_serial (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_reply_serial (GDBusMessage *message, + guint32 value); + +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_message_get_interface (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_interface (GDBusMessage *message, + const gchar *value); + +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_message_get_member (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_member (GDBusMessage *message, + const gchar *value); + +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_message_get_path (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_path (GDBusMessage *message, + const gchar *value); + +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_message_get_sender (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_sender (GDBusMessage *message, + const gchar *value); + +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_message_get_destination (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_destination (GDBusMessage *message, + const gchar *value); + +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_message_get_error_name (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_error_name (GDBusMessage *message, + const gchar *value); + +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_message_get_signature (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_signature (GDBusMessage *message, + const gchar *value); + +GIO_AVAILABLE_IN_ALL +guint32 g_dbus_message_get_num_unix_fds (GDBusMessage *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_message_set_num_unix_fds (GDBusMessage *message, + guint32 value); + +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_message_get_arg0 (GDBusMessage *message); + + +GIO_AVAILABLE_IN_ALL +GDBusMessage *g_dbus_message_new_from_blob (guchar *blob, + gsize blob_len, + GDBusCapabilityFlags capabilities, + GError **error); + +GIO_AVAILABLE_IN_ALL +gssize g_dbus_message_bytes_needed (guchar *blob, + gsize blob_len, + GError **error); + +GIO_AVAILABLE_IN_ALL +guchar *g_dbus_message_to_blob (GDBusMessage *message, + gsize *out_size, + GDBusCapabilityFlags capabilities, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_message_to_gerror (GDBusMessage *message, + GError **error); + +G_END_DECLS + +#endif /* __G_DBUS_MESSAGE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusmethodinvocation.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusmethodinvocation.h new file mode 100644 index 000000000..6266f38a3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusmethodinvocation.h @@ -0,0 +1,136 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_METHOD_INVOCATION_H__ +#define __G_DBUS_METHOD_INVOCATION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_METHOD_INVOCATION (g_dbus_method_invocation_get_type ()) +#define G_DBUS_METHOD_INVOCATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_METHOD_INVOCATION, GDBusMethodInvocation)) +#define G_IS_DBUS_METHOD_INVOCATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_METHOD_INVOCATION)) + +/** + * G_DBUS_METHOD_INVOCATION_HANDLED: + * + * The value returned by handlers of the signals generated by + * the `gdbus-codegen` tool to indicate that a method call has been + * handled by an implementation. It is equal to %TRUE, but using + * this macro is sometimes more readable. + * + * In code that needs to be backwards-compatible with older GLib, + * use %TRUE instead, often written like this: + * + * |[ + * g_dbus_method_invocation_return_error (invocation, ...); + * return TRUE; // handled + * ]| + * + * Since: 2.68 + */ +#define G_DBUS_METHOD_INVOCATION_HANDLED TRUE GIO_AVAILABLE_MACRO_IN_2_68 + +/** + * G_DBUS_METHOD_INVOCATION_UNHANDLED: + * + * The value returned by handlers of the signals generated by + * the `gdbus-codegen` tool to indicate that a method call has not been + * handled by an implementation. It is equal to %FALSE, but using + * this macro is sometimes more readable. + * + * In code that needs to be backwards-compatible with older GLib, + * use %FALSE instead. + * + * Since: 2.68 + */ +#define G_DBUS_METHOD_INVOCATION_UNHANDLED FALSE GIO_AVAILABLE_MACRO_IN_2_68 + +GIO_AVAILABLE_IN_ALL +GType g_dbus_method_invocation_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_method_invocation_get_sender (GDBusMethodInvocation *invocation); +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_method_invocation_get_object_path (GDBusMethodInvocation *invocation); +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_method_invocation_get_interface_name (GDBusMethodInvocation *invocation); +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_method_invocation_get_method_name (GDBusMethodInvocation *invocation); +GIO_AVAILABLE_IN_ALL +const GDBusMethodInfo *g_dbus_method_invocation_get_method_info (GDBusMethodInvocation *invocation); +GIO_AVAILABLE_IN_2_38 +const GDBusPropertyInfo *g_dbus_method_invocation_get_property_info (GDBusMethodInvocation *invocation); +GIO_AVAILABLE_IN_ALL +GDBusConnection *g_dbus_method_invocation_get_connection (GDBusMethodInvocation *invocation); +GIO_AVAILABLE_IN_ALL +GDBusMessage *g_dbus_method_invocation_get_message (GDBusMethodInvocation *invocation); +GIO_AVAILABLE_IN_ALL +GVariant *g_dbus_method_invocation_get_parameters (GDBusMethodInvocation *invocation); +GIO_AVAILABLE_IN_ALL +gpointer g_dbus_method_invocation_get_user_data (GDBusMethodInvocation *invocation); + +GIO_AVAILABLE_IN_ALL +void g_dbus_method_invocation_return_value (GDBusMethodInvocation *invocation, + GVariant *parameters); +#ifdef G_OS_UNIX +GIO_AVAILABLE_IN_ALL +void g_dbus_method_invocation_return_value_with_unix_fd_list (GDBusMethodInvocation *invocation, + GVariant *parameters, + GUnixFDList *fd_list); +#endif /* G_OS_UNIX */ +GIO_AVAILABLE_IN_ALL +void g_dbus_method_invocation_return_error (GDBusMethodInvocation *invocation, + GQuark domain, + gint code, + const gchar *format, + ...) G_GNUC_PRINTF(4, 5); +GIO_AVAILABLE_IN_ALL +void g_dbus_method_invocation_return_error_valist (GDBusMethodInvocation *invocation, + GQuark domain, + gint code, + const gchar *format, + va_list var_args) + G_GNUC_PRINTF(4, 0); +GIO_AVAILABLE_IN_ALL +void g_dbus_method_invocation_return_error_literal (GDBusMethodInvocation *invocation, + GQuark domain, + gint code, + const gchar *message); +GIO_AVAILABLE_IN_ALL +void g_dbus_method_invocation_return_gerror (GDBusMethodInvocation *invocation, + const GError *error); +GIO_AVAILABLE_IN_ALL +void g_dbus_method_invocation_take_error (GDBusMethodInvocation *invocation, + GError *error); +GIO_AVAILABLE_IN_ALL +void g_dbus_method_invocation_return_dbus_error (GDBusMethodInvocation *invocation, + const gchar *error_name, + const gchar *error_message); + +G_END_DECLS + +#endif /* __G_DBUS_METHOD_INVOCATION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusnameowning.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusnameowning.h new file mode 100644 index 000000000..2afd3ee73 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusnameowning.h @@ -0,0 +1,117 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_NAME_OWNING_H__ +#define __G_DBUS_NAME_OWNING_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * GBusAcquiredCallback: + * @connection: The #GDBusConnection to a message bus. + * @name: The name that is requested to be owned. + * @user_data: User data passed to g_bus_own_name(). + * + * Invoked when a connection to a message bus has been obtained. + * + * Since: 2.26 + */ +typedef void (*GBusAcquiredCallback) (GDBusConnection *connection, + const gchar *name, + gpointer user_data); + +/** + * GBusNameAcquiredCallback: + * @connection: The #GDBusConnection on which to acquired the name. + * @name: The name being owned. + * @user_data: User data passed to g_bus_own_name() or g_bus_own_name_on_connection(). + * + * Invoked when the name is acquired. + * + * Since: 2.26 + */ +typedef void (*GBusNameAcquiredCallback) (GDBusConnection *connection, + const gchar *name, + gpointer user_data); + +/** + * GBusNameLostCallback: + * @connection: The #GDBusConnection on which to acquire the name or %NULL if + * the connection was disconnected. + * @name: The name being owned. + * @user_data: User data passed to g_bus_own_name() or g_bus_own_name_on_connection(). + * + * Invoked when the name is lost or @connection has been closed. + * + * Since: 2.26 + */ +typedef void (*GBusNameLostCallback) (GDBusConnection *connection, + const gchar *name, + gpointer user_data); + +GIO_AVAILABLE_IN_ALL +guint g_bus_own_name (GBusType bus_type, + const gchar *name, + GBusNameOwnerFlags flags, + GBusAcquiredCallback bus_acquired_handler, + GBusNameAcquiredCallback name_acquired_handler, + GBusNameLostCallback name_lost_handler, + gpointer user_data, + GDestroyNotify user_data_free_func); + +GIO_AVAILABLE_IN_ALL +guint g_bus_own_name_on_connection (GDBusConnection *connection, + const gchar *name, + GBusNameOwnerFlags flags, + GBusNameAcquiredCallback name_acquired_handler, + GBusNameLostCallback name_lost_handler, + gpointer user_data, + GDestroyNotify user_data_free_func); + +GIO_AVAILABLE_IN_ALL +guint g_bus_own_name_with_closures (GBusType bus_type, + const gchar *name, + GBusNameOwnerFlags flags, + GClosure *bus_acquired_closure, + GClosure *name_acquired_closure, + GClosure *name_lost_closure); + +GIO_AVAILABLE_IN_ALL +guint g_bus_own_name_on_connection_with_closures ( + GDBusConnection *connection, + const gchar *name, + GBusNameOwnerFlags flags, + GClosure *name_acquired_closure, + GClosure *name_lost_closure); + +GIO_AVAILABLE_IN_ALL +void g_bus_unown_name (guint owner_id); + +G_END_DECLS + +#endif /* __G_DBUS_NAME_OWNING_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusnamewatching.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusnamewatching.h new file mode 100644 index 000000000..df836deb5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusnamewatching.h @@ -0,0 +1,104 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_NAME_WATCHING_H__ +#define __G_DBUS_NAME_WATCHING_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * GBusNameAppearedCallback: + * @connection: The #GDBusConnection the name is being watched on. + * @name: The name being watched. + * @name_owner: Unique name of the owner of the name being watched. + * @user_data: User data passed to g_bus_watch_name(). + * + * Invoked when the name being watched is known to have to have an owner. + * + * Since: 2.26 + */ +typedef void (*GBusNameAppearedCallback) (GDBusConnection *connection, + const gchar *name, + const gchar *name_owner, + gpointer user_data); + +/** + * GBusNameVanishedCallback: + * @connection: The #GDBusConnection the name is being watched on, or + * %NULL. + * @name: The name being watched. + * @user_data: User data passed to g_bus_watch_name(). + * + * Invoked when the name being watched is known not to have to have an owner. + * + * This is also invoked when the #GDBusConnection on which the watch was + * established has been closed. In that case, @connection will be + * %NULL. + * + * Since: 2.26 + */ +typedef void (*GBusNameVanishedCallback) (GDBusConnection *connection, + const gchar *name, + gpointer user_data); + + +GIO_AVAILABLE_IN_ALL +guint g_bus_watch_name (GBusType bus_type, + const gchar *name, + GBusNameWatcherFlags flags, + GBusNameAppearedCallback name_appeared_handler, + GBusNameVanishedCallback name_vanished_handler, + gpointer user_data, + GDestroyNotify user_data_free_func); +GIO_AVAILABLE_IN_ALL +guint g_bus_watch_name_on_connection (GDBusConnection *connection, + const gchar *name, + GBusNameWatcherFlags flags, + GBusNameAppearedCallback name_appeared_handler, + GBusNameVanishedCallback name_vanished_handler, + gpointer user_data, + GDestroyNotify user_data_free_func); +GIO_AVAILABLE_IN_ALL +guint g_bus_watch_name_with_closures (GBusType bus_type, + const gchar *name, + GBusNameWatcherFlags flags, + GClosure *name_appeared_closure, + GClosure *name_vanished_closure); +GIO_AVAILABLE_IN_ALL +guint g_bus_watch_name_on_connection_with_closures ( + GDBusConnection *connection, + const gchar *name, + GBusNameWatcherFlags flags, + GClosure *name_appeared_closure, + GClosure *name_vanished_closure); +GIO_AVAILABLE_IN_ALL +void g_bus_unwatch_name (guint watcher_id); + +G_END_DECLS + +#endif /* __G_DBUS_NAME_WATCHING_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobject.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobject.h new file mode 100644 index 000000000..b8186afc4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobject.h @@ -0,0 +1,80 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_OBJECT_H__ +#define __G_DBUS_OBJECT_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_OBJECT (g_dbus_object_get_type()) +#define G_DBUS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_OBJECT, GDBusObject)) +#define G_IS_DBUS_OBJECT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_OBJECT)) +#define G_DBUS_OBJECT_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE((o), G_TYPE_DBUS_OBJECT, GDBusObjectIface)) + +typedef struct _GDBusObjectIface GDBusObjectIface; + +/** + * GDBusObjectIface: + * @parent_iface: The parent interface. + * @get_object_path: Returns the object path. See g_dbus_object_get_object_path(). + * @get_interfaces: Returns all interfaces. See g_dbus_object_get_interfaces(). + * @get_interface: Returns an interface by name. See g_dbus_object_get_interface(). + * @interface_added: Signal handler for the #GDBusObject::interface-added signal. + * @interface_removed: Signal handler for the #GDBusObject::interface-removed signal. + * + * Base object type for D-Bus objects. + * + * Since: 2.30 + */ +struct _GDBusObjectIface +{ + GTypeInterface parent_iface; + + /* Virtual Functions */ + const gchar *(*get_object_path) (GDBusObject *object); + GList *(*get_interfaces) (GDBusObject *object); + GDBusInterface *(*get_interface) (GDBusObject *object, + const gchar *interface_name); + + /* Signals */ + void (*interface_added) (GDBusObject *object, + GDBusInterface *interface_); + void (*interface_removed) (GDBusObject *object, + GDBusInterface *interface_); + +}; + +GIO_AVAILABLE_IN_ALL +GType g_dbus_object_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_object_get_object_path (GDBusObject *object); +GIO_AVAILABLE_IN_ALL +GList *g_dbus_object_get_interfaces (GDBusObject *object); +GIO_AVAILABLE_IN_ALL +GDBusInterface *g_dbus_object_get_interface (GDBusObject *object, + const gchar *interface_name); + +G_END_DECLS + +#endif /* __G_DBUS_OBJECT_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectmanager.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectmanager.h new file mode 100644 index 000000000..7bfa2ae02 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectmanager.h @@ -0,0 +1,96 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_OBJECT_MANAGER_H__ +#define __G_DBUS_OBJECT_MANAGER_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_OBJECT_MANAGER (g_dbus_object_manager_get_type()) +#define G_DBUS_OBJECT_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_OBJECT_MANAGER, GDBusObjectManager)) +#define G_IS_DBUS_OBJECT_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_OBJECT_MANAGER)) +#define G_DBUS_OBJECT_MANAGER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE((o), G_TYPE_DBUS_OBJECT_MANAGER, GDBusObjectManagerIface)) + +typedef struct _GDBusObjectManagerIface GDBusObjectManagerIface; + +/** + * GDBusObjectManagerIface: + * @parent_iface: The parent interface. + * @get_object_path: Virtual function for g_dbus_object_manager_get_object_path(). + * @get_objects: Virtual function for g_dbus_object_manager_get_objects(). + * @get_object: Virtual function for g_dbus_object_manager_get_object(). + * @get_interface: Virtual function for g_dbus_object_manager_get_interface(). + * @object_added: Signal handler for the #GDBusObjectManager::object-added signal. + * @object_removed: Signal handler for the #GDBusObjectManager::object-removed signal. + * @interface_added: Signal handler for the #GDBusObjectManager::interface-added signal. + * @interface_removed: Signal handler for the #GDBusObjectManager::interface-removed signal. + * + * Base type for D-Bus object managers. + * + * Since: 2.30 + */ +struct _GDBusObjectManagerIface +{ + GTypeInterface parent_iface; + + /* Virtual Functions */ + const gchar *(*get_object_path) (GDBusObjectManager *manager); + GList *(*get_objects) (GDBusObjectManager *manager); + GDBusObject *(*get_object) (GDBusObjectManager *manager, + const gchar *object_path); + GDBusInterface *(*get_interface) (GDBusObjectManager *manager, + const gchar *object_path, + const gchar *interface_name); + + /* Signals */ + void (*object_added) (GDBusObjectManager *manager, + GDBusObject *object); + void (*object_removed) (GDBusObjectManager *manager, + GDBusObject *object); + + void (*interface_added) (GDBusObjectManager *manager, + GDBusObject *object, + GDBusInterface *interface_); + void (*interface_removed) (GDBusObjectManager *manager, + GDBusObject *object, + GDBusInterface *interface_); +}; + +GIO_AVAILABLE_IN_ALL +GType g_dbus_object_manager_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_object_manager_get_object_path (GDBusObjectManager *manager); +GIO_AVAILABLE_IN_ALL +GList *g_dbus_object_manager_get_objects (GDBusObjectManager *manager); +GIO_AVAILABLE_IN_ALL +GDBusObject *g_dbus_object_manager_get_object (GDBusObjectManager *manager, + const gchar *object_path); +GIO_AVAILABLE_IN_ALL +GDBusInterface *g_dbus_object_manager_get_interface (GDBusObjectManager *manager, + const gchar *object_path, + const gchar *interface_name); + +G_END_DECLS + +#endif /* __G_DBUS_OBJECT_MANAGER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectmanagerclient.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectmanagerclient.h new file mode 100644 index 000000000..2ebeedc02 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectmanagerclient.h @@ -0,0 +1,148 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_OBJECT_MANAGER_CLIENT_H__ +#define __G_DBUS_OBJECT_MANAGER_CLIENT_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_OBJECT_MANAGER_CLIENT (g_dbus_object_manager_client_get_type ()) +#define G_DBUS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_OBJECT_MANAGER_CLIENT, GDBusObjectManagerClient)) +#define G_DBUS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DBUS_OBJECT_MANAGER_CLIENT, GDBusObjectManagerClientClass)) +#define G_DBUS_OBJECT_MANAGER_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_DBUS_OBJECT_MANAGER_CLIENT, GDBusObjectManagerClientClass)) +#define G_IS_DBUS_OBJECT_MANAGER_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_OBJECT_MANAGER_CLIENT)) +#define G_IS_DBUS_OBJECT_MANAGER_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_DBUS_OBJECT_MANAGER_CLIENT)) + +typedef struct _GDBusObjectManagerClientClass GDBusObjectManagerClientClass; +typedef struct _GDBusObjectManagerClientPrivate GDBusObjectManagerClientPrivate; + +/** + * GDBusObjectManagerClient: + * + * The #GDBusObjectManagerClient structure contains private data and should + * only be accessed using the provided API. + * + * Since: 2.30 + */ +struct _GDBusObjectManagerClient +{ + /*< private >*/ + GObject parent_instance; + GDBusObjectManagerClientPrivate *priv; +}; + +/** + * GDBusObjectManagerClientClass: + * @parent_class: The parent class. + * @interface_proxy_signal: Signal class handler for the #GDBusObjectManagerClient::interface-proxy-signal signal. + * @interface_proxy_properties_changed: Signal class handler for the #GDBusObjectManagerClient::interface-proxy-properties-changed signal. + * + * Class structure for #GDBusObjectManagerClient. + * + * Since: 2.30 + */ +struct _GDBusObjectManagerClientClass +{ + GObjectClass parent_class; + + /* signals */ + void (*interface_proxy_signal) (GDBusObjectManagerClient *manager, + GDBusObjectProxy *object_proxy, + GDBusProxy *interface_proxy, + const gchar *sender_name, + const gchar *signal_name, + GVariant *parameters); + + void (*interface_proxy_properties_changed) (GDBusObjectManagerClient *manager, + GDBusObjectProxy *object_proxy, + GDBusProxy *interface_proxy, + GVariant *changed_properties, + const gchar* const *invalidated_properties); + + /*< private >*/ + gpointer padding[8]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_dbus_object_manager_client_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +void g_dbus_object_manager_client_new (GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GDBusProxyTypeFunc get_proxy_type_func, + gpointer get_proxy_type_user_data, + GDestroyNotify get_proxy_type_destroy_notify, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GDBusObjectManager *g_dbus_object_manager_client_new_finish (GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GDBusObjectManager *g_dbus_object_manager_client_new_sync (GDBusConnection *connection, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GDBusProxyTypeFunc get_proxy_type_func, + gpointer get_proxy_type_user_data, + GDestroyNotify get_proxy_type_destroy_notify, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_dbus_object_manager_client_new_for_bus (GBusType bus_type, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GDBusProxyTypeFunc get_proxy_type_func, + gpointer get_proxy_type_user_data, + GDestroyNotify get_proxy_type_destroy_notify, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GDBusObjectManager *g_dbus_object_manager_client_new_for_bus_finish (GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GDBusObjectManager *g_dbus_object_manager_client_new_for_bus_sync (GBusType bus_type, + GDBusObjectManagerClientFlags flags, + const gchar *name, + const gchar *object_path, + GDBusProxyTypeFunc get_proxy_type_func, + gpointer get_proxy_type_user_data, + GDestroyNotify get_proxy_type_destroy_notify, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +GDBusConnection *g_dbus_object_manager_client_get_connection (GDBusObjectManagerClient *manager); +GIO_AVAILABLE_IN_ALL +GDBusObjectManagerClientFlags g_dbus_object_manager_client_get_flags (GDBusObjectManagerClient *manager); +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_object_manager_client_get_name (GDBusObjectManagerClient *manager); +GIO_AVAILABLE_IN_ALL +gchar *g_dbus_object_manager_client_get_name_owner (GDBusObjectManagerClient *manager); + +G_END_DECLS + +#endif /* __G_DBUS_OBJECT_MANAGER_CLIENT_H */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectmanagerserver.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectmanagerserver.h new file mode 100644 index 000000000..92543dd3a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectmanagerserver.h @@ -0,0 +1,95 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_OBJECT_MANAGER_SERVER_H__ +#define __G_DBUS_OBJECT_MANAGER_SERVER_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_OBJECT_MANAGER_SERVER (g_dbus_object_manager_server_get_type ()) +#define G_DBUS_OBJECT_MANAGER_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_OBJECT_MANAGER_SERVER, GDBusObjectManagerServer)) +#define G_DBUS_OBJECT_MANAGER_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DBUS_OBJECT_MANAGER_SERVER, GDBusObjectManagerServerClass)) +#define G_DBUS_OBJECT_MANAGER_SERVER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_DBUS_OBJECT_MANAGER_SERVER, GDBusObjectManagerServerClass)) +#define G_IS_DBUS_OBJECT_MANAGER_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_OBJECT_MANAGER_SERVER)) +#define G_IS_DBUS_OBJECT_MANAGER_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_DBUS_OBJECT_MANAGER_SERVER)) + +typedef struct _GDBusObjectManagerServerClass GDBusObjectManagerServerClass; +typedef struct _GDBusObjectManagerServerPrivate GDBusObjectManagerServerPrivate; + +/** + * GDBusObjectManagerServer: + * + * The #GDBusObjectManagerServer structure contains private data and should + * only be accessed using the provided API. + * + * Since: 2.30 + */ +struct _GDBusObjectManagerServer +{ + /*< private >*/ + GObject parent_instance; + GDBusObjectManagerServerPrivate *priv; +}; + +/** + * GDBusObjectManagerServerClass: + * @parent_class: The parent class. + * + * Class structure for #GDBusObjectManagerServer. + * + * Since: 2.30 + */ +struct _GDBusObjectManagerServerClass +{ + GObjectClass parent_class; + + /*< private >*/ + gpointer padding[8]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_dbus_object_manager_server_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GDBusObjectManagerServer *g_dbus_object_manager_server_new (const gchar *object_path); +GIO_AVAILABLE_IN_ALL +GDBusConnection *g_dbus_object_manager_server_get_connection (GDBusObjectManagerServer *manager); +GIO_AVAILABLE_IN_ALL +void g_dbus_object_manager_server_set_connection (GDBusObjectManagerServer *manager, + GDBusConnection *connection); +GIO_AVAILABLE_IN_ALL +void g_dbus_object_manager_server_export (GDBusObjectManagerServer *manager, + GDBusObjectSkeleton *object); +GIO_AVAILABLE_IN_ALL +void g_dbus_object_manager_server_export_uniquely (GDBusObjectManagerServer *manager, + GDBusObjectSkeleton *object); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_object_manager_server_is_exported (GDBusObjectManagerServer *manager, + GDBusObjectSkeleton *object); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_object_manager_server_unexport (GDBusObjectManagerServer *manager, + const gchar *object_path); + +G_END_DECLS + +#endif /* __G_DBUS_OBJECT_MANAGER_SERVER_H */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectproxy.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectproxy.h new file mode 100644 index 000000000..ea5af0f09 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectproxy.h @@ -0,0 +1,81 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_OBJECT_PROXY_H__ +#define __G_DBUS_OBJECT_PROXY_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_OBJECT_PROXY (g_dbus_object_proxy_get_type ()) +#define G_DBUS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_OBJECT_PROXY, GDBusObjectProxy)) +#define G_DBUS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DBUS_OBJECT_PROXY, GDBusObjectProxyClass)) +#define G_DBUS_OBJECT_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_DBUS_OBJECT_PROXY, GDBusObjectProxyClass)) +#define G_IS_DBUS_OBJECT_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_OBJECT_PROXY)) +#define G_IS_DBUS_OBJECT_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_DBUS_OBJECT_PROXY)) + +typedef struct _GDBusObjectProxyClass GDBusObjectProxyClass; +typedef struct _GDBusObjectProxyPrivate GDBusObjectProxyPrivate; + +/** + * GDBusObjectProxy: + * + * The #GDBusObjectProxy structure contains private data and should + * only be accessed using the provided API. + * + * Since: 2.30 + */ +struct _GDBusObjectProxy +{ + /*< private >*/ + GObject parent_instance; + GDBusObjectProxyPrivate *priv; +}; + +/** + * GDBusObjectProxyClass: + * @parent_class: The parent class. + * + * Class structure for #GDBusObjectProxy. + * + * Since: 2.30 + */ +struct _GDBusObjectProxyClass +{ + GObjectClass parent_class; + + /*< private >*/ + gpointer padding[8]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_dbus_object_proxy_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GDBusObjectProxy *g_dbus_object_proxy_new (GDBusConnection *connection, + const gchar *object_path); +GIO_AVAILABLE_IN_ALL +GDBusConnection *g_dbus_object_proxy_get_connection (GDBusObjectProxy *proxy); + +G_END_DECLS + +#endif /* __G_DBUS_OBJECT_PROXY_H */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectskeleton.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectskeleton.h new file mode 100644 index 000000000..b15a2884f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusobjectskeleton.h @@ -0,0 +1,98 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_OBJECT_SKELETON_H__ +#define __G_DBUS_OBJECT_SKELETON_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_OBJECT_SKELETON (g_dbus_object_skeleton_get_type ()) +#define G_DBUS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_OBJECT_SKELETON, GDBusObjectSkeleton)) +#define G_DBUS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DBUS_OBJECT_SKELETON, GDBusObjectSkeletonClass)) +#define G_DBUS_OBJECT_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_DBUS_OBJECT_SKELETON, GDBusObjectSkeletonClass)) +#define G_IS_DBUS_OBJECT_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_OBJECT_SKELETON)) +#define G_IS_DBUS_OBJECT_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_DBUS_OBJECT_SKELETON)) + +typedef struct _GDBusObjectSkeletonClass GDBusObjectSkeletonClass; +typedef struct _GDBusObjectSkeletonPrivate GDBusObjectSkeletonPrivate; + +/** + * GDBusObjectSkeleton: + * + * The #GDBusObjectSkeleton structure contains private data and should only be + * accessed using the provided API. + * + * Since: 2.30 + */ +struct _GDBusObjectSkeleton +{ + /*< private >*/ + GObject parent_instance; + GDBusObjectSkeletonPrivate *priv; +}; + +/** + * GDBusObjectSkeletonClass: + * @parent_class: The parent class. + * @authorize_method: Signal class handler for the #GDBusObjectSkeleton::authorize-method signal. + * + * Class structure for #GDBusObjectSkeleton. + * + * Since: 2.30 + */ +struct _GDBusObjectSkeletonClass +{ + GObjectClass parent_class; + + /* Signals */ + gboolean (*authorize_method) (GDBusObjectSkeleton *object, + GDBusInterfaceSkeleton *interface_, + GDBusMethodInvocation *invocation); + + /*< private >*/ + gpointer padding[8]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_dbus_object_skeleton_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GDBusObjectSkeleton *g_dbus_object_skeleton_new (const gchar *object_path); +GIO_AVAILABLE_IN_ALL +void g_dbus_object_skeleton_flush (GDBusObjectSkeleton *object); +GIO_AVAILABLE_IN_ALL +void g_dbus_object_skeleton_add_interface (GDBusObjectSkeleton *object, + GDBusInterfaceSkeleton *interface_); +GIO_AVAILABLE_IN_ALL +void g_dbus_object_skeleton_remove_interface (GDBusObjectSkeleton *object, + GDBusInterfaceSkeleton *interface_); +GIO_AVAILABLE_IN_ALL +void g_dbus_object_skeleton_remove_interface_by_name (GDBusObjectSkeleton *object, + const gchar *interface_name); +GIO_AVAILABLE_IN_ALL +void g_dbus_object_skeleton_set_object_path (GDBusObjectSkeleton *object, + const gchar *object_path); + +G_END_DECLS + +#endif /* __G_DBUS_OBJECT_SKELETON_H */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusproxy.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusproxy.h new file mode 100644 index 000000000..7483156f8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusproxy.h @@ -0,0 +1,220 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_PROXY_H__ +#define __G_DBUS_PROXY_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_PROXY (g_dbus_proxy_get_type ()) +#define G_DBUS_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_PROXY, GDBusProxy)) +#define G_DBUS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DBUS_PROXY, GDBusProxyClass)) +#define G_DBUS_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_DBUS_PROXY, GDBusProxyClass)) +#define G_IS_DBUS_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_PROXY)) +#define G_IS_DBUS_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_DBUS_PROXY)) + +typedef struct _GDBusProxyClass GDBusProxyClass; +typedef struct _GDBusProxyPrivate GDBusProxyPrivate; + +/** + * GDBusProxy: + * + * The #GDBusProxy structure contains only private data and + * should only be accessed using the provided API. + * + * Since: 2.26 + */ +struct _GDBusProxy +{ + /*< private >*/ + GObject parent_instance; + GDBusProxyPrivate *priv; +}; + +/** + * GDBusProxyClass: + * @g_properties_changed: Signal class handler for the #GDBusProxy::g-properties-changed signal. + * @g_signal: Signal class handler for the #GDBusProxy::g-signal signal. + * + * Class structure for #GDBusProxy. + * + * Since: 2.26 + */ +struct _GDBusProxyClass +{ + /*< private >*/ + GObjectClass parent_class; + + /*< public >*/ + /* Signals */ + void (*g_properties_changed) (GDBusProxy *proxy, + GVariant *changed_properties, + const gchar* const *invalidated_properties); + void (*g_signal) (GDBusProxy *proxy, + const gchar *sender_name, + const gchar *signal_name, + GVariant *parameters); + + /*< private >*/ + /* Padding for future expansion */ + gpointer padding[32]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_dbus_proxy_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +void g_dbus_proxy_new (GDBusConnection *connection, + GDBusProxyFlags flags, + GDBusInterfaceInfo *info, + const gchar *name, + const gchar *object_path, + const gchar *interface_name, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GDBusProxy *g_dbus_proxy_new_finish (GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GDBusProxy *g_dbus_proxy_new_sync (GDBusConnection *connection, + GDBusProxyFlags flags, + GDBusInterfaceInfo *info, + const gchar *name, + const gchar *object_path, + const gchar *interface_name, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_dbus_proxy_new_for_bus (GBusType bus_type, + GDBusProxyFlags flags, + GDBusInterfaceInfo *info, + const gchar *name, + const gchar *object_path, + const gchar *interface_name, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GDBusProxy *g_dbus_proxy_new_for_bus_finish (GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GDBusProxy *g_dbus_proxy_new_for_bus_sync (GBusType bus_type, + GDBusProxyFlags flags, + GDBusInterfaceInfo *info, + const gchar *name, + const gchar *object_path, + const gchar *interface_name, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +GDBusConnection *g_dbus_proxy_get_connection (GDBusProxy *proxy); +GIO_AVAILABLE_IN_ALL +GDBusProxyFlags g_dbus_proxy_get_flags (GDBusProxy *proxy); +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_proxy_get_name (GDBusProxy *proxy); +GIO_AVAILABLE_IN_ALL +gchar *g_dbus_proxy_get_name_owner (GDBusProxy *proxy); +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_proxy_get_object_path (GDBusProxy *proxy); +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_proxy_get_interface_name (GDBusProxy *proxy); +GIO_AVAILABLE_IN_ALL +gint g_dbus_proxy_get_default_timeout (GDBusProxy *proxy); +GIO_AVAILABLE_IN_ALL +void g_dbus_proxy_set_default_timeout (GDBusProxy *proxy, + gint timeout_msec); +GIO_AVAILABLE_IN_ALL +GDBusInterfaceInfo *g_dbus_proxy_get_interface_info (GDBusProxy *proxy); +GIO_AVAILABLE_IN_ALL +void g_dbus_proxy_set_interface_info (GDBusProxy *proxy, + GDBusInterfaceInfo *info); +GIO_AVAILABLE_IN_ALL +GVariant *g_dbus_proxy_get_cached_property (GDBusProxy *proxy, + const gchar *property_name); +GIO_AVAILABLE_IN_ALL +void g_dbus_proxy_set_cached_property (GDBusProxy *proxy, + const gchar *property_name, + GVariant *value); +GIO_AVAILABLE_IN_ALL +gchar **g_dbus_proxy_get_cached_property_names (GDBusProxy *proxy); +GIO_AVAILABLE_IN_ALL +void g_dbus_proxy_call (GDBusProxy *proxy, + const gchar *method_name, + GVariant *parameters, + GDBusCallFlags flags, + gint timeout_msec, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GVariant *g_dbus_proxy_call_finish (GDBusProxy *proxy, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GVariant *g_dbus_proxy_call_sync (GDBusProxy *proxy, + const gchar *method_name, + GVariant *parameters, + GDBusCallFlags flags, + gint timeout_msec, + GCancellable *cancellable, + GError **error); + +#ifdef G_OS_UNIX + +GIO_AVAILABLE_IN_ALL +void g_dbus_proxy_call_with_unix_fd_list (GDBusProxy *proxy, + const gchar *method_name, + GVariant *parameters, + GDBusCallFlags flags, + gint timeout_msec, + GUnixFDList *fd_list, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GVariant *g_dbus_proxy_call_with_unix_fd_list_finish (GDBusProxy *proxy, + GUnixFDList **out_fd_list, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GVariant *g_dbus_proxy_call_with_unix_fd_list_sync (GDBusProxy *proxy, + const gchar *method_name, + GVariant *parameters, + GDBusCallFlags flags, + gint timeout_msec, + GUnixFDList *fd_list, + GUnixFDList **out_fd_list, + GCancellable *cancellable, + GError **error); + +#endif /* G_OS_UNIX */ + +G_END_DECLS + +#endif /* __G_DBUS_PROXY_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusserver.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusserver.h new file mode 100644 index 000000000..8d460e360 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusserver.h @@ -0,0 +1,62 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_SERVER_H__ +#define __G_DBUS_SERVER_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DBUS_SERVER (g_dbus_server_get_type ()) +#define G_DBUS_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DBUS_SERVER, GDBusServer)) +#define G_IS_DBUS_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DBUS_SERVER)) + +GIO_AVAILABLE_IN_ALL +GType g_dbus_server_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GDBusServer *g_dbus_server_new_sync (const gchar *address, + GDBusServerFlags flags, + const gchar *guid, + GDBusAuthObserver *observer, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_server_get_client_address (GDBusServer *server); +GIO_AVAILABLE_IN_ALL +const gchar *g_dbus_server_get_guid (GDBusServer *server); +GIO_AVAILABLE_IN_ALL +GDBusServerFlags g_dbus_server_get_flags (GDBusServer *server); +GIO_AVAILABLE_IN_ALL +void g_dbus_server_start (GDBusServer *server); +GIO_AVAILABLE_IN_ALL +void g_dbus_server_stop (GDBusServer *server); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_server_is_active (GDBusServer *server); + +G_END_DECLS + +#endif /* __G_DBUS_SERVER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusutils.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusutils.h new file mode 100644 index 000000000..3003b7165 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdbusutils.h @@ -0,0 +1,65 @@ +/* GDBus - GLib D-Bus Library + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: David Zeuthen + */ + +#ifndef __G_DBUS_UTILS_H__ +#define __G_DBUS_UTILS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_is_guid (const gchar *string); +GIO_AVAILABLE_IN_ALL +gchar *g_dbus_generate_guid (void); + +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_is_name (const gchar *string); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_is_unique_name (const gchar *string); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_is_member_name (const gchar *string); +GIO_AVAILABLE_IN_ALL +gboolean g_dbus_is_interface_name (const gchar *string); +GIO_AVAILABLE_IN_2_70 +gboolean g_dbus_is_error_name (const gchar *string); + +GIO_AVAILABLE_IN_ALL +void g_dbus_gvariant_to_gvalue (GVariant *value, + GValue *out_gvalue); +GIO_AVAILABLE_IN_ALL +GVariant *g_dbus_gvalue_to_gvariant (const GValue *gvalue, + const GVariantType *type); +GIO_AVAILABLE_IN_2_68 +gchar *g_dbus_escape_object_path_bytestring (const guint8 *bytes); +GIO_AVAILABLE_IN_2_68 +gchar *g_dbus_escape_object_path (const gchar *s); +GIO_AVAILABLE_IN_2_68 +guint8 *g_dbus_unescape_object_path (const gchar *s); + +G_END_DECLS + +#endif /* __G_DBUS_UTILS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdebugcontroller.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdebugcontroller.h new file mode 100644 index 000000000..e59cd348d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdebugcontroller.h @@ -0,0 +1,81 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2021 Endless OS Foundation, LLC + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef __G_DEBUG_CONTROLLER_H__ +#define __G_DEBUG_CONTROLLER_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * G_DEBUG_CONTROLLER_EXTENSION_POINT_NAME: + * + * Extension point for debug control functionality. + * See [Extending GIO][extending-gio]. + * + * Since: 2.72 + */ +#define G_DEBUG_CONTROLLER_EXTENSION_POINT_NAME "gio-debug-controller" + +/** + * GDebugController: + * + * #GDebugController is an interface to expose control of debugging features and + * debug output. + * + * Since: 2.72 + */ +#define G_TYPE_DEBUG_CONTROLLER (g_debug_controller_get_type ()) +GIO_AVAILABLE_IN_2_72 +G_DECLARE_INTERFACE(GDebugController, g_debug_controller, g, debug_controller, GObject) + +#define G_DEBUG_CONTROLLER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DEBUG_CONTROLLER, GDebugController)) +#define G_IS_DEBUG_CONTROLLER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DEBUG_CONTROLLER)) +#define G_DEBUG_CONTROLLER_GET_INTERFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), G_TYPE_DEBUG_CONTROLLER, GDebugControllerInterface)) + +/** + * GDebugControllerInterface: + * @g_iface: The parent interface. + * + * The virtual function table for #GDebugController. + * + * Since: 2.72 + */ +struct _GDebugControllerInterface { + /*< private >*/ + GTypeInterface g_iface; +}; + +GIO_AVAILABLE_IN_2_72 +gboolean g_debug_controller_get_debug_enabled (GDebugController *self); +GIO_AVAILABLE_IN_2_72 +void g_debug_controller_set_debug_enabled (GDebugController *self, + gboolean debug_enabled); + +G_END_DECLS + +#endif /* __G_DEBUG_CONTROLLER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdebugcontrollerdbus.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdebugcontrollerdbus.h new file mode 100644 index 000000000..c6e6c700c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdebugcontrollerdbus.h @@ -0,0 +1,71 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2021 Endless OS Foundation, LLC + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef __G_DEBUG_CONTROLLER_DBUS_H__ +#define __G_DEBUG_CONTROLLER_DBUS_H__ + +#include +#include + +G_BEGIN_DECLS + +/** + * GDebugControllerDBus: + * + * #GDebugControllerDBus is an implementation of #GDebugController over D-Bus. + * + * Since: 2.72 + */ +#define G_TYPE_DEBUG_CONTROLLER_DBUS (g_debug_controller_dbus_get_type ()) +GIO_AVAILABLE_IN_2_72 +G_DECLARE_DERIVABLE_TYPE (GDebugControllerDBus, g_debug_controller_dbus, G, DEBUG_CONTROLLER_DBUS, GObject) + +/** + * GDebugControllerDBusClass: + * @parent_class: The parent class. + * @authorize: Default handler for the #GDebugControllerDBus::authorize signal. + * + * The virtual function table for #GDebugControllerDBus. + * + * Since: 2.72 + */ +struct _GDebugControllerDBusClass +{ + GObjectClass parent_class; + + gboolean (*authorize) (GDebugControllerDBus *controller, + GDBusMethodInvocation *invocation); + + gpointer padding[12]; +}; + +GIO_AVAILABLE_IN_2_72 +GDebugControllerDBus *g_debug_controller_dbus_new (GDBusConnection *connection, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_72 +void g_debug_controller_dbus_stop (GDebugControllerDBus *self); + +G_END_DECLS + +#endif /* __G_DEBUG_CONTROLLER_DBUS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdrive.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdrive.h new file mode 100644 index 000000000..7551a4025 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdrive.h @@ -0,0 +1,274 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + * David Zeuthen + */ + +#ifndef __G_DRIVE_H__ +#define __G_DRIVE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * G_DRIVE_IDENTIFIER_KIND_UNIX_DEVICE: + * + * The string used to obtain a Unix device path with g_drive_get_identifier(). + * + * Since: 2.58 + */ +#define G_DRIVE_IDENTIFIER_KIND_UNIX_DEVICE "unix-device" + +#define G_TYPE_DRIVE (g_drive_get_type ()) +#define G_DRIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_DRIVE, GDrive)) +#define G_IS_DRIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_DRIVE)) +#define G_DRIVE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_DRIVE, GDriveIface)) + +/** + * GDriveIface: + * @g_iface: The parent interface. + * @changed: Signal emitted when the drive is changed. + * @disconnected: The removed signal that is emitted when the #GDrive have been disconnected. If the recipient is holding references to the object they should release them so the object can be finalized. + * @eject_button: Signal emitted when the physical eject button (if any) of a drive have been pressed. + * @get_name: Returns the name for the given #GDrive. + * @get_icon: Returns a #GIcon for the given #GDrive. + * @has_volumes: Returns %TRUE if the #GDrive has mountable volumes. + * @get_volumes: Returns a list #GList of #GVolume for the #GDrive. + * @is_removable: Returns %TRUE if the #GDrive and/or its media is considered removable by the user. Since 2.50. + * @is_media_removable: Returns %TRUE if the #GDrive supports removal and insertion of media. + * @has_media: Returns %TRUE if the #GDrive has media inserted. + * @is_media_check_automatic: Returns %TRUE if the #GDrive is capable of automatically detecting media changes. + * @can_poll_for_media: Returns %TRUE if the #GDrive is capable of manually polling for media change. + * @can_eject: Returns %TRUE if the #GDrive can eject media. + * @eject: Ejects a #GDrive. + * @eject_finish: Finishes an eject operation. + * @poll_for_media: Poll for media insertion/removal on a #GDrive. + * @poll_for_media_finish: Finishes a media poll operation. + * @get_identifier: Returns the identifier of the given kind, or %NULL if + * the #GDrive doesn't have one. + * @enumerate_identifiers: Returns an array strings listing the kinds + * of identifiers which the #GDrive has. + * @get_start_stop_type: Gets a #GDriveStartStopType with details about starting/stopping the drive. Since 2.22. + * @can_stop: Returns %TRUE if a #GDrive can be stopped. Since 2.22. + * @stop: Stops a #GDrive. Since 2.22. + * @stop_finish: Finishes a stop operation. Since 2.22. + * @can_start: Returns %TRUE if a #GDrive can be started. Since 2.22. + * @can_start_degraded: Returns %TRUE if a #GDrive can be started degraded. Since 2.22. + * @start: Starts a #GDrive. Since 2.22. + * @start_finish: Finishes a start operation. Since 2.22. + * @stop_button: Signal emitted when the physical stop button (if any) of a drive have been pressed. Since 2.22. + * @eject_with_operation: Starts ejecting a #GDrive using a #GMountOperation. Since 2.22. + * @eject_with_operation_finish: Finishes an eject operation using a #GMountOperation. Since 2.22. + * @get_sort_key: Gets a key used for sorting #GDrive instances or %NULL if no such key exists. Since 2.32. + * @get_symbolic_icon: Returns a symbolic #GIcon for the given #GDrive. Since 2.34. + * + * Interface for creating #GDrive implementations. + */ +typedef struct _GDriveIface GDriveIface; + +struct _GDriveIface +{ + GTypeInterface g_iface; + + /* signals */ + void (* changed) (GDrive *drive); + void (* disconnected) (GDrive *drive); + void (* eject_button) (GDrive *drive); + + /* Virtual Table */ + char * (* get_name) (GDrive *drive); + GIcon * (* get_icon) (GDrive *drive); + gboolean (* has_volumes) (GDrive *drive); + GList * (* get_volumes) (GDrive *drive); + gboolean (* is_media_removable) (GDrive *drive); + gboolean (* has_media) (GDrive *drive); + gboolean (* is_media_check_automatic) (GDrive *drive); + gboolean (* can_eject) (GDrive *drive); + gboolean (* can_poll_for_media) (GDrive *drive); + void (* eject) (GDrive *drive, + GMountUnmountFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* eject_finish) (GDrive *drive, + GAsyncResult *result, + GError **error); + void (* poll_for_media) (GDrive *drive, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* poll_for_media_finish) (GDrive *drive, + GAsyncResult *result, + GError **error); + + char * (* get_identifier) (GDrive *drive, + const char *kind); + char ** (* enumerate_identifiers) (GDrive *drive); + + GDriveStartStopType (* get_start_stop_type) (GDrive *drive); + + gboolean (* can_start) (GDrive *drive); + gboolean (* can_start_degraded) (GDrive *drive); + void (* start) (GDrive *drive, + GDriveStartFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* start_finish) (GDrive *drive, + GAsyncResult *result, + GError **error); + + gboolean (* can_stop) (GDrive *drive); + void (* stop) (GDrive *drive, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* stop_finish) (GDrive *drive, + GAsyncResult *result, + GError **error); + /* signal, not VFunc */ + void (* stop_button) (GDrive *drive); + + void (* eject_with_operation) (GDrive *drive, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* eject_with_operation_finish) (GDrive *drive, + GAsyncResult *result, + GError **error); + + const gchar * (* get_sort_key) (GDrive *drive); + GIcon * (* get_symbolic_icon) (GDrive *drive); + gboolean (* is_removable) (GDrive *drive); + +}; + +GIO_AVAILABLE_IN_ALL +GType g_drive_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +char * g_drive_get_name (GDrive *drive); +GIO_AVAILABLE_IN_ALL +GIcon * g_drive_get_icon (GDrive *drive); +GIO_AVAILABLE_IN_ALL +GIcon * g_drive_get_symbolic_icon (GDrive *drive); +GIO_AVAILABLE_IN_ALL +gboolean g_drive_has_volumes (GDrive *drive); +GIO_AVAILABLE_IN_ALL +GList * g_drive_get_volumes (GDrive *drive); +GIO_AVAILABLE_IN_2_50 +gboolean g_drive_is_removable (GDrive *drive); +GIO_AVAILABLE_IN_ALL +gboolean g_drive_is_media_removable (GDrive *drive); +GIO_AVAILABLE_IN_ALL +gboolean g_drive_has_media (GDrive *drive); +GIO_AVAILABLE_IN_ALL +gboolean g_drive_is_media_check_automatic (GDrive *drive); +GIO_AVAILABLE_IN_ALL +gboolean g_drive_can_poll_for_media (GDrive *drive); +GIO_AVAILABLE_IN_ALL +gboolean g_drive_can_eject (GDrive *drive); +GIO_DEPRECATED_FOR(g_drive_eject_with_operation) +void g_drive_eject (GDrive *drive, + GMountUnmountFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_DEPRECATED_FOR(g_drive_eject_with_operation_finish) +gboolean g_drive_eject_finish (GDrive *drive, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_drive_poll_for_media (GDrive *drive, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_drive_poll_for_media_finish (GDrive *drive, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +char * g_drive_get_identifier (GDrive *drive, + const char *kind); +GIO_AVAILABLE_IN_ALL +char ** g_drive_enumerate_identifiers (GDrive *drive); + +GIO_AVAILABLE_IN_ALL +GDriveStartStopType g_drive_get_start_stop_type (GDrive *drive); + +GIO_AVAILABLE_IN_ALL +gboolean g_drive_can_start (GDrive *drive); +GIO_AVAILABLE_IN_ALL +gboolean g_drive_can_start_degraded (GDrive *drive); +GIO_AVAILABLE_IN_ALL +void g_drive_start (GDrive *drive, + GDriveStartFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_drive_start_finish (GDrive *drive, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_drive_can_stop (GDrive *drive); +GIO_AVAILABLE_IN_ALL +void g_drive_stop (GDrive *drive, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_drive_stop_finish (GDrive *drive, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_drive_eject_with_operation (GDrive *drive, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_drive_eject_with_operation_finish (GDrive *drive, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_2_32 +const gchar *g_drive_get_sort_key (GDrive *drive); + +G_END_DECLS + +#endif /* __G_DRIVE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdtlsclientconnection.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdtlsclientconnection.h new file mode 100644 index 000000000..f8ee1f49e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdtlsclientconnection.h @@ -0,0 +1,77 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2010 Red Hat, Inc. + * Copyright © 2015 Collabora, Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_DTLS_CLIENT_CONNECTION_H__ +#define __G_DTLS_CLIENT_CONNECTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DTLS_CLIENT_CONNECTION (g_dtls_client_connection_get_type ()) +#define G_DTLS_CLIENT_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), G_TYPE_DTLS_CLIENT_CONNECTION, GDtlsClientConnection)) +#define G_IS_DTLS_CLIENT_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_DTLS_CLIENT_CONNECTION)) +#define G_DTLS_CLIENT_CONNECTION_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), G_TYPE_DTLS_CLIENT_CONNECTION, GDtlsClientConnectionInterface)) + +typedef struct _GDtlsClientConnectionInterface GDtlsClientConnectionInterface; + +/** + * GDtlsClientConnectionInterface: + * @g_iface: The parent interface. + * + * vtable for a #GDtlsClientConnection implementation. + * + * Since: 2.48 + */ +struct _GDtlsClientConnectionInterface +{ + GTypeInterface g_iface; +}; + +GIO_AVAILABLE_IN_2_48 +GType g_dtls_client_connection_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_48 +GDatagramBased *g_dtls_client_connection_new (GDatagramBased *base_socket, + GSocketConnectable *server_identity, + GError **error); + +GIO_AVAILABLE_IN_2_48 +GTlsCertificateFlags g_dtls_client_connection_get_validation_flags (GDtlsClientConnection *conn); +GIO_AVAILABLE_IN_2_48 +void g_dtls_client_connection_set_validation_flags (GDtlsClientConnection *conn, + GTlsCertificateFlags flags); +GIO_AVAILABLE_IN_2_48 +GSocketConnectable *g_dtls_client_connection_get_server_identity (GDtlsClientConnection *conn); +GIO_AVAILABLE_IN_2_48 +void g_dtls_client_connection_set_server_identity (GDtlsClientConnection *conn, + GSocketConnectable *identity); +GIO_AVAILABLE_IN_2_48 +GList * g_dtls_client_connection_get_accepted_cas (GDtlsClientConnection *conn); + + +G_END_DECLS + +#endif /* __G_DTLS_CLIENT_CONNECTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdtlsconnection.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdtlsconnection.h new file mode 100644 index 000000000..c7513ee9e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdtlsconnection.h @@ -0,0 +1,230 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2010 Red Hat, Inc. + * Copyright © 2015 Collabora, Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_DTLS_CONNECTION_H__ +#define __G_DTLS_CONNECTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DTLS_CONNECTION (g_dtls_connection_get_type ()) +#define G_DTLS_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), G_TYPE_DTLS_CONNECTION, GDtlsConnection)) +#define G_IS_DTLS_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_DTLS_CONNECTION)) +#define G_DTLS_CONNECTION_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), G_TYPE_DTLS_CONNECTION, GDtlsConnectionInterface)) + +typedef struct _GDtlsConnectionInterface GDtlsConnectionInterface; + +/** + * GDtlsConnectionInterface: + * @g_iface: The parent interface. + * @accept_certificate: Check whether to accept a certificate. + * @handshake: Perform a handshake operation. + * @handshake_async: Start an asynchronous handshake operation. + * @handshake_finish: Finish an asynchronous handshake operation. + * @shutdown: Shut down one or both directions of the connection. + * @shutdown_async: Start an asynchronous shutdown operation. + * @shutdown_finish: Finish an asynchronous shutdown operation. + * @set_advertised_protocols: Set APLN protocol list (Since: 2.60) + * @get_negotiated_protocol: Get ALPN-negotiated protocol (Since: 2.60) + * @get_binding_data: Retrieve TLS channel binding data (Since: 2.66) + * + * Virtual method table for a #GDtlsConnection implementation. + * + * Since: 2.48 + */ +struct _GDtlsConnectionInterface +{ + GTypeInterface g_iface; + + /* signals */ + gboolean (*accept_certificate) (GDtlsConnection *connection, + GTlsCertificate *peer_cert, + GTlsCertificateFlags errors); + + /* methods */ + gboolean (*handshake) (GDtlsConnection *conn, + GCancellable *cancellable, + GError **error); + + void (*handshake_async) (GDtlsConnection *conn, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (*handshake_finish) (GDtlsConnection *conn, + GAsyncResult *result, + GError **error); + + gboolean (*shutdown) (GDtlsConnection *conn, + gboolean shutdown_read, + gboolean shutdown_write, + GCancellable *cancellable, + GError **error); + + void (*shutdown_async) (GDtlsConnection *conn, + gboolean shutdown_read, + gboolean shutdown_write, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (*shutdown_finish) (GDtlsConnection *conn, + GAsyncResult *result, + GError **error); + + void (*set_advertised_protocols) (GDtlsConnection *conn, + const gchar * const *protocols); + const gchar *(*get_negotiated_protocol) (GDtlsConnection *conn); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + gboolean (*get_binding_data) (GDtlsConnection *conn, + GTlsChannelBindingType type, + GByteArray *data, + GError **error); +G_GNUC_END_IGNORE_DEPRECATIONS +}; + +GIO_AVAILABLE_IN_2_48 +GType g_dtls_connection_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_48 +void g_dtls_connection_set_database (GDtlsConnection *conn, + GTlsDatabase *database); +GIO_AVAILABLE_IN_2_48 +GTlsDatabase *g_dtls_connection_get_database (GDtlsConnection *conn); + +GIO_AVAILABLE_IN_2_48 +void g_dtls_connection_set_certificate (GDtlsConnection *conn, + GTlsCertificate *certificate); +GIO_AVAILABLE_IN_2_48 +GTlsCertificate *g_dtls_connection_get_certificate (GDtlsConnection *conn); + +GIO_AVAILABLE_IN_2_48 +void g_dtls_connection_set_interaction (GDtlsConnection *conn, + GTlsInteraction *interaction); +GIO_AVAILABLE_IN_2_48 +GTlsInteraction *g_dtls_connection_get_interaction (GDtlsConnection *conn); + +GIO_AVAILABLE_IN_2_48 +GTlsCertificate *g_dtls_connection_get_peer_certificate (GDtlsConnection *conn); +GIO_AVAILABLE_IN_2_48 +GTlsCertificateFlags g_dtls_connection_get_peer_certificate_errors (GDtlsConnection *conn); + +GIO_AVAILABLE_IN_2_48 +void g_dtls_connection_set_require_close_notify (GDtlsConnection *conn, + gboolean require_close_notify); +GIO_AVAILABLE_IN_2_48 +gboolean g_dtls_connection_get_require_close_notify (GDtlsConnection *conn); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GIO_DEPRECATED_IN_2_60 +void g_dtls_connection_set_rehandshake_mode (GDtlsConnection *conn, + GTlsRehandshakeMode mode); +GIO_DEPRECATED_IN_2_60 +GTlsRehandshakeMode g_dtls_connection_get_rehandshake_mode (GDtlsConnection *conn); +G_GNUC_END_IGNORE_DEPRECATIONS + +GIO_AVAILABLE_IN_2_48 +gboolean g_dtls_connection_handshake (GDtlsConnection *conn, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_48 +void g_dtls_connection_handshake_async (GDtlsConnection *conn, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_48 +gboolean g_dtls_connection_handshake_finish (GDtlsConnection *conn, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_2_48 +gboolean g_dtls_connection_shutdown (GDtlsConnection *conn, + gboolean shutdown_read, + gboolean shutdown_write, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_48 +void g_dtls_connection_shutdown_async (GDtlsConnection *conn, + gboolean shutdown_read, + gboolean shutdown_write, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_48 +gboolean g_dtls_connection_shutdown_finish (GDtlsConnection *conn, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_2_48 +gboolean g_dtls_connection_close (GDtlsConnection *conn, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_48 +void g_dtls_connection_close_async (GDtlsConnection *conn, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_48 +gboolean g_dtls_connection_close_finish (GDtlsConnection *conn, + GAsyncResult *result, + GError **error); + +/*< protected >*/ +GIO_AVAILABLE_IN_2_48 +gboolean g_dtls_connection_emit_accept_certificate (GDtlsConnection *conn, + GTlsCertificate *peer_cert, + GTlsCertificateFlags errors); +GIO_AVAILABLE_IN_2_60 +void g_dtls_connection_set_advertised_protocols (GDtlsConnection *conn, + const gchar * const *protocols); + +GIO_AVAILABLE_IN_2_60 +const gchar * g_dtls_connection_get_negotiated_protocol (GDtlsConnection *conn); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GIO_AVAILABLE_IN_2_66 +gboolean g_dtls_connection_get_channel_binding_data (GDtlsConnection *conn, + GTlsChannelBindingType type, + GByteArray *data, + GError **error); +G_GNUC_END_IGNORE_DEPRECATIONS + +GIO_AVAILABLE_IN_2_70 +GTlsProtocolVersion g_dtls_connection_get_protocol_version (GDtlsConnection *conn); + +GIO_AVAILABLE_IN_2_70 +gchar * g_dtls_connection_get_ciphersuite_name (GDtlsConnection *conn); + +G_END_DECLS + +#endif /* __G_DTLS_CONNECTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdtlsserverconnection.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdtlsserverconnection.h new file mode 100644 index 000000000..d46366060 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gdtlsserverconnection.h @@ -0,0 +1,71 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2010 Red Hat, Inc. + * Copyright © 2015 Collabora, Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_DTLS_SERVER_CONNECTION_H__ +#define __G_DTLS_SERVER_CONNECTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_DTLS_SERVER_CONNECTION (g_dtls_server_connection_get_type ()) +#define G_DTLS_SERVER_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), G_TYPE_DTLS_SERVER_CONNECTION, GDtlsServerConnection)) +#define G_IS_DTLS_SERVER_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_DTLS_SERVER_CONNECTION)) +#define G_DTLS_SERVER_CONNECTION_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), G_TYPE_DTLS_SERVER_CONNECTION, GDtlsServerConnectionInterface)) + +/** + * GDtlsServerConnection: + * + * DTLS server-side connection. This is the server-side implementation + * of a #GDtlsConnection. + * + * Since: 2.48 + */ +typedef struct _GDtlsServerConnectionInterface GDtlsServerConnectionInterface; + +/** + * GDtlsServerConnectionInterface: + * @g_iface: The parent interface. + * + * vtable for a #GDtlsServerConnection implementation. + * + * Since: 2.48 + */ +struct _GDtlsServerConnectionInterface +{ + GTypeInterface g_iface; +}; + +GIO_AVAILABLE_IN_2_48 +GType g_dtls_server_connection_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_48 +GDatagramBased *g_dtls_server_connection_new (GDatagramBased *base_socket, + GTlsCertificate *certificate, + GError **error); + +G_END_DECLS + +#endif /* __G_DTLS_SERVER_CONNECTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gemblem.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gemblem.h new file mode 100644 index 000000000..eb00c3b34 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gemblem.h @@ -0,0 +1,63 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2008 Clemens N. Buss + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + */ + +#ifndef __G_EMBLEM_H__ +#define __G_EMBLEM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_EMBLEM (g_emblem_get_type ()) +#define G_EMBLEM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_EMBLEM, GEmblem)) +#define G_EMBLEM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_EMBLEM, GEmblemClass)) +#define G_IS_EMBLEM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_EMBLEM)) +#define G_IS_EMBLEM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_EMBLEM)) +#define G_EMBLEM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_EMBLEM, GEmblemClass)) + +/** + * GEmblem: + * + * An object for Emblems + */ +typedef struct _GEmblem GEmblem; +typedef struct _GEmblemClass GEmblemClass; + +GIO_AVAILABLE_IN_ALL +GType g_emblem_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GEmblem *g_emblem_new (GIcon *icon); +GIO_AVAILABLE_IN_ALL +GEmblem *g_emblem_new_with_origin (GIcon *icon, + GEmblemOrigin origin); +GIO_AVAILABLE_IN_ALL +GIcon *g_emblem_get_icon (GEmblem *emblem); +GIO_AVAILABLE_IN_ALL +GEmblemOrigin g_emblem_get_origin (GEmblem *emblem); + +G_END_DECLS + +#endif /* __G_EMBLEM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gemblemedicon.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gemblemedicon.h new file mode 100644 index 000000000..1702b7b19 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gemblemedicon.h @@ -0,0 +1,83 @@ +/* Gio - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Matthias Clasen + * Clemens N. Buss + */ + +#ifndef __G_EMBLEMED_ICON_H__ +#define __G_EMBLEMED_ICON_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_EMBLEMED_ICON (g_emblemed_icon_get_type ()) +#define G_EMBLEMED_ICON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_EMBLEMED_ICON, GEmblemedIcon)) +#define G_EMBLEMED_ICON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_EMBLEMED_ICON, GEmblemedIconClass)) +#define G_IS_EMBLEMED_ICON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_EMBLEMED_ICON)) +#define G_IS_EMBLEMED_ICON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_EMBLEMED_ICON)) +#define G_EMBLEMED_ICON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_EMBLEMED_ICON, GEmblemedIconClass)) + +/** + * GEmblemedIcon: + * + * An implementation of #GIcon for icons with emblems. + **/ +typedef struct _GEmblemedIcon GEmblemedIcon; +typedef struct _GEmblemedIconClass GEmblemedIconClass; +typedef struct _GEmblemedIconPrivate GEmblemedIconPrivate; + +struct _GEmblemedIcon +{ + GObject parent_instance; + + /*< private >*/ + GEmblemedIconPrivate *priv; +}; + +struct _GEmblemedIconClass +{ + GObjectClass parent_class; +}; + +GIO_AVAILABLE_IN_ALL +GType g_emblemed_icon_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GIcon *g_emblemed_icon_new (GIcon *icon, + GEmblem *emblem); +GIO_AVAILABLE_IN_ALL +GIcon *g_emblemed_icon_get_icon (GEmblemedIcon *emblemed); +GIO_AVAILABLE_IN_ALL +GList *g_emblemed_icon_get_emblems (GEmblemedIcon *emblemed); +GIO_AVAILABLE_IN_ALL +void g_emblemed_icon_add_emblem (GEmblemedIcon *emblemed, + GEmblem *emblem); +GIO_AVAILABLE_IN_ALL +void g_emblemed_icon_clear_emblems (GEmblemedIcon *emblemed); + +G_END_DECLS + +#endif /* __G_EMBLEMED_ICON_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfile.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfile.h new file mode 100644 index 000000000..7c43fe070 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfile.h @@ -0,0 +1,1359 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_FILE_H__ +#define __G_FILE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_FILE (g_file_get_type ()) +#define G_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_FILE, GFile)) +#define G_IS_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_FILE)) +#define G_FILE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_FILE, GFileIface)) + +#if 0 +/** + * GFile: + * + * A handle to an object implementing the #GFileIface interface. + * Generally stores a location within the file system. Handles do not + * necessarily represent files or directories that currently exist. + **/ +typedef struct _GFile GFile; /* Dummy typedef */ +#endif +typedef struct _GFileIface GFileIface; + + +/** + * GFileIface: + * @g_iface: The parent interface. + * @dup: Duplicates a #GFile. + * @hash: Creates a hash of a #GFile. + * @equal: Checks equality of two given #GFiles. + * @is_native: Checks to see if a file is native to the system. + * @has_uri_scheme: Checks to see if a #GFile has a given URI scheme. + * @get_uri_scheme: Gets the URI scheme for a #GFile. + * @get_basename: Gets the basename for a given #GFile. + * @get_path: Gets the current path within a #GFile. + * @get_uri: Gets a URI for the path within a #GFile. + * @get_parse_name: Gets the parsed name for the #GFile. + * @get_parent: Gets the parent directory for the #GFile. + * @prefix_matches: Checks whether a #GFile contains a specified file. + * @get_relative_path: Gets the path for a #GFile relative to a given path. + * @resolve_relative_path: Resolves a relative path for a #GFile to an absolute path. + * @get_child_for_display_name: Gets the child #GFile for a given display name. + * @enumerate_children: Gets a #GFileEnumerator with the children of a #GFile. + * @enumerate_children_async: Asynchronously gets a #GFileEnumerator with the children of a #GFile. + * @enumerate_children_finish: Finishes asynchronously enumerating the children. + * @query_info: Gets the #GFileInfo for a #GFile. + * @query_info_async: Asynchronously gets the #GFileInfo for a #GFile. + * @query_info_finish: Finishes an asynchronous query info operation. + * @query_filesystem_info: Gets a #GFileInfo for the file system #GFile is on. + * @query_filesystem_info_async: Asynchronously gets a #GFileInfo for the file system #GFile is on. + * @query_filesystem_info_finish: Finishes asynchronously getting the file system info. + * @find_enclosing_mount: Gets a #GMount for the #GFile. + * @find_enclosing_mount_async: Asynchronously gets the #GMount for a #GFile. + * @find_enclosing_mount_finish: Finishes asynchronously getting the volume. + * @set_display_name: Sets the display name for a #GFile. + * @set_display_name_async: Asynchronously sets a #GFile's display name. + * @set_display_name_finish: Finishes asynchronously setting a #GFile's display name. + * @query_settable_attributes: Returns a list of #GFileAttributeInfos that can be set. + * @_query_settable_attributes_async: Asynchronously gets a list of #GFileAttributeInfos that can be set. + * @_query_settable_attributes_finish: Finishes asynchronously querying settable attributes. + * @query_writable_namespaces: Returns a list of #GFileAttributeInfo namespaces that are writable. + * @_query_writable_namespaces_async: Asynchronously gets a list of #GFileAttributeInfo namespaces that are writable. + * @_query_writable_namespaces_finish: Finishes asynchronously querying the writable namespaces. + * @set_attribute: Sets a #GFileAttributeInfo. + * @set_attributes_from_info: Sets a #GFileAttributeInfo with information from a #GFileInfo. + * @set_attributes_async: Asynchronously sets a file's attributes. + * @set_attributes_finish: Finishes setting a file's attributes asynchronously. + * @read_fn: Reads a file asynchronously. + * @read_async: Asynchronously reads a file. + * @read_finish: Finishes asynchronously reading a file. + * @append_to: Writes to the end of a file. + * @append_to_async: Asynchronously writes to the end of a file. + * @append_to_finish: Finishes an asynchronous file append operation. + * @create: Creates a new file. + * @create_async: Asynchronously creates a file. + * @create_finish: Finishes asynchronously creating a file. + * @replace: Replaces the contents of a file. + * @replace_async: Asynchronously replaces the contents of a file. + * @replace_finish: Finishes asynchronously replacing a file. + * @delete_file: Deletes a file. + * @delete_file_async: Asynchronously deletes a file. + * @delete_file_finish: Finishes an asynchronous delete. + * @trash: Sends a #GFile to the Trash location. + * @trash_async: Asynchronously sends a #GFile to the Trash location. + * @trash_finish: Finishes an asynchronous file trashing operation. + * @make_directory: Makes a directory. + * @make_directory_async: Asynchronously makes a directory. + * @make_directory_finish: Finishes making a directory asynchronously. + * @make_symbolic_link: (nullable): Makes a symbolic link. %NULL if symbolic + * links are unsupported. + * @make_symbolic_link_async: Asynchronously makes a symbolic link + * @make_symbolic_link_finish: Finishes making a symbolic link asynchronously. + * @copy: (nullable): Copies a file. %NULL if copying is unsupported, which will + * cause `GFile` to use a fallback copy method where it reads from the + * source and writes to the destination. + * @copy_async: Asynchronously copies a file. + * @copy_finish: Finishes an asynchronous copy operation. + * @move: Moves a file. + * @move_async: Asynchronously moves a file. Since: 2.72 + * @move_finish: Finishes an asynchronous move operation. Since: 2.72 + * @mount_mountable: Mounts a mountable object. + * @mount_mountable_finish: Finishes a mounting operation. + * @unmount_mountable: Unmounts a mountable object. + * @unmount_mountable_finish: Finishes an unmount operation. + * @eject_mountable: Ejects a mountable. + * @eject_mountable_finish: Finishes an eject operation. + * @mount_enclosing_volume: Mounts a specified location. + * @mount_enclosing_volume_finish: Finishes mounting a specified location. + * @monitor_dir: Creates a #GFileMonitor for the location. + * @monitor_file: Creates a #GFileMonitor for the location. + * @open_readwrite: Open file read/write. Since 2.22. + * @open_readwrite_async: Asynchronously opens file read/write. Since 2.22. + * @open_readwrite_finish: Finishes an asynchronous open read/write. Since 2.22. + * @create_readwrite: Creates file read/write. Since 2.22. + * @create_readwrite_async: Asynchronously creates file read/write. Since 2.22. + * @create_readwrite_finish: Finishes an asynchronous creates read/write. Since 2.22. + * @replace_readwrite: Replaces file read/write. Since 2.22. + * @replace_readwrite_async: Asynchronously replaces file read/write. Since 2.22. + * @replace_readwrite_finish: Finishes an asynchronous replace read/write. Since 2.22. + * @start_mountable: Starts a mountable object. Since 2.22. + * @start_mountable_finish: Finishes a start operation. Since 2.22. + * @stop_mountable: Stops a mountable. Since 2.22. + * @stop_mountable_finish: Finishes a stop operation. Since 2.22. + * @supports_thread_contexts: a boolean that indicates whether the #GFile implementation supports thread-default contexts. Since 2.22. + * @unmount_mountable_with_operation: Unmounts a mountable object using a #GMountOperation. Since 2.22. + * @unmount_mountable_with_operation_finish: Finishes an unmount operation using a #GMountOperation. Since 2.22. + * @eject_mountable_with_operation: Ejects a mountable object using a #GMountOperation. Since 2.22. + * @eject_mountable_with_operation_finish: Finishes an eject operation using a #GMountOperation. Since 2.22. + * @poll_mountable: Polls a mountable object for media changes. Since 2.22. + * @poll_mountable_finish: Finishes a poll operation for media changes. Since 2.22. + * @measure_disk_usage: Recursively measures the disk usage of @file. Since 2.38 + * @measure_disk_usage_async: Asynchronously recursively measures the disk usage of @file. Since 2.38 + * @measure_disk_usage_finish: Finishes an asynchronous recursive measurement of the disk usage of @file. Since 2.38 + * + * An interface for writing VFS file handles. + **/ +struct _GFileIface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + + GFile * (* dup) (GFile *file); + guint (* hash) (GFile *file); + gboolean (* equal) (GFile *file1, + GFile *file2); + gboolean (* is_native) (GFile *file); + gboolean (* has_uri_scheme) (GFile *file, + const char *uri_scheme); + char * (* get_uri_scheme) (GFile *file); + char * (* get_basename) (GFile *file); + char * (* get_path) (GFile *file); + char * (* get_uri) (GFile *file); + char * (* get_parse_name) (GFile *file); + GFile * (* get_parent) (GFile *file); + gboolean (* prefix_matches) (GFile *prefix, + GFile *file); + char * (* get_relative_path) (GFile *parent, + GFile *descendant); + GFile * (* resolve_relative_path) (GFile *file, + const char *relative_path); + GFile * (* get_child_for_display_name) (GFile *file, + const char *display_name, + GError **error); + + GFileEnumerator * (* enumerate_children) (GFile *file, + const char *attributes, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); + void (* enumerate_children_async) (GFile *file, + const char *attributes, + GFileQueryInfoFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFileEnumerator * (* enumerate_children_finish) (GFile *file, + GAsyncResult *res, + GError **error); + + GFileInfo * (* query_info) (GFile *file, + const char *attributes, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); + void (* query_info_async) (GFile *file, + const char *attributes, + GFileQueryInfoFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFileInfo * (* query_info_finish) (GFile *file, + GAsyncResult *res, + GError **error); + + GFileInfo * (* query_filesystem_info) (GFile *file, + const char *attributes, + GCancellable *cancellable, + GError **error); + void (* query_filesystem_info_async) (GFile *file, + const char *attributes, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFileInfo * (* query_filesystem_info_finish)(GFile *file, + GAsyncResult *res, + GError **error); + + GMount * (* find_enclosing_mount) (GFile *file, + GCancellable *cancellable, + GError **error); + void (* find_enclosing_mount_async) (GFile *file, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GMount * (* find_enclosing_mount_finish) (GFile *file, + GAsyncResult *res, + GError **error); + + GFile * (* set_display_name) (GFile *file, + const char *display_name, + GCancellable *cancellable, + GError **error); + void (* set_display_name_async) (GFile *file, + const char *display_name, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFile * (* set_display_name_finish) (GFile *file, + GAsyncResult *res, + GError **error); + + GFileAttributeInfoList * (* query_settable_attributes) (GFile *file, + GCancellable *cancellable, + GError **error); + void (* _query_settable_attributes_async) (void); + void (* _query_settable_attributes_finish) (void); + + GFileAttributeInfoList * (* query_writable_namespaces) (GFile *file, + GCancellable *cancellable, + GError **error); + void (* _query_writable_namespaces_async) (void); + void (* _query_writable_namespaces_finish) (void); + + gboolean (* set_attribute) (GFile *file, + const char *attribute, + GFileAttributeType type, + gpointer value_p, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); + gboolean (* set_attributes_from_info) (GFile *file, + GFileInfo *info, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); + void (* set_attributes_async) (GFile *file, + GFileInfo *info, + GFileQueryInfoFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* set_attributes_finish) (GFile *file, + GAsyncResult *result, + GFileInfo **info, + GError **error); + + GFileInputStream * (* read_fn) (GFile *file, + GCancellable *cancellable, + GError **error); + void (* read_async) (GFile *file, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFileInputStream * (* read_finish) (GFile *file, + GAsyncResult *res, + GError **error); + + GFileOutputStream * (* append_to) (GFile *file, + GFileCreateFlags flags, + GCancellable *cancellable, + GError **error); + void (* append_to_async) (GFile *file, + GFileCreateFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFileOutputStream * (* append_to_finish) (GFile *file, + GAsyncResult *res, + GError **error); + + GFileOutputStream * (* create) (GFile *file, + GFileCreateFlags flags, + GCancellable *cancellable, + GError **error); + void (* create_async) (GFile *file, + GFileCreateFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFileOutputStream * (* create_finish) (GFile *file, + GAsyncResult *res, + GError **error); + + GFileOutputStream * (* replace) (GFile *file, + const char *etag, + gboolean make_backup, + GFileCreateFlags flags, + GCancellable *cancellable, + GError **error); + void (* replace_async) (GFile *file, + const char *etag, + gboolean make_backup, + GFileCreateFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFileOutputStream * (* replace_finish) (GFile *file, + GAsyncResult *res, + GError **error); + + gboolean (* delete_file) (GFile *file, + GCancellable *cancellable, + GError **error); + void (* delete_file_async) (GFile *file, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* delete_file_finish) (GFile *file, + GAsyncResult *result, + GError **error); + + gboolean (* trash) (GFile *file, + GCancellable *cancellable, + GError **error); + void (* trash_async) (GFile *file, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* trash_finish) (GFile *file, + GAsyncResult *result, + GError **error); + + gboolean (* make_directory) (GFile *file, + GCancellable *cancellable, + GError **error); + void (* make_directory_async) (GFile *file, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* make_directory_finish) (GFile *file, + GAsyncResult *result, + GError **error); + + gboolean (* make_symbolic_link) (GFile *file, + const char *symlink_value, + GCancellable *cancellable, + GError **error); + void (* make_symbolic_link_async) (GFile *file, + const char *symlink_value, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* make_symbolic_link_finish) (GFile *file, + GAsyncResult *result, + GError **error); + + gboolean (* copy) (GFile *source, + GFile *destination, + GFileCopyFlags flags, + GCancellable *cancellable, + GFileProgressCallback progress_callback, + gpointer progress_callback_data, + GError **error); + void (* copy_async) (GFile *source, + GFile *destination, + GFileCopyFlags flags, + int io_priority, + GCancellable *cancellable, + GFileProgressCallback progress_callback, + gpointer progress_callback_data, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* copy_finish) (GFile *file, + GAsyncResult *res, + GError **error); + + gboolean (* move) (GFile *source, + GFile *destination, + GFileCopyFlags flags, + GCancellable *cancellable, + GFileProgressCallback progress_callback, + gpointer progress_callback_data, + GError **error); + void (* move_async) (GFile *source, + GFile *destination, + GFileCopyFlags flags, + int io_priority, + GCancellable *cancellable, + GFileProgressCallback progress_callback, + gpointer progress_callback_data, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* move_finish) (GFile *file, + GAsyncResult *result, + GError **error); + + void (* mount_mountable) (GFile *file, + GMountMountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFile * (* mount_mountable_finish) (GFile *file, + GAsyncResult *result, + GError **error); + + void (* unmount_mountable) (GFile *file, + GMountUnmountFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* unmount_mountable_finish) (GFile *file, + GAsyncResult *result, + GError **error); + + void (* eject_mountable) (GFile *file, + GMountUnmountFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* eject_mountable_finish) (GFile *file, + GAsyncResult *result, + GError **error); + + void (* mount_enclosing_volume) (GFile *location, + GMountMountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* mount_enclosing_volume_finish) (GFile *location, + GAsyncResult *result, + GError **error); + + GFileMonitor * (* monitor_dir) (GFile *file, + GFileMonitorFlags flags, + GCancellable *cancellable, + GError **error); + GFileMonitor * (* monitor_file) (GFile *file, + GFileMonitorFlags flags, + GCancellable *cancellable, + GError **error); + + GFileIOStream * (* open_readwrite) (GFile *file, + GCancellable *cancellable, + GError **error); + void (* open_readwrite_async) (GFile *file, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFileIOStream * (* open_readwrite_finish) (GFile *file, + GAsyncResult *res, + GError **error); + GFileIOStream * (* create_readwrite) (GFile *file, + GFileCreateFlags flags, + GCancellable *cancellable, + GError **error); + void (* create_readwrite_async) (GFile *file, + GFileCreateFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFileIOStream * (* create_readwrite_finish) (GFile *file, + GAsyncResult *res, + GError **error); + GFileIOStream * (* replace_readwrite) (GFile *file, + const char *etag, + gboolean make_backup, + GFileCreateFlags flags, + GCancellable *cancellable, + GError **error); + void (* replace_readwrite_async) (GFile *file, + const char *etag, + gboolean make_backup, + GFileCreateFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFileIOStream * (* replace_readwrite_finish) (GFile *file, + GAsyncResult *res, + GError **error); + + void (* start_mountable) (GFile *file, + GDriveStartFlags flags, + GMountOperation *start_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* start_mountable_finish) (GFile *file, + GAsyncResult *result, + GError **error); + + void (* stop_mountable) (GFile *file, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* stop_mountable_finish) (GFile *file, + GAsyncResult *result, + GError **error); + + gboolean supports_thread_contexts; + + void (* unmount_mountable_with_operation) (GFile *file, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* unmount_mountable_with_operation_finish) (GFile *file, + GAsyncResult *result, + GError **error); + + void (* eject_mountable_with_operation) (GFile *file, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* eject_mountable_with_operation_finish) (GFile *file, + GAsyncResult *result, + GError **error); + + void (* poll_mountable) (GFile *file, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* poll_mountable_finish) (GFile *file, + GAsyncResult *result, + GError **error); + + gboolean (* measure_disk_usage) (GFile *file, + GFileMeasureFlags flags, + GCancellable *cancellable, + GFileMeasureProgressCallback progress_callback, + gpointer progress_data, + guint64 *disk_usage, + guint64 *num_dirs, + guint64 *num_files, + GError **error); + void (* measure_disk_usage_async) (GFile *file, + GFileMeasureFlags flags, + gint io_priority, + GCancellable *cancellable, + GFileMeasureProgressCallback progress_callback, + gpointer progress_data, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* measure_disk_usage_finish) (GFile *file, + GAsyncResult *result, + guint64 *disk_usage, + guint64 *num_dirs, + guint64 *num_files, + GError **error); +}; + +GIO_AVAILABLE_IN_ALL +GType g_file_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GFile * g_file_new_for_path (const char *path); +GIO_AVAILABLE_IN_ALL +GFile * g_file_new_for_uri (const char *uri); +GIO_AVAILABLE_IN_ALL +GFile * g_file_new_for_commandline_arg (const char *arg); +GIO_AVAILABLE_IN_2_36 +GFile * g_file_new_for_commandline_arg_and_cwd (const gchar *arg, + const gchar *cwd); +GIO_AVAILABLE_IN_2_32 +GFile * g_file_new_tmp (const char *tmpl, + GFileIOStream **iostream, + GError **error); +GIO_AVAILABLE_IN_2_74 +void g_file_new_tmp_async (const char *tmpl, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_74 +GFile * g_file_new_tmp_finish (GAsyncResult *result, + GFileIOStream **iostream, + GError **error); +GIO_AVAILABLE_IN_2_74 +void g_file_new_tmp_dir_async (const char *tmpl, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_74 +GFile * g_file_new_tmp_dir_finish (GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +GFile * g_file_parse_name (const char *parse_name); +GIO_AVAILABLE_IN_2_56 +GFile * g_file_new_build_filename (const gchar *first_element, + ...) G_GNUC_NULL_TERMINATED; +GIO_AVAILABLE_IN_2_78 +GFile * g_file_new_build_filenamev (const gchar * const *args); +GIO_AVAILABLE_IN_ALL +GFile * g_file_dup (GFile *file); +GIO_AVAILABLE_IN_ALL +guint g_file_hash (gconstpointer file); +GIO_AVAILABLE_IN_ALL +gboolean g_file_equal (GFile *file1, + GFile *file2); +GIO_AVAILABLE_IN_ALL +char * g_file_get_basename (GFile *file); +GIO_AVAILABLE_IN_ALL +char * g_file_get_path (GFile *file); +GIO_AVAILABLE_IN_2_56 +const char * g_file_peek_path (GFile *file); +GIO_AVAILABLE_IN_ALL +char * g_file_get_uri (GFile *file); +GIO_AVAILABLE_IN_ALL +char * g_file_get_parse_name (GFile *file); +GIO_AVAILABLE_IN_ALL +GFile * g_file_get_parent (GFile *file); +GIO_AVAILABLE_IN_ALL +gboolean g_file_has_parent (GFile *file, + GFile *parent); +GIO_AVAILABLE_IN_ALL +GFile * g_file_get_child (GFile *file, + const char *name); +GIO_AVAILABLE_IN_ALL +GFile * g_file_get_child_for_display_name (GFile *file, + const char *display_name, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_has_prefix (GFile *file, + GFile *prefix); +GIO_AVAILABLE_IN_ALL +char * g_file_get_relative_path (GFile *parent, + GFile *descendant); +GIO_AVAILABLE_IN_ALL +GFile * g_file_resolve_relative_path (GFile *file, + const char *relative_path); +GIO_AVAILABLE_IN_ALL +gboolean g_file_is_native (GFile *file); +GIO_AVAILABLE_IN_ALL +gboolean g_file_has_uri_scheme (GFile *file, + const char *uri_scheme); +GIO_AVAILABLE_IN_ALL +char * g_file_get_uri_scheme (GFile *file); +GIO_AVAILABLE_IN_ALL +GFileInputStream * g_file_read (GFile *file, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_read_async (GFile *file, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFileInputStream * g_file_read_finish (GFile *file, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GFileOutputStream * g_file_append_to (GFile *file, + GFileCreateFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +GFileOutputStream * g_file_create (GFile *file, + GFileCreateFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +GFileOutputStream * g_file_replace (GFile *file, + const char *etag, + gboolean make_backup, + GFileCreateFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_append_to_async (GFile *file, + GFileCreateFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFileOutputStream * g_file_append_to_finish (GFile *file, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_create_async (GFile *file, + GFileCreateFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFileOutputStream * g_file_create_finish (GFile *file, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_replace_async (GFile *file, + const char *etag, + gboolean make_backup, + GFileCreateFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFileOutputStream * g_file_replace_finish (GFile *file, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GFileIOStream * g_file_open_readwrite (GFile *file, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_open_readwrite_async (GFile *file, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFileIOStream * g_file_open_readwrite_finish (GFile *file, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GFileIOStream * g_file_create_readwrite (GFile *file, + GFileCreateFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_create_readwrite_async (GFile *file, + GFileCreateFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFileIOStream * g_file_create_readwrite_finish (GFile *file, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GFileIOStream * g_file_replace_readwrite (GFile *file, + const char *etag, + gboolean make_backup, + GFileCreateFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_replace_readwrite_async (GFile *file, + const char *etag, + gboolean make_backup, + GFileCreateFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFileIOStream * g_file_replace_readwrite_finish (GFile *file, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_query_exists (GFile *file, + GCancellable *cancellable); +GIO_AVAILABLE_IN_ALL +GFileType g_file_query_file_type (GFile *file, + GFileQueryInfoFlags flags, + GCancellable *cancellable); +GIO_AVAILABLE_IN_ALL +GFileInfo * g_file_query_info (GFile *file, + const char *attributes, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_query_info_async (GFile *file, + const char *attributes, + GFileQueryInfoFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFileInfo * g_file_query_info_finish (GFile *file, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GFileInfo * g_file_query_filesystem_info (GFile *file, + const char *attributes, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_query_filesystem_info_async (GFile *file, + const char *attributes, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFileInfo * g_file_query_filesystem_info_finish (GFile *file, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GMount * g_file_find_enclosing_mount (GFile *file, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_find_enclosing_mount_async (GFile *file, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GMount * g_file_find_enclosing_mount_finish (GFile *file, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GFileEnumerator * g_file_enumerate_children (GFile *file, + const char *attributes, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_enumerate_children_async (GFile *file, + const char *attributes, + GFileQueryInfoFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFileEnumerator * g_file_enumerate_children_finish (GFile *file, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +GFile * g_file_set_display_name (GFile *file, + const char *display_name, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_set_display_name_async (GFile *file, + const char *display_name, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFile * g_file_set_display_name_finish (GFile *file, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_delete (GFile *file, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_34 +void g_file_delete_async (GFile *file, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_2_34 +gboolean g_file_delete_finish (GFile *file, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_file_trash (GFile *file, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_38 +void g_file_trash_async (GFile *file, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_2_38 +gboolean g_file_trash_finish (GFile *file, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_file_copy (GFile *source, + GFile *destination, + GFileCopyFlags flags, + GCancellable *cancellable, + GFileProgressCallback progress_callback, + gpointer progress_callback_data, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_copy_async (GFile *source, + GFile *destination, + GFileCopyFlags flags, + int io_priority, + GCancellable *cancellable, + GFileProgressCallback progress_callback, + gpointer progress_callback_data, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_file_copy_finish (GFile *file, + GAsyncResult *res, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_move (GFile *source, + GFile *destination, + GFileCopyFlags flags, + GCancellable *cancellable, + GFileProgressCallback progress_callback, + gpointer progress_callback_data, + GError **error); +GIO_AVAILABLE_IN_2_72 +void g_file_move_async (GFile *source, + GFile *destination, + GFileCopyFlags flags, + int io_priority, + GCancellable *cancellable, + GFileProgressCallback progress_callback, + gpointer progress_callback_data, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_72 +gboolean g_file_move_finish (GFile *file, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_make_directory (GFile *file, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_38 +void g_file_make_directory_async (GFile *file, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_38 +gboolean g_file_make_directory_finish (GFile *file, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_file_make_directory_with_parents (GFile *file, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_make_symbolic_link (GFile *file, + const char *symlink_value, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_74 +void g_file_make_symbolic_link_async (GFile *file, + const char *symlink_value, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_74 +gboolean g_file_make_symbolic_link_finish (GFile *file, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +GFileAttributeInfoList *g_file_query_settable_attributes (GFile *file, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +GFileAttributeInfoList *g_file_query_writable_namespaces (GFile *file, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_set_attribute (GFile *file, + const char *attribute, + GFileAttributeType type, + gpointer value_p, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_set_attributes_from_info (GFile *file, + GFileInfo *info, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_set_attributes_async (GFile *file, + GFileInfo *info, + GFileQueryInfoFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_file_set_attributes_finish (GFile *file, + GAsyncResult *result, + GFileInfo **info, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_set_attribute_string (GFile *file, + const char *attribute, + const char *value, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_set_attribute_byte_string (GFile *file, + const char *attribute, + const char *value, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_set_attribute_uint32 (GFile *file, + const char *attribute, + guint32 value, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_set_attribute_int32 (GFile *file, + const char *attribute, + gint32 value, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_set_attribute_uint64 (GFile *file, + const char *attribute, + guint64 value, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_set_attribute_int64 (GFile *file, + const char *attribute, + gint64 value, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_mount_enclosing_volume (GFile *location, + GMountMountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_file_mount_enclosing_volume_finish (GFile *location, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_mount_mountable (GFile *file, + GMountMountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFile * g_file_mount_mountable_finish (GFile *file, + GAsyncResult *result, + GError **error); +GIO_DEPRECATED_FOR(g_file_unmount_mountable_with_operation) +void g_file_unmount_mountable (GFile *file, + GMountUnmountFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_DEPRECATED_FOR(g_file_unmount_mountable_with_operation_finish) +gboolean g_file_unmount_mountable_finish (GFile *file, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_unmount_mountable_with_operation (GFile *file, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_file_unmount_mountable_with_operation_finish (GFile *file, + GAsyncResult *result, + GError **error); +GIO_DEPRECATED_FOR(g_file_eject_mountable_with_operation) +void g_file_eject_mountable (GFile *file, + GMountUnmountFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_DEPRECATED_FOR(g_file_eject_mountable_with_operation_finish) +gboolean g_file_eject_mountable_finish (GFile *file, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_eject_mountable_with_operation (GFile *file, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_file_eject_mountable_with_operation_finish (GFile *file, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_2_68 +char * g_file_build_attribute_list_for_copy (GFile *file, + GFileCopyFlags flags, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_file_copy_attributes (GFile *source, + GFile *destination, + GFileCopyFlags flags, + GCancellable *cancellable, + GError **error); + + +GIO_AVAILABLE_IN_ALL +GFileMonitor* g_file_monitor_directory (GFile *file, + GFileMonitorFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +GFileMonitor* g_file_monitor_file (GFile *file, + GFileMonitorFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +GFileMonitor* g_file_monitor (GFile *file, + GFileMonitorFlags flags, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_38 +gboolean g_file_measure_disk_usage (GFile *file, + GFileMeasureFlags flags, + GCancellable *cancellable, + GFileMeasureProgressCallback progress_callback, + gpointer progress_data, + guint64 *disk_usage, + guint64 *num_dirs, + guint64 *num_files, + GError **error); + +GIO_AVAILABLE_IN_2_38 +void g_file_measure_disk_usage_async (GFile *file, + GFileMeasureFlags flags, + gint io_priority, + GCancellable *cancellable, + GFileMeasureProgressCallback progress_callback, + gpointer progress_data, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_2_38 +gboolean g_file_measure_disk_usage_finish (GFile *file, + GAsyncResult *result, + guint64 *disk_usage, + guint64 *num_dirs, + guint64 *num_files, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_file_start_mountable (GFile *file, + GDriveStartFlags flags, + GMountOperation *start_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_file_start_mountable_finish (GFile *file, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_stop_mountable (GFile *file, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_file_stop_mountable_finish (GFile *file, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_file_poll_mountable (GFile *file, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_file_poll_mountable_finish (GFile *file, + GAsyncResult *result, + GError **error); + +/* Utilities */ + +GIO_AVAILABLE_IN_ALL +GAppInfo *g_file_query_default_handler (GFile *file, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_60 +void g_file_query_default_handler_async (GFile *file, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_60 +GAppInfo *g_file_query_default_handler_finish (GFile *file, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_file_load_contents (GFile *file, + GCancellable *cancellable, + char **contents, + gsize *length, + char **etag_out, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_load_contents_async (GFile *file, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_file_load_contents_finish (GFile *file, + GAsyncResult *res, + char **contents, + gsize *length, + char **etag_out, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_load_partial_contents_async (GFile *file, + GCancellable *cancellable, + GFileReadMoreCallback read_more_callback, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_file_load_partial_contents_finish (GFile *file, + GAsyncResult *res, + char **contents, + gsize *length, + char **etag_out, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_replace_contents (GFile *file, + const char *contents, + gsize length, + const char *etag, + gboolean make_backup, + GFileCreateFlags flags, + char **new_etag, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_replace_contents_async (GFile *file, + const char *contents, + gsize length, + const char *etag, + gboolean make_backup, + GFileCreateFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_40 +void g_file_replace_contents_bytes_async (GFile *file, + GBytes *contents, + const char *etag, + gboolean make_backup, + GFileCreateFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_file_replace_contents_finish (GFile *file, + GAsyncResult *res, + char **new_etag, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_file_supports_thread_contexts (GFile *file); + +GIO_AVAILABLE_IN_2_56 +GBytes *g_file_load_bytes (GFile *file, + GCancellable *cancellable, + gchar **etag_out, + GError **error); +GIO_AVAILABLE_IN_2_56 +void g_file_load_bytes_async (GFile *file, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_56 +GBytes *g_file_load_bytes_finish (GFile *file, + GAsyncResult *result, + gchar **etag_out, + GError **error); + +G_END_DECLS + +#endif /* __G_FILE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileattribute.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileattribute.h new file mode 100644 index 000000000..0ce609819 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileattribute.h @@ -0,0 +1,86 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_FILE_ATTRIBUTE_H__ +#define __G_FILE_ATTRIBUTE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * GFileAttributeInfo: + * @name: the name of the attribute. + * @type: the #GFileAttributeType type of the attribute. + * @flags: a set of #GFileAttributeInfoFlags. + * + * Information about a specific attribute. + **/ +struct _GFileAttributeInfo +{ + char *name; + GFileAttributeType type; + GFileAttributeInfoFlags flags; +}; + +/** + * GFileAttributeInfoList: + * @infos: an array of #GFileAttributeInfos. + * @n_infos: the number of values in the array. + * + * Acts as a lightweight registry for possible valid file attributes. + * The registry stores Key-Value pair formats as #GFileAttributeInfos. + **/ +struct _GFileAttributeInfoList +{ + GFileAttributeInfo *infos; + int n_infos; +}; + +#define G_TYPE_FILE_ATTRIBUTE_INFO_LIST (g_file_attribute_info_list_get_type ()) +GIO_AVAILABLE_IN_ALL +GType g_file_attribute_info_list_get_type (void); + +GIO_AVAILABLE_IN_ALL +GFileAttributeInfoList * g_file_attribute_info_list_new (void); +GIO_AVAILABLE_IN_ALL +GFileAttributeInfoList * g_file_attribute_info_list_ref (GFileAttributeInfoList *list); +GIO_AVAILABLE_IN_ALL +void g_file_attribute_info_list_unref (GFileAttributeInfoList *list); +GIO_AVAILABLE_IN_ALL +GFileAttributeInfoList * g_file_attribute_info_list_dup (GFileAttributeInfoList *list); +GIO_AVAILABLE_IN_ALL +const GFileAttributeInfo *g_file_attribute_info_list_lookup (GFileAttributeInfoList *list, + const char *name); +GIO_AVAILABLE_IN_ALL +void g_file_attribute_info_list_add (GFileAttributeInfoList *list, + const char *name, + GFileAttributeType type, + GFileAttributeInfoFlags flags); + +G_END_DECLS + +#endif /* __G_FILE_INFO_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileenumerator.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileenumerator.h new file mode 100644 index 000000000..eddb58084 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileenumerator.h @@ -0,0 +1,154 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_FILE_ENUMERATOR_H__ +#define __G_FILE_ENUMERATOR_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_FILE_ENUMERATOR (g_file_enumerator_get_type ()) +#define G_FILE_ENUMERATOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_FILE_ENUMERATOR, GFileEnumerator)) +#define G_FILE_ENUMERATOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_FILE_ENUMERATOR, GFileEnumeratorClass)) +#define G_IS_FILE_ENUMERATOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_FILE_ENUMERATOR)) +#define G_IS_FILE_ENUMERATOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_FILE_ENUMERATOR)) +#define G_FILE_ENUMERATOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_FILE_ENUMERATOR, GFileEnumeratorClass)) + +/** + * GFileEnumerator: + * + * A per matched file iterator. + **/ +typedef struct _GFileEnumeratorClass GFileEnumeratorClass; +typedef struct _GFileEnumeratorPrivate GFileEnumeratorPrivate; + +struct _GFileEnumerator +{ + GObject parent_instance; + + /*< private >*/ + GFileEnumeratorPrivate *priv; +}; + +struct _GFileEnumeratorClass +{ + GObjectClass parent_class; + + /* Virtual Table */ + + GFileInfo * (* next_file) (GFileEnumerator *enumerator, + GCancellable *cancellable, + GError **error); + gboolean (* close_fn) (GFileEnumerator *enumerator, + GCancellable *cancellable, + GError **error); + + void (* next_files_async) (GFileEnumerator *enumerator, + int num_files, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GList * (* next_files_finish) (GFileEnumerator *enumerator, + GAsyncResult *result, + GError **error); + void (* close_async) (GFileEnumerator *enumerator, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* close_finish) (GFileEnumerator *enumerator, + GAsyncResult *result, + GError **error); + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); + void (*_g_reserved6) (void); + void (*_g_reserved7) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_file_enumerator_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GFileInfo *g_file_enumerator_next_file (GFileEnumerator *enumerator, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_enumerator_close (GFileEnumerator *enumerator, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_enumerator_next_files_async (GFileEnumerator *enumerator, + int num_files, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GList * g_file_enumerator_next_files_finish (GFileEnumerator *enumerator, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_enumerator_close_async (GFileEnumerator *enumerator, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_file_enumerator_close_finish (GFileEnumerator *enumerator, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_file_enumerator_is_closed (GFileEnumerator *enumerator); +GIO_AVAILABLE_IN_ALL +gboolean g_file_enumerator_has_pending (GFileEnumerator *enumerator); +GIO_AVAILABLE_IN_ALL +void g_file_enumerator_set_pending (GFileEnumerator *enumerator, + gboolean pending); +GIO_AVAILABLE_IN_ALL +GFile * g_file_enumerator_get_container (GFileEnumerator *enumerator); +GIO_AVAILABLE_IN_2_36 +GFile * g_file_enumerator_get_child (GFileEnumerator *enumerator, + GFileInfo *info); + +GIO_AVAILABLE_IN_2_44 +gboolean g_file_enumerator_iterate (GFileEnumerator *direnum, + GFileInfo **out_info, + GFile **out_child, + GCancellable *cancellable, + GError **error); + + +G_END_DECLS + +#endif /* __G_FILE_ENUMERATOR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileicon.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileicon.h new file mode 100644 index 000000000..230acdf24 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileicon.h @@ -0,0 +1,59 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_FILE_ICON_H__ +#define __G_FILE_ICON_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_FILE_ICON (g_file_icon_get_type ()) +#define G_FILE_ICON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_FILE_ICON, GFileIcon)) +#define G_FILE_ICON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_FILE_ICON, GFileIconClass)) +#define G_IS_FILE_ICON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_FILE_ICON)) +#define G_IS_FILE_ICON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_FILE_ICON)) +#define G_FILE_ICON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_FILE_ICON, GFileIconClass)) + +/** + * GFileIcon: + * + * Gets an icon for a #GFile. Implements #GLoadableIcon. + **/ +typedef struct _GFileIconClass GFileIconClass; + +GIO_AVAILABLE_IN_ALL +GType g_file_icon_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GIcon * g_file_icon_new (GFile *file); + +GIO_AVAILABLE_IN_ALL +GFile * g_file_icon_get_file (GFileIcon *icon); + +G_END_DECLS + +#endif /* __G_FILE_ICON_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileinfo.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileinfo.h new file mode 100644 index 000000000..95207b80b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileinfo.h @@ -0,0 +1,1546 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_FILE_INFO_H__ +#define __G_FILE_INFO_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_FILE_INFO (g_file_info_get_type ()) +#define G_FILE_INFO(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_FILE_INFO, GFileInfo)) +#define G_FILE_INFO_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_FILE_INFO, GFileInfoClass)) +#define G_IS_FILE_INFO(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_FILE_INFO)) +#define G_IS_FILE_INFO_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_FILE_INFO)) +#define G_FILE_INFO_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_FILE_INFO, GFileInfoClass)) + +/** + * GFileInfo: + * + * Stores information about a file system object referenced by a #GFile. + **/ +typedef struct _GFileInfoClass GFileInfoClass; + + +/* Common Attributes: */ +/** + * G_FILE_ATTRIBUTE_STANDARD_TYPE: + * + * A key in the "standard" namespace for storing file types. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + * + * The value for this key should contain a #GFileType. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_TYPE "standard::type" /* uint32 (GFileType) */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN: + * + * A key in the "standard" namespace for checking if a file is hidden. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN "standard::is-hidden" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP: + * + * A key in the "standard" namespace for checking if a file is a backup file. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP "standard::is-backup" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK: + * + * A key in the "standard" namespace for checking if the file is a symlink. + * Typically the actual type is something else, if we followed the symlink + * to get the type. + * + * On Windows NTFS mountpoints are considered to be symlinks as well. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK "standard::is-symlink" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL: + * + * A key in the "standard" namespace for checking if a file is virtual. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL "standard::is-virtual" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE: + * + * A key in the "standard" namespace for checking if a file is + * volatile. This is meant for opaque, non-POSIX-like backends to + * indicate that the URI is not persistent. Applications should look + * at %G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET for the persistent URI. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.46 + **/ +#define G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE "standard::is-volatile" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_NAME: + * + * A key in the "standard" namespace for getting the name of the file. + * + * The name is the on-disk filename which may not be in any known encoding, + * and can thus not be generally displayed as is. It is guaranteed to be set on + * every file. + * + * Use %G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME if you need to display the + * name in a user interface. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_NAME "standard::name" /* byte string */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME: + * + * A key in the "standard" namespace for getting the display name of the file. + * + * A display name is guaranteed to be in UTF-8 and can thus be displayed in + * the UI. It is guaranteed to be set on every file. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME "standard::display-name" /* string */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME: + * + * A key in the "standard" namespace for edit name of the file. + * + * An edit name is similar to the display name, but it is meant to be + * used when you want to rename the file in the UI. The display name + * might contain information you don't want in the new filename (such as + * "(invalid unicode)" if the filename was in an invalid encoding). + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME "standard::edit-name" /* string */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_COPY_NAME: + * + * A key in the "standard" namespace for getting the copy name of the file. + * + * The copy name is an optional version of the name. If available it's always + * in UTF8, and corresponds directly to the original filename (only transcoded to + * UTF8). This is useful if you want to copy the file to another filesystem that + * might have a different encoding. If the filename is not a valid string in the + * encoding selected for the filesystem it is in then the copy name will not be set. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_COPY_NAME "standard::copy-name" /* string */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION: + * + * A key in the "standard" namespace for getting the description of the file. + * + * The description is a utf8 string that describes the file, generally containing + * the filename, but can also contain further information. Example descriptions + * could be "filename (on hostname)" for a remote file or "filename (in trash)" + * for a file in the trash. This is useful for instance as the window title + * when displaying a directory or for a bookmarks menu. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_DESCRIPTION "standard::description" /* string */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_ICON: + * + * A key in the "standard" namespace for getting the icon for the file. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT. + * + * The value for this key should contain a #GIcon. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_ICON "standard::icon" /* object (GIcon) */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON: + * + * A key in the "standard" namespace for getting the symbolic icon for the file. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT. + * + * The value for this key should contain a #GIcon. + * + * Since: 2.34 + **/ +#define G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON "standard::symbolic-icon" /* object (GIcon) */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE: + * + * A key in the "standard" namespace for getting the content type of the file. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + * + * The value for this key should contain a valid content type. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE "standard::content-type" /* string */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE: + * + * A key in the "standard" namespace for getting the fast content type. + * + * The fast content type isn't as reliable as the regular one, as it + * only uses the filename to guess it, but it is faster to calculate than the + * regular content type. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + * + **/ +#define G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE "standard::fast-content-type" /* string */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_SIZE: + * + * A key in the "standard" namespace for getting the file's size (in bytes). + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_SIZE "standard::size" /* uint64 */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE: + * + * A key in the "standard" namespace for getting the amount of disk space + * that is consumed by the file (in bytes). + * + * This will generally be larger than the file size (due to block size + * overhead) but can occasionally be smaller (for example, for sparse files). + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64. + * + * Since: 2.20 + **/ +#define G_FILE_ATTRIBUTE_STANDARD_ALLOCATED_SIZE "standard::allocated-size" /* uint64 */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET: + * + * A key in the "standard" namespace for getting the symlink target, if the file + * is a symlink. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET "standard::symlink-target" /* byte string */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_TARGET_URI: + * + * A key in the "standard" namespace for getting the target URI for the file, in + * the case of %G_FILE_TYPE_SHORTCUT or %G_FILE_TYPE_MOUNTABLE files. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_TARGET_URI "standard::target-uri" /* string */ + +/** + * G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER: + * + * A key in the "standard" namespace for setting the sort order of a file. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_INT32. + * + * An example use would be in file managers, which would use this key + * to set the order files are displayed. Files with smaller sort order + * should be sorted first, and files without sort order as if sort order + * was zero. + **/ +#define G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER "standard::sort-order" /* int32 */ + +/* Entity tags, used to avoid missing updates on save */ + +/** + * G_FILE_ATTRIBUTE_ETAG_VALUE: + * + * A key in the "etag" namespace for getting the value of the file's + * entity tag. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + **/ +#define G_FILE_ATTRIBUTE_ETAG_VALUE "etag::value" /* string */ + +/* File identifier, for e.g. avoiding loops when doing recursive + * directory scanning + */ + +/** + * G_FILE_ATTRIBUTE_ID_FILE: + * + * A key in the "id" namespace for getting a file identifier. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + * + * An example use would be during listing files, to avoid recursive + * directory scanning. + **/ +#define G_FILE_ATTRIBUTE_ID_FILE "id::file" /* string */ + +/** + * G_FILE_ATTRIBUTE_ID_FILESYSTEM: + * + * A key in the "id" namespace for getting the file system identifier. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + * + * An example use would be during drag and drop to see if the source + * and target are on the same filesystem (default to move) or not (default + * to copy). + **/ +#define G_FILE_ATTRIBUTE_ID_FILESYSTEM "id::filesystem" /* string */ + +/* Calculated Access Rights for current user */ + +/** + * G_FILE_ATTRIBUTE_ACCESS_CAN_READ: + * + * A key in the "access" namespace for getting read privileges. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * This attribute will be %TRUE if the user is able to read the file. + **/ +#define G_FILE_ATTRIBUTE_ACCESS_CAN_READ "access::can-read" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE: + * + * A key in the "access" namespace for getting write privileges. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * This attribute will be %TRUE if the user is able to write to the file. + **/ +#define G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE "access::can-write" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE: + * + * A key in the "access" namespace for getting execution privileges. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * This attribute will be %TRUE if the user is able to execute the file. + **/ +#define G_FILE_ATTRIBUTE_ACCESS_CAN_EXECUTE "access::can-execute" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE: + * + * A key in the "access" namespace for checking deletion privileges. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * This attribute will be %TRUE if the user is able to delete the file. + **/ +#define G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE "access::can-delete" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH: + * + * A key in the "access" namespace for checking trashing privileges. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * This attribute will be %TRUE if the user is able to move the file to + * the trash. + **/ +#define G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH "access::can-trash" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_ACCESS_CAN_RENAME: + * + * A key in the "access" namespace for checking renaming privileges. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * This attribute will be %TRUE if the user is able to rename the file. + **/ +#define G_FILE_ATTRIBUTE_ACCESS_CAN_RENAME "access::can-rename" /* boolean */ + +/* TODO: Should we have special version for directories? can_enumerate, etc */ + +/* Mountable attributes */ + +/** + * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT: + * + * A key in the "mountable" namespace for checking if a file (of + * type G_FILE_TYPE_MOUNTABLE) is mountable. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + **/ +#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_MOUNT "mountable::can-mount" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT: + * + * A key in the "mountable" namespace for checking if a file (of + * type G_FILE_TYPE_MOUNTABLE) is unmountable. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + **/ +#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_UNMOUNT "mountable::can-unmount" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT: + * + * A key in the "mountable" namespace for checking if a file (of + * type G_FILE_TYPE_MOUNTABLE) can be ejected. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + **/ +#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_EJECT "mountable::can-eject" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE: + * + * A key in the "mountable" namespace for getting the unix device. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + **/ +#define G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE "mountable::unix-device" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE: + * + * A key in the "mountable" namespace for getting the unix device file. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + * + * Since: 2.22 + **/ +#define G_FILE_ATTRIBUTE_MOUNTABLE_UNIX_DEVICE_FILE "mountable::unix-device-file" /* string */ + +/** + * G_FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI: + * + * A key in the "mountable" namespace for getting the HAL UDI for the mountable + * file. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + **/ +#define G_FILE_ATTRIBUTE_MOUNTABLE_HAL_UDI "mountable::hal-udi" /* string */ + +/** + * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START: + * + * A key in the "mountable" namespace for checking if a file (of + * type G_FILE_TYPE_MOUNTABLE) can be started. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.22 + */ +#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START "mountable::can-start" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED: + * + * A key in the "mountable" namespace for checking if a file (of + * type G_FILE_TYPE_MOUNTABLE) can be started degraded. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.22 + */ +#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_START_DEGRADED "mountable::can-start-degraded" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP: + * + * A key in the "mountable" namespace for checking if a file (of + * type G_FILE_TYPE_MOUNTABLE) can be stopped. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.22 + */ +#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_STOP "mountable::can-stop" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE: + * + * A key in the "mountable" namespace for getting the #GDriveStartStopType. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + * + * Since: 2.22 + */ +#define G_FILE_ATTRIBUTE_MOUNTABLE_START_STOP_TYPE "mountable::start-stop-type" /* uint32 (GDriveStartStopType) */ + +/** + * G_FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL: + * + * A key in the "mountable" namespace for checking if a file (of + * type G_FILE_TYPE_MOUNTABLE) can be polled. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.22 + */ +#define G_FILE_ATTRIBUTE_MOUNTABLE_CAN_POLL "mountable::can-poll" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC: + * + * A key in the "mountable" namespace for checking if a file (of + * type G_FILE_TYPE_MOUNTABLE) is automatically polled for media. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.22 + */ +#define G_FILE_ATTRIBUTE_MOUNTABLE_IS_MEDIA_CHECK_AUTOMATIC "mountable::is-media-check-automatic" /* boolean */ + +/* Time attributes */ + +/** + * G_FILE_ATTRIBUTE_TIME_MODIFIED: + * + * A key in the "time" namespace for getting the time the file was last + * modified. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64, and + * contains the time since the file was modified, in seconds since the UNIX + * epoch. + **/ +#define G_FILE_ATTRIBUTE_TIME_MODIFIED "time::modified" /* uint64 */ + +/** + * G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC: + * + * A key in the "time" namespace for getting the microseconds of the time + * the file was last modified. + * + * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_MODIFIED. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + **/ +#define G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC "time::modified-usec" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_TIME_MODIFIED_NSEC: + * + * A key in the "time" namespace for getting the nanoseconds of the time + * the file was last modified. This should be used in conjunction with + * #G_FILE_ATTRIBUTE_TIME_MODIFIED. Corresponding #GFileAttributeType is + * %G_FILE_ATTRIBUTE_TYPE_UINT32. + * + * Since: 2.74 + **/ +#define G_FILE_ATTRIBUTE_TIME_MODIFIED_NSEC "time::modified-nsec" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_TIME_ACCESS: + * + * A key in the "time" namespace for getting the time the file was last + * accessed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64, and + * contains the time since the file was last accessed, in seconds since the + * UNIX epoch. + **/ +#define G_FILE_ATTRIBUTE_TIME_ACCESS "time::access" /* uint64 */ + +/** + * G_FILE_ATTRIBUTE_TIME_ACCESS_USEC: + * + * A key in the "time" namespace for getting the microseconds of the time + * the file was last accessed. + * + * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_ACCESS. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + **/ +#define G_FILE_ATTRIBUTE_TIME_ACCESS_USEC "time::access-usec" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_TIME_ACCESS_NSEC: + * + * A key in the "time" namespace for getting the nanoseconds of the time + * the file was last accessed. This should be used in conjunction with + * #G_FILE_ATTRIBUTE_TIME_ACCESS. Corresponding #GFileAttributeType is + * %G_FILE_ATTRIBUTE_TYPE_UINT32. + * + * Since: 2.74 + **/ +#define G_FILE_ATTRIBUTE_TIME_ACCESS_NSEC "time::access-nsec" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_TIME_CHANGED: + * + * A key in the "time" namespace for getting the time the file was last + * changed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64, + * and contains the time since the file was last changed, in seconds since + * the UNIX epoch. + * + * This corresponds to the traditional UNIX ctime. + **/ +#define G_FILE_ATTRIBUTE_TIME_CHANGED "time::changed" /* uint64 */ + +/** + * G_FILE_ATTRIBUTE_TIME_CHANGED_USEC: + * + * A key in the "time" namespace for getting the microseconds of the time + * the file was last changed. + * + * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_CHANGED. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + **/ +#define G_FILE_ATTRIBUTE_TIME_CHANGED_USEC "time::changed-usec" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_TIME_CHANGED_NSEC: + * + * A key in the "time" namespace for getting the nanoseconds of the time + * the file was last changed. This should be used in conjunction with + * #G_FILE_ATTRIBUTE_TIME_CHANGED. Corresponding #GFileAttributeType is + * %G_FILE_ATTRIBUTE_TYPE_UINT32. + * + * Since: 2.74 + **/ +#define G_FILE_ATTRIBUTE_TIME_CHANGED_NSEC "time::changed-nsec" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_TIME_CREATED: + * + * A key in the "time" namespace for getting the time the file was created. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64, + * and contains the time since the file was created, in seconds since the UNIX + * epoch. + * + * This may correspond to Linux `stx_btime`, FreeBSD `st_birthtim`, NetBSD + * `st_birthtime` or NTFS `ctime`. + **/ +#define G_FILE_ATTRIBUTE_TIME_CREATED "time::created" /* uint64 */ + +/** + * G_FILE_ATTRIBUTE_TIME_CREATED_USEC: + * + * A key in the "time" namespace for getting the microseconds of the time + * the file was created. + * + * This should be used in conjunction with %G_FILE_ATTRIBUTE_TIME_CREATED. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + **/ +#define G_FILE_ATTRIBUTE_TIME_CREATED_USEC "time::created-usec" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_TIME_CREATED_NSEC: + * + * A key in the "time" namespace for getting the nanoseconds of the time + * the file was created. This should be used in conjunction with + * #G_FILE_ATTRIBUTE_TIME_CREATED. Corresponding #GFileAttributeType is + * %G_FILE_ATTRIBUTE_TYPE_UINT32. + * + * Since: 2.74 + **/ +#define G_FILE_ATTRIBUTE_TIME_CREATED_NSEC "time::created-nsec" /* uint32 */ + +/* Unix specific attributes */ + +/** + * G_FILE_ATTRIBUTE_UNIX_DEVICE: + * + * A key in the "unix" namespace for getting the device id of the device the + * file is located on (see stat() documentation). + * + * This attribute is only available for UNIX file systems. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + **/ +#define G_FILE_ATTRIBUTE_UNIX_DEVICE "unix::device" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_UNIX_INODE: + * + * A key in the "unix" namespace for getting the inode of the file. + * + * This attribute is only available for UNIX file systems. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64. + **/ +#define G_FILE_ATTRIBUTE_UNIX_INODE "unix::inode" /* uint64 */ + +/** + * G_FILE_ATTRIBUTE_UNIX_MODE: + * + * A key in the "unix" namespace for getting the mode of the file + * (e.g. whether the file is a regular file, symlink, etc). + * + * See the documentation for `lstat()`: this attribute is equivalent to + * the `st_mode` member of `struct stat`, and includes both the file type + * and permissions. + * + * This attribute is only available for UNIX file systems. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + **/ +#define G_FILE_ATTRIBUTE_UNIX_MODE "unix::mode" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_UNIX_NLINK: + * + * A key in the "unix" namespace for getting the number of hard links + * for a file. + * + * See the documentation for `lstat()`. + * + * This attribute is only available for UNIX file systems. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + **/ +#define G_FILE_ATTRIBUTE_UNIX_NLINK "unix::nlink" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_UNIX_UID: + * + * A key in the "unix" namespace for getting the user ID for the file. + * + * This attribute is only available for UNIX file systems. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + **/ +#define G_FILE_ATTRIBUTE_UNIX_UID "unix::uid" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_UNIX_GID: + * + * A key in the "unix" namespace for getting the group ID for the file. + * + * This attribute is only available for UNIX file systems. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + **/ +#define G_FILE_ATTRIBUTE_UNIX_GID "unix::gid" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_UNIX_RDEV: + * + * A key in the "unix" namespace for getting the device ID for the file + * (if it is a special file). + * + * See the documentation for `lstat()`. + * + * This attribute is only available for UNIX file systems. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + **/ +#define G_FILE_ATTRIBUTE_UNIX_RDEV "unix::rdev" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_UNIX_BLOCK_SIZE: + * + * A key in the "unix" namespace for getting the block size for the file + * system. + * + * This attribute is only available for UNIX file systems. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + **/ +#define G_FILE_ATTRIBUTE_UNIX_BLOCK_SIZE "unix::block-size" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_UNIX_BLOCKS: + * + * A key in the "unix" namespace for getting the number of blocks allocated + * for the file. + * + * This attribute is only available for UNIX file systems. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64. + **/ +#define G_FILE_ATTRIBUTE_UNIX_BLOCKS "unix::blocks" /* uint64 */ + +/** + * G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT: + * + * A key in the "unix" namespace for checking if the file represents a + * UNIX mount point. + * + * This attribute is %TRUE if the file is a UNIX mount point. + * + * Since 2.58, `/` is considered to be a mount point. + * + * This attribute is only available for UNIX file systems. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + **/ +#define G_FILE_ATTRIBUTE_UNIX_IS_MOUNTPOINT "unix::is-mountpoint" /* boolean */ + +/* DOS specific attributes */ + +/** + * G_FILE_ATTRIBUTE_DOS_IS_ARCHIVE: + * + * A key in the "dos" namespace for checking if the file's archive flag + * is set. + * + * This attribute is %TRUE if the archive flag is set. + * + * This attribute is only available for DOS file systems. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + **/ +#define G_FILE_ATTRIBUTE_DOS_IS_ARCHIVE "dos::is-archive" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_DOS_IS_SYSTEM: + * + * A key in the "dos" namespace for checking if the file's backup flag + * is set. + * + * This attribute is %TRUE if the backup flag is set. + * + * This attribute is only available for DOS file systems. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + **/ +#define G_FILE_ATTRIBUTE_DOS_IS_SYSTEM "dos::is-system" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT: + * + * A key in the "dos" namespace for checking if the file is a NTFS mount point + * (a volume mount or a junction point). + * + * This attribute is %TRUE if file is a reparse point of type + * [IO_REPARSE_TAG_MOUNT_POINT](https://msdn.microsoft.com/en-us/library/dd541667.aspx). + * + * This attribute is only available for DOS file systems. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.60 + **/ +#define G_FILE_ATTRIBUTE_DOS_IS_MOUNTPOINT "dos::is-mountpoint" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG: + * + * A key in the "dos" namespace for getting the file NTFS reparse tag. + * + * This value is 0 for files that are not reparse points. + * + * See the [Reparse Tags](https://msdn.microsoft.com/en-us/library/dd541667.aspx) + * page for possible reparse tag values. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + * + * Since: 2.60 + **/ +#define G_FILE_ATTRIBUTE_DOS_REPARSE_POINT_TAG "dos::reparse-point-tag" /* uint32 */ + +/* Owner attributes */ + +/** + * G_FILE_ATTRIBUTE_OWNER_USER: + * + * A key in the "owner" namespace for getting the user name of the + * file's owner. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + **/ +#define G_FILE_ATTRIBUTE_OWNER_USER "owner::user" /* string */ + +/** + * G_FILE_ATTRIBUTE_OWNER_USER_REAL: + * + * A key in the "owner" namespace for getting the real name of the + * user that owns the file. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + **/ +#define G_FILE_ATTRIBUTE_OWNER_USER_REAL "owner::user-real" /* string */ + +/** + * G_FILE_ATTRIBUTE_OWNER_GROUP: + * + * A key in the "owner" namespace for getting the file owner's group. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + **/ +#define G_FILE_ATTRIBUTE_OWNER_GROUP "owner::group" /* string */ + +/* Thumbnails */ + +/** + * G_FILE_ATTRIBUTE_THUMBNAIL_PATH: + * + * A key in the "thumbnail" namespace for getting the path to the thumbnail + * image with the biggest size available. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING. + **/ +#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH "thumbnail::path" /* bytestring */ +/** + * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED: + * + * A key in the "thumbnail" namespace for checking if thumbnailing failed. + * + * This attribute is %TRUE if thumbnailing failed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + **/ +#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED "thumbnail::failed" /* boolean */ +/** + * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID: + * + * A key in the "thumbnail" namespace for checking whether the thumbnail is outdated. + * + * This attribute is %TRUE if the thumbnail is up-to-date with the file it represents, + * and %FALSE if the file has been modified since the thumbnail was generated. + * + * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED is %TRUE and this attribute is %FALSE, + * it indicates that thumbnailing may be attempted again and may succeed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.40 + */ +#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID "thumbnail::is-valid" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL: + * + * A key in the "thumbnail" namespace for getting the path to the normal + * thumbnail image. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING. + * + * Since: 2.76 + */ +#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_NORMAL "thumbnail::path-normal" /* bytestring */ +/** + * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL: + * + * A key in the "thumbnail" namespace for checking if thumbnailing failed + * for the normal image. + * + * This attribute is %TRUE if thumbnailing failed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.76 + */ +#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL "thumbnail::failed-normal" /* boolean */ +/** + * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL: + * + * A key in the "thumbnail" namespace for checking whether the normal + * thumbnail is outdated. + * + * This attribute is %TRUE if the normal thumbnail is up-to-date with the file + * it represents, and %FALSE if the file has been modified since the thumbnail + * was generated. + * + * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_NORMAL is %TRUE and this attribute + * is %FALSE, it indicates that thumbnailing may be attempted again and may + * succeed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.76 + */ +#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_NORMAL "thumbnail::is-valid-normal" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE: + * + * A key in the "thumbnail" namespace for getting the path to the large + * thumbnail image. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING. + * + * Since: 2.76 + */ +#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_LARGE "thumbnail::path-large" /* bytestring */ +/** + * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE: + * + * A key in the "thumbnail" namespace for checking if thumbnailing failed + * for the large image. + * + * This attribute is %TRUE if thumbnailing failed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.76 + */ +#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE "thumbnail::failed-large" /* boolean */ +/** + * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE: + * + * A key in the "thumbnail" namespace for checking whether the large + * thumbnail is outdated. + * + * This attribute is %TRUE if the large thumbnail is up-to-date with the file + * it represents, and %FALSE if the file has been modified since the thumbnail + * was generated. + * + * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_LARGE is %TRUE and this attribute + * is %FALSE, it indicates that thumbnailing may be attempted again and may + * succeed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.76 + */ +#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_LARGE "thumbnail::is-valid-large" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE: + * + * A key in the "thumbnail" namespace for getting the path to the x-large + * thumbnail image. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING. + * + * Since: 2.76 + */ +#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XLARGE "thumbnail::path-xlarge" /* bytestring */ +/** + * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE: + * + * A key in the "thumbnail" namespace for checking if thumbnailing failed + * for the x-large image. + * + * This attribute is %TRUE if thumbnailing failed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.76 + */ +#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE "thumbnail::failed-xlarge" /* boolean */ +/** + * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE: + * + * A key in the "thumbnail" namespace for checking whether the x-large + * thumbnail is outdated. + * + * This attribute is %TRUE if the x-large thumbnail is up-to-date with the file + * it represents, and %FALSE if the file has been modified since the thumbnail + * was generated. + * + * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XLARGE is %TRUE and this attribute + * is %FALSE, it indicates that thumbnailing may be attempted again and may + * succeed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.76 + */ +#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XLARGE "thumbnail::is-valid-xlarge" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE: + * + * A key in the "thumbnail" namespace for getting the path to the xx-large + * thumbnail image. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING. + * + * Since: 2.76 + */ +#define G_FILE_ATTRIBUTE_THUMBNAIL_PATH_XXLARGE "thumbnail::path-xxlarge" /* bytestring */ +/** + * G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE: + * + * A key in the "thumbnail" namespace for checking if thumbnailing failed + * for the xx-large image. + * + * This attribute is %TRUE if thumbnailing failed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.76 + */ +#define G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE "thumbnail::failed-xxlarge" /* boolean */ +/** + * G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE: + * + * A key in the "thumbnail" namespace for checking whether the xx-large + * thumbnail is outdated. + * + * This attribute is %TRUE if the x-large thumbnail is up-to-date with the file + * it represents, and %FALSE if the file has been modified since the thumbnail + * was generated. + * + * If %G_FILE_ATTRIBUTE_THUMBNAILING_FAILED_XXLARGE is %TRUE and this attribute + * is %FALSE, it indicates that thumbnailing may be attempted again and may + * succeed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + * + * Since: 2.76 + */ +#define G_FILE_ATTRIBUTE_THUMBNAIL_IS_VALID_XXLARGE "thumbnail::is-valid-xxlarge" /* boolean */ + +/* Preview */ + +/** + * G_FILE_ATTRIBUTE_PREVIEW_ICON: + * + * A key in the "preview" namespace for getting a #GIcon that can be + * used to get preview of the file. + * + * For example, it may be a low resolution thumbnail without metadata. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_OBJECT. + * + * The value for this key should contain a #GIcon. + * + * Since: 2.20 + **/ +#define G_FILE_ATTRIBUTE_PREVIEW_ICON "preview::icon" /* object (GIcon) */ + +/* File system info (for g_file_get_filesystem_info) */ + +/** + * G_FILE_ATTRIBUTE_FILESYSTEM_SIZE: + * + * A key in the "filesystem" namespace for getting the total size (in + * bytes) of the file system, used in g_file_query_filesystem_info(). + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64. + **/ +#define G_FILE_ATTRIBUTE_FILESYSTEM_SIZE "filesystem::size" /* uint64 */ + +/** + * G_FILE_ATTRIBUTE_FILESYSTEM_FREE: + * + * A key in the "filesystem" namespace for getting the number of bytes + * of free space left on the file system. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64. + **/ +#define G_FILE_ATTRIBUTE_FILESYSTEM_FREE "filesystem::free" /* uint64 */ + +/** + * G_FILE_ATTRIBUTE_FILESYSTEM_USED: + * + * A key in the "filesystem" namespace for getting the number of bytes + * used by data on the file system. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT64. + * + * Since: 2.32 + */ +#define G_FILE_ATTRIBUTE_FILESYSTEM_USED "filesystem::used" /* uint64 */ + +/** + * G_FILE_ATTRIBUTE_FILESYSTEM_TYPE: + * + * A key in the "filesystem" namespace for getting the file system's type. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + **/ +#define G_FILE_ATTRIBUTE_FILESYSTEM_TYPE "filesystem::type" /* string */ + +/** + * G_FILE_ATTRIBUTE_FILESYSTEM_READONLY: + * + * A key in the "filesystem" namespace for checking if the file system + * is read only. + * + * Is set to %TRUE if the file system is read only. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + **/ +#define G_FILE_ATTRIBUTE_FILESYSTEM_READONLY "filesystem::readonly" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW: + * + * A key in the "filesystem" namespace for hinting a file manager + * application whether it should preview (e.g. thumbnail) files on the + * file system. + * + * The value for this key contain a #GFilesystemPreviewType. + **/ +#define G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW "filesystem::use-preview" /* uint32 (GFilesystemPreviewType) */ + +/** + * G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE: + * + * A key in the "filesystem" namespace for checking if the file system + * is remote. + * + * Is set to %TRUE if the file system is remote. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN. + **/ +#define G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE "filesystem::remote" /* boolean */ + +/** + * G_FILE_ATTRIBUTE_GVFS_BACKEND: + * + * A key in the "gvfs" namespace that gets the name of the current + * GVFS backend in use. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + **/ +#define G_FILE_ATTRIBUTE_GVFS_BACKEND "gvfs::backend" /* string */ + +/** + * G_FILE_ATTRIBUTE_SELINUX_CONTEXT: + * + * A key in the "selinux" namespace for getting the file's SELinux + * context. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + * + * Note that this attribute is only available if GLib has been built + * with SELinux support. + **/ +#define G_FILE_ATTRIBUTE_SELINUX_CONTEXT "selinux::context" /* string */ + +/** + * G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT: + * + * A key in the "trash" namespace for getting the number of (toplevel) items + * that are present in the `trash:///` folder. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_UINT32. + **/ +#define G_FILE_ATTRIBUTE_TRASH_ITEM_COUNT "trash::item-count" /* uint32 */ + +/** + * G_FILE_ATTRIBUTE_TRASH_ORIG_PATH: + * + * A key in the "trash" namespace for getting the original path of a file + * inside the `trash:///` folder before it was trashed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BYTE_STRING. + * + * Since: 2.24 + **/ +#define G_FILE_ATTRIBUTE_TRASH_ORIG_PATH "trash::orig-path" /* byte string */ + +/** + * G_FILE_ATTRIBUTE_TRASH_DELETION_DATE: + * + * A key in the "trash" namespace for getting the deletion date and time + * of a file inside the `trash:///` folder. + * + * The format of the returned string is `YYYY-MM-DDThh:mm:ss`. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_STRING. + * + * Since: 2.24 + **/ +#define G_FILE_ATTRIBUTE_TRASH_DELETION_DATE "trash::deletion-date" /* string */ + +/** + * G_FILE_ATTRIBUTE_RECENT_MODIFIED: + * + * A key in the "recent" namespace for getting time, when the metadata for the + * file in `recent:///` was last changed. + * + * Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_INT64. + * + * Since: 2.52 + **/ +#define G_FILE_ATTRIBUTE_RECENT_MODIFIED "recent::modified" /* int64 (time_t) */ + +GIO_AVAILABLE_IN_ALL +GType g_file_info_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GFileInfo * g_file_info_new (void); +GIO_AVAILABLE_IN_ALL +GFileInfo * g_file_info_dup (GFileInfo *other); +GIO_AVAILABLE_IN_ALL +void g_file_info_copy_into (GFileInfo *src_info, + GFileInfo *dest_info); +GIO_AVAILABLE_IN_ALL +gboolean g_file_info_has_attribute (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_ALL +gboolean g_file_info_has_namespace (GFileInfo *info, + const char *name_space); +GIO_AVAILABLE_IN_ALL +char ** g_file_info_list_attributes (GFileInfo *info, + const char *name_space); +GIO_AVAILABLE_IN_ALL +gboolean g_file_info_get_attribute_data (GFileInfo *info, + const char *attribute, + GFileAttributeType *type, + gpointer *value_pp, + GFileAttributeStatus *status); +GIO_AVAILABLE_IN_ALL +GFileAttributeType g_file_info_get_attribute_type (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_ALL +void g_file_info_remove_attribute (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_ALL +GFileAttributeStatus g_file_info_get_attribute_status (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_ALL +gboolean g_file_info_set_attribute_status (GFileInfo *info, + const char *attribute, + GFileAttributeStatus status); +GIO_AVAILABLE_IN_ALL +char * g_file_info_get_attribute_as_string (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_ALL +const char * g_file_info_get_attribute_string (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_ALL +const char * g_file_info_get_attribute_byte_string (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_ALL +gboolean g_file_info_get_attribute_boolean (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_ALL +guint32 g_file_info_get_attribute_uint32 (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_ALL +gint32 g_file_info_get_attribute_int32 (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_ALL +guint64 g_file_info_get_attribute_uint64 (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_ALL +gint64 g_file_info_get_attribute_int64 (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_ALL +GObject * g_file_info_get_attribute_object (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_ALL +char ** g_file_info_get_attribute_stringv (GFileInfo *info, + const char *attribute); +GIO_AVAILABLE_IN_2_78 +const char * g_file_info_get_attribute_file_path (GFileInfo *info, + const char *attribute); + +GIO_AVAILABLE_IN_ALL +void g_file_info_set_attribute (GFileInfo *info, + const char *attribute, + GFileAttributeType type, + gpointer value_p); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_attribute_string (GFileInfo *info, + const char *attribute, + const char *attr_value); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_attribute_byte_string (GFileInfo *info, + const char *attribute, + const char *attr_value); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_attribute_boolean (GFileInfo *info, + const char *attribute, + gboolean attr_value); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_attribute_uint32 (GFileInfo *info, + const char *attribute, + guint32 attr_value); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_attribute_int32 (GFileInfo *info, + const char *attribute, + gint32 attr_value); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_attribute_uint64 (GFileInfo *info, + const char *attribute, + guint64 attr_value); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_attribute_int64 (GFileInfo *info, + const char *attribute, + gint64 attr_value); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_attribute_object (GFileInfo *info, + const char *attribute, + GObject *attr_value); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_attribute_stringv (GFileInfo *info, + const char *attribute, + char **attr_value); +GIO_AVAILABLE_IN_2_78 +void g_file_info_set_attribute_file_path (GFileInfo *info, + const char *attribute, + const char *attr_value); + +GIO_AVAILABLE_IN_ALL +void g_file_info_clear_status (GFileInfo *info); + +/* Helper getters: */ +GIO_AVAILABLE_IN_2_36 +GDateTime * g_file_info_get_deletion_date (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +GFileType g_file_info_get_file_type (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +gboolean g_file_info_get_is_hidden (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +gboolean g_file_info_get_is_backup (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +gboolean g_file_info_get_is_symlink (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +const char * g_file_info_get_name (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +const char * g_file_info_get_display_name (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +const char * g_file_info_get_edit_name (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +GIcon * g_file_info_get_icon (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +GIcon * g_file_info_get_symbolic_icon (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +const char * g_file_info_get_content_type (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +goffset g_file_info_get_size (GFileInfo *info); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GIO_DEPRECATED_IN_2_62_FOR(g_file_info_get_modification_date_time) +void g_file_info_get_modification_time (GFileInfo *info, + GTimeVal *result); +G_GNUC_END_IGNORE_DEPRECATIONS +GIO_AVAILABLE_IN_2_62 +GDateTime * g_file_info_get_modification_date_time (GFileInfo *info); +GIO_AVAILABLE_IN_2_70 +GDateTime * g_file_info_get_access_date_time (GFileInfo *info); +GIO_AVAILABLE_IN_2_70 +GDateTime * g_file_info_get_creation_date_time (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +const char * g_file_info_get_symlink_target (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +const char * g_file_info_get_etag (GFileInfo *info); +GIO_AVAILABLE_IN_ALL +gint32 g_file_info_get_sort_order (GFileInfo *info); + +GIO_AVAILABLE_IN_ALL +void g_file_info_set_attribute_mask (GFileInfo *info, + GFileAttributeMatcher *mask); +GIO_AVAILABLE_IN_ALL +void g_file_info_unset_attribute_mask (GFileInfo *info); + +/* Helper setters: */ +GIO_AVAILABLE_IN_ALL +void g_file_info_set_file_type (GFileInfo *info, + GFileType type); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_is_hidden (GFileInfo *info, + gboolean is_hidden); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_is_symlink (GFileInfo *info, + gboolean is_symlink); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_name (GFileInfo *info, + const char *name); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_display_name (GFileInfo *info, + const char *display_name); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_edit_name (GFileInfo *info, + const char *edit_name); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_icon (GFileInfo *info, + GIcon *icon); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_symbolic_icon (GFileInfo *info, + GIcon *icon); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_content_type (GFileInfo *info, + const char *content_type); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_size (GFileInfo *info, + goffset size); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GIO_DEPRECATED_IN_2_62_FOR(g_file_info_set_modification_date_time) +void g_file_info_set_modification_time (GFileInfo *info, + GTimeVal *mtime); +G_GNUC_END_IGNORE_DEPRECATIONS +GIO_AVAILABLE_IN_2_62 +void g_file_info_set_modification_date_time (GFileInfo *info, + GDateTime *mtime); +GIO_AVAILABLE_IN_2_70 +void g_file_info_set_access_date_time (GFileInfo *info, + GDateTime *atime); +GIO_AVAILABLE_IN_2_70 +void g_file_info_set_creation_date_time (GFileInfo *info, + GDateTime *creation_time); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_symlink_target (GFileInfo *info, + const char *symlink_target); +GIO_AVAILABLE_IN_ALL +void g_file_info_set_sort_order (GFileInfo *info, + gint32 sort_order); + +#define G_TYPE_FILE_ATTRIBUTE_MATCHER (g_file_attribute_matcher_get_type ()) +GIO_AVAILABLE_IN_ALL +GType g_file_attribute_matcher_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GFileAttributeMatcher *g_file_attribute_matcher_new (const char *attributes); +GIO_AVAILABLE_IN_ALL +GFileAttributeMatcher *g_file_attribute_matcher_ref (GFileAttributeMatcher *matcher); +GIO_AVAILABLE_IN_ALL +void g_file_attribute_matcher_unref (GFileAttributeMatcher *matcher); +GIO_AVAILABLE_IN_ALL +GFileAttributeMatcher *g_file_attribute_matcher_subtract (GFileAttributeMatcher *matcher, + GFileAttributeMatcher *subtract); +GIO_AVAILABLE_IN_ALL +gboolean g_file_attribute_matcher_matches (GFileAttributeMatcher *matcher, + const char *attribute); +GIO_AVAILABLE_IN_ALL +gboolean g_file_attribute_matcher_matches_only (GFileAttributeMatcher *matcher, + const char *attribute); +GIO_AVAILABLE_IN_ALL +gboolean g_file_attribute_matcher_enumerate_namespace (GFileAttributeMatcher *matcher, + const char *ns); +GIO_AVAILABLE_IN_ALL +const char * g_file_attribute_matcher_enumerate_next (GFileAttributeMatcher *matcher); +GIO_AVAILABLE_IN_2_32 +char * g_file_attribute_matcher_to_string (GFileAttributeMatcher *matcher); + +G_END_DECLS + +#endif /* __G_FILE_INFO_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileinputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileinputstream.h new file mode 100644 index 000000000..54626951d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileinputstream.h @@ -0,0 +1,116 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_FILE_INPUT_STREAM_H__ +#define __G_FILE_INPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_FILE_INPUT_STREAM (g_file_input_stream_get_type ()) +#define G_FILE_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_FILE_INPUT_STREAM, GFileInputStream)) +#define G_FILE_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_FILE_INPUT_STREAM, GFileInputStreamClass)) +#define G_IS_FILE_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_FILE_INPUT_STREAM)) +#define G_IS_FILE_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_FILE_INPUT_STREAM)) +#define G_FILE_INPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_FILE_INPUT_STREAM, GFileInputStreamClass)) + +/** + * GFileInputStream: + * + * A subclass of GInputStream for opened files. This adds + * a few file-specific operations and seeking. + * + * #GFileInputStream implements #GSeekable. + **/ +typedef struct _GFileInputStreamClass GFileInputStreamClass; +typedef struct _GFileInputStreamPrivate GFileInputStreamPrivate; + +struct _GFileInputStream +{ + GInputStream parent_instance; + + /*< private >*/ + GFileInputStreamPrivate *priv; +}; + +struct _GFileInputStreamClass +{ + GInputStreamClass parent_class; + + goffset (* tell) (GFileInputStream *stream); + gboolean (* can_seek) (GFileInputStream *stream); + gboolean (* seek) (GFileInputStream *stream, + goffset offset, + GSeekType type, + GCancellable *cancellable, + GError **error); + GFileInfo * (* query_info) (GFileInputStream *stream, + const char *attributes, + GCancellable *cancellable, + GError **error); + void (* query_info_async) (GFileInputStream *stream, + const char *attributes, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFileInfo * (* query_info_finish) (GFileInputStream *stream, + GAsyncResult *result, + GError **error); + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_file_input_stream_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GFileInfo *g_file_input_stream_query_info (GFileInputStream *stream, + const char *attributes, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_input_stream_query_info_async (GFileInputStream *stream, + const char *attributes, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFileInfo *g_file_input_stream_query_info_finish (GFileInputStream *stream, + GAsyncResult *result, + GError **error); + +G_END_DECLS + +#endif /* __G_FILE_FILE_INPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileiostream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileiostream.h new file mode 100644 index 000000000..c1c70c561 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileiostream.h @@ -0,0 +1,123 @@ +/* GIO - GLib Input, Io and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_FILE_IO_STREAM_H__ +#define __G_FILE_IO_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_FILE_IO_STREAM (g_file_io_stream_get_type ()) +#define G_FILE_IO_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_FILE_IO_STREAM, GFileIOStream)) +#define G_FILE_IO_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_FILE_IO_STREAM, GFileIOStreamClass)) +#define G_IS_FILE_IO_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_FILE_IO_STREAM)) +#define G_IS_FILE_IO_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_FILE_IO_STREAM)) +#define G_FILE_IO_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_FILE_IO_STREAM, GFileIOStreamClass)) + +/** + * GFileIOStream: + * + * A subclass of GIOStream for opened files. This adds + * a few file-specific operations and seeking and truncating. + * + * #GFileIOStream implements GSeekable. + **/ +typedef struct _GFileIOStreamClass GFileIOStreamClass; +typedef struct _GFileIOStreamPrivate GFileIOStreamPrivate; + +struct _GFileIOStream +{ + GIOStream parent_instance; + + /*< private >*/ + GFileIOStreamPrivate *priv; +}; + +struct _GFileIOStreamClass +{ + GIOStreamClass parent_class; + + goffset (* tell) (GFileIOStream *stream); + gboolean (* can_seek) (GFileIOStream *stream); + gboolean (* seek) (GFileIOStream *stream, + goffset offset, + GSeekType type, + GCancellable *cancellable, + GError **error); + gboolean (* can_truncate) (GFileIOStream *stream); + gboolean (* truncate_fn) (GFileIOStream *stream, + goffset size, + GCancellable *cancellable, + GError **error); + GFileInfo * (* query_info) (GFileIOStream *stream, + const char *attributes, + GCancellable *cancellable, + GError **error); + void (* query_info_async) (GFileIOStream *stream, + const char *attributes, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFileInfo * (* query_info_finish) (GFileIOStream *stream, + GAsyncResult *result, + GError **error); + char * (* get_etag) (GFileIOStream *stream); + + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_file_io_stream_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GFileInfo *g_file_io_stream_query_info (GFileIOStream *stream, + const char *attributes, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_io_stream_query_info_async (GFileIOStream *stream, + const char *attributes, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFileInfo *g_file_io_stream_query_info_finish (GFileIOStream *stream, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +char * g_file_io_stream_get_etag (GFileIOStream *stream); + +G_END_DECLS + +#endif /* __G_FILE_FILE_IO_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfilemonitor.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfilemonitor.h new file mode 100644 index 000000000..b677efc91 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfilemonitor.h @@ -0,0 +1,100 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_FILE_MONITOR_H__ +#define __G_FILE_MONITOR_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_FILE_MONITOR (g_file_monitor_get_type ()) +#define G_FILE_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_FILE_MONITOR, GFileMonitor)) +#define G_FILE_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_FILE_MONITOR, GFileMonitorClass)) +#define G_IS_FILE_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_FILE_MONITOR)) +#define G_IS_FILE_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_FILE_MONITOR)) +#define G_FILE_MONITOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_FILE_MONITOR, GFileMonitorClass)) + +typedef struct _GFileMonitorClass GFileMonitorClass; +typedef struct _GFileMonitorPrivate GFileMonitorPrivate; + +/** + * GFileMonitor: + * + * Watches for changes to a file. + **/ +struct _GFileMonitor +{ + GObject parent_instance; + + /*< private >*/ + GFileMonitorPrivate *priv; +}; + +struct _GFileMonitorClass +{ + GObjectClass parent_class; + + /* Signals */ + void (* changed) (GFileMonitor *monitor, + GFile *file, + GFile *other_file, + GFileMonitorEvent event_type); + + /* Virtual Table */ + gboolean (* cancel) (GFileMonitor *monitor); + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_file_monitor_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +gboolean g_file_monitor_cancel (GFileMonitor *monitor); +GIO_AVAILABLE_IN_ALL +gboolean g_file_monitor_is_cancelled (GFileMonitor *monitor); +GIO_AVAILABLE_IN_ALL +void g_file_monitor_set_rate_limit (GFileMonitor *monitor, + gint limit_msecs); + + +/* For implementations */ +GIO_AVAILABLE_IN_ALL +void g_file_monitor_emit_event (GFileMonitor *monitor, + GFile *child, + GFile *other_file, + GFileMonitorEvent event_type); + +G_END_DECLS + +#endif /* __G_FILE_MONITOR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfilenamecompleter.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfilenamecompleter.h new file mode 100644 index 000000000..b105e49ce --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfilenamecompleter.h @@ -0,0 +1,81 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_FILENAME_COMPLETER_H__ +#define __G_FILENAME_COMPLETER_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_FILENAME_COMPLETER (g_filename_completer_get_type ()) +#define G_FILENAME_COMPLETER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_FILENAME_COMPLETER, GFilenameCompleter)) +#define G_FILENAME_COMPLETER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_FILENAME_COMPLETER, GFilenameCompleterClass)) +#define G_FILENAME_COMPLETER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_FILENAME_COMPLETER, GFilenameCompleterClass)) +#define G_IS_FILENAME_COMPLETER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_FILENAME_COMPLETER)) +#define G_IS_FILENAME_COMPLETER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_FILENAME_COMPLETER)) + +/** + * GFilenameCompleter: + * + * Completes filenames based on files that exist within the file system. + **/ +typedef struct _GFilenameCompleterClass GFilenameCompleterClass; + +struct _GFilenameCompleterClass +{ + GObjectClass parent_class; + + /*< public >*/ + /* signals */ + void (* got_completion_data) (GFilenameCompleter *filename_completer); + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_filename_completer_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GFilenameCompleter *g_filename_completer_new (void); + +GIO_AVAILABLE_IN_ALL +char * g_filename_completer_get_completion_suffix (GFilenameCompleter *completer, + const char *initial_text); +GIO_AVAILABLE_IN_ALL +char ** g_filename_completer_get_completions (GFilenameCompleter *completer, + const char *initial_text); +GIO_AVAILABLE_IN_ALL +void g_filename_completer_set_dirs_only (GFilenameCompleter *completer, + gboolean dirs_only); + +G_END_DECLS + +#endif /* __G_FILENAME_COMPLETER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileoutputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileoutputstream.h new file mode 100644 index 000000000..576b21fb8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfileoutputstream.h @@ -0,0 +1,124 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_FILE_OUTPUT_STREAM_H__ +#define __G_FILE_OUTPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_FILE_OUTPUT_STREAM (g_file_output_stream_get_type ()) +#define G_FILE_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_FILE_OUTPUT_STREAM, GFileOutputStream)) +#define G_FILE_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_FILE_OUTPUT_STREAM, GFileOutputStreamClass)) +#define G_IS_FILE_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_FILE_OUTPUT_STREAM)) +#define G_IS_FILE_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_FILE_OUTPUT_STREAM)) +#define G_FILE_OUTPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_FILE_OUTPUT_STREAM, GFileOutputStreamClass)) + +/** + * GFileOutputStream: + * + * A subclass of GOutputStream for opened files. This adds + * a few file-specific operations and seeking and truncating. + * + * #GFileOutputStream implements GSeekable. + **/ +typedef struct _GFileOutputStreamClass GFileOutputStreamClass; +typedef struct _GFileOutputStreamPrivate GFileOutputStreamPrivate; + +struct _GFileOutputStream +{ + GOutputStream parent_instance; + + /*< private >*/ + GFileOutputStreamPrivate *priv; +}; + +struct _GFileOutputStreamClass +{ + GOutputStreamClass parent_class; + + goffset (* tell) (GFileOutputStream *stream); + gboolean (* can_seek) (GFileOutputStream *stream); + gboolean (* seek) (GFileOutputStream *stream, + goffset offset, + GSeekType type, + GCancellable *cancellable, + GError **error); + gboolean (* can_truncate) (GFileOutputStream *stream); + gboolean (* truncate_fn) (GFileOutputStream *stream, + goffset size, + GCancellable *cancellable, + GError **error); + GFileInfo * (* query_info) (GFileOutputStream *stream, + const char *attributes, + GCancellable *cancellable, + GError **error); + void (* query_info_async) (GFileOutputStream *stream, + const char *attributes, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GFileInfo * (* query_info_finish) (GFileOutputStream *stream, + GAsyncResult *result, + GError **error); + char * (* get_etag) (GFileOutputStream *stream); + + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_file_output_stream_get_type (void) G_GNUC_CONST; + + +GIO_AVAILABLE_IN_ALL +GFileInfo *g_file_output_stream_query_info (GFileOutputStream *stream, + const char *attributes, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_file_output_stream_query_info_async (GFileOutputStream *stream, + const char *attributes, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GFileInfo *g_file_output_stream_query_info_finish (GFileOutputStream *stream, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +char * g_file_output_stream_get_etag (GFileOutputStream *stream); + +G_END_DECLS + +#endif /* __G_FILE_FILE_OUTPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfilterinputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfilterinputstream.h new file mode 100644 index 000000000..df6032c27 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfilterinputstream.h @@ -0,0 +1,80 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Christian Kellner + */ + +#ifndef __G_FILTER_INPUT_STREAM_H__ +#define __G_FILTER_INPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_FILTER_INPUT_STREAM (g_filter_input_stream_get_type ()) +#define G_FILTER_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_FILTER_INPUT_STREAM, GFilterInputStream)) +#define G_FILTER_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_FILTER_INPUT_STREAM, GFilterInputStreamClass)) +#define G_IS_FILTER_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_FILTER_INPUT_STREAM)) +#define G_IS_FILTER_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_FILTER_INPUT_STREAM)) +#define G_FILTER_INPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_FILTER_INPUT_STREAM, GFilterInputStreamClass)) + +/** + * GFilterInputStream: + * + * A base class for all input streams that work on an underlying stream. + **/ +typedef struct _GFilterInputStreamClass GFilterInputStreamClass; + +struct _GFilterInputStream +{ + GInputStream parent_instance; + + /**/ + GInputStream *base_stream; +}; + +struct _GFilterInputStreamClass +{ + GInputStreamClass parent_class; + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); +}; + + +GIO_AVAILABLE_IN_ALL +GType g_filter_input_stream_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GInputStream * g_filter_input_stream_get_base_stream (GFilterInputStream *stream); +GIO_AVAILABLE_IN_ALL +gboolean g_filter_input_stream_get_close_base_stream (GFilterInputStream *stream); +GIO_AVAILABLE_IN_ALL +void g_filter_input_stream_set_close_base_stream (GFilterInputStream *stream, + gboolean close_base); + +G_END_DECLS + +#endif /* __G_FILTER_INPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfilteroutputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfilteroutputstream.h new file mode 100644 index 000000000..472f9d80d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gfilteroutputstream.h @@ -0,0 +1,80 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Christian Kellner + */ + +#ifndef __G_FILTER_OUTPUT_STREAM_H__ +#define __G_FILTER_OUTPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_FILTER_OUTPUT_STREAM (g_filter_output_stream_get_type ()) +#define G_FILTER_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_FILTER_OUTPUT_STREAM, GFilterOutputStream)) +#define G_FILTER_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_FILTER_OUTPUT_STREAM, GFilterOutputStreamClass)) +#define G_IS_FILTER_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_FILTER_OUTPUT_STREAM)) +#define G_IS_FILTER_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_FILTER_OUTPUT_STREAM)) +#define G_FILTER_OUTPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_FILTER_OUTPUT_STREAM, GFilterOutputStreamClass)) + +/** + * GFilterOutputStream: + * + * A base class for all output streams that work on an underlying stream. + **/ +typedef struct _GFilterOutputStreamClass GFilterOutputStreamClass; + +struct _GFilterOutputStream +{ + GOutputStream parent_instance; + + /*< protected >*/ + GOutputStream *base_stream; +}; + +struct _GFilterOutputStreamClass +{ + GOutputStreamClass parent_class; + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); +}; + + +GIO_AVAILABLE_IN_ALL +GType g_filter_output_stream_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GOutputStream * g_filter_output_stream_get_base_stream (GFilterOutputStream *stream); +GIO_AVAILABLE_IN_ALL +gboolean g_filter_output_stream_get_close_base_stream (GFilterOutputStream *stream); +GIO_AVAILABLE_IN_ALL +void g_filter_output_stream_set_close_base_stream (GFilterOutputStream *stream, + gboolean close_base); + +G_END_DECLS + +#endif /* __G_FILTER_OUTPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gicon.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gicon.h new file mode 100644 index 000000000..c971cb00b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gicon.h @@ -0,0 +1,133 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_ICON_H__ +#define __G_ICON_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_ICON (g_icon_get_type ()) +#define G_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_ICON, GIcon)) +#define G_IS_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_ICON)) +#define G_ICON_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_ICON, GIconIface)) + +/** + * GIcon: + * + * An abstract type that specifies an icon. + **/ +typedef struct _GIconIface GIconIface; + +/** + * GIconIface: + * @g_iface: The parent interface. + * @hash: A hash for a given #GIcon. + * @equal: Checks if two #GIcons are equal. + * @to_tokens: Serializes a #GIcon into tokens. The tokens must not + * contain any whitespace. Don't implement if the #GIcon can't be + * serialized (Since 2.20). + * @from_tokens: Constructs a #GIcon from tokens. Set the #GError if + * the tokens are malformed. Don't implement if the #GIcon can't be + * serialized (Since 2.20). + * @serialize: Serializes a #GIcon into a #GVariant. Since: 2.38 + * + * GIconIface is used to implement GIcon types for various + * different systems. See #GThemedIcon and #GLoadableIcon for + * examples of how to implement this interface. + */ +struct _GIconIface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + + guint (* hash) (GIcon *icon); + gboolean (* equal) (GIcon *icon1, + GIcon *icon2); + + /** + * GIconIface::to_tokens: + * @icon: The #GIcon + * @tokens: (element-type utf8) (out caller-allocates): + * The array to fill with tokens + * @out_version: (out): version of serialized tokens + * + * Serializes the @icon into string tokens. + * This is can be invoked when g_icon_new_for_string() is called. + * + * Returns: %TRUE if serialization took place, %FALSE otherwise + * + * Since: 2.20 + */ + gboolean (* to_tokens) (GIcon *icon, + GPtrArray *tokens, + gint *out_version); + + /** + * GIconIface::from_tokens: + * @tokens: (array length=num_tokens): An array of tokens + * @num_tokens: The number of tokens in @tokens + * @version: Version of the serialized tokens + * @error: Return location for errors, or %NULL to ignore + * + * Constructs a #GIcon from a list of @tokens. + * + * Returns: (nullable) (transfer full): the #GIcon or %NULL on error + * + * Since: 2.20 + */ + GIcon * (* from_tokens) (gchar **tokens, + gint num_tokens, + gint version, + GError **error); + + GVariant * (* serialize) (GIcon *icon); +}; + +GIO_AVAILABLE_IN_ALL +GType g_icon_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +guint g_icon_hash (gconstpointer icon); +GIO_AVAILABLE_IN_ALL +gboolean g_icon_equal (GIcon *icon1, + GIcon *icon2); +GIO_AVAILABLE_IN_ALL +gchar *g_icon_to_string (GIcon *icon); +GIO_AVAILABLE_IN_ALL +GIcon *g_icon_new_for_string (const gchar *str, + GError **error); + +GIO_AVAILABLE_IN_2_38 +GVariant * g_icon_serialize (GIcon *icon); +GIO_AVAILABLE_IN_2_38 +GIcon * g_icon_deserialize (GVariant *value); + +G_END_DECLS + +#endif /* __G_ICON_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginetaddress.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginetaddress.h new file mode 100644 index 000000000..ea503a927 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginetaddress.h @@ -0,0 +1,125 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2008 Christian Kellner, Samuel Cormier-Iijima + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Christian Kellner + * Samuel Cormier-Iijima + */ + +#ifndef __G_INET_ADDRESS_H__ +#define __G_INET_ADDRESS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_INET_ADDRESS (g_inet_address_get_type ()) +#define G_INET_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_INET_ADDRESS, GInetAddress)) +#define G_INET_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_INET_ADDRESS, GInetAddressClass)) +#define G_IS_INET_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_INET_ADDRESS)) +#define G_IS_INET_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_INET_ADDRESS)) +#define G_INET_ADDRESS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_INET_ADDRESS, GInetAddressClass)) + +typedef struct _GInetAddressClass GInetAddressClass; +typedef struct _GInetAddressPrivate GInetAddressPrivate; + +struct _GInetAddress +{ + GObject parent_instance; + + /*< private >*/ + GInetAddressPrivate *priv; +}; + +struct _GInetAddressClass +{ + GObjectClass parent_class; + + gchar * (*to_string) (GInetAddress *address); + const guint8 * (*to_bytes) (GInetAddress *address); +}; + +GIO_AVAILABLE_IN_ALL +GType g_inet_address_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GInetAddress * g_inet_address_new_from_string (const gchar *string); + +GIO_AVAILABLE_IN_ALL +GInetAddress * g_inet_address_new_from_bytes (const guint8 *bytes, + GSocketFamily family); + +GIO_AVAILABLE_IN_ALL +GInetAddress * g_inet_address_new_loopback (GSocketFamily family); + +GIO_AVAILABLE_IN_ALL +GInetAddress * g_inet_address_new_any (GSocketFamily family); + +GIO_AVAILABLE_IN_ALL +gboolean g_inet_address_equal (GInetAddress *address, + GInetAddress *other_address); + +GIO_AVAILABLE_IN_ALL +gchar * g_inet_address_to_string (GInetAddress *address); + +GIO_AVAILABLE_IN_ALL +const guint8 * g_inet_address_to_bytes (GInetAddress *address); + +GIO_AVAILABLE_IN_ALL +gsize g_inet_address_get_native_size (GInetAddress *address); + +GIO_AVAILABLE_IN_ALL +GSocketFamily g_inet_address_get_family (GInetAddress *address); + +GIO_AVAILABLE_IN_ALL +gboolean g_inet_address_get_is_any (GInetAddress *address); + +GIO_AVAILABLE_IN_ALL +gboolean g_inet_address_get_is_loopback (GInetAddress *address); + +GIO_AVAILABLE_IN_ALL +gboolean g_inet_address_get_is_link_local (GInetAddress *address); + +GIO_AVAILABLE_IN_ALL +gboolean g_inet_address_get_is_site_local (GInetAddress *address); + +GIO_AVAILABLE_IN_ALL +gboolean g_inet_address_get_is_multicast (GInetAddress *address); + +GIO_AVAILABLE_IN_ALL +gboolean g_inet_address_get_is_mc_global (GInetAddress *address); + +GIO_AVAILABLE_IN_ALL +gboolean g_inet_address_get_is_mc_link_local (GInetAddress *address); + +GIO_AVAILABLE_IN_ALL +gboolean g_inet_address_get_is_mc_node_local (GInetAddress *address); + +GIO_AVAILABLE_IN_ALL +gboolean g_inet_address_get_is_mc_org_local (GInetAddress *address); + +GIO_AVAILABLE_IN_ALL +gboolean g_inet_address_get_is_mc_site_local (GInetAddress *address); + +G_END_DECLS + +#endif /* __G_INET_ADDRESS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginetaddressmask.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginetaddressmask.h new file mode 100644 index 000000000..25cce7500 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginetaddressmask.h @@ -0,0 +1,86 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright 2011 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_INET_ADDRESS_MASK_H__ +#define __G_INET_ADDRESS_MASK_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_INET_ADDRESS_MASK (g_inet_address_mask_get_type ()) +#define G_INET_ADDRESS_MASK(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_INET_ADDRESS_MASK, GInetAddressMask)) +#define G_INET_ADDRESS_MASK_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_INET_ADDRESS_MASK, GInetAddressMaskClass)) +#define G_IS_INET_ADDRESS_MASK(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_INET_ADDRESS_MASK)) +#define G_IS_INET_ADDRESS_MASK_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_INET_ADDRESS_MASK)) +#define G_INET_ADDRESS_MASK_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_INET_ADDRESS_MASK, GInetAddressMaskClass)) + +typedef struct _GInetAddressMaskClass GInetAddressMaskClass; +typedef struct _GInetAddressMaskPrivate GInetAddressMaskPrivate; + +struct _GInetAddressMask +{ + GObject parent_instance; + + /*< private >*/ + GInetAddressMaskPrivate *priv; +}; + +struct _GInetAddressMaskClass +{ + GObjectClass parent_class; + +}; + +GIO_AVAILABLE_IN_2_32 +GType g_inet_address_mask_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_32 +GInetAddressMask *g_inet_address_mask_new (GInetAddress *addr, + guint length, + GError **error); + +GIO_AVAILABLE_IN_2_32 +GInetAddressMask *g_inet_address_mask_new_from_string (const gchar *mask_string, + GError **error); +GIO_AVAILABLE_IN_2_32 +gchar *g_inet_address_mask_to_string (GInetAddressMask *mask); + +GIO_AVAILABLE_IN_2_32 +GSocketFamily g_inet_address_mask_get_family (GInetAddressMask *mask); +GIO_AVAILABLE_IN_2_32 +GInetAddress *g_inet_address_mask_get_address (GInetAddressMask *mask); +GIO_AVAILABLE_IN_2_32 +guint g_inet_address_mask_get_length (GInetAddressMask *mask); + +GIO_AVAILABLE_IN_2_32 +gboolean g_inet_address_mask_matches (GInetAddressMask *mask, + GInetAddress *address); +GIO_AVAILABLE_IN_2_32 +gboolean g_inet_address_mask_equal (GInetAddressMask *mask, + GInetAddressMask *mask2); + +G_END_DECLS + +#endif /* __G_INET_ADDRESS_MASK_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginetsocketaddress.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginetsocketaddress.h new file mode 100644 index 000000000..a983abef2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginetsocketaddress.h @@ -0,0 +1,80 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2008 Christian Kellner, Samuel Cormier-Iijima + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Christian Kellner + * Samuel Cormier-Iijima + */ + +#ifndef __G_INET_SOCKET_ADDRESS_H__ +#define __G_INET_SOCKET_ADDRESS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_INET_SOCKET_ADDRESS (g_inet_socket_address_get_type ()) +#define G_INET_SOCKET_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_INET_SOCKET_ADDRESS, GInetSocketAddress)) +#define G_INET_SOCKET_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_INET_SOCKET_ADDRESS, GInetSocketAddressClass)) +#define G_IS_INET_SOCKET_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_INET_SOCKET_ADDRESS)) +#define G_IS_INET_SOCKET_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_INET_SOCKET_ADDRESS)) +#define G_INET_SOCKET_ADDRESS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_INET_SOCKET_ADDRESS, GInetSocketAddressClass)) + +typedef struct _GInetSocketAddressClass GInetSocketAddressClass; +typedef struct _GInetSocketAddressPrivate GInetSocketAddressPrivate; + +struct _GInetSocketAddress +{ + GSocketAddress parent_instance; + + /*< private >*/ + GInetSocketAddressPrivate *priv; +}; + +struct _GInetSocketAddressClass +{ + GSocketAddressClass parent_class; +}; + +GIO_AVAILABLE_IN_ALL +GType g_inet_socket_address_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GSocketAddress *g_inet_socket_address_new (GInetAddress *address, + guint16 port); +GIO_AVAILABLE_IN_2_40 +GSocketAddress *g_inet_socket_address_new_from_string (const char *address, + guint port); + +GIO_AVAILABLE_IN_ALL +GInetAddress * g_inet_socket_address_get_address (GInetSocketAddress *address); +GIO_AVAILABLE_IN_ALL +guint16 g_inet_socket_address_get_port (GInetSocketAddress *address); + +GIO_AVAILABLE_IN_2_32 +guint32 g_inet_socket_address_get_flowinfo (GInetSocketAddress *address); +GIO_AVAILABLE_IN_2_32 +guint32 g_inet_socket_address_get_scope_id (GInetSocketAddress *address); + +G_END_DECLS + +#endif /* __G_INET_SOCKET_ADDRESS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginitable.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginitable.h new file mode 100644 index 000000000..9eb995c48 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginitable.h @@ -0,0 +1,107 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2009 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_INITABLE_H__ +#define __G_INITABLE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_INITABLE (g_initable_get_type ()) +#define G_INITABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_INITABLE, GInitable)) +#define G_IS_INITABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_INITABLE)) +#define G_INITABLE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_INITABLE, GInitableIface)) +#define G_TYPE_IS_INITABLE(type) (g_type_is_a ((type), G_TYPE_INITABLE)) + +/** + * GInitable: + * + * Interface for initializable objects. + * + * Since: 2.22 + **/ +typedef struct _GInitableIface GInitableIface; + +/** + * GInitableIface: + * @g_iface: The parent interface. + * @init: Initializes the object. + * + * Provides an interface for initializing object such that initialization + * may fail. + * + * Since: 2.22 + **/ +struct _GInitableIface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + + gboolean (* init) (GInitable *initable, + GCancellable *cancellable, + GError **error); +}; + + +GIO_AVAILABLE_IN_ALL +GType g_initable_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +gboolean g_initable_init (GInitable *initable, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +gpointer g_initable_new (GType object_type, + GCancellable *cancellable, + GError **error, + const gchar *first_property_name, + ...); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + +GIO_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties and g_initable_init) +gpointer g_initable_newv (GType object_type, + guint n_parameters, + GParameter *parameters, + GCancellable *cancellable, + GError **error); + +G_GNUC_END_IGNORE_DEPRECATIONS + +GIO_AVAILABLE_IN_ALL +GObject* g_initable_new_valist (GType object_type, + const gchar *first_property_name, + va_list var_args, + GCancellable *cancellable, + GError **error); + +G_END_DECLS + + +#endif /* __G_INITABLE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginputstream.h new file mode 100644 index 000000000..a7be7689c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/ginputstream.h @@ -0,0 +1,218 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_INPUT_STREAM_H__ +#define __G_INPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_INPUT_STREAM (g_input_stream_get_type ()) +#define G_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_INPUT_STREAM, GInputStream)) +#define G_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_INPUT_STREAM, GInputStreamClass)) +#define G_IS_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_INPUT_STREAM)) +#define G_IS_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_INPUT_STREAM)) +#define G_INPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_INPUT_STREAM, GInputStreamClass)) + +/** + * GInputStream: + * + * Base class for streaming input operations. + **/ +typedef struct _GInputStreamClass GInputStreamClass; +typedef struct _GInputStreamPrivate GInputStreamPrivate; + +struct _GInputStream +{ + GObject parent_instance; + + /*< private >*/ + GInputStreamPrivate *priv; +}; + +struct _GInputStreamClass +{ + GObjectClass parent_class; + + /* Sync ops: */ + + gssize (* read_fn) (GInputStream *stream, + void *buffer, + gsize count, + GCancellable *cancellable, + GError **error); + gssize (* skip) (GInputStream *stream, + gsize count, + GCancellable *cancellable, + GError **error); + gboolean (* close_fn) (GInputStream *stream, + GCancellable *cancellable, + GError **error); + + /* Async ops: (optional in derived classes) */ + void (* read_async) (GInputStream *stream, + void *buffer, + gsize count, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gssize (* read_finish) (GInputStream *stream, + GAsyncResult *result, + GError **error); + void (* skip_async) (GInputStream *stream, + gsize count, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gssize (* skip_finish) (GInputStream *stream, + GAsyncResult *result, + GError **error); + void (* close_async) (GInputStream *stream, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* close_finish) (GInputStream *stream, + GAsyncResult *result, + GError **error); + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_input_stream_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +gssize g_input_stream_read (GInputStream *stream, + void *buffer, + gsize count, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_input_stream_read_all (GInputStream *stream, + void *buffer, + gsize count, + gsize *bytes_read, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_34 +GBytes *g_input_stream_read_bytes (GInputStream *stream, + gsize count, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gssize g_input_stream_skip (GInputStream *stream, + gsize count, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_input_stream_close (GInputStream *stream, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_input_stream_read_async (GInputStream *stream, + void *buffer, + gsize count, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gssize g_input_stream_read_finish (GInputStream *stream, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_2_44 +void g_input_stream_read_all_async (GInputStream *stream, + void *buffer, + gsize count, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_44 +gboolean g_input_stream_read_all_finish (GInputStream *stream, + GAsyncResult *result, + gsize *bytes_read, + GError **error); + +GIO_AVAILABLE_IN_2_34 +void g_input_stream_read_bytes_async (GInputStream *stream, + gsize count, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_34 +GBytes *g_input_stream_read_bytes_finish (GInputStream *stream, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_input_stream_skip_async (GInputStream *stream, + gsize count, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gssize g_input_stream_skip_finish (GInputStream *stream, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_input_stream_close_async (GInputStream *stream, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_input_stream_close_finish (GInputStream *stream, + GAsyncResult *result, + GError **error); + +/* For implementations: */ + +GIO_AVAILABLE_IN_ALL +gboolean g_input_stream_is_closed (GInputStream *stream); +GIO_AVAILABLE_IN_ALL +gboolean g_input_stream_has_pending (GInputStream *stream); +GIO_AVAILABLE_IN_ALL +gboolean g_input_stream_set_pending (GInputStream *stream, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_input_stream_clear_pending (GInputStream *stream); + +G_END_DECLS + +#endif /* __G_INPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gio-autocleanups.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gio-autocleanups.h new file mode 100644 index 000000000..15e37d164 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gio-autocleanups.h @@ -0,0 +1,155 @@ +/* + * Copyright © 2015 Canonical Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GAction, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GActionMap, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GAppInfo, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GAppLaunchContext, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GAppInfoMonitor, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GApplicationCommandLine, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GApplication, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GAsyncInitable, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GAsyncResult, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GBufferedInputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GBufferedOutputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GBytesIcon, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GCancellable, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GCharsetConverter, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GConverter, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GConverterInputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GConverterOutputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GCredentials, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDatagramBased, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDataInputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDataOutputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusActionGroup, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusAuthObserver, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusConnection, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusInterface, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusInterfaceSkeleton, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusMenuModel, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusMessage, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusMethodInvocation, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusNodeInfo, g_dbus_node_info_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusObject, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusObjectManagerClient, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusObjectManager, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusObjectManagerServer, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusObjectProxy, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusObjectSkeleton, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusProxy, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDBusServer, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDrive, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GEmblemedIcon, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GEmblem, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFileEnumerator, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFile, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFileAttributeInfoList, g_file_attribute_info_list_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFileIcon, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFileInfo, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFileInputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFileIOStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFileMonitor, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFilenameCompleter, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFileOutputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFilterInputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFilterOutputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GIcon, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GInetAddress, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GInetAddressMask, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GInetSocketAddress, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GInitable, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GInputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GIOModule, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GIOStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GLoadableIcon, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMemoryInputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMemoryOutputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMenu, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMenuItem, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMenuModel, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMenuAttributeIter, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMenuLinkIter, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMount, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMountOperation, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GNativeVolumeMonitor, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GNetworkAddress, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GNetworkMonitor, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GNetworkService, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GNotification, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GOutputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GPermission, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GPollableInputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GPollableOutputStream, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GPropertyAction, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GProxyAddressEnumerator, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GProxyAddress, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GProxy, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GProxyResolver, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRemoteActionGroup, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GResolver, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GResource, g_resource_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSeekable, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSettingsBackend, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSettingsSchema, g_settings_schema_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSettingsSchemaKey, g_settings_schema_key_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSettingsSchemaSource, g_settings_schema_source_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSettings, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSimpleActionGroup, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSimpleAction, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSimpleAsyncResult, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSimplePermission, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSimpleProxyResolver, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSocketAddressEnumerator, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSocketAddress, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSocketClient, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSocketConnectable, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSocketConnection, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSocketControlMessage, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSocket, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSocketListener, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSocketService, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSubprocess, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSubprocessLauncher, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTask, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTcpConnection, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTcpWrapperConnection, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTestDBus, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GThemedIcon, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GThreadedSocketService, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTlsBackend, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTlsCertificate, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTlsClientConnection, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTlsConnection, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTlsDatabase, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTlsFileDatabase, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTlsInteraction, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTlsPassword, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTlsServerConnection, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVfs, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVolume, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVolumeMonitor, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GZlibCompressor, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GZlibDecompressor, g_object_unref) diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gio-visibility.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gio-visibility.h new file mode 100644 index 000000000..03f3572a6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gio-visibility.h @@ -0,0 +1,952 @@ +#pragma once + +#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(GIO_STATIC_COMPILATION) +# define _GIO_EXPORT __declspec(dllexport) +# define _GIO_IMPORT __declspec(dllimport) +#elif __GNUC__ >= 4 +# define _GIO_EXPORT __attribute__((visibility("default"))) +# define _GIO_IMPORT +#else +# define _GIO_EXPORT +# define _GIO_IMPORT +#endif +#ifdef GIO_COMPILATION +# define _GIO_API _GIO_EXPORT +#else +# define _GIO_API _GIO_IMPORT +#endif + +#define _GIO_EXTERN _GIO_API extern + +#define GIO_VAR _GIO_EXTERN +#define GIO_AVAILABLE_IN_ALL _GIO_EXTERN + +#ifdef GLIB_DISABLE_DEPRECATION_WARNINGS +#define GIO_DEPRECATED _GIO_EXTERN +#define GIO_DEPRECATED_FOR(f) _GIO_EXTERN +#define GIO_UNAVAILABLE(maj,min) _GIO_EXTERN +#define GIO_UNAVAILABLE_STATIC_INLINE(maj,min) +#else +#define GIO_DEPRECATED G_DEPRECATED _GIO_EXTERN +#define GIO_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GIO_EXTERN +#define GIO_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _GIO_EXTERN +#define GIO_UNAVAILABLE_STATIC_INLINE(maj,min) G_UNAVAILABLE(maj,min) +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_26 +#define GIO_DEPRECATED_IN_2_26 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_26_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_26 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_26_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_26 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_26_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_26 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_26_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_26 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_26_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_26 +#define GIO_DEPRECATED_MACRO_IN_2_26_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_26 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_26_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_26 +#define GIO_DEPRECATED_TYPE_IN_2_26_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_26 +#define GIO_AVAILABLE_IN_2_26 GIO_UNAVAILABLE (2, 26) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_26 GLIB_UNAVAILABLE_STATIC_INLINE (2, 26) +#define GIO_AVAILABLE_MACRO_IN_2_26 GLIB_UNAVAILABLE_MACRO (2, 26) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_26 GLIB_UNAVAILABLE_ENUMERATOR (2, 26) +#define GIO_AVAILABLE_TYPE_IN_2_26 GLIB_UNAVAILABLE_TYPE (2, 26) +#else +#define GIO_AVAILABLE_IN_2_26 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_26 +#define GIO_AVAILABLE_MACRO_IN_2_26 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_26 +#define GIO_AVAILABLE_TYPE_IN_2_26 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_28 +#define GIO_DEPRECATED_IN_2_28 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_28_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_28 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_28_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_28 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_28_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_28 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_28_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_28 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_28_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_28 +#define GIO_DEPRECATED_MACRO_IN_2_28_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_28 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_28_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_28 +#define GIO_DEPRECATED_TYPE_IN_2_28_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_28 +#define GIO_AVAILABLE_IN_2_28 GIO_UNAVAILABLE (2, 28) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_28 GLIB_UNAVAILABLE_STATIC_INLINE (2, 28) +#define GIO_AVAILABLE_MACRO_IN_2_28 GLIB_UNAVAILABLE_MACRO (2, 28) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_28 GLIB_UNAVAILABLE_ENUMERATOR (2, 28) +#define GIO_AVAILABLE_TYPE_IN_2_28 GLIB_UNAVAILABLE_TYPE (2, 28) +#else +#define GIO_AVAILABLE_IN_2_28 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_28 +#define GIO_AVAILABLE_MACRO_IN_2_28 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_28 +#define GIO_AVAILABLE_TYPE_IN_2_28 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_30 +#define GIO_DEPRECATED_IN_2_30 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_30_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_30 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_30_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_30 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_30_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_30 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_30_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_30 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_30_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_30 +#define GIO_DEPRECATED_MACRO_IN_2_30_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_30 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_30_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_30 +#define GIO_DEPRECATED_TYPE_IN_2_30_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_30 +#define GIO_AVAILABLE_IN_2_30 GIO_UNAVAILABLE (2, 30) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_30 GLIB_UNAVAILABLE_STATIC_INLINE (2, 30) +#define GIO_AVAILABLE_MACRO_IN_2_30 GLIB_UNAVAILABLE_MACRO (2, 30) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_30 GLIB_UNAVAILABLE_ENUMERATOR (2, 30) +#define GIO_AVAILABLE_TYPE_IN_2_30 GLIB_UNAVAILABLE_TYPE (2, 30) +#else +#define GIO_AVAILABLE_IN_2_30 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_30 +#define GIO_AVAILABLE_MACRO_IN_2_30 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_30 +#define GIO_AVAILABLE_TYPE_IN_2_30 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_32 +#define GIO_DEPRECATED_IN_2_32 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_32_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_32 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_32_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_32 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_32_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_32 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_32_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_32 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_32_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_32 +#define GIO_DEPRECATED_MACRO_IN_2_32_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_32 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_32_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_32 +#define GIO_DEPRECATED_TYPE_IN_2_32_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_32 +#define GIO_AVAILABLE_IN_2_32 GIO_UNAVAILABLE (2, 32) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_32 GLIB_UNAVAILABLE_STATIC_INLINE (2, 32) +#define GIO_AVAILABLE_MACRO_IN_2_32 GLIB_UNAVAILABLE_MACRO (2, 32) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_32 GLIB_UNAVAILABLE_ENUMERATOR (2, 32) +#define GIO_AVAILABLE_TYPE_IN_2_32 GLIB_UNAVAILABLE_TYPE (2, 32) +#else +#define GIO_AVAILABLE_IN_2_32 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_32 +#define GIO_AVAILABLE_MACRO_IN_2_32 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_32 +#define GIO_AVAILABLE_TYPE_IN_2_32 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_34 +#define GIO_DEPRECATED_IN_2_34 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_34_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_34 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_34_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_34 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_34_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_34 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_34_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_34 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_34_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_34 +#define GIO_DEPRECATED_MACRO_IN_2_34_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_34 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_34_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_34 +#define GIO_DEPRECATED_TYPE_IN_2_34_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_34 +#define GIO_AVAILABLE_IN_2_34 GIO_UNAVAILABLE (2, 34) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_34 GLIB_UNAVAILABLE_STATIC_INLINE (2, 34) +#define GIO_AVAILABLE_MACRO_IN_2_34 GLIB_UNAVAILABLE_MACRO (2, 34) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_34 GLIB_UNAVAILABLE_ENUMERATOR (2, 34) +#define GIO_AVAILABLE_TYPE_IN_2_34 GLIB_UNAVAILABLE_TYPE (2, 34) +#else +#define GIO_AVAILABLE_IN_2_34 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_34 +#define GIO_AVAILABLE_MACRO_IN_2_34 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_34 +#define GIO_AVAILABLE_TYPE_IN_2_34 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_36 +#define GIO_DEPRECATED_IN_2_36 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_36_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_36 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_36_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_36 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_36_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_36 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_36_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_36 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_36_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_36 +#define GIO_DEPRECATED_MACRO_IN_2_36_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_36 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_36_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_36 +#define GIO_DEPRECATED_TYPE_IN_2_36_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_36 +#define GIO_AVAILABLE_IN_2_36 GIO_UNAVAILABLE (2, 36) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_36 GLIB_UNAVAILABLE_STATIC_INLINE (2, 36) +#define GIO_AVAILABLE_MACRO_IN_2_36 GLIB_UNAVAILABLE_MACRO (2, 36) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_36 GLIB_UNAVAILABLE_ENUMERATOR (2, 36) +#define GIO_AVAILABLE_TYPE_IN_2_36 GLIB_UNAVAILABLE_TYPE (2, 36) +#else +#define GIO_AVAILABLE_IN_2_36 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_36 +#define GIO_AVAILABLE_MACRO_IN_2_36 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_36 +#define GIO_AVAILABLE_TYPE_IN_2_36 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_38 +#define GIO_DEPRECATED_IN_2_38 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_38_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_38 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_38_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_38 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_38_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_38 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_38_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_38 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_38_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_38 +#define GIO_DEPRECATED_MACRO_IN_2_38_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_38 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_38_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_38 +#define GIO_DEPRECATED_TYPE_IN_2_38_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 +#define GIO_AVAILABLE_IN_2_38 GIO_UNAVAILABLE (2, 38) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_38 GLIB_UNAVAILABLE_STATIC_INLINE (2, 38) +#define GIO_AVAILABLE_MACRO_IN_2_38 GLIB_UNAVAILABLE_MACRO (2, 38) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_38 GLIB_UNAVAILABLE_ENUMERATOR (2, 38) +#define GIO_AVAILABLE_TYPE_IN_2_38 GLIB_UNAVAILABLE_TYPE (2, 38) +#else +#define GIO_AVAILABLE_IN_2_38 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_38 +#define GIO_AVAILABLE_MACRO_IN_2_38 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_38 +#define GIO_AVAILABLE_TYPE_IN_2_38 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_40 +#define GIO_DEPRECATED_IN_2_40 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_40_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_40 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_40_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_40 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_40_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_40 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_40_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_40 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_40_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_40 +#define GIO_DEPRECATED_MACRO_IN_2_40_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_40 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_40_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_40 +#define GIO_DEPRECATED_TYPE_IN_2_40_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_40 +#define GIO_AVAILABLE_IN_2_40 GIO_UNAVAILABLE (2, 40) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_40 GLIB_UNAVAILABLE_STATIC_INLINE (2, 40) +#define GIO_AVAILABLE_MACRO_IN_2_40 GLIB_UNAVAILABLE_MACRO (2, 40) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_40 GLIB_UNAVAILABLE_ENUMERATOR (2, 40) +#define GIO_AVAILABLE_TYPE_IN_2_40 GLIB_UNAVAILABLE_TYPE (2, 40) +#else +#define GIO_AVAILABLE_IN_2_40 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_40 +#define GIO_AVAILABLE_MACRO_IN_2_40 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_40 +#define GIO_AVAILABLE_TYPE_IN_2_40 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_42 +#define GIO_DEPRECATED_IN_2_42 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_42_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_42 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_42_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_42 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_42_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_42 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_42_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_42 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_42_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_42 +#define GIO_DEPRECATED_MACRO_IN_2_42_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_42 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_42_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_42 +#define GIO_DEPRECATED_TYPE_IN_2_42_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_42 +#define GIO_AVAILABLE_IN_2_42 GIO_UNAVAILABLE (2, 42) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_42 GLIB_UNAVAILABLE_STATIC_INLINE (2, 42) +#define GIO_AVAILABLE_MACRO_IN_2_42 GLIB_UNAVAILABLE_MACRO (2, 42) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_42 GLIB_UNAVAILABLE_ENUMERATOR (2, 42) +#define GIO_AVAILABLE_TYPE_IN_2_42 GLIB_UNAVAILABLE_TYPE (2, 42) +#else +#define GIO_AVAILABLE_IN_2_42 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_42 +#define GIO_AVAILABLE_MACRO_IN_2_42 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_42 +#define GIO_AVAILABLE_TYPE_IN_2_42 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_44 +#define GIO_DEPRECATED_IN_2_44 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_44_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_44 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_44_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_44 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_44_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_44 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_44_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_44 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_44_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_44 +#define GIO_DEPRECATED_MACRO_IN_2_44_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_44 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_44_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_44 +#define GIO_DEPRECATED_TYPE_IN_2_44_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_44 +#define GIO_AVAILABLE_IN_2_44 GIO_UNAVAILABLE (2, 44) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_44 GLIB_UNAVAILABLE_STATIC_INLINE (2, 44) +#define GIO_AVAILABLE_MACRO_IN_2_44 GLIB_UNAVAILABLE_MACRO (2, 44) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_44 GLIB_UNAVAILABLE_ENUMERATOR (2, 44) +#define GIO_AVAILABLE_TYPE_IN_2_44 GLIB_UNAVAILABLE_TYPE (2, 44) +#else +#define GIO_AVAILABLE_IN_2_44 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_44 +#define GIO_AVAILABLE_MACRO_IN_2_44 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_44 +#define GIO_AVAILABLE_TYPE_IN_2_44 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_46 +#define GIO_DEPRECATED_IN_2_46 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_46_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_46 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_46_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_46 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_46_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_46 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_46_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_46 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_46_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_46 +#define GIO_DEPRECATED_MACRO_IN_2_46_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_46 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_46_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_46 +#define GIO_DEPRECATED_TYPE_IN_2_46_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_46 +#define GIO_AVAILABLE_IN_2_46 GIO_UNAVAILABLE (2, 46) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_46 GLIB_UNAVAILABLE_STATIC_INLINE (2, 46) +#define GIO_AVAILABLE_MACRO_IN_2_46 GLIB_UNAVAILABLE_MACRO (2, 46) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_46 GLIB_UNAVAILABLE_ENUMERATOR (2, 46) +#define GIO_AVAILABLE_TYPE_IN_2_46 GLIB_UNAVAILABLE_TYPE (2, 46) +#else +#define GIO_AVAILABLE_IN_2_46 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_46 +#define GIO_AVAILABLE_MACRO_IN_2_46 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_46 +#define GIO_AVAILABLE_TYPE_IN_2_46 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_48 +#define GIO_DEPRECATED_IN_2_48 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_48_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_48 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_48_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_48 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_48_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_48 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_48_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_48 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_48_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_48 +#define GIO_DEPRECATED_MACRO_IN_2_48_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_48 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_48_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_48 +#define GIO_DEPRECATED_TYPE_IN_2_48_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_48 +#define GIO_AVAILABLE_IN_2_48 GIO_UNAVAILABLE (2, 48) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_48 GLIB_UNAVAILABLE_STATIC_INLINE (2, 48) +#define GIO_AVAILABLE_MACRO_IN_2_48 GLIB_UNAVAILABLE_MACRO (2, 48) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_48 GLIB_UNAVAILABLE_ENUMERATOR (2, 48) +#define GIO_AVAILABLE_TYPE_IN_2_48 GLIB_UNAVAILABLE_TYPE (2, 48) +#else +#define GIO_AVAILABLE_IN_2_48 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_48 +#define GIO_AVAILABLE_MACRO_IN_2_48 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_48 +#define GIO_AVAILABLE_TYPE_IN_2_48 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_50 +#define GIO_DEPRECATED_IN_2_50 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_50_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_50 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_50_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_50 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_50_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_50 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_50_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_50 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_50_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_50 +#define GIO_DEPRECATED_MACRO_IN_2_50_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_50 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_50_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_50 +#define GIO_DEPRECATED_TYPE_IN_2_50_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_50 +#define GIO_AVAILABLE_IN_2_50 GIO_UNAVAILABLE (2, 50) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_50 GLIB_UNAVAILABLE_STATIC_INLINE (2, 50) +#define GIO_AVAILABLE_MACRO_IN_2_50 GLIB_UNAVAILABLE_MACRO (2, 50) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_50 GLIB_UNAVAILABLE_ENUMERATOR (2, 50) +#define GIO_AVAILABLE_TYPE_IN_2_50 GLIB_UNAVAILABLE_TYPE (2, 50) +#else +#define GIO_AVAILABLE_IN_2_50 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_50 +#define GIO_AVAILABLE_MACRO_IN_2_50 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_50 +#define GIO_AVAILABLE_TYPE_IN_2_50 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_52 +#define GIO_DEPRECATED_IN_2_52 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_52_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_52 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_52_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_52 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_52_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_52 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_52_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_52 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_52_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_52 +#define GIO_DEPRECATED_MACRO_IN_2_52_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_52 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_52_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_52 +#define GIO_DEPRECATED_TYPE_IN_2_52_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_52 +#define GIO_AVAILABLE_IN_2_52 GIO_UNAVAILABLE (2, 52) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_52 GLIB_UNAVAILABLE_STATIC_INLINE (2, 52) +#define GIO_AVAILABLE_MACRO_IN_2_52 GLIB_UNAVAILABLE_MACRO (2, 52) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_52 GLIB_UNAVAILABLE_ENUMERATOR (2, 52) +#define GIO_AVAILABLE_TYPE_IN_2_52 GLIB_UNAVAILABLE_TYPE (2, 52) +#else +#define GIO_AVAILABLE_IN_2_52 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_52 +#define GIO_AVAILABLE_MACRO_IN_2_52 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_52 +#define GIO_AVAILABLE_TYPE_IN_2_52 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_54 +#define GIO_DEPRECATED_IN_2_54 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_54_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_54 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_54_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_54 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_54_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_54 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_54_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_54 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_54_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_54 +#define GIO_DEPRECATED_MACRO_IN_2_54_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_54 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_54_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_54 +#define GIO_DEPRECATED_TYPE_IN_2_54_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_54 +#define GIO_AVAILABLE_IN_2_54 GIO_UNAVAILABLE (2, 54) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_54 GLIB_UNAVAILABLE_STATIC_INLINE (2, 54) +#define GIO_AVAILABLE_MACRO_IN_2_54 GLIB_UNAVAILABLE_MACRO (2, 54) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_54 GLIB_UNAVAILABLE_ENUMERATOR (2, 54) +#define GIO_AVAILABLE_TYPE_IN_2_54 GLIB_UNAVAILABLE_TYPE (2, 54) +#else +#define GIO_AVAILABLE_IN_2_54 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_54 +#define GIO_AVAILABLE_MACRO_IN_2_54 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_54 +#define GIO_AVAILABLE_TYPE_IN_2_54 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_56 +#define GIO_DEPRECATED_IN_2_56 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_56_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_56 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_56_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_56 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_56_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_56 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_56_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_56 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_56_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_56 +#define GIO_DEPRECATED_MACRO_IN_2_56_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_56 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_56_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_56 +#define GIO_DEPRECATED_TYPE_IN_2_56_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_56 +#define GIO_AVAILABLE_IN_2_56 GIO_UNAVAILABLE (2, 56) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_56 GLIB_UNAVAILABLE_STATIC_INLINE (2, 56) +#define GIO_AVAILABLE_MACRO_IN_2_56 GLIB_UNAVAILABLE_MACRO (2, 56) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_56 GLIB_UNAVAILABLE_ENUMERATOR (2, 56) +#define GIO_AVAILABLE_TYPE_IN_2_56 GLIB_UNAVAILABLE_TYPE (2, 56) +#else +#define GIO_AVAILABLE_IN_2_56 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_56 +#define GIO_AVAILABLE_MACRO_IN_2_56 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_56 +#define GIO_AVAILABLE_TYPE_IN_2_56 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_58 +#define GIO_DEPRECATED_IN_2_58 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_58_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_58 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_58_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_58 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_58_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_58 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_58_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_58 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_58_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_58 +#define GIO_DEPRECATED_MACRO_IN_2_58_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_58 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_58_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_58 +#define GIO_DEPRECATED_TYPE_IN_2_58_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_58 +#define GIO_AVAILABLE_IN_2_58 GIO_UNAVAILABLE (2, 58) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_58 GLIB_UNAVAILABLE_STATIC_INLINE (2, 58) +#define GIO_AVAILABLE_MACRO_IN_2_58 GLIB_UNAVAILABLE_MACRO (2, 58) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_58 GLIB_UNAVAILABLE_ENUMERATOR (2, 58) +#define GIO_AVAILABLE_TYPE_IN_2_58 GLIB_UNAVAILABLE_TYPE (2, 58) +#else +#define GIO_AVAILABLE_IN_2_58 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_58 +#define GIO_AVAILABLE_MACRO_IN_2_58 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_58 +#define GIO_AVAILABLE_TYPE_IN_2_58 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_60 +#define GIO_DEPRECATED_IN_2_60 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_60_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_60 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_60_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_60 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_60_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_60 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_60_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_60 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_60_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_60 +#define GIO_DEPRECATED_MACRO_IN_2_60_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_60 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_60_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_60 +#define GIO_DEPRECATED_TYPE_IN_2_60_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_60 +#define GIO_AVAILABLE_IN_2_60 GIO_UNAVAILABLE (2, 60) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_60 GLIB_UNAVAILABLE_STATIC_INLINE (2, 60) +#define GIO_AVAILABLE_MACRO_IN_2_60 GLIB_UNAVAILABLE_MACRO (2, 60) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_60 GLIB_UNAVAILABLE_ENUMERATOR (2, 60) +#define GIO_AVAILABLE_TYPE_IN_2_60 GLIB_UNAVAILABLE_TYPE (2, 60) +#else +#define GIO_AVAILABLE_IN_2_60 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_60 +#define GIO_AVAILABLE_MACRO_IN_2_60 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_60 +#define GIO_AVAILABLE_TYPE_IN_2_60 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_62 +#define GIO_DEPRECATED_IN_2_62 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_62_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_62 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_62_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_62 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_62_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_62 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_62_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_62 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_62_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_62 +#define GIO_DEPRECATED_MACRO_IN_2_62_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_62 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_62_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_62 +#define GIO_DEPRECATED_TYPE_IN_2_62_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_62 +#define GIO_AVAILABLE_IN_2_62 GIO_UNAVAILABLE (2, 62) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_62 GLIB_UNAVAILABLE_STATIC_INLINE (2, 62) +#define GIO_AVAILABLE_MACRO_IN_2_62 GLIB_UNAVAILABLE_MACRO (2, 62) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_62 GLIB_UNAVAILABLE_ENUMERATOR (2, 62) +#define GIO_AVAILABLE_TYPE_IN_2_62 GLIB_UNAVAILABLE_TYPE (2, 62) +#else +#define GIO_AVAILABLE_IN_2_62 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_62 +#define GIO_AVAILABLE_MACRO_IN_2_62 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_62 +#define GIO_AVAILABLE_TYPE_IN_2_62 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_64 +#define GIO_DEPRECATED_IN_2_64 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_64_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_64 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_64_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_64 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_64_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_64 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_64_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_64 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_64_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_64 +#define GIO_DEPRECATED_MACRO_IN_2_64_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_64 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_64_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_64 +#define GIO_DEPRECATED_TYPE_IN_2_64_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_64 +#define GIO_AVAILABLE_IN_2_64 GIO_UNAVAILABLE (2, 64) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_64 GLIB_UNAVAILABLE_STATIC_INLINE (2, 64) +#define GIO_AVAILABLE_MACRO_IN_2_64 GLIB_UNAVAILABLE_MACRO (2, 64) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_64 GLIB_UNAVAILABLE_ENUMERATOR (2, 64) +#define GIO_AVAILABLE_TYPE_IN_2_64 GLIB_UNAVAILABLE_TYPE (2, 64) +#else +#define GIO_AVAILABLE_IN_2_64 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_64 +#define GIO_AVAILABLE_MACRO_IN_2_64 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_64 +#define GIO_AVAILABLE_TYPE_IN_2_64 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_66 +#define GIO_DEPRECATED_IN_2_66 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_66_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_66 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_66_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_66 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_66_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_66 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_66_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_66 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_66_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_66 +#define GIO_DEPRECATED_MACRO_IN_2_66_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_66 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_66_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_66 +#define GIO_DEPRECATED_TYPE_IN_2_66_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_66 +#define GIO_AVAILABLE_IN_2_66 GIO_UNAVAILABLE (2, 66) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_66 GLIB_UNAVAILABLE_STATIC_INLINE (2, 66) +#define GIO_AVAILABLE_MACRO_IN_2_66 GLIB_UNAVAILABLE_MACRO (2, 66) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_66 GLIB_UNAVAILABLE_ENUMERATOR (2, 66) +#define GIO_AVAILABLE_TYPE_IN_2_66 GLIB_UNAVAILABLE_TYPE (2, 66) +#else +#define GIO_AVAILABLE_IN_2_66 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_66 +#define GIO_AVAILABLE_MACRO_IN_2_66 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_66 +#define GIO_AVAILABLE_TYPE_IN_2_66 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_68 +#define GIO_DEPRECATED_IN_2_68 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_68_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_68 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_68_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_68 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_68_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_68 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_68_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_68 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_68_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_68 +#define GIO_DEPRECATED_MACRO_IN_2_68_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_68 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_68_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_68 +#define GIO_DEPRECATED_TYPE_IN_2_68_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_68 +#define GIO_AVAILABLE_IN_2_68 GIO_UNAVAILABLE (2, 68) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_68 GLIB_UNAVAILABLE_STATIC_INLINE (2, 68) +#define GIO_AVAILABLE_MACRO_IN_2_68 GLIB_UNAVAILABLE_MACRO (2, 68) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_68 GLIB_UNAVAILABLE_ENUMERATOR (2, 68) +#define GIO_AVAILABLE_TYPE_IN_2_68 GLIB_UNAVAILABLE_TYPE (2, 68) +#else +#define GIO_AVAILABLE_IN_2_68 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_68 +#define GIO_AVAILABLE_MACRO_IN_2_68 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_68 +#define GIO_AVAILABLE_TYPE_IN_2_68 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_70 +#define GIO_DEPRECATED_IN_2_70 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_70_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_70 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_70_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_70 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_70_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_70 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_70_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_70 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_70_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_70 +#define GIO_DEPRECATED_MACRO_IN_2_70_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_70 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_70_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_70 +#define GIO_DEPRECATED_TYPE_IN_2_70_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_70 +#define GIO_AVAILABLE_IN_2_70 GIO_UNAVAILABLE (2, 70) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_70 GLIB_UNAVAILABLE_STATIC_INLINE (2, 70) +#define GIO_AVAILABLE_MACRO_IN_2_70 GLIB_UNAVAILABLE_MACRO (2, 70) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_70 GLIB_UNAVAILABLE_ENUMERATOR (2, 70) +#define GIO_AVAILABLE_TYPE_IN_2_70 GLIB_UNAVAILABLE_TYPE (2, 70) +#else +#define GIO_AVAILABLE_IN_2_70 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_70 +#define GIO_AVAILABLE_MACRO_IN_2_70 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_70 +#define GIO_AVAILABLE_TYPE_IN_2_70 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_72 +#define GIO_DEPRECATED_IN_2_72 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_72_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_72 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_72_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_72 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_72_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_72 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_72_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_72 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_72_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_72 +#define GIO_DEPRECATED_MACRO_IN_2_72_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_72 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_72_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_72 +#define GIO_DEPRECATED_TYPE_IN_2_72_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_72 +#define GIO_AVAILABLE_IN_2_72 GIO_UNAVAILABLE (2, 72) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_72 GLIB_UNAVAILABLE_STATIC_INLINE (2, 72) +#define GIO_AVAILABLE_MACRO_IN_2_72 GLIB_UNAVAILABLE_MACRO (2, 72) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_72 GLIB_UNAVAILABLE_ENUMERATOR (2, 72) +#define GIO_AVAILABLE_TYPE_IN_2_72 GLIB_UNAVAILABLE_TYPE (2, 72) +#else +#define GIO_AVAILABLE_IN_2_72 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_72 +#define GIO_AVAILABLE_MACRO_IN_2_72 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_72 +#define GIO_AVAILABLE_TYPE_IN_2_72 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_74 +#define GIO_DEPRECATED_IN_2_74 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_74_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_74 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_74_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_74 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_74_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_74 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_74_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_74 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_74_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_74 +#define GIO_DEPRECATED_MACRO_IN_2_74_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_74 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_74_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_74 +#define GIO_DEPRECATED_TYPE_IN_2_74_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_74 +#define GIO_AVAILABLE_IN_2_74 GIO_UNAVAILABLE (2, 74) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_74 GLIB_UNAVAILABLE_STATIC_INLINE (2, 74) +#define GIO_AVAILABLE_MACRO_IN_2_74 GLIB_UNAVAILABLE_MACRO (2, 74) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_74 GLIB_UNAVAILABLE_ENUMERATOR (2, 74) +#define GIO_AVAILABLE_TYPE_IN_2_74 GLIB_UNAVAILABLE_TYPE (2, 74) +#else +#define GIO_AVAILABLE_IN_2_74 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_74 +#define GIO_AVAILABLE_MACRO_IN_2_74 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_74 +#define GIO_AVAILABLE_TYPE_IN_2_74 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_76 +#define GIO_DEPRECATED_IN_2_76 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_76_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_76 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_76_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_76 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_76_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_76 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_76_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_76 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_76_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_76 +#define GIO_DEPRECATED_MACRO_IN_2_76_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_76 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_76_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_76 +#define GIO_DEPRECATED_TYPE_IN_2_76_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_76 +#define GIO_AVAILABLE_IN_2_76 GIO_UNAVAILABLE (2, 76) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_76 GLIB_UNAVAILABLE_STATIC_INLINE (2, 76) +#define GIO_AVAILABLE_MACRO_IN_2_76 GLIB_UNAVAILABLE_MACRO (2, 76) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_76 GLIB_UNAVAILABLE_ENUMERATOR (2, 76) +#define GIO_AVAILABLE_TYPE_IN_2_76 GLIB_UNAVAILABLE_TYPE (2, 76) +#else +#define GIO_AVAILABLE_IN_2_76 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_76 +#define GIO_AVAILABLE_MACRO_IN_2_76 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_76 +#define GIO_AVAILABLE_TYPE_IN_2_76 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_78 +#define GIO_DEPRECATED_IN_2_78 GIO_DEPRECATED +#define GIO_DEPRECATED_IN_2_78_FOR(f) GIO_DEPRECATED_FOR (f) +#define GIO_DEPRECATED_MACRO_IN_2_78 GLIB_DEPRECATED_MACRO +#define GIO_DEPRECATED_MACRO_IN_2_78_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_78 GLIB_DEPRECATED_ENUMERATOR +#define GIO_DEPRECATED_ENUMERATOR_IN_2_78_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GIO_DEPRECATED_TYPE_IN_2_78 GLIB_DEPRECATED_TYPE +#define GIO_DEPRECATED_TYPE_IN_2_78_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GIO_DEPRECATED_IN_2_78 _GIO_EXTERN +#define GIO_DEPRECATED_IN_2_78_FOR(f) _GIO_EXTERN +#define GIO_DEPRECATED_MACRO_IN_2_78 +#define GIO_DEPRECATED_MACRO_IN_2_78_FOR(f) +#define GIO_DEPRECATED_ENUMERATOR_IN_2_78 +#define GIO_DEPRECATED_ENUMERATOR_IN_2_78_FOR(f) +#define GIO_DEPRECATED_TYPE_IN_2_78 +#define GIO_DEPRECATED_TYPE_IN_2_78_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_78 +#define GIO_AVAILABLE_IN_2_78 GIO_UNAVAILABLE (2, 78) +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_78 GLIB_UNAVAILABLE_STATIC_INLINE (2, 78) +#define GIO_AVAILABLE_MACRO_IN_2_78 GLIB_UNAVAILABLE_MACRO (2, 78) +#define GIO_AVAILABLE_ENUMERATOR_IN_2_78 GLIB_UNAVAILABLE_ENUMERATOR (2, 78) +#define GIO_AVAILABLE_TYPE_IN_2_78 GLIB_UNAVAILABLE_TYPE (2, 78) +#else +#define GIO_AVAILABLE_IN_2_78 _GIO_EXTERN +#define GIO_AVAILABLE_STATIC_INLINE_IN_2_78 +#define GIO_AVAILABLE_MACRO_IN_2_78 +#define GIO_AVAILABLE_ENUMERATOR_IN_2_78 +#define GIO_AVAILABLE_TYPE_IN_2_78 +#endif diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gio.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gio.h new file mode 100644 index 000000000..c17657db0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gio.h @@ -0,0 +1,186 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_IO_H__ +#define __G_IO_H__ + +#define __GIO_GIO_H_INSIDE__ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#undef __GIO_GIO_H_INSIDE__ + +#endif /* __G_IO_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gioenums.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gioenums.h new file mode 100644 index 000000000..c820cd36d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gioenums.h @@ -0,0 +1,2149 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __GIO_ENUMS_H__ +#define __GIO_ENUMS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + + +/** + * GAppInfoCreateFlags: + * @G_APP_INFO_CREATE_NONE: No flags. + * @G_APP_INFO_CREATE_NEEDS_TERMINAL: Application opens in a terminal window. + * @G_APP_INFO_CREATE_SUPPORTS_URIS: Application supports URI arguments. + * @G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION: Application supports startup notification. Since 2.26 + * + * Flags used when creating a #GAppInfo. + */ +typedef enum { + G_APP_INFO_CREATE_NONE = 0, /*< nick=none >*/ + G_APP_INFO_CREATE_NEEDS_TERMINAL = (1 << 0), /*< nick=needs-terminal >*/ + G_APP_INFO_CREATE_SUPPORTS_URIS = (1 << 1), /*< nick=supports-uris >*/ + G_APP_INFO_CREATE_SUPPORTS_STARTUP_NOTIFICATION = (1 << 2) /*< nick=supports-startup-notification >*/ +} GAppInfoCreateFlags; + +/** + * GConverterFlags: + * @G_CONVERTER_NO_FLAGS: No flags. + * @G_CONVERTER_INPUT_AT_END: At end of input data + * @G_CONVERTER_FLUSH: Flush data + * + * Flags used when calling a g_converter_convert(). + * + * Since: 2.24 + */ +typedef enum { + G_CONVERTER_NO_FLAGS = 0, /*< nick=none >*/ + G_CONVERTER_INPUT_AT_END = (1 << 0), /*< nick=input-at-end >*/ + G_CONVERTER_FLUSH = (1 << 1) /*< nick=flush >*/ +} GConverterFlags; + +/** + * GConverterResult: + * @G_CONVERTER_ERROR: There was an error during conversion. + * @G_CONVERTER_CONVERTED: Some data was consumed or produced + * @G_CONVERTER_FINISHED: The conversion is finished + * @G_CONVERTER_FLUSHED: Flushing is finished + * + * Results returned from g_converter_convert(). + * + * Since: 2.24 + */ +typedef enum { + G_CONVERTER_ERROR = 0, /*< nick=error >*/ + G_CONVERTER_CONVERTED = 1, /*< nick=converted >*/ + G_CONVERTER_FINISHED = 2, /*< nick=finished >*/ + G_CONVERTER_FLUSHED = 3 /*< nick=flushed >*/ +} GConverterResult; + + +/** + * GDataStreamByteOrder: + * @G_DATA_STREAM_BYTE_ORDER_BIG_ENDIAN: Selects Big Endian byte order. + * @G_DATA_STREAM_BYTE_ORDER_LITTLE_ENDIAN: Selects Little Endian byte order. + * @G_DATA_STREAM_BYTE_ORDER_HOST_ENDIAN: Selects endianness based on host machine's architecture. + * + * #GDataStreamByteOrder is used to ensure proper endianness of streaming data sources + * across various machine architectures. + * + **/ +typedef enum { + G_DATA_STREAM_BYTE_ORDER_BIG_ENDIAN, + G_DATA_STREAM_BYTE_ORDER_LITTLE_ENDIAN, + G_DATA_STREAM_BYTE_ORDER_HOST_ENDIAN +} GDataStreamByteOrder; + + +/** + * GDataStreamNewlineType: + * @G_DATA_STREAM_NEWLINE_TYPE_LF: Selects "LF" line endings, common on most modern UNIX platforms. + * @G_DATA_STREAM_NEWLINE_TYPE_CR: Selects "CR" line endings. + * @G_DATA_STREAM_NEWLINE_TYPE_CR_LF: Selects "CR, LF" line ending, common on Microsoft Windows. + * @G_DATA_STREAM_NEWLINE_TYPE_ANY: Automatically try to handle any line ending type. + * + * #GDataStreamNewlineType is used when checking for or setting the line endings for a given file. + **/ +typedef enum { + G_DATA_STREAM_NEWLINE_TYPE_LF, + G_DATA_STREAM_NEWLINE_TYPE_CR, + G_DATA_STREAM_NEWLINE_TYPE_CR_LF, + G_DATA_STREAM_NEWLINE_TYPE_ANY +} GDataStreamNewlineType; + + +/** + * GFileAttributeType: + * @G_FILE_ATTRIBUTE_TYPE_INVALID: indicates an invalid or uninitialized type. + * @G_FILE_ATTRIBUTE_TYPE_STRING: a null terminated UTF8 string. + * @G_FILE_ATTRIBUTE_TYPE_BYTE_STRING: a zero terminated string of non-zero bytes. + * @G_FILE_ATTRIBUTE_TYPE_BOOLEAN: a boolean value. + * @G_FILE_ATTRIBUTE_TYPE_UINT32: an unsigned 4-byte/32-bit integer. + * @G_FILE_ATTRIBUTE_TYPE_INT32: a signed 4-byte/32-bit integer. + * @G_FILE_ATTRIBUTE_TYPE_UINT64: an unsigned 8-byte/64-bit integer. + * @G_FILE_ATTRIBUTE_TYPE_INT64: a signed 8-byte/64-bit integer. + * @G_FILE_ATTRIBUTE_TYPE_OBJECT: a #GObject. + * @G_FILE_ATTRIBUTE_TYPE_STRINGV: a %NULL terminated char **. Since 2.22 + * + * The data types for file attributes. + **/ +typedef enum { + G_FILE_ATTRIBUTE_TYPE_INVALID = 0, + G_FILE_ATTRIBUTE_TYPE_STRING, + G_FILE_ATTRIBUTE_TYPE_BYTE_STRING, /* zero terminated string of non-zero bytes */ + G_FILE_ATTRIBUTE_TYPE_BOOLEAN, + G_FILE_ATTRIBUTE_TYPE_UINT32, + G_FILE_ATTRIBUTE_TYPE_INT32, + G_FILE_ATTRIBUTE_TYPE_UINT64, + G_FILE_ATTRIBUTE_TYPE_INT64, + G_FILE_ATTRIBUTE_TYPE_OBJECT, + G_FILE_ATTRIBUTE_TYPE_STRINGV +} GFileAttributeType; + + +/** + * GFileAttributeInfoFlags: + * @G_FILE_ATTRIBUTE_INFO_NONE: no flags set. + * @G_FILE_ATTRIBUTE_INFO_COPY_WITH_FILE: copy the attribute values when the file is copied. + * @G_FILE_ATTRIBUTE_INFO_COPY_WHEN_MOVED: copy the attribute values when the file is moved. + * + * Flags specifying the behaviour of an attribute. + **/ +typedef enum { + G_FILE_ATTRIBUTE_INFO_NONE = 0, + G_FILE_ATTRIBUTE_INFO_COPY_WITH_FILE = (1 << 0), + G_FILE_ATTRIBUTE_INFO_COPY_WHEN_MOVED = (1 << 1) +} GFileAttributeInfoFlags; + + +/** + * GFileAttributeStatus: + * @G_FILE_ATTRIBUTE_STATUS_UNSET: Attribute value is unset (empty). + * @G_FILE_ATTRIBUTE_STATUS_SET: Attribute value is set. + * @G_FILE_ATTRIBUTE_STATUS_ERROR_SETTING: Indicates an error in setting the value. + * + * Used by g_file_set_attributes_from_info() when setting file attributes. + **/ +typedef enum { + G_FILE_ATTRIBUTE_STATUS_UNSET = 0, + G_FILE_ATTRIBUTE_STATUS_SET, + G_FILE_ATTRIBUTE_STATUS_ERROR_SETTING +} GFileAttributeStatus; + + +/** + * GFileQueryInfoFlags: + * @G_FILE_QUERY_INFO_NONE: No flags set. + * @G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS: Don't follow symlinks. + * + * Flags used when querying a #GFileInfo. + */ +typedef enum { + G_FILE_QUERY_INFO_NONE = 0, + G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS = (1 << 0) /*< nick=nofollow-symlinks >*/ +} GFileQueryInfoFlags; + + +/** + * GFileCreateFlags: + * @G_FILE_CREATE_NONE: No flags set. + * @G_FILE_CREATE_PRIVATE: Create a file that can only be + * accessed by the current user. + * @G_FILE_CREATE_REPLACE_DESTINATION: Replace the destination + * as if it didn't exist before. Don't try to keep any old + * permissions, replace instead of following links. This + * is generally useful if you're doing a "copy over" + * rather than a "save new version of" replace operation. + * You can think of it as "unlink destination" before + * writing to it, although the implementation may not + * be exactly like that. This flag can only be used with + * g_file_replace() and its variants, including g_file_replace_contents(). + * Since 2.20 + * + * Flags used when an operation may create a file. + */ +typedef enum { + G_FILE_CREATE_NONE = 0, + G_FILE_CREATE_PRIVATE = (1 << 0), + G_FILE_CREATE_REPLACE_DESTINATION = (1 << 1) +} GFileCreateFlags; + +/** + * GFileMeasureFlags: + * @G_FILE_MEASURE_NONE: No flags set. + * @G_FILE_MEASURE_REPORT_ANY_ERROR: Report any error encountered + * while traversing the directory tree. Normally errors are only + * reported for the toplevel file. + * @G_FILE_MEASURE_APPARENT_SIZE: Tally usage based on apparent file + * sizes. Normally, the block-size is used, if available, as this is a + * more accurate representation of disk space used. + * Compare with `du --apparent-size`. + * Since GLib 2.78. and similarly to `du` since GNU Coreutils 9.2, this will + * ignore the sizes of file types other than regular files and links, as the + * sizes of other file types are not specified in a standard way. + * @G_FILE_MEASURE_NO_XDEV: Do not cross mount point boundaries. + * Compare with `du -x`. + * + * Flags that can be used with g_file_measure_disk_usage(). + * + * Since: 2.38 + **/ +typedef enum { + G_FILE_MEASURE_NONE = 0, + G_FILE_MEASURE_REPORT_ANY_ERROR = (1 << 1), + G_FILE_MEASURE_APPARENT_SIZE = (1 << 2), + G_FILE_MEASURE_NO_XDEV = (1 << 3) +} GFileMeasureFlags; + +/** + * GMountMountFlags: + * @G_MOUNT_MOUNT_NONE: No flags set. + * + * Flags used when mounting a mount. + */ +typedef enum /*< flags >*/ { + G_MOUNT_MOUNT_NONE = 0 +} GMountMountFlags; + + +/** + * GMountUnmountFlags: + * @G_MOUNT_UNMOUNT_NONE: No flags set. + * @G_MOUNT_UNMOUNT_FORCE: Unmount even if there are outstanding + * file operations on the mount. + * + * Flags used when an unmounting a mount. + */ +typedef enum { + G_MOUNT_UNMOUNT_NONE = 0, + G_MOUNT_UNMOUNT_FORCE = (1 << 0) +} GMountUnmountFlags; + +/** + * GDriveStartFlags: + * @G_DRIVE_START_NONE: No flags set. + * + * Flags used when starting a drive. + * + * Since: 2.22 + */ +typedef enum /*< flags >*/ { + G_DRIVE_START_NONE = 0 +} GDriveStartFlags; + +/** + * GDriveStartStopType: + * @G_DRIVE_START_STOP_TYPE_UNKNOWN: Unknown or drive doesn't support + * start/stop. + * @G_DRIVE_START_STOP_TYPE_SHUTDOWN: The stop method will physically + * shut down the drive and e.g. power down the port the drive is + * attached to. + * @G_DRIVE_START_STOP_TYPE_NETWORK: The start/stop methods are used + * for connecting/disconnect to the drive over the network. + * @G_DRIVE_START_STOP_TYPE_MULTIDISK: The start/stop methods will + * assemble/disassemble a virtual drive from several physical + * drives. + * @G_DRIVE_START_STOP_TYPE_PASSWORD: The start/stop methods will + * unlock/lock the disk (for example using the ATA SECURITY + * UNLOCK DEVICE command) + * + * Enumeration describing how a drive can be started/stopped. + * + * Since: 2.22 + */ +typedef enum { + G_DRIVE_START_STOP_TYPE_UNKNOWN, + G_DRIVE_START_STOP_TYPE_SHUTDOWN, + G_DRIVE_START_STOP_TYPE_NETWORK, + G_DRIVE_START_STOP_TYPE_MULTIDISK, + G_DRIVE_START_STOP_TYPE_PASSWORD +} GDriveStartStopType; + +/** + * GFileCopyFlags: + * @G_FILE_COPY_NONE: No flags set. + * @G_FILE_COPY_OVERWRITE: Overwrite any existing files + * @G_FILE_COPY_BACKUP: Make a backup of any existing files. + * @G_FILE_COPY_NOFOLLOW_SYMLINKS: Don't follow symlinks. + * @G_FILE_COPY_ALL_METADATA: Copy all file metadata instead of just default set used for copy (see #GFileInfo). + * @G_FILE_COPY_NO_FALLBACK_FOR_MOVE: Don't use copy and delete fallback if native move not supported. + * @G_FILE_COPY_TARGET_DEFAULT_PERMS: Leaves target file with default perms, instead of setting the source file perms. + * + * Flags used when copying or moving files. + */ +typedef enum { + G_FILE_COPY_NONE = 0, /*< nick=none >*/ + G_FILE_COPY_OVERWRITE = (1 << 0), + G_FILE_COPY_BACKUP = (1 << 1), + G_FILE_COPY_NOFOLLOW_SYMLINKS = (1 << 2), + G_FILE_COPY_ALL_METADATA = (1 << 3), + G_FILE_COPY_NO_FALLBACK_FOR_MOVE = (1 << 4), + G_FILE_COPY_TARGET_DEFAULT_PERMS = (1 << 5) +} GFileCopyFlags; + + +/** + * GFileMonitorFlags: + * @G_FILE_MONITOR_NONE: No flags set. + * @G_FILE_MONITOR_WATCH_MOUNTS: Watch for mount events. + * @G_FILE_MONITOR_SEND_MOVED: Pair DELETED and CREATED events caused + * by file renames (moves) and send a single G_FILE_MONITOR_EVENT_MOVED + * event instead (NB: not supported on all backends; the default + * behaviour -without specifying this flag- is to send single DELETED + * and CREATED events). Deprecated since 2.46: use + * %G_FILE_MONITOR_WATCH_MOVES instead. + * @G_FILE_MONITOR_WATCH_HARD_LINKS: Watch for changes to the file made + * via another hard link. Since 2.36. + * @G_FILE_MONITOR_WATCH_MOVES: Watch for rename operations on a + * monitored directory. This causes %G_FILE_MONITOR_EVENT_RENAMED, + * %G_FILE_MONITOR_EVENT_MOVED_IN and %G_FILE_MONITOR_EVENT_MOVED_OUT + * events to be emitted when possible. Since: 2.46. + * + * Flags used to set what a #GFileMonitor will watch for. + */ +typedef enum { + G_FILE_MONITOR_NONE = 0, + G_FILE_MONITOR_WATCH_MOUNTS = (1 << 0), + G_FILE_MONITOR_SEND_MOVED = (1 << 1), + G_FILE_MONITOR_WATCH_HARD_LINKS = (1 << 2), + G_FILE_MONITOR_WATCH_MOVES = (1 << 3) +} GFileMonitorFlags; + + +/** + * GFileType: + * @G_FILE_TYPE_UNKNOWN: File's type is unknown. + * @G_FILE_TYPE_REGULAR: File handle represents a regular file. + * @G_FILE_TYPE_DIRECTORY: File handle represents a directory. + * @G_FILE_TYPE_SYMBOLIC_LINK: File handle represents a symbolic link + * (Unix systems). + * @G_FILE_TYPE_SPECIAL: File is a "special" file, such as a socket, fifo, + * block device, or character device. + * @G_FILE_TYPE_SHORTCUT: File is a shortcut (Windows systems). + * @G_FILE_TYPE_MOUNTABLE: File is a mountable location. + * + * Indicates the file's on-disk type. + * + * On Windows systems a file will never have %G_FILE_TYPE_SYMBOLIC_LINK type; + * use #GFileInfo and %G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK to determine + * whether a file is a symlink or not. This is due to the fact that NTFS does + * not have a single filesystem object type for symbolic links - it has + * files that symlink to files, and directories that symlink to directories. + * #GFileType enumeration cannot precisely represent this important distinction, + * which is why all Windows symlinks will continue to be reported as + * %G_FILE_TYPE_REGULAR or %G_FILE_TYPE_DIRECTORY. + **/ +typedef enum { + G_FILE_TYPE_UNKNOWN = 0, + G_FILE_TYPE_REGULAR, + G_FILE_TYPE_DIRECTORY, + G_FILE_TYPE_SYMBOLIC_LINK, + G_FILE_TYPE_SPECIAL, /* socket, fifo, blockdev, chardev */ + G_FILE_TYPE_SHORTCUT, + G_FILE_TYPE_MOUNTABLE +} GFileType; + + +/** + * GFilesystemPreviewType: + * @G_FILESYSTEM_PREVIEW_TYPE_IF_ALWAYS: Only preview files if user has explicitly requested it. + * @G_FILESYSTEM_PREVIEW_TYPE_IF_LOCAL: Preview files if user has requested preview of "local" files. + * @G_FILESYSTEM_PREVIEW_TYPE_NEVER: Never preview files. + * + * Indicates a hint from the file system whether files should be + * previewed in a file manager. Returned as the value of the key + * %G_FILE_ATTRIBUTE_FILESYSTEM_USE_PREVIEW. + **/ +typedef enum { + G_FILESYSTEM_PREVIEW_TYPE_IF_ALWAYS = 0, + G_FILESYSTEM_PREVIEW_TYPE_IF_LOCAL, + G_FILESYSTEM_PREVIEW_TYPE_NEVER +} GFilesystemPreviewType; + + +/** + * GFileMonitorEvent: + * @G_FILE_MONITOR_EVENT_CHANGED: a file changed. + * @G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT: a hint that this was probably the last change in a set of changes. + * @G_FILE_MONITOR_EVENT_DELETED: a file was deleted. + * @G_FILE_MONITOR_EVENT_CREATED: a file was created. + * @G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED: a file attribute was changed. + * @G_FILE_MONITOR_EVENT_PRE_UNMOUNT: the file location will soon be unmounted. + * @G_FILE_MONITOR_EVENT_UNMOUNTED: the file location was unmounted. + * @G_FILE_MONITOR_EVENT_MOVED: the file was moved -- only sent if the + * (deprecated) %G_FILE_MONITOR_SEND_MOVED flag is set + * @G_FILE_MONITOR_EVENT_RENAMED: the file was renamed within the + * current directory -- only sent if the %G_FILE_MONITOR_WATCH_MOVES + * flag is set. Since: 2.46. + * @G_FILE_MONITOR_EVENT_MOVED_IN: the file was moved into the + * monitored directory from another location -- only sent if the + * %G_FILE_MONITOR_WATCH_MOVES flag is set. Since: 2.46. + * @G_FILE_MONITOR_EVENT_MOVED_OUT: the file was moved out of the + * monitored directory to another location -- only sent if the + * %G_FILE_MONITOR_WATCH_MOVES flag is set. Since: 2.46 + * + * Specifies what type of event a monitor event is. + **/ +typedef enum { + G_FILE_MONITOR_EVENT_CHANGED, + G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT, + G_FILE_MONITOR_EVENT_DELETED, + G_FILE_MONITOR_EVENT_CREATED, + G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED, + G_FILE_MONITOR_EVENT_PRE_UNMOUNT, + G_FILE_MONITOR_EVENT_UNMOUNTED, + G_FILE_MONITOR_EVENT_MOVED, + G_FILE_MONITOR_EVENT_RENAMED, + G_FILE_MONITOR_EVENT_MOVED_IN, + G_FILE_MONITOR_EVENT_MOVED_OUT +} GFileMonitorEvent; + + +/* This enumeration conflicts with GIOError in giochannel.h. However, + * that is only used as a return value in some deprecated functions. + * So, we reuse the same prefix for the enumeration values, but call + * the actual enumeration (which is rarely used) GIOErrorEnum. + */ +/** + * GIOErrorEnum: + * @G_IO_ERROR_FAILED: Generic error condition for when an operation fails + * and no more specific #GIOErrorEnum value is defined. + * @G_IO_ERROR_NOT_FOUND: File not found. + * @G_IO_ERROR_EXISTS: File already exists. + * @G_IO_ERROR_IS_DIRECTORY: File is a directory. + * @G_IO_ERROR_NOT_DIRECTORY: File is not a directory. + * @G_IO_ERROR_NOT_EMPTY: File is a directory that isn't empty. + * @G_IO_ERROR_NOT_REGULAR_FILE: File is not a regular file. + * @G_IO_ERROR_NOT_SYMBOLIC_LINK: File is not a symbolic link. + * @G_IO_ERROR_NOT_MOUNTABLE_FILE: File cannot be mounted. + * @G_IO_ERROR_FILENAME_TOO_LONG: Filename is too many characters. + * @G_IO_ERROR_INVALID_FILENAME: Filename is invalid or contains invalid characters. + * @G_IO_ERROR_TOO_MANY_LINKS: File contains too many symbolic links. + * @G_IO_ERROR_NO_SPACE: No space left on drive. + * @G_IO_ERROR_INVALID_ARGUMENT: Invalid argument. + * @G_IO_ERROR_PERMISSION_DENIED: Permission denied. + * @G_IO_ERROR_NOT_SUPPORTED: Operation (or one of its parameters) not supported + * @G_IO_ERROR_NOT_MOUNTED: File isn't mounted. + * @G_IO_ERROR_ALREADY_MOUNTED: File is already mounted. + * @G_IO_ERROR_CLOSED: File was closed. + * @G_IO_ERROR_CANCELLED: Operation was cancelled. See #GCancellable. + * @G_IO_ERROR_PENDING: Operations are still pending. + * @G_IO_ERROR_READ_ONLY: File is read only. + * @G_IO_ERROR_CANT_CREATE_BACKUP: Backup couldn't be created. + * @G_IO_ERROR_WRONG_ETAG: File's Entity Tag was incorrect. + * @G_IO_ERROR_TIMED_OUT: Operation timed out. + * @G_IO_ERROR_WOULD_RECURSE: Operation would be recursive. + * @G_IO_ERROR_BUSY: File is busy. + * @G_IO_ERROR_WOULD_BLOCK: Operation would block. + * @G_IO_ERROR_HOST_NOT_FOUND: Host couldn't be found (remote operations). + * @G_IO_ERROR_WOULD_MERGE: Operation would merge files. + * @G_IO_ERROR_FAILED_HANDLED: Operation failed and a helper program has + * already interacted with the user. Do not display any error dialog. + * @G_IO_ERROR_TOO_MANY_OPEN_FILES: The current process has too many files + * open and can't open any more. Duplicate descriptors do count toward + * this limit. Since 2.20 + * @G_IO_ERROR_NOT_INITIALIZED: The object has not been initialized. Since 2.22 + * @G_IO_ERROR_ADDRESS_IN_USE: The requested address is already in use. Since 2.22 + * @G_IO_ERROR_PARTIAL_INPUT: Need more input to finish operation. Since 2.24 + * @G_IO_ERROR_INVALID_DATA: The input data was invalid. Since 2.24 + * @G_IO_ERROR_DBUS_ERROR: A remote object generated an error that + * doesn't correspond to a locally registered #GError error + * domain. Use g_dbus_error_get_remote_error() to extract the D-Bus + * error name and g_dbus_error_strip_remote_error() to fix up the + * message so it matches what was received on the wire. Since 2.26. + * @G_IO_ERROR_HOST_UNREACHABLE: Host unreachable. Since 2.26 + * @G_IO_ERROR_NETWORK_UNREACHABLE: Network unreachable. Since 2.26 + * @G_IO_ERROR_CONNECTION_REFUSED: Connection refused. Since 2.26 + * @G_IO_ERROR_PROXY_FAILED: Connection to proxy server failed. Since 2.26 + * @G_IO_ERROR_PROXY_AUTH_FAILED: Proxy authentication failed. Since 2.26 + * @G_IO_ERROR_PROXY_NEED_AUTH: Proxy server needs authentication. Since 2.26 + * @G_IO_ERROR_PROXY_NOT_ALLOWED: Proxy connection is not allowed by ruleset. + * Since 2.26 + * @G_IO_ERROR_BROKEN_PIPE: Broken pipe. Since 2.36 + * @G_IO_ERROR_CONNECTION_CLOSED: Connection closed by peer. Note that this + * is the same code as %G_IO_ERROR_BROKEN_PIPE; before 2.44 some + * "connection closed" errors returned %G_IO_ERROR_BROKEN_PIPE, but others + * returned %G_IO_ERROR_FAILED. Now they should all return the same + * value, which has this more logical name. Since 2.44. + * @G_IO_ERROR_NOT_CONNECTED: Transport endpoint is not connected. Since 2.44 + * @G_IO_ERROR_MESSAGE_TOO_LARGE: Message too large. Since 2.48. + * @G_IO_ERROR_NO_SUCH_DEVICE: No such device found. Since 2.74 + * + * Error codes returned by GIO functions. + * + * Note that this domain may be extended in future GLib releases. In + * general, new error codes either only apply to new APIs, or else + * replace %G_IO_ERROR_FAILED in cases that were not explicitly + * distinguished before. You should therefore avoid writing code like + * |[ + * if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_FAILED)) + * { + * // Assume that this is EPRINTERONFIRE + * ... + * } + * ]| + * but should instead treat all unrecognized error codes the same as + * %G_IO_ERROR_FAILED. + * + * See also #GPollableReturn for a cheaper way of returning + * %G_IO_ERROR_WOULD_BLOCK to callers without allocating a #GError. + **/ +typedef enum { + G_IO_ERROR_FAILED, + G_IO_ERROR_NOT_FOUND, + G_IO_ERROR_EXISTS, + G_IO_ERROR_IS_DIRECTORY, + G_IO_ERROR_NOT_DIRECTORY, + G_IO_ERROR_NOT_EMPTY, + G_IO_ERROR_NOT_REGULAR_FILE, + G_IO_ERROR_NOT_SYMBOLIC_LINK, + G_IO_ERROR_NOT_MOUNTABLE_FILE, + G_IO_ERROR_FILENAME_TOO_LONG, + G_IO_ERROR_INVALID_FILENAME, + G_IO_ERROR_TOO_MANY_LINKS, + G_IO_ERROR_NO_SPACE, + G_IO_ERROR_INVALID_ARGUMENT, + G_IO_ERROR_PERMISSION_DENIED, + G_IO_ERROR_NOT_SUPPORTED, + G_IO_ERROR_NOT_MOUNTED, + G_IO_ERROR_ALREADY_MOUNTED, + G_IO_ERROR_CLOSED, + G_IO_ERROR_CANCELLED, + G_IO_ERROR_PENDING, + G_IO_ERROR_READ_ONLY, + G_IO_ERROR_CANT_CREATE_BACKUP, + G_IO_ERROR_WRONG_ETAG, + G_IO_ERROR_TIMED_OUT, + G_IO_ERROR_WOULD_RECURSE, + G_IO_ERROR_BUSY, + G_IO_ERROR_WOULD_BLOCK, + G_IO_ERROR_HOST_NOT_FOUND, + G_IO_ERROR_WOULD_MERGE, + G_IO_ERROR_FAILED_HANDLED, + G_IO_ERROR_TOO_MANY_OPEN_FILES, + G_IO_ERROR_NOT_INITIALIZED, + G_IO_ERROR_ADDRESS_IN_USE, + G_IO_ERROR_PARTIAL_INPUT, + G_IO_ERROR_INVALID_DATA, + G_IO_ERROR_DBUS_ERROR, + G_IO_ERROR_HOST_UNREACHABLE, + G_IO_ERROR_NETWORK_UNREACHABLE, + G_IO_ERROR_CONNECTION_REFUSED, + G_IO_ERROR_PROXY_FAILED, + G_IO_ERROR_PROXY_AUTH_FAILED, + G_IO_ERROR_PROXY_NEED_AUTH, + G_IO_ERROR_PROXY_NOT_ALLOWED, + G_IO_ERROR_BROKEN_PIPE, + G_IO_ERROR_CONNECTION_CLOSED = G_IO_ERROR_BROKEN_PIPE, + G_IO_ERROR_NOT_CONNECTED, + G_IO_ERROR_MESSAGE_TOO_LARGE, + G_IO_ERROR_NO_SUCH_DEVICE GIO_AVAILABLE_ENUMERATOR_IN_2_74, +} GIOErrorEnum; + + +/** + * GAskPasswordFlags: + * @G_ASK_PASSWORD_NEED_PASSWORD: operation requires a password. + * @G_ASK_PASSWORD_NEED_USERNAME: operation requires a username. + * @G_ASK_PASSWORD_NEED_DOMAIN: operation requires a domain. + * @G_ASK_PASSWORD_SAVING_SUPPORTED: operation supports saving settings. + * @G_ASK_PASSWORD_ANONYMOUS_SUPPORTED: operation supports anonymous users. + * @G_ASK_PASSWORD_TCRYPT: operation takes TCRYPT parameters (Since: 2.58) + * + * #GAskPasswordFlags are used to request specific information from the + * user, or to notify the user of their choices in an authentication + * situation. + **/ +typedef enum { + G_ASK_PASSWORD_NEED_PASSWORD = (1 << 0), + G_ASK_PASSWORD_NEED_USERNAME = (1 << 1), + G_ASK_PASSWORD_NEED_DOMAIN = (1 << 2), + G_ASK_PASSWORD_SAVING_SUPPORTED = (1 << 3), + G_ASK_PASSWORD_ANONYMOUS_SUPPORTED = (1 << 4), + G_ASK_PASSWORD_TCRYPT = (1 << 5), +} GAskPasswordFlags; + + +/** + * GPasswordSave: + * @G_PASSWORD_SAVE_NEVER: never save a password. + * @G_PASSWORD_SAVE_FOR_SESSION: save a password for the session. + * @G_PASSWORD_SAVE_PERMANENTLY: save a password permanently. + * + * #GPasswordSave is used to indicate the lifespan of a saved password. + * + * #Gvfs stores passwords in the Gnome keyring when this flag allows it + * to, and later retrieves it again from there. + **/ +typedef enum { + G_PASSWORD_SAVE_NEVER, + G_PASSWORD_SAVE_FOR_SESSION, + G_PASSWORD_SAVE_PERMANENTLY +} GPasswordSave; + + +/** + * GMountOperationResult: + * @G_MOUNT_OPERATION_HANDLED: The request was fulfilled and the + * user specified data is now available + * @G_MOUNT_OPERATION_ABORTED: The user requested the mount operation + * to be aborted + * @G_MOUNT_OPERATION_UNHANDLED: The request was unhandled (i.e. not + * implemented) + * + * #GMountOperationResult is returned as a result when a request for + * information is send by the mounting operation. + **/ +typedef enum { + G_MOUNT_OPERATION_HANDLED, + G_MOUNT_OPERATION_ABORTED, + G_MOUNT_OPERATION_UNHANDLED +} GMountOperationResult; + + +/** + * GOutputStreamSpliceFlags: + * @G_OUTPUT_STREAM_SPLICE_NONE: Do not close either stream. + * @G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE: Close the source stream after + * the splice. + * @G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET: Close the target stream after + * the splice. + * + * GOutputStreamSpliceFlags determine how streams should be spliced. + **/ +typedef enum { + G_OUTPUT_STREAM_SPLICE_NONE = 0, + G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE = (1 << 0), + G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET = (1 << 1) +} GOutputStreamSpliceFlags; + + +/** + * GIOStreamSpliceFlags: + * @G_IO_STREAM_SPLICE_NONE: Do not close either stream. + * @G_IO_STREAM_SPLICE_CLOSE_STREAM1: Close the first stream after + * the splice. + * @G_IO_STREAM_SPLICE_CLOSE_STREAM2: Close the second stream after + * the splice. + * @G_IO_STREAM_SPLICE_WAIT_FOR_BOTH: Wait for both splice operations to finish + * before calling the callback. + * + * GIOStreamSpliceFlags determine how streams should be spliced. + * + * Since: 2.28 + **/ +typedef enum { + G_IO_STREAM_SPLICE_NONE = 0, + G_IO_STREAM_SPLICE_CLOSE_STREAM1 = (1 << 0), + G_IO_STREAM_SPLICE_CLOSE_STREAM2 = (1 << 1), + G_IO_STREAM_SPLICE_WAIT_FOR_BOTH = (1 << 2) +} GIOStreamSpliceFlags; + +/** + * GEmblemOrigin: + * @G_EMBLEM_ORIGIN_UNKNOWN: Emblem of unknown origin + * @G_EMBLEM_ORIGIN_DEVICE: Emblem adds device-specific information + * @G_EMBLEM_ORIGIN_LIVEMETADATA: Emblem depicts live metadata, such as "readonly" + * @G_EMBLEM_ORIGIN_TAG: Emblem comes from a user-defined tag, e.g. set by nautilus (in the future) + * + * GEmblemOrigin is used to add information about the origin of the emblem + * to #GEmblem. + * + * Since: 2.18 + */ +typedef enum { + G_EMBLEM_ORIGIN_UNKNOWN, + G_EMBLEM_ORIGIN_DEVICE, + G_EMBLEM_ORIGIN_LIVEMETADATA, + G_EMBLEM_ORIGIN_TAG +} GEmblemOrigin; + +/** + * GResolverError: + * @G_RESOLVER_ERROR_NOT_FOUND: the requested name/address/service was not + * found + * @G_RESOLVER_ERROR_TEMPORARY_FAILURE: the requested information could not + * be looked up due to a network error or similar problem + * @G_RESOLVER_ERROR_INTERNAL: unknown error + * + * An error code used with %G_RESOLVER_ERROR in a #GError returned + * from a #GResolver routine. + * + * Since: 2.22 + */ +typedef enum { + G_RESOLVER_ERROR_NOT_FOUND, + G_RESOLVER_ERROR_TEMPORARY_FAILURE, + G_RESOLVER_ERROR_INTERNAL +} GResolverError; + +/** + * GResolverRecordType: + * @G_RESOLVER_RECORD_SRV: look up DNS SRV records for a domain + * @G_RESOLVER_RECORD_MX: look up DNS MX records for a domain + * @G_RESOLVER_RECORD_TXT: look up DNS TXT records for a name + * @G_RESOLVER_RECORD_SOA: look up DNS SOA records for a zone + * @G_RESOLVER_RECORD_NS: look up DNS NS records for a domain + * + * The type of record that g_resolver_lookup_records() or + * g_resolver_lookup_records_async() should retrieve. The records are returned + * as lists of #GVariant tuples. Each record type has different values in + * the variant tuples returned. + * + * %G_RESOLVER_RECORD_SRV records are returned as variants with the signature + * `(qqqs)`, containing a `guint16` with the priority, a `guint16` with the + * weight, a `guint16` with the port, and a string of the hostname. + * + * %G_RESOLVER_RECORD_MX records are returned as variants with the signature + * `(qs)`, representing a `guint16` with the preference, and a string containing + * the mail exchanger hostname. + * + * %G_RESOLVER_RECORD_TXT records are returned as variants with the signature + * `(as)`, representing an array of the strings in the text record. Note: Most TXT + * records only contain a single string, but + * [RFC 1035](https://tools.ietf.org/html/rfc1035#section-3.3.14) does allow a + * record to contain multiple strings. The RFC which defines the interpretation + * of a specific TXT record will likely require concatenation of multiple + * strings if they are present, as with + * [RFC 7208](https://tools.ietf.org/html/rfc7208#section-3.3). + * + * %G_RESOLVER_RECORD_SOA records are returned as variants with the signature + * `(ssuuuuu)`, representing a string containing the primary name server, a + * string containing the administrator, the serial as a `guint32`, the refresh + * interval as a `guint32`, the retry interval as a `guint32`, the expire timeout + * as a `guint32`, and the TTL as a `guint32`. + * + * %G_RESOLVER_RECORD_NS records are returned as variants with the signature + * `(s)`, representing a string of the hostname of the name server. + * + * Since: 2.34 + */ +typedef enum { + G_RESOLVER_RECORD_SRV = 1, + G_RESOLVER_RECORD_MX, + G_RESOLVER_RECORD_TXT, + G_RESOLVER_RECORD_SOA, + G_RESOLVER_RECORD_NS +} GResolverRecordType; + +/** + * GResourceError: + * @G_RESOURCE_ERROR_NOT_FOUND: no file was found at the requested path + * @G_RESOURCE_ERROR_INTERNAL: unknown error + * + * An error code used with %G_RESOURCE_ERROR in a #GError returned + * from a #GResource routine. + * + * Since: 2.32 + */ +typedef enum { + G_RESOURCE_ERROR_NOT_FOUND, + G_RESOURCE_ERROR_INTERNAL +} GResourceError; + +/** + * GResourceFlags: + * @G_RESOURCE_FLAGS_NONE: No flags set. + * @G_RESOURCE_FLAGS_COMPRESSED: The file is compressed. + * + * GResourceFlags give information about a particular file inside a resource + * bundle. + * + * Since: 2.32 + **/ +typedef enum { + G_RESOURCE_FLAGS_NONE = 0, + G_RESOURCE_FLAGS_COMPRESSED = (1<<0) +} GResourceFlags; + +/** + * GResourceLookupFlags: + * @G_RESOURCE_LOOKUP_FLAGS_NONE: No flags set. + * + * GResourceLookupFlags determine how resource path lookups are handled. + * + * Since: 2.32 + **/ +typedef enum /*< flags >*/ { + G_RESOURCE_LOOKUP_FLAGS_NONE = 0 +} GResourceLookupFlags; + +/** + * GSocketFamily: + * @G_SOCKET_FAMILY_INVALID: no address family + * @G_SOCKET_FAMILY_IPV4: the IPv4 family + * @G_SOCKET_FAMILY_IPV6: the IPv6 family + * @G_SOCKET_FAMILY_UNIX: the UNIX domain family + * + * The protocol family of a #GSocketAddress. (These values are + * identical to the system defines %AF_INET, %AF_INET6 and %AF_UNIX, + * if available.) + * + * Since: 2.22 + */ +typedef enum { + G_SOCKET_FAMILY_INVALID, + G_SOCKET_FAMILY_UNIX = GLIB_SYSDEF_AF_UNIX, + G_SOCKET_FAMILY_IPV4 = GLIB_SYSDEF_AF_INET, + G_SOCKET_FAMILY_IPV6 = GLIB_SYSDEF_AF_INET6 +} GSocketFamily; + +/** + * GSocketType: + * @G_SOCKET_TYPE_INVALID: Type unknown or wrong + * @G_SOCKET_TYPE_STREAM: Reliable connection-based byte streams (e.g. TCP). + * @G_SOCKET_TYPE_DATAGRAM: Connectionless, unreliable datagram passing. + * (e.g. UDP) + * @G_SOCKET_TYPE_SEQPACKET: Reliable connection-based passing of datagrams + * of fixed maximum length (e.g. SCTP). + * + * Flags used when creating a #GSocket. Some protocols may not implement + * all the socket types. + * + * Since: 2.22 + */ +typedef enum +{ + G_SOCKET_TYPE_INVALID, + G_SOCKET_TYPE_STREAM, + G_SOCKET_TYPE_DATAGRAM, + G_SOCKET_TYPE_SEQPACKET +} GSocketType; + +/** + * GSocketMsgFlags: + * @G_SOCKET_MSG_NONE: No flags. + * @G_SOCKET_MSG_OOB: Request to send/receive out of band data. + * @G_SOCKET_MSG_PEEK: Read data from the socket without removing it from + * the queue. + * @G_SOCKET_MSG_DONTROUTE: Don't use a gateway to send out the packet, + * only send to hosts on directly connected networks. + * + * Flags used in g_socket_receive_message() and g_socket_send_message(). + * The flags listed in the enum are some commonly available flags, but the + * values used for them are the same as on the platform, and any other flags + * are passed in/out as is. So to use a platform specific flag, just include + * the right system header and pass in the flag. + * + * Since: 2.22 + */ +typedef enum /*< flags >*/ +{ + G_SOCKET_MSG_NONE, + G_SOCKET_MSG_OOB = GLIB_SYSDEF_MSG_OOB, + G_SOCKET_MSG_PEEK = GLIB_SYSDEF_MSG_PEEK, + G_SOCKET_MSG_DONTROUTE = GLIB_SYSDEF_MSG_DONTROUTE +} GSocketMsgFlags; + +/** + * GSocketProtocol: + * @G_SOCKET_PROTOCOL_UNKNOWN: The protocol type is unknown + * @G_SOCKET_PROTOCOL_DEFAULT: The default protocol for the family/type + * @G_SOCKET_PROTOCOL_TCP: TCP over IP + * @G_SOCKET_PROTOCOL_UDP: UDP over IP + * @G_SOCKET_PROTOCOL_SCTP: SCTP over IP + * + * A protocol identifier is specified when creating a #GSocket, which is a + * family/type specific identifier, where 0 means the default protocol for + * the particular family/type. + * + * This enum contains a set of commonly available and used protocols. You + * can also pass any other identifiers handled by the platform in order to + * use protocols not listed here. + * + * Since: 2.22 + */ +typedef enum { + G_SOCKET_PROTOCOL_UNKNOWN = -1, + G_SOCKET_PROTOCOL_DEFAULT = 0, + G_SOCKET_PROTOCOL_TCP = 6, + G_SOCKET_PROTOCOL_UDP = 17, + G_SOCKET_PROTOCOL_SCTP = 132 +} GSocketProtocol; + +/** + * GZlibCompressorFormat: + * @G_ZLIB_COMPRESSOR_FORMAT_ZLIB: deflate compression with zlib header + * @G_ZLIB_COMPRESSOR_FORMAT_GZIP: gzip file format + * @G_ZLIB_COMPRESSOR_FORMAT_RAW: deflate compression with no header + * + * Used to select the type of data format to use for #GZlibDecompressor + * and #GZlibCompressor. + * + * Since: 2.24 + */ +typedef enum { + G_ZLIB_COMPRESSOR_FORMAT_ZLIB, + G_ZLIB_COMPRESSOR_FORMAT_GZIP, + G_ZLIB_COMPRESSOR_FORMAT_RAW +} GZlibCompressorFormat; + +/** + * GUnixSocketAddressType: + * @G_UNIX_SOCKET_ADDRESS_INVALID: invalid + * @G_UNIX_SOCKET_ADDRESS_ANONYMOUS: anonymous + * @G_UNIX_SOCKET_ADDRESS_PATH: a filesystem path + * @G_UNIX_SOCKET_ADDRESS_ABSTRACT: an abstract name + * @G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED: an abstract name, 0-padded + * to the full length of a unix socket name + * + * The type of name used by a #GUnixSocketAddress. + * %G_UNIX_SOCKET_ADDRESS_PATH indicates a traditional unix domain + * socket bound to a filesystem path. %G_UNIX_SOCKET_ADDRESS_ANONYMOUS + * indicates a socket not bound to any name (eg, a client-side socket, + * or a socket created with socketpair()). + * + * For abstract sockets, there are two incompatible ways of naming + * them; the man pages suggest using the entire `struct sockaddr_un` + * as the name, padding the unused parts of the %sun_path field with + * zeroes; this corresponds to %G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED. + * However, many programs instead just use a portion of %sun_path, and + * pass an appropriate smaller length to bind() or connect(). This is + * %G_UNIX_SOCKET_ADDRESS_ABSTRACT. + * + * Since: 2.26 + */ +typedef enum { + G_UNIX_SOCKET_ADDRESS_INVALID, + G_UNIX_SOCKET_ADDRESS_ANONYMOUS, + G_UNIX_SOCKET_ADDRESS_PATH, + G_UNIX_SOCKET_ADDRESS_ABSTRACT, + G_UNIX_SOCKET_ADDRESS_ABSTRACT_PADDED +} GUnixSocketAddressType; + +/** + * GBusType: + * @G_BUS_TYPE_STARTER: An alias for the message bus that activated the process, if any. + * @G_BUS_TYPE_NONE: Not a message bus. + * @G_BUS_TYPE_SYSTEM: The system-wide message bus. + * @G_BUS_TYPE_SESSION: The login session message bus. + * + * An enumeration for well-known message buses. + * + * Since: 2.26 + */ +typedef enum +{ + G_BUS_TYPE_STARTER = -1, + G_BUS_TYPE_NONE = 0, + G_BUS_TYPE_SYSTEM = 1, + G_BUS_TYPE_SESSION = 2 +} GBusType; + +/** + * GBusNameOwnerFlags: + * @G_BUS_NAME_OWNER_FLAGS_NONE: No flags set. + * @G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT: Allow another message bus connection to claim the name. + * @G_BUS_NAME_OWNER_FLAGS_REPLACE: If another message bus connection owns the name and have + * specified %G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT, then take the name from the other connection. + * @G_BUS_NAME_OWNER_FLAGS_DO_NOT_QUEUE: If another message bus connection owns the name, immediately + * return an error from g_bus_own_name() rather than entering the waiting queue for that name. (Since 2.54) + * + * Flags used in g_bus_own_name(). + * + * Since: 2.26 + */ +typedef enum +{ + G_BUS_NAME_OWNER_FLAGS_NONE = 0, /*< nick=none >*/ + G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT = (1<<0), /*< nick=allow-replacement >*/ + G_BUS_NAME_OWNER_FLAGS_REPLACE = (1<<1), /*< nick=replace >*/ + G_BUS_NAME_OWNER_FLAGS_DO_NOT_QUEUE = (1<<2) /*< nick=do-not-queue >*/ +} GBusNameOwnerFlags; +/* When adding new flags, their numeric values must currently match those + * used in the D-Bus Specification. */ + +/** + * GBusNameWatcherFlags: + * @G_BUS_NAME_WATCHER_FLAGS_NONE: No flags set. + * @G_BUS_NAME_WATCHER_FLAGS_AUTO_START: If no-one owns the name when + * beginning to watch the name, ask the bus to launch an owner for the + * name. + * + * Flags used in g_bus_watch_name(). + * + * Since: 2.26 + */ +typedef enum +{ + G_BUS_NAME_WATCHER_FLAGS_NONE = 0, + G_BUS_NAME_WATCHER_FLAGS_AUTO_START = (1<<0) +} GBusNameWatcherFlags; + +/** + * GDBusProxyFlags: + * @G_DBUS_PROXY_FLAGS_NONE: No flags set. + * @G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES: Don't load properties. + * @G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS: Don't connect to signals on the remote object. + * @G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START: If the proxy is for a well-known name, + * do not ask the bus to launch an owner during proxy initialization or a method call. + * This flag is only meaningful in proxies for well-known names. + * @G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES: If set, the property value for any __invalidated property__ will be (asynchronously) retrieved upon receiving the [`PropertiesChanged`](http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties) D-Bus signal and the property will not cause emission of the #GDBusProxy::g-properties-changed signal. When the value is received the #GDBusProxy::g-properties-changed signal is emitted for the property along with the retrieved value. Since 2.32. + * @G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION: If the proxy is for a well-known name, + * do not ask the bus to launch an owner during proxy initialization, but allow it to be + * autostarted by a method call. This flag is only meaningful in proxies for well-known names, + * and only if %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START is not also specified. + * @G_DBUS_PROXY_FLAGS_NO_MATCH_RULE: Don't actually send the AddMatch D-Bus + * call for this signal subscription. This gives you more control + * over which match rules you add (but you must add them manually). (Since: 2.72) + * + * Flags used when constructing an instance of a #GDBusProxy derived class. + * + * Since: 2.26 + */ +typedef enum +{ + G_DBUS_PROXY_FLAGS_NONE = 0, + G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES = (1<<0), + G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS = (1<<1), + G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START = (1<<2), + G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES = (1<<3), + G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION = (1<<4), + G_DBUS_PROXY_FLAGS_NO_MATCH_RULE GIO_AVAILABLE_ENUMERATOR_IN_2_72 = (1<<5) +} GDBusProxyFlags; + +/** + * GDBusError: + * @G_DBUS_ERROR_FAILED: + * A generic error; "something went wrong" - see the error message for + * more. + * @G_DBUS_ERROR_NO_MEMORY: + * There was not enough memory to complete an operation. + * @G_DBUS_ERROR_SERVICE_UNKNOWN: + * The bus doesn't know how to launch a service to supply the bus name + * you wanted. + * @G_DBUS_ERROR_NAME_HAS_NO_OWNER: + * The bus name you referenced doesn't exist (i.e. no application owns + * it). + * @G_DBUS_ERROR_NO_REPLY: + * No reply to a message expecting one, usually means a timeout occurred. + * @G_DBUS_ERROR_IO_ERROR: + * Something went wrong reading or writing to a socket, for example. + * @G_DBUS_ERROR_BAD_ADDRESS: + * A D-Bus bus address was malformed. + * @G_DBUS_ERROR_NOT_SUPPORTED: + * Requested operation isn't supported (like ENOSYS on UNIX). + * @G_DBUS_ERROR_LIMITS_EXCEEDED: + * Some limited resource is exhausted. + * @G_DBUS_ERROR_ACCESS_DENIED: + * Security restrictions don't allow doing what you're trying to do. + * @G_DBUS_ERROR_AUTH_FAILED: + * Authentication didn't work. + * @G_DBUS_ERROR_NO_SERVER: + * Unable to connect to server (probably caused by ECONNREFUSED on a + * socket). + * @G_DBUS_ERROR_TIMEOUT: + * Certain timeout errors, possibly ETIMEDOUT on a socket. Note that + * %G_DBUS_ERROR_NO_REPLY is used for message reply timeouts. Warning: + * this is confusingly-named given that %G_DBUS_ERROR_TIMED_OUT also + * exists. We can't fix it for compatibility reasons so just be + * careful. + * @G_DBUS_ERROR_NO_NETWORK: + * No network access (probably ENETUNREACH on a socket). + * @G_DBUS_ERROR_ADDRESS_IN_USE: + * Can't bind a socket since its address is in use (i.e. EADDRINUSE). + * @G_DBUS_ERROR_DISCONNECTED: + * The connection is disconnected and you're trying to use it. + * @G_DBUS_ERROR_INVALID_ARGS: + * Invalid arguments passed to a method call. + * @G_DBUS_ERROR_FILE_NOT_FOUND: + * Missing file. + * @G_DBUS_ERROR_FILE_EXISTS: + * Existing file and the operation you're using does not silently overwrite. + * @G_DBUS_ERROR_UNKNOWN_METHOD: + * Method name you invoked isn't known by the object you invoked it on. + * @G_DBUS_ERROR_UNKNOWN_OBJECT: + * Object you invoked a method on isn't known. Since 2.42 + * @G_DBUS_ERROR_UNKNOWN_INTERFACE: + * Interface you invoked a method on isn't known by the object. Since 2.42 + * @G_DBUS_ERROR_UNKNOWN_PROPERTY: + * Property you tried to access isn't known by the object. Since 2.42 + * @G_DBUS_ERROR_PROPERTY_READ_ONLY: + * Property you tried to set is read-only. Since 2.42 + * @G_DBUS_ERROR_TIMED_OUT: + * Certain timeout errors, e.g. while starting a service. Warning: this is + * confusingly-named given that %G_DBUS_ERROR_TIMEOUT also exists. We + * can't fix it for compatibility reasons so just be careful. + * @G_DBUS_ERROR_MATCH_RULE_NOT_FOUND: + * Tried to remove or modify a match rule that didn't exist. + * @G_DBUS_ERROR_MATCH_RULE_INVALID: + * The match rule isn't syntactically valid. + * @G_DBUS_ERROR_SPAWN_EXEC_FAILED: + * While starting a new process, the exec() call failed. + * @G_DBUS_ERROR_SPAWN_FORK_FAILED: + * While starting a new process, the fork() call failed. + * @G_DBUS_ERROR_SPAWN_CHILD_EXITED: + * While starting a new process, the child exited with a status code. + * @G_DBUS_ERROR_SPAWN_CHILD_SIGNALED: + * While starting a new process, the child exited on a signal. + * @G_DBUS_ERROR_SPAWN_FAILED: + * While starting a new process, something went wrong. + * @G_DBUS_ERROR_SPAWN_SETUP_FAILED: + * We failed to setup the environment correctly. + * @G_DBUS_ERROR_SPAWN_CONFIG_INVALID: + * We failed to setup the config parser correctly. + * @G_DBUS_ERROR_SPAWN_SERVICE_INVALID: + * Bus name was not valid. + * @G_DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND: + * Service file not found in system-services directory. + * @G_DBUS_ERROR_SPAWN_PERMISSIONS_INVALID: + * Permissions are incorrect on the setuid helper. + * @G_DBUS_ERROR_SPAWN_FILE_INVALID: + * Service file invalid (Name, User or Exec missing). + * @G_DBUS_ERROR_SPAWN_NO_MEMORY: + * Tried to get a UNIX process ID and it wasn't available. + * @G_DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN: + * Tried to get a UNIX process ID and it wasn't available. + * @G_DBUS_ERROR_INVALID_SIGNATURE: + * A type signature is not valid. + * @G_DBUS_ERROR_INVALID_FILE_CONTENT: + * A file contains invalid syntax or is otherwise broken. + * @G_DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN: + * Asked for SELinux security context and it wasn't available. + * @G_DBUS_ERROR_ADT_AUDIT_DATA_UNKNOWN: + * Asked for ADT audit data and it wasn't available. + * @G_DBUS_ERROR_OBJECT_PATH_IN_USE: + * There's already an object with the requested object path. + * + * Error codes for the %G_DBUS_ERROR error domain. + * + * Since: 2.26 + */ +typedef enum +{ + /* Well-known errors in the org.freedesktop.DBus.Error namespace */ + G_DBUS_ERROR_FAILED, /* org.freedesktop.DBus.Error.Failed */ + G_DBUS_ERROR_NO_MEMORY, /* org.freedesktop.DBus.Error.NoMemory */ + G_DBUS_ERROR_SERVICE_UNKNOWN, /* org.freedesktop.DBus.Error.ServiceUnknown */ + G_DBUS_ERROR_NAME_HAS_NO_OWNER, /* org.freedesktop.DBus.Error.NameHasNoOwner */ + G_DBUS_ERROR_NO_REPLY, /* org.freedesktop.DBus.Error.NoReply */ + G_DBUS_ERROR_IO_ERROR, /* org.freedesktop.DBus.Error.IOError */ + G_DBUS_ERROR_BAD_ADDRESS, /* org.freedesktop.DBus.Error.BadAddress */ + G_DBUS_ERROR_NOT_SUPPORTED, /* org.freedesktop.DBus.Error.NotSupported */ + G_DBUS_ERROR_LIMITS_EXCEEDED, /* org.freedesktop.DBus.Error.LimitsExceeded */ + G_DBUS_ERROR_ACCESS_DENIED, /* org.freedesktop.DBus.Error.AccessDenied */ + G_DBUS_ERROR_AUTH_FAILED, /* org.freedesktop.DBus.Error.AuthFailed */ + G_DBUS_ERROR_NO_SERVER, /* org.freedesktop.DBus.Error.NoServer */ + G_DBUS_ERROR_TIMEOUT, /* org.freedesktop.DBus.Error.Timeout */ + G_DBUS_ERROR_NO_NETWORK, /* org.freedesktop.DBus.Error.NoNetwork */ + G_DBUS_ERROR_ADDRESS_IN_USE, /* org.freedesktop.DBus.Error.AddressInUse */ + G_DBUS_ERROR_DISCONNECTED, /* org.freedesktop.DBus.Error.Disconnected */ + G_DBUS_ERROR_INVALID_ARGS, /* org.freedesktop.DBus.Error.InvalidArgs */ + G_DBUS_ERROR_FILE_NOT_FOUND, /* org.freedesktop.DBus.Error.FileNotFound */ + G_DBUS_ERROR_FILE_EXISTS, /* org.freedesktop.DBus.Error.FileExists */ + G_DBUS_ERROR_UNKNOWN_METHOD, /* org.freedesktop.DBus.Error.UnknownMethod */ + G_DBUS_ERROR_TIMED_OUT, /* org.freedesktop.DBus.Error.TimedOut */ + G_DBUS_ERROR_MATCH_RULE_NOT_FOUND, /* org.freedesktop.DBus.Error.MatchRuleNotFound */ + G_DBUS_ERROR_MATCH_RULE_INVALID, /* org.freedesktop.DBus.Error.MatchRuleInvalid */ + G_DBUS_ERROR_SPAWN_EXEC_FAILED, /* org.freedesktop.DBus.Error.Spawn.ExecFailed */ + G_DBUS_ERROR_SPAWN_FORK_FAILED, /* org.freedesktop.DBus.Error.Spawn.ForkFailed */ + G_DBUS_ERROR_SPAWN_CHILD_EXITED, /* org.freedesktop.DBus.Error.Spawn.ChildExited */ + G_DBUS_ERROR_SPAWN_CHILD_SIGNALED, /* org.freedesktop.DBus.Error.Spawn.ChildSignaled */ + G_DBUS_ERROR_SPAWN_FAILED, /* org.freedesktop.DBus.Error.Spawn.Failed */ + G_DBUS_ERROR_SPAWN_SETUP_FAILED, /* org.freedesktop.DBus.Error.Spawn.FailedToSetup */ + G_DBUS_ERROR_SPAWN_CONFIG_INVALID, /* org.freedesktop.DBus.Error.Spawn.ConfigInvalid */ + G_DBUS_ERROR_SPAWN_SERVICE_INVALID, /* org.freedesktop.DBus.Error.Spawn.ServiceNotValid */ + G_DBUS_ERROR_SPAWN_SERVICE_NOT_FOUND, /* org.freedesktop.DBus.Error.Spawn.ServiceNotFound */ + G_DBUS_ERROR_SPAWN_PERMISSIONS_INVALID, /* org.freedesktop.DBus.Error.Spawn.PermissionsInvalid */ + G_DBUS_ERROR_SPAWN_FILE_INVALID, /* org.freedesktop.DBus.Error.Spawn.FileInvalid */ + G_DBUS_ERROR_SPAWN_NO_MEMORY, /* org.freedesktop.DBus.Error.Spawn.NoMemory */ + G_DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN, /* org.freedesktop.DBus.Error.UnixProcessIdUnknown */ + G_DBUS_ERROR_INVALID_SIGNATURE, /* org.freedesktop.DBus.Error.InvalidSignature */ + G_DBUS_ERROR_INVALID_FILE_CONTENT, /* org.freedesktop.DBus.Error.InvalidFileContent */ + G_DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN, /* org.freedesktop.DBus.Error.SELinuxSecurityContextUnknown */ + G_DBUS_ERROR_ADT_AUDIT_DATA_UNKNOWN, /* org.freedesktop.DBus.Error.AdtAuditDataUnknown */ + G_DBUS_ERROR_OBJECT_PATH_IN_USE, /* org.freedesktop.DBus.Error.ObjectPathInUse */ + G_DBUS_ERROR_UNKNOWN_OBJECT, /* org.freedesktop.DBus.Error.UnknownObject */ + G_DBUS_ERROR_UNKNOWN_INTERFACE, /* org.freedesktop.DBus.Error.UnknownInterface */ + G_DBUS_ERROR_UNKNOWN_PROPERTY, /* org.freedesktop.DBus.Error.UnknownProperty */ + G_DBUS_ERROR_PROPERTY_READ_ONLY /* org.freedesktop.DBus.Error.PropertyReadOnly */ +} GDBusError; +/* Remember to update g_dbus_error_quark() in gdbuserror.c if you extend this enumeration */ + +/** + * GDBusConnectionFlags: + * @G_DBUS_CONNECTION_FLAGS_NONE: No flags set. + * @G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT: Perform authentication against server. + * @G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER: Perform authentication against client. + * @G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS: When + * authenticating as a server, allow the anonymous authentication + * method. + * @G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION: Pass this flag if connecting to a peer that is a + * message bus. This means that the Hello() method will be invoked as part of the connection setup. + * @G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING: If set, processing of D-Bus messages is + * delayed until g_dbus_connection_start_message_processing() is called. + * @G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER: When authenticating + * as a server, require the UID of the peer to be the same as the UID of the server. (Since: 2.68) + * @G_DBUS_CONNECTION_FLAGS_CROSS_NAMESPACE: When authenticating, try to use + * protocols that work across a Linux user namespace boundary, even if this + * reduces interoperability with older D-Bus implementations. This currently + * affects client-side `EXTERNAL` authentication, for which this flag makes + * connections to a server in another user namespace succeed, but causes + * a deadlock when connecting to a GDBus server older than 2.73.3. Since: 2.74 + * + * Flags used when creating a new #GDBusConnection. + * + * Since: 2.26 + */ +typedef enum { + G_DBUS_CONNECTION_FLAGS_NONE = 0, + G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT = (1<<0), + G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER = (1<<1), + G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS = (1<<2), + G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION = (1<<3), + G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING = (1<<4), + G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GIO_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<5), + G_DBUS_CONNECTION_FLAGS_CROSS_NAMESPACE GIO_AVAILABLE_ENUMERATOR_IN_2_74 = (1<<6) +} GDBusConnectionFlags; + +/** + * GDBusCapabilityFlags: + * @G_DBUS_CAPABILITY_FLAGS_NONE: No flags set. + * @G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING: The connection + * supports exchanging UNIX file descriptors with the remote peer. + * + * Capabilities negotiated with the remote peer. + * + * Since: 2.26 + */ +typedef enum { + G_DBUS_CAPABILITY_FLAGS_NONE = 0, + G_DBUS_CAPABILITY_FLAGS_UNIX_FD_PASSING = (1<<0) +} GDBusCapabilityFlags; + +/** + * GDBusCallFlags: + * @G_DBUS_CALL_FLAGS_NONE: No flags set. + * @G_DBUS_CALL_FLAGS_NO_AUTO_START: The bus must not launch + * an owner for the destination name in response to this method + * invocation. + * @G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION: the caller is prepared to + * wait for interactive authorization. Since 2.46. + * + * Flags used in g_dbus_connection_call() and similar APIs. + * + * Since: 2.26 + */ +typedef enum { + G_DBUS_CALL_FLAGS_NONE = 0, + G_DBUS_CALL_FLAGS_NO_AUTO_START = (1<<0), + G_DBUS_CALL_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION = (1<<1) +} GDBusCallFlags; +/* (1<<31) is reserved for internal use by GDBusConnection, do not use it. */ + +/** + * GDBusMessageType: + * @G_DBUS_MESSAGE_TYPE_INVALID: Message is of invalid type. + * @G_DBUS_MESSAGE_TYPE_METHOD_CALL: Method call. + * @G_DBUS_MESSAGE_TYPE_METHOD_RETURN: Method reply. + * @G_DBUS_MESSAGE_TYPE_ERROR: Error reply. + * @G_DBUS_MESSAGE_TYPE_SIGNAL: Signal emission. + * + * Message types used in #GDBusMessage. + * + * Since: 2.26 + */ +typedef enum { + G_DBUS_MESSAGE_TYPE_INVALID, + G_DBUS_MESSAGE_TYPE_METHOD_CALL, + G_DBUS_MESSAGE_TYPE_METHOD_RETURN, + G_DBUS_MESSAGE_TYPE_ERROR, + G_DBUS_MESSAGE_TYPE_SIGNAL +} GDBusMessageType; + +/** + * GDBusMessageFlags: + * @G_DBUS_MESSAGE_FLAGS_NONE: No flags set. + * @G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED: A reply is not expected. + * @G_DBUS_MESSAGE_FLAGS_NO_AUTO_START: The bus must not launch an + * owner for the destination name in response to this message. + * @G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION: If set on a method + * call, this flag means that the caller is prepared to wait for interactive + * authorization. Since 2.46. + * + * Message flags used in #GDBusMessage. + * + * Since: 2.26 + */ +typedef enum { + G_DBUS_MESSAGE_FLAGS_NONE = 0, + G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED = (1<<0), + G_DBUS_MESSAGE_FLAGS_NO_AUTO_START = (1<<1), + G_DBUS_MESSAGE_FLAGS_ALLOW_INTERACTIVE_AUTHORIZATION = (1<<2) +} GDBusMessageFlags; + +/** + * GDBusMessageHeaderField: + * @G_DBUS_MESSAGE_HEADER_FIELD_INVALID: Not a valid header field. + * @G_DBUS_MESSAGE_HEADER_FIELD_PATH: The object path. + * @G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE: The interface name. + * @G_DBUS_MESSAGE_HEADER_FIELD_MEMBER: The method or signal name. + * @G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME: The name of the error that occurred. + * @G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL: The serial number the message is a reply to. + * @G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION: The name the message is intended for. + * @G_DBUS_MESSAGE_HEADER_FIELD_SENDER: Unique name of the sender of the message (filled in by the bus). + * @G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE: The signature of the message body. + * @G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS: The number of UNIX file descriptors that accompany the message. + * + * Header fields used in #GDBusMessage. + * + * Since: 2.26 + */ +typedef enum { + G_DBUS_MESSAGE_HEADER_FIELD_INVALID, + G_DBUS_MESSAGE_HEADER_FIELD_PATH, + G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE, + G_DBUS_MESSAGE_HEADER_FIELD_MEMBER, + G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME, + G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL, + G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION, + G_DBUS_MESSAGE_HEADER_FIELD_SENDER, + G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE, + G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS +} GDBusMessageHeaderField; + +/** + * GDBusPropertyInfoFlags: + * @G_DBUS_PROPERTY_INFO_FLAGS_NONE: No flags set. + * @G_DBUS_PROPERTY_INFO_FLAGS_READABLE: Property is readable. + * @G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE: Property is writable. + * + * Flags describing the access control of a D-Bus property. + * + * Since: 2.26 + */ +typedef enum +{ + G_DBUS_PROPERTY_INFO_FLAGS_NONE = 0, + G_DBUS_PROPERTY_INFO_FLAGS_READABLE = (1<<0), + G_DBUS_PROPERTY_INFO_FLAGS_WRITABLE = (1<<1) +} GDBusPropertyInfoFlags; + +/** + * GDBusSubtreeFlags: + * @G_DBUS_SUBTREE_FLAGS_NONE: No flags set. + * @G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES: Method calls to objects not in the enumerated range + * will still be dispatched. This is useful if you want + * to dynamically spawn objects in the subtree. + * + * Flags passed to g_dbus_connection_register_subtree(). + * + * Since: 2.26 + */ +typedef enum +{ + G_DBUS_SUBTREE_FLAGS_NONE = 0, + G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES = (1<<0) +} GDBusSubtreeFlags; + +/** + * GDBusServerFlags: + * @G_DBUS_SERVER_FLAGS_NONE: No flags set. + * @G_DBUS_SERVER_FLAGS_RUN_IN_THREAD: All #GDBusServer::new-connection + * signals will run in separated dedicated threads (see signal for + * details). + * @G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS: Allow the anonymous + * authentication method. + * @G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER: Require the UID of the + * peer to be the same as the UID of the server when authenticating. (Since: 2.68) + * + * Flags used when creating a #GDBusServer. + * + * Since: 2.26 + */ +typedef enum +{ + G_DBUS_SERVER_FLAGS_NONE = 0, + G_DBUS_SERVER_FLAGS_RUN_IN_THREAD = (1<<0), + G_DBUS_SERVER_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS = (1<<1), + G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER GIO_AVAILABLE_ENUMERATOR_IN_2_68 = (1<<2) +} GDBusServerFlags; + +/** + * GDBusSignalFlags: + * @G_DBUS_SIGNAL_FLAGS_NONE: No flags set. + * @G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE: Don't actually send the AddMatch + * D-Bus call for this signal subscription. This gives you more control + * over which match rules you add (but you must add them manually). + * @G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE: Match first arguments that + * contain a bus or interface name with the given namespace. + * @G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH: Match first arguments that + * contain an object path that is either equivalent to the given path, + * or one of the paths is a subpath of the other. + * + * Flags used when subscribing to signals via g_dbus_connection_signal_subscribe(). + * + * Since: 2.26 + */ +typedef enum /*< flags >*/ +{ + G_DBUS_SIGNAL_FLAGS_NONE = 0, + G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE = (1<<0), + G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE = (1<<1), + G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH = (1<<2) +} GDBusSignalFlags; + +/** + * GDBusSendMessageFlags: + * @G_DBUS_SEND_MESSAGE_FLAGS_NONE: No flags set. + * @G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL: Do not automatically + * assign a serial number from the #GDBusConnection object when + * sending a message. + * + * Flags used when sending #GDBusMessages on a #GDBusConnection. + * + * Since: 2.26 + */ +typedef enum +{ + G_DBUS_SEND_MESSAGE_FLAGS_NONE = 0, + G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL = (1<<0) +} GDBusSendMessageFlags; +/* (1<<31) is reserved for internal use by GDBusConnection, do not use it. */ + +/** + * GCredentialsType: + * @G_CREDENTIALS_TYPE_INVALID: Indicates an invalid native credential type. + * @G_CREDENTIALS_TYPE_LINUX_UCRED: The native credentials type is a `struct ucred`. + * @G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED: The native credentials type is a `struct cmsgcred`. + * @G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED: The native credentials type is a `struct sockpeercred`. Added in 2.30. + * @G_CREDENTIALS_TYPE_SOLARIS_UCRED: The native credentials type is a `ucred_t`. Added in 2.40. + * @G_CREDENTIALS_TYPE_NETBSD_UNPCBID: The native credentials type is a `struct unpcbid`. Added in 2.42. + * @G_CREDENTIALS_TYPE_APPLE_XUCRED: The native credentials type is a `struct xucred`. Added in 2.66. + * @G_CREDENTIALS_TYPE_WIN32_PID: The native credentials type is a PID `DWORD`. Added in 2.72. + * + * Enumeration describing different kinds of native credential types. + * + * Since: 2.26 + */ +typedef enum +{ + G_CREDENTIALS_TYPE_INVALID, + G_CREDENTIALS_TYPE_LINUX_UCRED, + G_CREDENTIALS_TYPE_FREEBSD_CMSGCRED, + G_CREDENTIALS_TYPE_OPENBSD_SOCKPEERCRED, + G_CREDENTIALS_TYPE_SOLARIS_UCRED, + G_CREDENTIALS_TYPE_NETBSD_UNPCBID, + G_CREDENTIALS_TYPE_APPLE_XUCRED, + G_CREDENTIALS_TYPE_WIN32_PID, +} GCredentialsType; + +/** + * GDBusMessageByteOrder: + * @G_DBUS_MESSAGE_BYTE_ORDER_BIG_ENDIAN: The byte order is big endian. + * @G_DBUS_MESSAGE_BYTE_ORDER_LITTLE_ENDIAN: The byte order is little endian. + * + * Enumeration used to describe the byte order of a D-Bus message. + * + * Since: 2.26 + */ +typedef enum +{ + G_DBUS_MESSAGE_BYTE_ORDER_BIG_ENDIAN = 'B', + G_DBUS_MESSAGE_BYTE_ORDER_LITTLE_ENDIAN = 'l' +} GDBusMessageByteOrder; + +/** + * GApplicationFlags: + * @G_APPLICATION_FLAGS_NONE: Default. Deprecated in 2.74, use + * %G_APPLICATION_DEFAULT_FLAGS instead + * @G_APPLICATION_DEFAULT_FLAGS: Default flags. Since: 2.74 + * @G_APPLICATION_IS_SERVICE: Run as a service. In this mode, registration + * fails if the service is already running, and the application + * will initially wait up to 10 seconds for an initial activation + * message to arrive. + * @G_APPLICATION_IS_LAUNCHER: Don't try to become the primary instance. + * @G_APPLICATION_HANDLES_OPEN: This application handles opening files (in + * the primary instance). Note that this flag only affects the default + * implementation of local_command_line(), and has no effect if + * %G_APPLICATION_HANDLES_COMMAND_LINE is given. + * See g_application_run() for details. + * @G_APPLICATION_HANDLES_COMMAND_LINE: This application handles command line + * arguments (in the primary instance). Note that this flag only affect + * the default implementation of local_command_line(). + * See g_application_run() for details. + * @G_APPLICATION_SEND_ENVIRONMENT: Send the environment of the + * launching process to the primary instance. Set this flag if your + * application is expected to behave differently depending on certain + * environment variables. For instance, an editor might be expected + * to use the `GIT_COMMITTER_NAME` environment variable + * when editing a git commit message. The environment is available + * to the #GApplication::command-line signal handler, via + * g_application_command_line_getenv(). + * @G_APPLICATION_NON_UNIQUE: Make no attempts to do any of the typical + * single-instance application negotiation, even if the application + * ID is given. The application neither attempts to become the + * owner of the application ID nor does it check if an existing + * owner already exists. Everything occurs in the local process. + * Since: 2.30. + * @G_APPLICATION_CAN_OVERRIDE_APP_ID: Allow users to override the + * application ID from the command line with `--gapplication-app-id`. + * Since: 2.48 + * @G_APPLICATION_ALLOW_REPLACEMENT: Allow another instance to take over + * the bus name. Since: 2.60 + * @G_APPLICATION_REPLACE: Take over from another instance. This flag is + * usually set by passing `--gapplication-replace` on the commandline. + * Since: 2.60 + * + * Flags used to define the behaviour of a #GApplication. + * + * Since: 2.28 + **/ +typedef enum /*< prefix=G_APPLICATION >*/ +{ + G_APPLICATION_FLAGS_NONE GIO_DEPRECATED_ENUMERATOR_IN_2_74_FOR(G_APPLICATION_DEFAULT_FLAGS), + G_APPLICATION_DEFAULT_FLAGS GIO_AVAILABLE_ENUMERATOR_IN_2_74 = 0, + G_APPLICATION_IS_SERVICE = (1 << 0), + G_APPLICATION_IS_LAUNCHER = (1 << 1), + + G_APPLICATION_HANDLES_OPEN = (1 << 2), + G_APPLICATION_HANDLES_COMMAND_LINE = (1 << 3), + G_APPLICATION_SEND_ENVIRONMENT = (1 << 4), + + G_APPLICATION_NON_UNIQUE = (1 << 5), + + G_APPLICATION_CAN_OVERRIDE_APP_ID = (1 << 6), + G_APPLICATION_ALLOW_REPLACEMENT = (1 << 7), + G_APPLICATION_REPLACE = (1 << 8) +} GApplicationFlags; + +/** + * GTlsError: + * @G_TLS_ERROR_UNAVAILABLE: No TLS provider is available + * @G_TLS_ERROR_MISC: Miscellaneous TLS error + * @G_TLS_ERROR_BAD_CERTIFICATE: The certificate presented could not + * be parsed or failed validation. + * @G_TLS_ERROR_NOT_TLS: The TLS handshake failed because the + * peer does not seem to be a TLS server. + * @G_TLS_ERROR_HANDSHAKE: The TLS handshake failed because the + * peer's certificate was not acceptable. + * @G_TLS_ERROR_CERTIFICATE_REQUIRED: The TLS handshake failed because + * the server requested a client-side certificate, but none was + * provided. See g_tls_connection_set_certificate(). + * @G_TLS_ERROR_EOF: The TLS connection was closed without proper + * notice, which may indicate an attack. See + * g_tls_connection_set_require_close_notify(). + * @G_TLS_ERROR_INAPPROPRIATE_FALLBACK: The TLS handshake failed + * because the client sent the fallback SCSV, indicating a protocol + * downgrade attack. Since: 2.60 + * @G_TLS_ERROR_BAD_CERTIFICATE_PASSWORD: The certificate failed + * to load because a password was incorrect. Since: 2.72 + * + * An error code used with %G_TLS_ERROR in a #GError returned from a + * TLS-related routine. + * + * Since: 2.28 + */ +typedef enum { + G_TLS_ERROR_UNAVAILABLE, + G_TLS_ERROR_MISC, + G_TLS_ERROR_BAD_CERTIFICATE, + G_TLS_ERROR_NOT_TLS, + G_TLS_ERROR_HANDSHAKE, + G_TLS_ERROR_CERTIFICATE_REQUIRED, + G_TLS_ERROR_EOF, + G_TLS_ERROR_INAPPROPRIATE_FALLBACK, + G_TLS_ERROR_BAD_CERTIFICATE_PASSWORD +} GTlsError; + +/** + * GTlsCertificateFlags: + * @G_TLS_CERTIFICATE_NO_FLAGS: No flags set. Since: 2.74 + * @G_TLS_CERTIFICATE_UNKNOWN_CA: The signing certificate authority is + * not known. + * @G_TLS_CERTIFICATE_BAD_IDENTITY: The certificate does not match the + * expected identity of the site that it was retrieved from. + * @G_TLS_CERTIFICATE_NOT_ACTIVATED: The certificate's activation time + * is still in the future + * @G_TLS_CERTIFICATE_EXPIRED: The certificate has expired + * @G_TLS_CERTIFICATE_REVOKED: The certificate has been revoked + * according to the #GTlsConnection's certificate revocation list. + * @G_TLS_CERTIFICATE_INSECURE: The certificate's algorithm is + * considered insecure. + * @G_TLS_CERTIFICATE_GENERIC_ERROR: Some other error occurred validating + * the certificate + * @G_TLS_CERTIFICATE_VALIDATE_ALL: the combination of all of the above + * flags + * + * A set of flags describing TLS certification validation. This can be + * used to describe why a particular certificate was rejected (for + * example, in #GTlsConnection::accept-certificate). + * + * GLib guarantees that if certificate verification fails, at least one + * flag will be set, but it does not guarantee that all possible flags + * will be set. Accordingly, you may not safely decide to ignore any + * particular type of error. For example, it would be incorrect to mask + * %G_TLS_CERTIFICATE_EXPIRED if you want to allow expired certificates, + * because this could potentially be the only error flag set even if + * other problems exist with the certificate. + * + * Since: 2.28 + */ +typedef enum { + G_TLS_CERTIFICATE_NO_FLAGS GIO_AVAILABLE_ENUMERATOR_IN_2_74 = 0, + G_TLS_CERTIFICATE_UNKNOWN_CA = (1 << 0), + G_TLS_CERTIFICATE_BAD_IDENTITY = (1 << 1), + G_TLS_CERTIFICATE_NOT_ACTIVATED = (1 << 2), + G_TLS_CERTIFICATE_EXPIRED = (1 << 3), + G_TLS_CERTIFICATE_REVOKED = (1 << 4), + G_TLS_CERTIFICATE_INSECURE = (1 << 5), + G_TLS_CERTIFICATE_GENERIC_ERROR = (1 << 6), + + G_TLS_CERTIFICATE_VALIDATE_ALL = 0x007f +} GTlsCertificateFlags; + +/** + * GTlsAuthenticationMode: + * @G_TLS_AUTHENTICATION_NONE: client authentication not required + * @G_TLS_AUTHENTICATION_REQUESTED: client authentication is requested + * @G_TLS_AUTHENTICATION_REQUIRED: client authentication is required + * + * The client authentication mode for a #GTlsServerConnection. + * + * Since: 2.28 + */ +typedef enum { + G_TLS_AUTHENTICATION_NONE, + G_TLS_AUTHENTICATION_REQUESTED, + G_TLS_AUTHENTICATION_REQUIRED +} GTlsAuthenticationMode; + +/** + * GTlsChannelBindingType: + * @G_TLS_CHANNEL_BINDING_TLS_UNIQUE: + * [`tls-unique`](https://tools.ietf.org/html/rfc5929#section-3) binding + * type + * @G_TLS_CHANNEL_BINDING_TLS_SERVER_END_POINT: + * [`tls-server-end-point`](https://tools.ietf.org/html/rfc5929#section-4) + * binding type + * @G_TLS_CHANNEL_BINDING_TLS_EXPORTER: + * [`tls-exporter`](https://www.rfc-editor.org/rfc/rfc9266.html) binding + * type. Since: 2.74 + * + * The type of TLS channel binding data to retrieve from #GTlsConnection + * or #GDtlsConnection, as documented by RFC 5929 or RFC 9266. The + * [`tls-unique-for-telnet`](https://tools.ietf.org/html/rfc5929#section-5) + * binding type is not currently implemented. + * + * Since: 2.66 + */ +GIO_AVAILABLE_TYPE_IN_2_66 +typedef enum { + G_TLS_CHANNEL_BINDING_TLS_UNIQUE, + G_TLS_CHANNEL_BINDING_TLS_SERVER_END_POINT, + G_TLS_CHANNEL_BINDING_TLS_EXPORTER GIO_AVAILABLE_ENUMERATOR_IN_2_74, +} GTlsChannelBindingType; + +/** + * GTlsChannelBindingError: + * @G_TLS_CHANNEL_BINDING_ERROR_NOT_IMPLEMENTED: Either entire binding + * retrieval facility or specific binding type is not implemented in the + * TLS backend. + * @G_TLS_CHANNEL_BINDING_ERROR_INVALID_STATE: The handshake is not yet + * complete on the connection which is a strong requirement for any existing + * binding type. + * @G_TLS_CHANNEL_BINDING_ERROR_NOT_AVAILABLE: Handshake is complete but + * binding data is not available. That normally indicates the TLS + * implementation failed to provide the binding data. For example, some + * implementations do not provide a peer certificate for resumed connections. + * @G_TLS_CHANNEL_BINDING_ERROR_NOT_SUPPORTED: Binding type is not supported + * on the current connection. This error could be triggered when requesting + * `tls-server-end-point` binding data for a certificate which has no hash + * function or uses multiple hash functions. + * @G_TLS_CHANNEL_BINDING_ERROR_GENERAL_ERROR: Any other backend error + * preventing binding data retrieval. + * + * An error code used with %G_TLS_CHANNEL_BINDING_ERROR in a #GError to + * indicate a TLS channel binding retrieval error. + * + * Since: 2.66 + */ +GIO_AVAILABLE_TYPE_IN_2_66 +typedef enum { + G_TLS_CHANNEL_BINDING_ERROR_NOT_IMPLEMENTED, + G_TLS_CHANNEL_BINDING_ERROR_INVALID_STATE, + G_TLS_CHANNEL_BINDING_ERROR_NOT_AVAILABLE, + G_TLS_CHANNEL_BINDING_ERROR_NOT_SUPPORTED, + G_TLS_CHANNEL_BINDING_ERROR_GENERAL_ERROR +} GTlsChannelBindingError; + +/** + * GTlsRehandshakeMode: + * @G_TLS_REHANDSHAKE_NEVER: Never allow rehandshaking + * @G_TLS_REHANDSHAKE_SAFELY: Allow safe rehandshaking only + * @G_TLS_REHANDSHAKE_UNSAFELY: Allow unsafe rehandshaking + * + * When to allow rehandshaking. See + * g_tls_connection_set_rehandshake_mode(). + * + * Since: 2.28 + * + * Deprecated: 2.60. Changing the rehandshake mode is no longer + * required for compatibility. Also, rehandshaking has been removed + * from the TLS protocol in TLS 1.3. + */ +typedef enum { + G_TLS_REHANDSHAKE_NEVER, + G_TLS_REHANDSHAKE_SAFELY, + G_TLS_REHANDSHAKE_UNSAFELY +} GTlsRehandshakeMode GIO_DEPRECATED_TYPE_IN_2_60; + +/** + * GTlsPasswordFlags: + * @G_TLS_PASSWORD_NONE: No flags + * @G_TLS_PASSWORD_RETRY: The password was wrong, and the user should retry. + * @G_TLS_PASSWORD_MANY_TRIES: Hint to the user that the password has been + * wrong many times, and the user may not have many chances left. + * @G_TLS_PASSWORD_FINAL_TRY: Hint to the user that this is the last try to get + * this password right. + * @G_TLS_PASSWORD_PKCS11_USER: For PKCS #11, the user PIN is required. + * Since: 2.70. + * @G_TLS_PASSWORD_PKCS11_SECURITY_OFFICER: For PKCS #11, the security officer + * PIN is required. Since: 2.70. + * @G_TLS_PASSWORD_PKCS11_CONTEXT_SPECIFIC: For PKCS #11, the context-specific + * PIN is required. Since: 2.70. + * + * Various flags for the password. + * + * Since: 2.30 + */ + +typedef enum _GTlsPasswordFlags +{ + G_TLS_PASSWORD_NONE = 0, + G_TLS_PASSWORD_RETRY = 1 << 1, + G_TLS_PASSWORD_MANY_TRIES = 1 << 2, + G_TLS_PASSWORD_FINAL_TRY = 1 << 3, + G_TLS_PASSWORD_PKCS11_USER = 1 << 4, + G_TLS_PASSWORD_PKCS11_SECURITY_OFFICER = 1 << 5, + G_TLS_PASSWORD_PKCS11_CONTEXT_SPECIFIC = 1 << 6 +} GTlsPasswordFlags; + +/** + * GTlsInteractionResult: + * @G_TLS_INTERACTION_UNHANDLED: The interaction was unhandled (i.e. not + * implemented). + * @G_TLS_INTERACTION_HANDLED: The interaction completed, and resulting data + * is available. + * @G_TLS_INTERACTION_FAILED: The interaction has failed, or was cancelled. + * and the operation should be aborted. + * + * #GTlsInteractionResult is returned by various functions in #GTlsInteraction + * when finishing an interaction request. + * + * Since: 2.30 + */ +typedef enum { + G_TLS_INTERACTION_UNHANDLED, + G_TLS_INTERACTION_HANDLED, + G_TLS_INTERACTION_FAILED +} GTlsInteractionResult; + +/** + * GDBusInterfaceSkeletonFlags: + * @G_DBUS_INTERFACE_SKELETON_FLAGS_NONE: No flags set. + * @G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD: Each method invocation is handled in + * a thread dedicated to the invocation. This means that the method implementation can use blocking IO + * without blocking any other part of the process. It also means that the method implementation must + * use locking to access data structures used by other threads. + * + * Flags describing the behavior of a #GDBusInterfaceSkeleton instance. + * + * Since: 2.30 + */ +typedef enum +{ + G_DBUS_INTERFACE_SKELETON_FLAGS_NONE = 0, + G_DBUS_INTERFACE_SKELETON_FLAGS_HANDLE_METHOD_INVOCATIONS_IN_THREAD = (1<<0) +} GDBusInterfaceSkeletonFlags; + +/** + * GDBusObjectManagerClientFlags: + * @G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE: No flags set. + * @G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START: If not set and the + * manager is for a well-known name, then request the bus to launch + * an owner for the name if no-one owns the name. This flag can only + * be used in managers for well-known names. + * + * Flags used when constructing a #GDBusObjectManagerClient. + * + * Since: 2.30 + */ +typedef enum +{ + G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_NONE = 0, + G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START = (1<<0) +} GDBusObjectManagerClientFlags; + +/** + * GTlsDatabaseVerifyFlags: + * @G_TLS_DATABASE_VERIFY_NONE: No verification flags + * + * Flags for g_tls_database_verify_chain(). + * + * Since: 2.30 + */ +typedef enum /*< flags >*/ { + G_TLS_DATABASE_VERIFY_NONE = 0 +} GTlsDatabaseVerifyFlags; + +/** + * GTlsDatabaseLookupFlags: + * @G_TLS_DATABASE_LOOKUP_NONE: No lookup flags + * @G_TLS_DATABASE_LOOKUP_KEYPAIR: Restrict lookup to certificates that have + * a private key. + * + * Flags for g_tls_database_lookup_certificate_for_handle(), + * g_tls_database_lookup_certificate_issuer(), + * and g_tls_database_lookup_certificates_issued_by(). + * + * Since: 2.30 + */ +typedef enum { + G_TLS_DATABASE_LOOKUP_NONE = 0, + G_TLS_DATABASE_LOOKUP_KEYPAIR = 1 +} GTlsDatabaseLookupFlags; + +/** + * GTlsCertificateRequestFlags: + * @G_TLS_CERTIFICATE_REQUEST_NONE: No flags + * + * Flags for g_tls_interaction_request_certificate(), + * g_tls_interaction_request_certificate_async(), and + * g_tls_interaction_invoke_request_certificate(). + * + * Since: 2.40 + */ +typedef enum { + G_TLS_CERTIFICATE_REQUEST_NONE = 0 +} GTlsCertificateRequestFlags; + +/** + * GTlsProtocolVersion: + * @G_TLS_PROTOCOL_VERSION_UNKNOWN: No protocol version or unknown protocol version + * @G_TLS_PROTOCOL_VERSION_SSL_3_0: SSL 3.0, which is insecure and should not be used + * @G_TLS_PROTOCOL_VERSION_TLS_1_0: TLS 1.0, which is insecure and should not be used + * @G_TLS_PROTOCOL_VERSION_TLS_1_1: TLS 1.1, which is insecure and should not be used + * @G_TLS_PROTOCOL_VERSION_TLS_1_2: TLS 1.2, defined by [RFC 5246](https://datatracker.ietf.org/doc/html/rfc5246) + * @G_TLS_PROTOCOL_VERSION_TLS_1_3: TLS 1.3, defined by [RFC 8446](https://datatracker.ietf.org/doc/html/rfc8446) + * @G_TLS_PROTOCOL_VERSION_DTLS_1_0: DTLS 1.0, which is insecure and should not be used + * @G_TLS_PROTOCOL_VERSION_DTLS_1_2: DTLS 1.2, defined by [RFC 6347](https://datatracker.ietf.org/doc/html/rfc6347) + * + * The TLS or DTLS protocol version used by a #GTlsConnection or + * #GDtlsConnection. The integer values of these versions are sequential + * to ensure newer known protocol versions compare greater than older + * known versions. Any known DTLS protocol version will compare greater + * than any SSL or TLS protocol version. The protocol version may be + * %G_TLS_PROTOCOL_VERSION_UNKNOWN if the TLS backend supports a newer + * protocol version that GLib does not yet know about. This means that + * it's possible for an unknown DTLS protocol version to compare less + * than the TLS protocol versions. + * + * Since: 2.70 + */ +typedef enum { + G_TLS_PROTOCOL_VERSION_UNKNOWN = 0, + G_TLS_PROTOCOL_VERSION_SSL_3_0 = 1, + G_TLS_PROTOCOL_VERSION_TLS_1_0 = 2, + G_TLS_PROTOCOL_VERSION_TLS_1_1 = 3, + G_TLS_PROTOCOL_VERSION_TLS_1_2 = 4, + G_TLS_PROTOCOL_VERSION_TLS_1_3 = 5, + G_TLS_PROTOCOL_VERSION_DTLS_1_0 = 201, + G_TLS_PROTOCOL_VERSION_DTLS_1_2 = 202, +} GTlsProtocolVersion; + +/** + * GIOModuleScopeFlags: + * @G_IO_MODULE_SCOPE_NONE: No module scan flags + * @G_IO_MODULE_SCOPE_BLOCK_DUPLICATES: When using this scope to load or + * scan modules, automatically block a modules which has the same base + * basename as previously loaded module. + * + * Flags for use with g_io_module_scope_new(). + * + * Since: 2.30 + */ +typedef enum { + G_IO_MODULE_SCOPE_NONE, + G_IO_MODULE_SCOPE_BLOCK_DUPLICATES +} GIOModuleScopeFlags; + +/** + * GSocketClientEvent: + * @G_SOCKET_CLIENT_RESOLVING: The client is doing a DNS lookup. + * @G_SOCKET_CLIENT_RESOLVED: The client has completed a DNS lookup. + * @G_SOCKET_CLIENT_CONNECTING: The client is connecting to a remote + * host (either a proxy or the destination server). + * @G_SOCKET_CLIENT_CONNECTED: The client has connected to a remote + * host. + * @G_SOCKET_CLIENT_PROXY_NEGOTIATING: The client is negotiating + * with a proxy to connect to the destination server. + * @G_SOCKET_CLIENT_PROXY_NEGOTIATED: The client has negotiated + * with the proxy server. + * @G_SOCKET_CLIENT_TLS_HANDSHAKING: The client is performing a + * TLS handshake. + * @G_SOCKET_CLIENT_TLS_HANDSHAKED: The client has performed a + * TLS handshake. + * @G_SOCKET_CLIENT_COMPLETE: The client is done with a particular + * #GSocketConnectable. + * + * Describes an event occurring on a #GSocketClient. See the + * #GSocketClient::event signal for more details. + * + * Additional values may be added to this type in the future. + * + * Since: 2.32 + */ +typedef enum { + G_SOCKET_CLIENT_RESOLVING, + G_SOCKET_CLIENT_RESOLVED, + G_SOCKET_CLIENT_CONNECTING, + G_SOCKET_CLIENT_CONNECTED, + G_SOCKET_CLIENT_PROXY_NEGOTIATING, + G_SOCKET_CLIENT_PROXY_NEGOTIATED, + G_SOCKET_CLIENT_TLS_HANDSHAKING, + G_SOCKET_CLIENT_TLS_HANDSHAKED, + G_SOCKET_CLIENT_COMPLETE +} GSocketClientEvent; + +/** + * GSocketListenerEvent: + * @G_SOCKET_LISTENER_BINDING: The listener is about to bind a socket. + * @G_SOCKET_LISTENER_BOUND: The listener has bound a socket. + * @G_SOCKET_LISTENER_LISTENING: The listener is about to start + * listening on this socket. + * @G_SOCKET_LISTENER_LISTENED: The listener is now listening on + * this socket. + * + * Describes an event occurring on a #GSocketListener. See the + * #GSocketListener::event signal for more details. + * + * Additional values may be added to this type in the future. + * + * Since: 2.46 + */ +typedef enum { + G_SOCKET_LISTENER_BINDING, + G_SOCKET_LISTENER_BOUND, + G_SOCKET_LISTENER_LISTENING, + G_SOCKET_LISTENER_LISTENED +} GSocketListenerEvent; + +/** + * GTestDBusFlags: + * @G_TEST_DBUS_NONE: No flags. + * + * Flags to define future #GTestDBus behaviour. + * + * Since: 2.34 + */ +typedef enum /*< flags >*/ { + G_TEST_DBUS_NONE = 0 +} GTestDBusFlags; + +/** + * GSubprocessFlags: + * @G_SUBPROCESS_FLAGS_NONE: No flags. + * @G_SUBPROCESS_FLAGS_STDIN_PIPE: create a pipe for the stdin of the + * spawned process that can be accessed with + * g_subprocess_get_stdin_pipe(). + * @G_SUBPROCESS_FLAGS_STDIN_INHERIT: stdin is inherited from the + * calling process. + * @G_SUBPROCESS_FLAGS_STDOUT_PIPE: create a pipe for the stdout of the + * spawned process that can be accessed with + * g_subprocess_get_stdout_pipe(). + * @G_SUBPROCESS_FLAGS_STDOUT_SILENCE: silence the stdout of the spawned + * process (ie: redirect to `/dev/null`). + * @G_SUBPROCESS_FLAGS_STDERR_PIPE: create a pipe for the stderr of the + * spawned process that can be accessed with + * g_subprocess_get_stderr_pipe(). + * @G_SUBPROCESS_FLAGS_STDERR_SILENCE: silence the stderr of the spawned + * process (ie: redirect to `/dev/null`). + * @G_SUBPROCESS_FLAGS_STDERR_MERGE: merge the stderr of the spawned + * process with whatever the stdout happens to be. This is a good way + * of directing both streams to a common log file, for example. + * @G_SUBPROCESS_FLAGS_INHERIT_FDS: spawned processes will inherit the + * file descriptors of their parent, unless those descriptors have + * been explicitly marked as close-on-exec. This flag has no effect + * over the "standard" file descriptors (stdin, stdout, stderr). + * @G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP: if path searching is + * needed when spawning the subprocess, use the `PATH` in the launcher + * environment. (Since: 2.72) + * + * Flags to define the behaviour of a #GSubprocess. + * + * Note that the default for stdin is to redirect from `/dev/null`. For + * stdout and stderr the default are for them to inherit the + * corresponding descriptor from the calling process. + * + * Note that it is a programmer error to mix 'incompatible' flags. For + * example, you may not request both %G_SUBPROCESS_FLAGS_STDOUT_PIPE and + * %G_SUBPROCESS_FLAGS_STDOUT_SILENCE. + * + * Since: 2.40 + **/ +typedef enum { + G_SUBPROCESS_FLAGS_NONE = 0, + G_SUBPROCESS_FLAGS_STDIN_PIPE = (1u << 0), + G_SUBPROCESS_FLAGS_STDIN_INHERIT = (1u << 1), + G_SUBPROCESS_FLAGS_STDOUT_PIPE = (1u << 2), + G_SUBPROCESS_FLAGS_STDOUT_SILENCE = (1u << 3), + G_SUBPROCESS_FLAGS_STDERR_PIPE = (1u << 4), + G_SUBPROCESS_FLAGS_STDERR_SILENCE = (1u << 5), + G_SUBPROCESS_FLAGS_STDERR_MERGE = (1u << 6), + G_SUBPROCESS_FLAGS_INHERIT_FDS = (1u << 7), + G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP = (1u << 8) +} GSubprocessFlags; + +/** + * GNotificationPriority: + * @G_NOTIFICATION_PRIORITY_LOW: for notifications that do not require + * immediate attention - typically used for contextual background + * information, such as contact birthdays or local weather + * @G_NOTIFICATION_PRIORITY_NORMAL: the default priority, to be used for the + * majority of notifications (for example email messages, software updates, + * completed download/sync operations) + * @G_NOTIFICATION_PRIORITY_HIGH: for events that require more attention, + * usually because responses are time-sensitive (for example chat and SMS + * messages or alarms) + * @G_NOTIFICATION_PRIORITY_URGENT: for urgent notifications, or notifications + * that require a response in a short space of time (for example phone calls + * or emergency warnings) + * + * Priority levels for #GNotifications. + * + * Since: 2.42 + */ +typedef enum { + G_NOTIFICATION_PRIORITY_NORMAL, + G_NOTIFICATION_PRIORITY_LOW, + G_NOTIFICATION_PRIORITY_HIGH, + G_NOTIFICATION_PRIORITY_URGENT +} GNotificationPriority; + +/** + * GNetworkConnectivity: + * @G_NETWORK_CONNECTIVITY_LOCAL: The host is not configured with a + * route to the Internet; it may or may not be connected to a local + * network. + * @G_NETWORK_CONNECTIVITY_LIMITED: The host is connected to a network, but + * does not appear to be able to reach the full Internet, perhaps + * due to upstream network problems. + * @G_NETWORK_CONNECTIVITY_PORTAL: The host is behind a captive portal and + * cannot reach the full Internet. + * @G_NETWORK_CONNECTIVITY_FULL: The host is connected to a network, and + * appears to be able to reach the full Internet. + * + * The host's network connectivity state, as reported by #GNetworkMonitor. + * + * Since: 2.44 + */ +typedef enum { + G_NETWORK_CONNECTIVITY_LOCAL = 1, + G_NETWORK_CONNECTIVITY_LIMITED = 2, + G_NETWORK_CONNECTIVITY_PORTAL = 3, + G_NETWORK_CONNECTIVITY_FULL = 4 +} GNetworkConnectivity; + +/** + * GPollableReturn: + * @G_POLLABLE_RETURN_FAILED: Generic error condition for when an operation fails. + * @G_POLLABLE_RETURN_OK: The operation was successfully finished. + * @G_POLLABLE_RETURN_WOULD_BLOCK: The operation would block. + * + * Return value for various IO operations that signal errors via the + * return value and not necessarily via a #GError. + * + * This enum exists to be able to return errors to callers without having to + * allocate a #GError. Allocating #GErrors can be quite expensive for + * regularly happening errors like %G_IO_ERROR_WOULD_BLOCK. + * + * In case of %G_POLLABLE_RETURN_FAILED a #GError should be set for the + * operation to give details about the error that happened. + * + * Since: 2.60 + */ +typedef enum { + G_POLLABLE_RETURN_FAILED = 0, + G_POLLABLE_RETURN_OK = 1, + G_POLLABLE_RETURN_WOULD_BLOCK = -G_IO_ERROR_WOULD_BLOCK +} GPollableReturn; + +/** + * GMemoryMonitorWarningLevel: + * @G_MEMORY_MONITOR_WARNING_LEVEL_LOW: Memory on the device is low, processes + * should free up unneeded resources (for example, in-memory caches) so they can + * be used elsewhere. + * @G_MEMORY_MONITOR_WARNING_LEVEL_MEDIUM: Same as @G_MEMORY_MONITOR_WARNING_LEVEL_LOW + * but the device has even less free memory, so processes should try harder to free + * up unneeded resources. If your process does not need to stay running, it is a + * good time for it to quit. + * @G_MEMORY_MONITOR_WARNING_LEVEL_CRITICAL: The system will soon start terminating + * processes to reclaim memory, including background processes. + * + * Memory availability warning levels. + * + * Note that because new values might be added, it is recommended that applications check + * #GMemoryMonitorWarningLevel as ranges, for example: + * |[ + * if (warning_level > G_MEMORY_MONITOR_WARNING_LEVEL_LOW) + * drop_caches (); + * ]| + * + * Since: 2.64 + */ +typedef enum { + G_MEMORY_MONITOR_WARNING_LEVEL_LOW = 50, + G_MEMORY_MONITOR_WARNING_LEVEL_MEDIUM = 100, + G_MEMORY_MONITOR_WARNING_LEVEL_CRITICAL = 255 +} GMemoryMonitorWarningLevel; + +G_END_DECLS + +#endif /* __GIO_ENUMS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gioenumtypes.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gioenumtypes.h new file mode 100644 index 000000000..9dcb19d6f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gioenumtypes.h @@ -0,0 +1,207 @@ + +/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */ + +/* + * Copyright © 2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Matthias Clasen + */ + +#ifndef __GIO_ENUM_TYPES_H__ +#define __GIO_ENUM_TYPES_H__ + +#include +#include + +G_BEGIN_DECLS + +/* enumerations from "../gio/gioenums.h" */ +GIO_AVAILABLE_IN_ALL GType g_app_info_create_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_APP_INFO_CREATE_FLAGS (g_app_info_create_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_converter_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_CONVERTER_FLAGS (g_converter_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_converter_result_get_type (void) G_GNUC_CONST; +#define G_TYPE_CONVERTER_RESULT (g_converter_result_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_data_stream_byte_order_get_type (void) G_GNUC_CONST; +#define G_TYPE_DATA_STREAM_BYTE_ORDER (g_data_stream_byte_order_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_data_stream_newline_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_DATA_STREAM_NEWLINE_TYPE (g_data_stream_newline_type_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_file_attribute_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_FILE_ATTRIBUTE_TYPE (g_file_attribute_type_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_file_attribute_info_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_FILE_ATTRIBUTE_INFO_FLAGS (g_file_attribute_info_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_file_attribute_status_get_type (void) G_GNUC_CONST; +#define G_TYPE_FILE_ATTRIBUTE_STATUS (g_file_attribute_status_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_file_query_info_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_FILE_QUERY_INFO_FLAGS (g_file_query_info_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_file_create_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_FILE_CREATE_FLAGS (g_file_create_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_file_measure_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_FILE_MEASURE_FLAGS (g_file_measure_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_mount_mount_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_MOUNT_MOUNT_FLAGS (g_mount_mount_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_mount_unmount_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_MOUNT_UNMOUNT_FLAGS (g_mount_unmount_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_drive_start_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_DRIVE_START_FLAGS (g_drive_start_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_drive_start_stop_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_DRIVE_START_STOP_TYPE (g_drive_start_stop_type_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_file_copy_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_FILE_COPY_FLAGS (g_file_copy_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_file_monitor_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_FILE_MONITOR_FLAGS (g_file_monitor_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_file_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_FILE_TYPE (g_file_type_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_filesystem_preview_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_FILESYSTEM_PREVIEW_TYPE (g_filesystem_preview_type_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_file_monitor_event_get_type (void) G_GNUC_CONST; +#define G_TYPE_FILE_MONITOR_EVENT (g_file_monitor_event_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_io_error_enum_get_type (void) G_GNUC_CONST; +#define G_TYPE_IO_ERROR_ENUM (g_io_error_enum_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_ask_password_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_ASK_PASSWORD_FLAGS (g_ask_password_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_password_save_get_type (void) G_GNUC_CONST; +#define G_TYPE_PASSWORD_SAVE (g_password_save_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_mount_operation_result_get_type (void) G_GNUC_CONST; +#define G_TYPE_MOUNT_OPERATION_RESULT (g_mount_operation_result_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_output_stream_splice_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_OUTPUT_STREAM_SPLICE_FLAGS (g_output_stream_splice_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_io_stream_splice_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_IO_STREAM_SPLICE_FLAGS (g_io_stream_splice_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_emblem_origin_get_type (void) G_GNUC_CONST; +#define G_TYPE_EMBLEM_ORIGIN (g_emblem_origin_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_resolver_error_get_type (void) G_GNUC_CONST; +#define G_TYPE_RESOLVER_ERROR (g_resolver_error_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_resolver_record_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_RESOLVER_RECORD_TYPE (g_resolver_record_type_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_resource_error_get_type (void) G_GNUC_CONST; +#define G_TYPE_RESOURCE_ERROR (g_resource_error_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_resource_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_RESOURCE_FLAGS (g_resource_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_resource_lookup_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_RESOURCE_LOOKUP_FLAGS (g_resource_lookup_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_socket_family_get_type (void) G_GNUC_CONST; +#define G_TYPE_SOCKET_FAMILY (g_socket_family_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_socket_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_SOCKET_TYPE (g_socket_type_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_socket_msg_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_SOCKET_MSG_FLAGS (g_socket_msg_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_socket_protocol_get_type (void) G_GNUC_CONST; +#define G_TYPE_SOCKET_PROTOCOL (g_socket_protocol_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_zlib_compressor_format_get_type (void) G_GNUC_CONST; +#define G_TYPE_ZLIB_COMPRESSOR_FORMAT (g_zlib_compressor_format_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_unix_socket_address_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_UNIX_SOCKET_ADDRESS_TYPE (g_unix_socket_address_type_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_bus_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_BUS_TYPE (g_bus_type_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_bus_name_owner_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_BUS_NAME_OWNER_FLAGS (g_bus_name_owner_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_bus_name_watcher_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_BUS_NAME_WATCHER_FLAGS (g_bus_name_watcher_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_proxy_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_PROXY_FLAGS (g_dbus_proxy_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_error_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_ERROR (g_dbus_error_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_connection_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_CONNECTION_FLAGS (g_dbus_connection_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_capability_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_CAPABILITY_FLAGS (g_dbus_capability_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_call_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_CALL_FLAGS (g_dbus_call_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_message_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_MESSAGE_TYPE (g_dbus_message_type_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_message_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_MESSAGE_FLAGS (g_dbus_message_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_message_header_field_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_MESSAGE_HEADER_FIELD (g_dbus_message_header_field_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_property_info_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_PROPERTY_INFO_FLAGS (g_dbus_property_info_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_subtree_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_SUBTREE_FLAGS (g_dbus_subtree_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_server_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_SERVER_FLAGS (g_dbus_server_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_signal_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_SIGNAL_FLAGS (g_dbus_signal_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_send_message_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_SEND_MESSAGE_FLAGS (g_dbus_send_message_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_credentials_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_CREDENTIALS_TYPE (g_credentials_type_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_message_byte_order_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_MESSAGE_BYTE_ORDER (g_dbus_message_byte_order_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_application_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_APPLICATION_FLAGS (g_application_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_tls_error_get_type (void) G_GNUC_CONST; +#define G_TYPE_TLS_ERROR (g_tls_error_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_tls_certificate_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_TLS_CERTIFICATE_FLAGS (g_tls_certificate_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_tls_authentication_mode_get_type (void) G_GNUC_CONST; +#define G_TYPE_TLS_AUTHENTICATION_MODE (g_tls_authentication_mode_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_tls_channel_binding_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_TLS_CHANNEL_BINDING_TYPE (g_tls_channel_binding_type_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_tls_channel_binding_error_get_type (void) G_GNUC_CONST; +#define G_TYPE_TLS_CHANNEL_BINDING_ERROR (g_tls_channel_binding_error_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_tls_rehandshake_mode_get_type (void) G_GNUC_CONST; +#define G_TYPE_TLS_REHANDSHAKE_MODE (g_tls_rehandshake_mode_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_tls_password_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_TLS_PASSWORD_FLAGS (g_tls_password_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_tls_interaction_result_get_type (void) G_GNUC_CONST; +#define G_TYPE_TLS_INTERACTION_RESULT (g_tls_interaction_result_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_interface_skeleton_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_INTERFACE_SKELETON_FLAGS (g_dbus_interface_skeleton_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_dbus_object_manager_client_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_DBUS_OBJECT_MANAGER_CLIENT_FLAGS (g_dbus_object_manager_client_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_tls_database_verify_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_TLS_DATABASE_VERIFY_FLAGS (g_tls_database_verify_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_tls_database_lookup_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_TLS_DATABASE_LOOKUP_FLAGS (g_tls_database_lookup_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_tls_certificate_request_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_TLS_CERTIFICATE_REQUEST_FLAGS (g_tls_certificate_request_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_tls_protocol_version_get_type (void) G_GNUC_CONST; +#define G_TYPE_TLS_PROTOCOL_VERSION (g_tls_protocol_version_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_io_module_scope_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_IO_MODULE_SCOPE_FLAGS (g_io_module_scope_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_socket_client_event_get_type (void) G_GNUC_CONST; +#define G_TYPE_SOCKET_CLIENT_EVENT (g_socket_client_event_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_socket_listener_event_get_type (void) G_GNUC_CONST; +#define G_TYPE_SOCKET_LISTENER_EVENT (g_socket_listener_event_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_test_dbus_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_TEST_DBUS_FLAGS (g_test_dbus_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_subprocess_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_SUBPROCESS_FLAGS (g_subprocess_flags_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_notification_priority_get_type (void) G_GNUC_CONST; +#define G_TYPE_NOTIFICATION_PRIORITY (g_notification_priority_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_network_connectivity_get_type (void) G_GNUC_CONST; +#define G_TYPE_NETWORK_CONNECTIVITY (g_network_connectivity_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_pollable_return_get_type (void) G_GNUC_CONST; +#define G_TYPE_POLLABLE_RETURN (g_pollable_return_get_type ()) +GIO_AVAILABLE_IN_ALL GType g_memory_monitor_warning_level_get_type (void) G_GNUC_CONST; +#define G_TYPE_MEMORY_MONITOR_WARNING_LEVEL (g_memory_monitor_warning_level_get_type ()) + +/* enumerations from "../gio/gresolver.h" */ +GIO_AVAILABLE_IN_ALL GType g_resolver_name_lookup_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_RESOLVER_NAME_LOOKUP_FLAGS (g_resolver_name_lookup_flags_get_type ()) + +/* enumerations from "../gio/gsettings.h" */ +GIO_AVAILABLE_IN_ALL GType g_settings_bind_flags_get_type (void) G_GNUC_CONST; +#define G_TYPE_SETTINGS_BIND_FLAGS (g_settings_bind_flags_get_type ()) +G_END_DECLS + +#endif /* __GIO_ENUM_TYPES_H__ */ + +/* Generated data ends here */ + diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gioerror.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gioerror.h new file mode 100644 index 000000000..71ccdb172 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gioerror.h @@ -0,0 +1,58 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_IO_ERROR_H__ +#define __G_IO_ERROR_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include + +G_BEGIN_DECLS + +/** + * G_IO_ERROR: + * + * Error domain for GIO. Errors in this domain will be from the #GIOErrorEnum enumeration. + * See #GError for more information on error domains. + **/ +#define G_IO_ERROR g_io_error_quark() + +GIO_AVAILABLE_IN_ALL +GQuark g_io_error_quark (void); +GIO_AVAILABLE_IN_ALL +GIOErrorEnum g_io_error_from_errno (gint err_no); +GIO_AVAILABLE_IN_2_74 +GIOErrorEnum g_io_error_from_file_error (GFileError file_error); + +#ifdef G_OS_WIN32 +GIO_AVAILABLE_IN_ALL +GIOErrorEnum g_io_error_from_win32_error (gint error_code); +#endif + +G_END_DECLS + +#endif /* __G_IO_ERROR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/giomodule.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/giomodule.h new file mode 100644 index 000000000..2fe7e1d06 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/giomodule.h @@ -0,0 +1,199 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_IO_MODULE_H__ +#define __G_IO_MODULE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +typedef struct _GIOModuleScope GIOModuleScope; + +GIO_AVAILABLE_IN_2_30 +GIOModuleScope * g_io_module_scope_new (GIOModuleScopeFlags flags); +GIO_AVAILABLE_IN_2_30 +void g_io_module_scope_free (GIOModuleScope *scope); +GIO_AVAILABLE_IN_2_30 +void g_io_module_scope_block (GIOModuleScope *scope, + const gchar *basename); + +#define G_IO_TYPE_MODULE (g_io_module_get_type ()) +#define G_IO_MODULE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_IO_TYPE_MODULE, GIOModule)) +#define G_IO_MODULE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_IO_TYPE_MODULE, GIOModuleClass)) +#define G_IO_IS_MODULE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_IO_TYPE_MODULE)) +#define G_IO_IS_MODULE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_IO_TYPE_MODULE)) +#define G_IO_MODULE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_IO_TYPE_MODULE, GIOModuleClass)) + +/** + * GIOModule: + * + * Opaque module base class for extending GIO. + **/ +typedef struct _GIOModuleClass GIOModuleClass; + +GIO_AVAILABLE_IN_ALL +GType g_io_module_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GIOModule *g_io_module_new (const gchar *filename); + +GIO_AVAILABLE_IN_ALL +void g_io_modules_scan_all_in_directory (const char *dirname); +GIO_AVAILABLE_IN_ALL +GList *g_io_modules_load_all_in_directory (const gchar *dirname); + +GIO_AVAILABLE_IN_2_30 +void g_io_modules_scan_all_in_directory_with_scope (const gchar *dirname, + GIOModuleScope *scope); +GIO_AVAILABLE_IN_2_30 +GList *g_io_modules_load_all_in_directory_with_scope (const gchar *dirname, + GIOModuleScope *scope); + +GIO_AVAILABLE_IN_ALL +GIOExtensionPoint *g_io_extension_point_register (const char *name); +GIO_AVAILABLE_IN_ALL +GIOExtensionPoint *g_io_extension_point_lookup (const char *name); +GIO_AVAILABLE_IN_ALL +void g_io_extension_point_set_required_type (GIOExtensionPoint *extension_point, + GType type); +GIO_AVAILABLE_IN_ALL +GType g_io_extension_point_get_required_type (GIOExtensionPoint *extension_point); +GIO_AVAILABLE_IN_ALL +GList *g_io_extension_point_get_extensions (GIOExtensionPoint *extension_point); +GIO_AVAILABLE_IN_ALL +GIOExtension * g_io_extension_point_get_extension_by_name (GIOExtensionPoint *extension_point, + const char *name); +GIO_AVAILABLE_IN_ALL +GIOExtension * g_io_extension_point_implement (const char *extension_point_name, + GType type, + const char *extension_name, + gint priority); + +GIO_AVAILABLE_IN_ALL +GType g_io_extension_get_type (GIOExtension *extension); +GIO_AVAILABLE_IN_ALL +const char * g_io_extension_get_name (GIOExtension *extension); +GIO_AVAILABLE_IN_ALL +gint g_io_extension_get_priority (GIOExtension *extension); +GIO_AVAILABLE_IN_ALL +GTypeClass* g_io_extension_ref_class (GIOExtension *extension); + + +/* API for the modules to implement. + * Note that those functions are not implemented by libgio, they are declared + * here to be implemented in modules, that's why it uses G_MODULE_EXPORT + * instead of GIO_AVAILABLE_IN_ALL. + */ + +/** + * g_io_module_load: (skip) + * @module: a #GIOModule. + * + * Required API for GIO modules to implement. + * + * This function is run after the module has been loaded into GIO, + * to initialize the module. Typically, this function will call + * g_io_extension_point_implement(). + * + * Since 2.56, this function should be named `g_io__load`, where + * `modulename` is the plugin’s filename with the `lib` or `libgio` prefix and + * everything after the first dot removed, and with `-` replaced with `_` + * throughout. For example, `libgiognutls-helper.so` becomes `gnutls_helper`. + * Using the new symbol names avoids name clashes when building modules + * statically. The old symbol names continue to be supported, but cannot be used + * for static builds. + **/ +G_MODULE_EXPORT +void g_io_module_load (GIOModule *module); + +/** + * g_io_module_unload: (skip) + * @module: a #GIOModule. + * + * Required API for GIO modules to implement. + * + * This function is run when the module is being unloaded from GIO, + * to finalize the module. + * + * Since 2.56, this function should be named `g_io__unload`, where + * `modulename` is the plugin’s filename with the `lib` or `libgio` prefix and + * everything after the first dot removed, and with `-` replaced with `_` + * throughout. For example, `libgiognutls-helper.so` becomes `gnutls_helper`. + * Using the new symbol names avoids name clashes when building modules + * statically. The old symbol names continue to be supported, but cannot be used + * for static builds. + **/ +G_MODULE_EXPORT +void g_io_module_unload (GIOModule *module); + +/** + * g_io_module_query: + * + * Optional API for GIO modules to implement. + * + * Should return a list of all the extension points that may be + * implemented in this module. + * + * This method will not be called in normal use, however it may be + * called when probing existing modules and recording which extension + * points that this model is used for. This means we won't have to + * load and initialize this module unless its needed. + * + * If this function is not implemented by the module the module will + * always be loaded, initialized and then unloaded on application + * startup so that it can register its extension points during init. + * + * Note that a module need not actually implement all the extension + * points that g_io_module_query() returns, since the exact list of + * extension may depend on runtime issues. However all extension + * points actually implemented must be returned by g_io_module_query() + * (if defined). + * + * When installing a module that implements g_io_module_query() you must + * run gio-querymodules in order to build the cache files required for + * lazy loading. + * + * Since 2.56, this function should be named `g_io__query`, where + * `modulename` is the plugin’s filename with the `lib` or `libgio` prefix and + * everything after the first dot removed, and with `-` replaced with `_` + * throughout. For example, `libgiognutls-helper.so` becomes `gnutls_helper`. + * Using the new symbol names avoids name clashes when building modules + * statically. The old symbol names continue to be supported, but cannot be used + * for static builds. + * + * Returns: (transfer full): A %NULL-terminated array of strings, + * listing the supported extension points of the module. The array + * must be suitable for freeing with g_strfreev(). + * + * Since: 2.24 + **/ +G_MODULE_EXPORT +char **g_io_module_query (void); + +G_END_DECLS + +#endif /* __G_IO_MODULE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gioscheduler.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gioscheduler.h new file mode 100644 index 000000000..52162dce8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gioscheduler.h @@ -0,0 +1,56 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_IO_SCHEDULER_H__ +#define __G_IO_SCHEDULER_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + + +GIO_DEPRECATED_IN_2_36_FOR ("GThreadPool or g_task_run_in_thread") +void g_io_scheduler_push_job (GIOSchedulerJobFunc job_func, + gpointer user_data, + GDestroyNotify notify, + gint io_priority, + GCancellable *cancellable); +GIO_DEPRECATED_IN_2_36 +void g_io_scheduler_cancel_all_jobs (void); +GIO_DEPRECATED_IN_2_36_FOR (g_main_context_invoke) +gboolean g_io_scheduler_job_send_to_mainloop (GIOSchedulerJob *job, + GSourceFunc func, + gpointer user_data, + GDestroyNotify notify); +GIO_DEPRECATED_IN_2_36_FOR (g_main_context_invoke) +void g_io_scheduler_job_send_to_mainloop_async (GIOSchedulerJob *job, + GSourceFunc func, + gpointer user_data, + GDestroyNotify notify); + +G_END_DECLS + +#endif /* __G_IO_SCHEDULER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/giostream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/giostream.h new file mode 100644 index 000000000..52881c786 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/giostream.h @@ -0,0 +1,137 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2008, 2009 Codethink Limited + * Copyright © 2009 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * See the included COPYING file for more information. + * + * Authors: Ryan Lortie + * Alexander Larsson + */ + +#ifndef __G_IO_STREAM_H__ +#define __G_IO_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_IO_STREAM (g_io_stream_get_type ()) +#define G_IO_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_IO_STREAM, GIOStream)) +#define G_IO_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_IO_STREAM, GIOStreamClass)) +#define G_IS_IO_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_IO_STREAM)) +#define G_IS_IO_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_IO_STREAM)) +#define G_IO_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_IO_STREAM, GIOStreamClass)) + +typedef struct _GIOStreamPrivate GIOStreamPrivate; +typedef struct _GIOStreamClass GIOStreamClass; + +/** + * GIOStream: + * + * Base class for read-write streams. + **/ +struct _GIOStream +{ + GObject parent_instance; + + /*< private >*/ + GIOStreamPrivate *priv; +}; + +struct _GIOStreamClass +{ + GObjectClass parent_class; + + GInputStream * (*get_input_stream) (GIOStream *stream); + GOutputStream * (*get_output_stream) (GIOStream *stream); + + gboolean (* close_fn) (GIOStream *stream, + GCancellable *cancellable, + GError **error); + void (* close_async) (GIOStream *stream, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* close_finish) (GIOStream *stream, + GAsyncResult *result, + GError **error); + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); + void (*_g_reserved6) (void); + void (*_g_reserved7) (void); + void (*_g_reserved8) (void); + void (*_g_reserved9) (void); + void (*_g_reserved10) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_io_stream_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GInputStream * g_io_stream_get_input_stream (GIOStream *stream); +GIO_AVAILABLE_IN_ALL +GOutputStream *g_io_stream_get_output_stream (GIOStream *stream); + +GIO_AVAILABLE_IN_ALL +void g_io_stream_splice_async (GIOStream *stream1, + GIOStream *stream2, + GIOStreamSpliceFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_ALL +gboolean g_io_stream_splice_finish (GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_io_stream_close (GIOStream *stream, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_io_stream_close_async (GIOStream *stream, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_io_stream_close_finish (GIOStream *stream, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_io_stream_is_closed (GIOStream *stream); +GIO_AVAILABLE_IN_ALL +gboolean g_io_stream_has_pending (GIOStream *stream); +GIO_AVAILABLE_IN_ALL +gboolean g_io_stream_set_pending (GIOStream *stream, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_io_stream_clear_pending (GIOStream *stream); + +G_END_DECLS + +#endif /* __G_IO_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/giotypes.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/giotypes.h new file mode 100644 index 000000000..82e091bef --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/giotypes.h @@ -0,0 +1,660 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __GIO_TYPES_H__ +#define __GIO_TYPES_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GAppLaunchContext GAppLaunchContext; +typedef struct _GAppInfo GAppInfo; /* Dummy typedef */ +typedef struct _GAsyncResult GAsyncResult; /* Dummy typedef */ +typedef struct _GAsyncInitable GAsyncInitable; +typedef struct _GBufferedInputStream GBufferedInputStream; +typedef struct _GBufferedOutputStream GBufferedOutputStream; +typedef struct _GCancellable GCancellable; +typedef struct _GCharsetConverter GCharsetConverter; +typedef struct _GConverter GConverter; +typedef struct _GConverterInputStream GConverterInputStream; +typedef struct _GConverterOutputStream GConverterOutputStream; +typedef struct _GDatagramBased GDatagramBased; +typedef struct _GDataInputStream GDataInputStream; +typedef struct _GSimplePermission GSimplePermission; +typedef struct _GZlibCompressor GZlibCompressor; +typedef struct _GZlibDecompressor GZlibDecompressor; + +typedef struct _GSimpleActionGroup GSimpleActionGroup; +typedef struct _GRemoteActionGroup GRemoteActionGroup; +typedef struct _GDBusActionGroup GDBusActionGroup; +typedef struct _GActionMap GActionMap; +typedef struct _GActionGroup GActionGroup; +typedef struct _GPropertyAction GPropertyAction; +typedef struct _GSimpleAction GSimpleAction; +typedef struct _GAction GAction; +typedef struct _GApplication GApplication; +typedef struct _GApplicationCommandLine GApplicationCommandLine; +typedef struct _GSettingsBackend GSettingsBackend; +typedef struct _GSettings GSettings; +typedef struct _GPermission GPermission; + +typedef struct _GMenuModel GMenuModel; +typedef struct _GNotification GNotification; + +/** + * GDrive: + * + * Opaque drive object. + **/ +typedef struct _GDrive GDrive; /* Dummy typedef */ +typedef struct _GFileEnumerator GFileEnumerator; +typedef struct _GFileMonitor GFileMonitor; +typedef struct _GFilterInputStream GFilterInputStream; +typedef struct _GFilterOutputStream GFilterOutputStream; + +/** + * GFile: + * + * A handle to an object implementing the #GFileIface interface. + * Generally stores a location within the file system. Handles do not + * necessarily represent files or directories that currently exist. + **/ +typedef struct _GFile GFile; /* Dummy typedef */ +typedef struct _GFileInfo GFileInfo; + +/** + * GFileAttributeMatcher: + * + * Determines if a string matches a file attribute. + **/ +typedef struct _GFileAttributeMatcher GFileAttributeMatcher; +typedef struct _GFileAttributeInfo GFileAttributeInfo; +typedef struct _GFileAttributeInfoList GFileAttributeInfoList; +typedef struct _GFileDescriptorBased GFileDescriptorBased; +typedef struct _GFileInputStream GFileInputStream; +typedef struct _GFileOutputStream GFileOutputStream; +typedef struct _GFileIOStream GFileIOStream; +typedef struct _GFileIcon GFileIcon; +typedef struct _GFilenameCompleter GFilenameCompleter; + + +typedef struct _GIcon GIcon; /* Dummy typedef */ +typedef struct _GInetAddress GInetAddress; +typedef struct _GInetAddressMask GInetAddressMask; +typedef struct _GInetSocketAddress GInetSocketAddress; +typedef struct _GNativeSocketAddress GNativeSocketAddress; +typedef struct _GInputStream GInputStream; +typedef struct _GInitable GInitable; +typedef struct _GIOModule GIOModule; +typedef struct _GIOExtensionPoint GIOExtensionPoint; +typedef struct _GIOExtension GIOExtension; + +/** + * GIOSchedulerJob: + * + * Opaque class for defining and scheduling IO jobs. + **/ +typedef struct _GIOSchedulerJob GIOSchedulerJob; +typedef struct _GIOStreamAdapter GIOStreamAdapter; +typedef struct _GLoadableIcon GLoadableIcon; /* Dummy typedef */ +typedef struct _GBytesIcon GBytesIcon; +typedef struct _GMemoryInputStream GMemoryInputStream; +typedef struct _GMemoryOutputStream GMemoryOutputStream; + +/** + * GMount: + * + * A handle to an object implementing the #GMountIface interface. + **/ +typedef struct _GMount GMount; /* Dummy typedef */ +typedef struct _GMountOperation GMountOperation; +typedef struct _GNetworkAddress GNetworkAddress; +typedef struct _GNetworkMonitor GNetworkMonitor; +typedef struct _GNetworkService GNetworkService; +typedef struct _GOutputStream GOutputStream; +typedef struct _GIOStream GIOStream; +typedef struct _GSimpleIOStream GSimpleIOStream; +typedef struct _GPollableInputStream GPollableInputStream; /* Dummy typedef */ +typedef struct _GPollableOutputStream GPollableOutputStream; /* Dummy typedef */ +typedef struct _GResolver GResolver; + +/** + * GResource: + * + * A resource bundle. + * + * Since: 2.32 + */ +typedef struct _GResource GResource; +typedef struct _GSeekable GSeekable; +typedef struct _GSimpleAsyncResult GSimpleAsyncResult; + +/** + * GSocket: + * + * A lowlevel network socket object. + * + * Since: 2.22 + **/ +typedef struct _GSocket GSocket; + +/** + * GSocketControlMessage: + * + * Base class for socket-type specific control messages that can be sent and + * received over #GSocket. + **/ +typedef struct _GSocketControlMessage GSocketControlMessage; +/** + * GSocketClient: + * + * A helper class for network clients to make connections. + * + * Since: 2.22 + **/ +typedef struct _GSocketClient GSocketClient; +/** + * GSocketConnection: + * + * A socket connection GIOStream object for connection-oriented sockets. + * + * Since: 2.22 + **/ +typedef struct _GSocketConnection GSocketConnection; +/** + * GSocketListener: + * + * A helper class for network servers to listen for and accept connections. + * + * Since: 2.22 + **/ +typedef struct _GSocketListener GSocketListener; +/** + * GSocketService: + * + * A helper class for handling accepting incoming connections in the + * glib mainloop. + * + * Since: 2.22 + **/ +typedef struct _GSocketService GSocketService; +typedef struct _GSocketAddress GSocketAddress; +typedef struct _GSocketAddressEnumerator GSocketAddressEnumerator; +typedef struct _GSocketConnectable GSocketConnectable; +typedef struct _GSrvTarget GSrvTarget; +typedef struct _GTask GTask; +/** + * GTcpConnection: + * + * A #GSocketConnection for TCP/IP connections. + * + * Since: 2.22 + **/ +typedef struct _GTcpConnection GTcpConnection; +typedef struct _GTcpWrapperConnection GTcpWrapperConnection; +/** + * GThreadedSocketService: + * + * A helper class for handling accepting incoming connections in the + * glib mainloop and handling them in a thread. + * + * Since: 2.22 + **/ +typedef struct _GThreadedSocketService GThreadedSocketService; +typedef struct _GDtlsConnection GDtlsConnection; +typedef struct _GDtlsClientConnection GDtlsClientConnection; /* Dummy typedef */ +typedef struct _GDtlsServerConnection GDtlsServerConnection; /* Dummy typedef */ +typedef struct _GThemedIcon GThemedIcon; +typedef struct _GTlsCertificate GTlsCertificate; +typedef struct _GTlsClientConnection GTlsClientConnection; /* Dummy typedef */ +typedef struct _GTlsConnection GTlsConnection; +typedef struct _GTlsDatabase GTlsDatabase; +typedef struct _GTlsFileDatabase GTlsFileDatabase; +typedef struct _GTlsInteraction GTlsInteraction; +typedef struct _GTlsPassword GTlsPassword; +typedef struct _GTlsServerConnection GTlsServerConnection; /* Dummy typedef */ +typedef struct _GVfs GVfs; /* Dummy typedef */ + +/** + * GProxyResolver: + * + * A helper class to enumerate proxies base on URI. + * + * Since: 2.26 + **/ +typedef struct _GProxyResolver GProxyResolver; +typedef struct _GProxy GProxy; +typedef struct _GProxyAddress GProxyAddress; +typedef struct _GProxyAddressEnumerator GProxyAddressEnumerator; + +/** + * GVolume: + * + * Opaque mountable volume object. + **/ +typedef struct _GVolume GVolume; /* Dummy typedef */ +typedef struct _GVolumeMonitor GVolumeMonitor; + +/** + * GAsyncReadyCallback: + * @source_object: (nullable): the object the asynchronous operation was started with. + * @res: a #GAsyncResult. + * @data: user data passed to the callback. + * + * Type definition for a function that will be called back when an asynchronous + * operation within GIO has been completed. #GAsyncReadyCallback + * callbacks from #GTask are guaranteed to be invoked in a later + * iteration of the + * [thread-default main context][g-main-context-push-thread-default] + * where the #GTask was created. All other users of + * #GAsyncReadyCallback must likewise call it asynchronously in a + * later iteration of the main context. + * + * The asynchronous operation is guaranteed to have held a reference to + * @source_object from the time when the `*_async()` function was called, until + * after this callback returns. + **/ +typedef void (*GAsyncReadyCallback) (GObject *source_object, + GAsyncResult *res, + gpointer data); + +/** + * GFileProgressCallback: + * @current_num_bytes: the current number of bytes in the operation. + * @total_num_bytes: the total number of bytes in the operation. + * @data: user data passed to the callback. + * + * When doing file operations that may take a while, such as moving + * a file or copying a file, a progress callback is used to pass how + * far along that operation is to the application. + **/ +typedef void (*GFileProgressCallback) (goffset current_num_bytes, + goffset total_num_bytes, + gpointer data); + +/** + * GFileReadMoreCallback: + * @file_contents: the data as currently read. + * @file_size: the size of the data currently read. + * @callback_data: data passed to the callback. + * + * When loading the partial contents of a file with g_file_load_partial_contents_async(), + * it may become necessary to determine if any more data from the file should be loaded. + * A #GFileReadMoreCallback function facilitates this by returning %TRUE if more data + * should be read, or %FALSE otherwise. + * + * Returns: %TRUE if more data should be read back. %FALSE otherwise. + **/ +typedef gboolean (* GFileReadMoreCallback) (const char *file_contents, + goffset file_size, + gpointer callback_data); + +/** + * GFileMeasureProgressCallback: + * @reporting: %TRUE if more reports will come + * @current_size: the current cumulative size measurement + * @num_dirs: the number of directories visited so far + * @num_files: the number of non-directory files encountered + * @data: the data passed to the original request for this callback + * + * This callback type is used by g_file_measure_disk_usage() to make + * periodic progress reports when measuring the amount of disk spaced + * used by a directory. + * + * These calls are made on a best-effort basis and not all types of + * #GFile will support them. At the minimum, however, one call will + * always be made immediately. + * + * In the case that there is no support, @reporting will be set to + * %FALSE (and the other values undefined) and no further calls will be + * made. Otherwise, the @reporting will be %TRUE and the other values + * all-zeros during the first (immediate) call. In this way, you can + * know which type of progress UI to show without a delay. + * + * For g_file_measure_disk_usage() the callback is made directly. For + * g_file_measure_disk_usage_async() the callback is made via the + * default main context of the calling thread (ie: the same way that the + * final async result would be reported). + * + * @current_size is in the same units as requested by the operation (see + * %G_FILE_MEASURE_APPARENT_SIZE). + * + * The frequency of the updates is implementation defined, but is + * ideally about once every 200ms. + * + * The last progress callback may or may not be equal to the final + * result. Always check the async result to get the final value. + * + * Since: 2.38 + **/ +typedef void (* GFileMeasureProgressCallback) (gboolean reporting, + guint64 current_size, + guint64 num_dirs, + guint64 num_files, + gpointer data); + +/** + * GIOSchedulerJobFunc: + * @job: a #GIOSchedulerJob. + * @cancellable: optional #GCancellable object, %NULL to ignore. + * @data: data passed to the callback function + * + * I/O Job function. + * + * Long-running jobs should periodically check the @cancellable + * to see if they have been cancelled. + * + * Returns: %TRUE if this function should be called again to + * complete the job, %FALSE if the job is complete (or cancelled) + **/ +typedef gboolean (*GIOSchedulerJobFunc) (GIOSchedulerJob *job, + GCancellable *cancellable, + gpointer data); + +/** + * GSimpleAsyncThreadFunc: + * @res: a #GSimpleAsyncResult. + * @object: a #GObject. + * @cancellable: optional #GCancellable object, %NULL to ignore. + * + * Simple thread function that runs an asynchronous operation and + * checks for cancellation. + **/ +typedef void (*GSimpleAsyncThreadFunc) (GSimpleAsyncResult *res, + GObject *object, + GCancellable *cancellable); + +/** + * GSocketSourceFunc: + * @socket: the #GSocket + * @condition: the current condition at the source fired. + * @data: data passed in by the user. + * + * This is the function type of the callback used for the #GSource + * returned by g_socket_create_source(). + * + * Returns: it should return %FALSE if the source should be removed. + * + * Since: 2.22 + */ +typedef gboolean (*GSocketSourceFunc) (GSocket *socket, + GIOCondition condition, + gpointer data); + +/** + * GDatagramBasedSourceFunc: + * @datagram_based: the #GDatagramBased + * @condition: the current condition at the source fired + * @data: data passed in by the user + * + * This is the function type of the callback used for the #GSource + * returned by g_datagram_based_create_source(). + * + * Returns: %G_SOURCE_REMOVE if the source should be removed, + * %G_SOURCE_CONTINUE otherwise + * + * Since: 2.48 + */ +typedef gboolean (*GDatagramBasedSourceFunc) (GDatagramBased *datagram_based, + GIOCondition condition, + gpointer data); + +/** + * GInputVector: + * @buffer: Pointer to a buffer where data will be written. + * @size: the available size in @buffer. + * + * Structure used for scatter/gather data input. + * You generally pass in an array of #GInputVectors + * and the operation will store the read data starting in the + * first buffer, switching to the next as needed. + * + * Since: 2.22 + */ +typedef struct _GInputVector GInputVector; + +struct _GInputVector { + gpointer buffer; + gsize size; +}; + +/** + * GInputMessage: + * @address: (optional) (out) (transfer full): return location + * for a #GSocketAddress, or %NULL + * @vectors: (array length=num_vectors) (out): pointer to an + * array of input vectors + * @num_vectors: the number of input vectors pointed to by @vectors + * @bytes_received: (out): will be set to the number of bytes that have been + * received + * @flags: (out): collection of #GSocketMsgFlags for the received message, + * outputted by the call + * @control_messages: (array length=num_control_messages) (optional) + * (out) (transfer full): return location for a + * caller-allocated array of #GSocketControlMessages, or %NULL + * @num_control_messages: (out) (optional): return location for the number of + * elements in @control_messages + * + * Structure used for scatter/gather data input when receiving multiple + * messages or packets in one go. You generally pass in an array of empty + * #GInputVectors and the operation will use all the buffers as if they + * were one buffer, and will set @bytes_received to the total number of bytes + * received across all #GInputVectors. + * + * This structure closely mirrors `struct mmsghdr` and `struct msghdr` from + * the POSIX sockets API (see `man 2 recvmmsg`). + * + * If @address is non-%NULL then it is set to the source address the message + * was received from, and the caller must free it afterwards. + * + * If @control_messages is non-%NULL then it is set to an array of control + * messages received with the message (if any), and the caller must free it + * afterwards. @num_control_messages is set to the number of elements in + * this array, which may be zero. + * + * Flags relevant to this message will be returned in @flags. For example, + * `MSG_EOR` or `MSG_TRUNC`. + * + * Since: 2.48 + */ +typedef struct _GInputMessage GInputMessage; + +struct _GInputMessage { + GSocketAddress **address; + + GInputVector *vectors; + guint num_vectors; + + gsize bytes_received; + gint flags; + + GSocketControlMessage ***control_messages; + guint *num_control_messages; +}; + +/** + * GOutputVector: + * @buffer: Pointer to a buffer of data to read. + * @size: the size of @buffer. + * + * Structure used for scatter/gather data output. + * You generally pass in an array of #GOutputVectors + * and the operation will use all the buffers as if they were + * one buffer. + * + * Since: 2.22 + */ +typedef struct _GOutputVector GOutputVector; + +struct _GOutputVector { + gconstpointer buffer; + gsize size; +}; + +/** + * GOutputMessage: + * @address: (nullable): a #GSocketAddress, or %NULL + * @vectors: pointer to an array of output vectors + * @num_vectors: the number of output vectors pointed to by @vectors. + * @bytes_sent: initialize to 0. Will be set to the number of bytes + * that have been sent + * @control_messages: (array length=num_control_messages) (nullable): a pointer + * to an array of #GSocketControlMessages, or %NULL. + * @num_control_messages: number of elements in @control_messages. + * + * Structure used for scatter/gather data output when sending multiple + * messages or packets in one go. You generally pass in an array of + * #GOutputVectors and the operation will use all the buffers as if they + * were one buffer. + * + * If @address is %NULL then the message is sent to the default receiver + * (as previously set by g_socket_connect()). + * + * Since: 2.44 + */ +typedef struct _GOutputMessage GOutputMessage; + +struct _GOutputMessage { + GSocketAddress *address; + + GOutputVector *vectors; + guint num_vectors; + + guint bytes_sent; + + GSocketControlMessage **control_messages; + guint num_control_messages; +}; + +typedef struct _GCredentials GCredentials; +typedef struct _GUnixCredentialsMessage GUnixCredentialsMessage; +typedef struct _GUnixFDList GUnixFDList; +typedef struct _GDBusMessage GDBusMessage; +typedef struct _GDBusConnection GDBusConnection; +typedef struct _GDBusProxy GDBusProxy; +typedef struct _GDBusMethodInvocation GDBusMethodInvocation; +typedef struct _GDBusServer GDBusServer; +typedef struct _GDBusAuthObserver GDBusAuthObserver; +typedef struct _GDBusErrorEntry GDBusErrorEntry; +typedef struct _GDBusInterfaceVTable GDBusInterfaceVTable; +typedef struct _GDBusSubtreeVTable GDBusSubtreeVTable; +typedef struct _GDBusAnnotationInfo GDBusAnnotationInfo; +typedef struct _GDBusArgInfo GDBusArgInfo; +typedef struct _GDBusMethodInfo GDBusMethodInfo; +typedef struct _GDBusSignalInfo GDBusSignalInfo; +typedef struct _GDBusPropertyInfo GDBusPropertyInfo; +typedef struct _GDBusInterfaceInfo GDBusInterfaceInfo; +typedef struct _GDBusNodeInfo GDBusNodeInfo; + +/** + * GCancellableSourceFunc: + * @cancellable: the #GCancellable + * @data: data passed in by the user. + * + * This is the function type of the callback used for the #GSource + * returned by g_cancellable_source_new(). + * + * Returns: it should return %FALSE if the source should be removed. + * + * Since: 2.28 + */ +typedef gboolean (*GCancellableSourceFunc) (GCancellable *cancellable, + gpointer data); + +/** + * GPollableSourceFunc: + * @pollable_stream: the #GPollableInputStream or #GPollableOutputStream + * @data: data passed in by the user. + * + * This is the function type of the callback used for the #GSource + * returned by g_pollable_input_stream_create_source() and + * g_pollable_output_stream_create_source(). + * + * Returns: it should return %FALSE if the source should be removed. + * + * Since: 2.28 + */ +typedef gboolean (*GPollableSourceFunc) (GObject *pollable_stream, + gpointer data); + +typedef struct _GDBusInterface GDBusInterface; /* Dummy typedef */ +typedef struct _GDBusInterfaceSkeleton GDBusInterfaceSkeleton; +typedef struct _GDBusObject GDBusObject; /* Dummy typedef */ +typedef struct _GDBusObjectSkeleton GDBusObjectSkeleton; +typedef struct _GDBusObjectProxy GDBusObjectProxy; +typedef struct _GDBusObjectManager GDBusObjectManager; /* Dummy typedef */ +typedef struct _GDBusObjectManagerClient GDBusObjectManagerClient; +typedef struct _GDBusObjectManagerServer GDBusObjectManagerServer; + +/** + * GDBusProxyTypeFunc: + * @manager: A #GDBusObjectManagerClient. + * @object_path: The object path of the remote object. + * @interface_name: (nullable): The interface name of the remote object or %NULL if a #GDBusObjectProxy #GType is requested. + * @data: data passed in by the user. + * + * Function signature for a function used to determine the #GType to + * use for an interface proxy (if @interface_name is not %NULL) or + * object proxy (if @interface_name is %NULL). + * + * This function is called in the + * [thread-default main loop][g-main-context-push-thread-default] + * that @manager was constructed in. + * + * Returns: A #GType to use for the remote object. The returned type + * must be a #GDBusProxy or #GDBusObjectProxy -derived + * type. + * + * Since: 2.30 + */ +typedef GType (*GDBusProxyTypeFunc) (GDBusObjectManagerClient *manager, + const gchar *object_path, + const gchar *interface_name, + gpointer data); + +typedef struct _GTestDBus GTestDBus; + +/** + * GSubprocess: + * + * A child process. + * + * Since: 2.40 + */ +typedef struct _GSubprocess GSubprocess; +/** + * GSubprocessLauncher: + * + * Options for launching a child process. + * + * Since: 2.40 + */ +typedef struct _GSubprocessLauncher GSubprocessLauncher; + +G_END_DECLS + +#endif /* __GIO_TYPES_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/glistmodel.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/glistmodel.h new file mode 100644 index 000000000..a96e3cea0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/glistmodel.h @@ -0,0 +1,74 @@ +/* + * Copyright 2015 Lars Uebernickel + * Copyright 2015 Ryan Lortie + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: + * Lars Uebernickel + * Ryan Lortie + */ + +#ifndef __G_LIST_MODEL_H__ +#define __G_LIST_MODEL_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_LIST_MODEL g_list_model_get_type () +GIO_AVAILABLE_IN_2_44 +G_DECLARE_INTERFACE(GListModel, g_list_model, G, LIST_MODEL, GObject) + +struct _GListModelInterface +{ + GTypeInterface g_iface; + + GType (* get_item_type) (GListModel *list); + + guint (* get_n_items) (GListModel *list); + + gpointer (* get_item) (GListModel *list, + guint position); +}; + +GIO_AVAILABLE_IN_2_44 +GType g_list_model_get_item_type (GListModel *list); + +GIO_AVAILABLE_IN_2_44 +guint g_list_model_get_n_items (GListModel *list); + +GIO_AVAILABLE_IN_2_44 +gpointer g_list_model_get_item (GListModel *list, + guint position); + +GIO_AVAILABLE_IN_2_44 +GObject * g_list_model_get_object (GListModel *list, + guint position); + +GIO_AVAILABLE_IN_2_44 +void g_list_model_items_changed (GListModel *list, + guint position, + guint removed, + guint added); + +G_END_DECLS + +#endif /* __G_LIST_MODEL_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gliststore.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gliststore.h new file mode 100644 index 000000000..958ca60d2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gliststore.h @@ -0,0 +1,97 @@ +/* + * Copyright 2015 Lars Uebernickel + * Copyright 2015 Ryan Lortie + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: + * Lars Uebernickel + * Ryan Lortie + */ + +#ifndef __G_LIST_STORE_H__ +#define __G_LIST_STORE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_LIST_STORE (g_list_store_get_type ()) +GIO_AVAILABLE_IN_2_44 +G_DECLARE_FINAL_TYPE(GListStore, g_list_store, G, LIST_STORE, GObject) + +GIO_AVAILABLE_IN_2_44 +GListStore * g_list_store_new (GType item_type); + +GIO_AVAILABLE_IN_2_44 +void g_list_store_insert (GListStore *store, + guint position, + gpointer item); + +GIO_AVAILABLE_IN_2_44 +guint g_list_store_insert_sorted (GListStore *store, + gpointer item, + GCompareDataFunc compare_func, + gpointer user_data); + +GIO_AVAILABLE_IN_2_46 +void g_list_store_sort (GListStore *store, + GCompareDataFunc compare_func, + gpointer user_data); + +GIO_AVAILABLE_IN_2_44 +void g_list_store_append (GListStore *store, + gpointer item); + +GIO_AVAILABLE_IN_2_44 +void g_list_store_remove (GListStore *store, + guint position); + +GIO_AVAILABLE_IN_2_44 +void g_list_store_remove_all (GListStore *store); + +GIO_AVAILABLE_IN_2_44 +void g_list_store_splice (GListStore *store, + guint position, + guint n_removals, + gpointer *additions, + guint n_additions); + +GIO_AVAILABLE_IN_2_64 +gboolean g_list_store_find (GListStore *store, + gpointer item, + guint *position); + +GIO_AVAILABLE_IN_2_64 +gboolean g_list_store_find_with_equal_func (GListStore *store, + gpointer item, + GEqualFunc equal_func, + guint *position); + +GIO_AVAILABLE_IN_2_74 +gboolean g_list_store_find_with_equal_func_full (GListStore *store, + gpointer item, + GEqualFuncFull equal_func, + gpointer user_data, + guint *position); + +G_END_DECLS + +#endif /* __G_LIST_STORE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gloadableicon.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gloadableicon.h new file mode 100644 index 000000000..7a576ef9c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gloadableicon.h @@ -0,0 +1,101 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_LOADABLE_ICON_H__ +#define __G_LOADABLE_ICON_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_LOADABLE_ICON (g_loadable_icon_get_type ()) +#define G_LOADABLE_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_LOADABLE_ICON, GLoadableIcon)) +#define G_IS_LOADABLE_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_LOADABLE_ICON)) +#define G_LOADABLE_ICON_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_LOADABLE_ICON, GLoadableIconIface)) + +/** + * GLoadableIcon: + * + * Generic type for all kinds of icons that can be loaded + * as a stream. + **/ +typedef struct _GLoadableIconIface GLoadableIconIface; + +/** + * GLoadableIconIface: + * @g_iface: The parent interface. + * @load: Loads an icon. + * @load_async: Loads an icon asynchronously. + * @load_finish: Finishes an asynchronous icon load. + * + * Interface for icons that can be loaded as a stream. + **/ +struct _GLoadableIconIface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + + GInputStream * (* load) (GLoadableIcon *icon, + int size, + char **type, + GCancellable *cancellable, + GError **error); + void (* load_async) (GLoadableIcon *icon, + int size, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GInputStream * (* load_finish) (GLoadableIcon *icon, + GAsyncResult *res, + char **type, + GError **error); +}; + +GIO_AVAILABLE_IN_ALL +GType g_loadable_icon_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GInputStream *g_loadable_icon_load (GLoadableIcon *icon, + int size, + char **type, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_loadable_icon_load_async (GLoadableIcon *icon, + int size, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GInputStream *g_loadable_icon_load_finish (GLoadableIcon *icon, + GAsyncResult *res, + char **type, + GError **error); + +G_END_DECLS + +#endif /* __G_LOADABLE_ICON_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmemoryinputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmemoryinputstream.h new file mode 100644 index 000000000..fb72f2314 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmemoryinputstream.h @@ -0,0 +1,92 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Christian Kellner + */ + +#ifndef __G_MEMORY_INPUT_STREAM_H__ +#define __G_MEMORY_INPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_MEMORY_INPUT_STREAM (g_memory_input_stream_get_type ()) +#define G_MEMORY_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_MEMORY_INPUT_STREAM, GMemoryInputStream)) +#define G_MEMORY_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_MEMORY_INPUT_STREAM, GMemoryInputStreamClass)) +#define G_IS_MEMORY_INPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_MEMORY_INPUT_STREAM)) +#define G_IS_MEMORY_INPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_MEMORY_INPUT_STREAM)) +#define G_MEMORY_INPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_MEMORY_INPUT_STREAM, GMemoryInputStreamClass)) + +/** + * GMemoryInputStream: + * + * Implements #GInputStream for arbitrary memory chunks. + **/ +typedef struct _GMemoryInputStreamClass GMemoryInputStreamClass; +typedef struct _GMemoryInputStreamPrivate GMemoryInputStreamPrivate; + +struct _GMemoryInputStream +{ + GInputStream parent_instance; + + /*< private >*/ + GMemoryInputStreamPrivate *priv; +}; + +struct _GMemoryInputStreamClass +{ + GInputStreamClass parent_class; + + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + + +GIO_AVAILABLE_IN_ALL +GType g_memory_input_stream_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GInputStream * g_memory_input_stream_new (void); +GIO_AVAILABLE_IN_ALL +GInputStream * g_memory_input_stream_new_from_data (const void *data, + gssize len, + GDestroyNotify destroy); +GIO_AVAILABLE_IN_2_34 +GInputStream * g_memory_input_stream_new_from_bytes (GBytes *bytes); + +GIO_AVAILABLE_IN_ALL +void g_memory_input_stream_add_data (GMemoryInputStream *stream, + const void *data, + gssize len, + GDestroyNotify destroy); +GIO_AVAILABLE_IN_2_34 +void g_memory_input_stream_add_bytes (GMemoryInputStream *stream, + GBytes *bytes); + +G_END_DECLS + +#endif /* __G_MEMORY_INPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmemorymonitor.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmemorymonitor.h new file mode 100644 index 000000000..83c28b919 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmemorymonitor.h @@ -0,0 +1,64 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright 2019 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_MEMORY_MONITOR_H__ +#define __G_MEMORY_MONITOR_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * G_MEMORY_MONITOR_EXTENSION_POINT_NAME: + * + * Extension point for memory usage monitoring functionality. + * See [Extending GIO][extending-gio]. + * + * Since: 2.64 + */ +#define G_MEMORY_MONITOR_EXTENSION_POINT_NAME "gio-memory-monitor" + +#define G_TYPE_MEMORY_MONITOR (g_memory_monitor_get_type ()) +GIO_AVAILABLE_IN_2_64 +G_DECLARE_INTERFACE(GMemoryMonitor, g_memory_monitor, g, memory_monitor, GObject) + +#define G_MEMORY_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_MEMORY_MONITOR, GMemoryMonitor)) +#define G_IS_MEMORY_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_MEMORY_MONITOR)) +#define G_MEMORY_MONITOR_GET_INTERFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), G_TYPE_MEMORY_MONITOR, GMemoryMonitorInterface)) + +struct _GMemoryMonitorInterface { + /*< private >*/ + GTypeInterface g_iface; + + /*< public >*/ + void (*low_memory_warning) (GMemoryMonitor *monitor, + GMemoryMonitorWarningLevel level); +}; + +GIO_AVAILABLE_IN_2_64 +GMemoryMonitor *g_memory_monitor_dup_default (void); + +G_END_DECLS + +#endif /* __G_MEMORY_MONITOR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmemoryoutputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmemoryoutputstream.h new file mode 100644 index 000000000..08f5dcffb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmemoryoutputstream.h @@ -0,0 +1,109 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Christian Kellner + */ + +#ifndef __G_MEMORY_OUTPUT_STREAM_H__ +#define __G_MEMORY_OUTPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_MEMORY_OUTPUT_STREAM (g_memory_output_stream_get_type ()) +#define G_MEMORY_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_MEMORY_OUTPUT_STREAM, GMemoryOutputStream)) +#define G_MEMORY_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_MEMORY_OUTPUT_STREAM, GMemoryOutputStreamClass)) +#define G_IS_MEMORY_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_MEMORY_OUTPUT_STREAM)) +#define G_IS_MEMORY_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_MEMORY_OUTPUT_STREAM)) +#define G_MEMORY_OUTPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_MEMORY_OUTPUT_STREAM, GMemoryOutputStreamClass)) + +/** + * GMemoryOutputStream: + * + * Implements #GOutputStream for arbitrary memory chunks. + **/ +typedef struct _GMemoryOutputStreamClass GMemoryOutputStreamClass; +typedef struct _GMemoryOutputStreamPrivate GMemoryOutputStreamPrivate; + +struct _GMemoryOutputStream +{ + GOutputStream parent_instance; + + /*< private >*/ + GMemoryOutputStreamPrivate *priv; +}; + +struct _GMemoryOutputStreamClass +{ + GOutputStreamClass parent_class; + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +/** + * GReallocFunc: + * @data: memory block to reallocate + * @size: size to reallocate @data to + * + * Changes the size of the memory block pointed to by @data to + * @size bytes. + * + * The function should have the same semantics as realloc(). + * + * Returns: a pointer to the reallocated memory + */ +typedef gpointer (* GReallocFunc) (gpointer data, + gsize size); + +GIO_AVAILABLE_IN_ALL +GType g_memory_output_stream_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GOutputStream *g_memory_output_stream_new (gpointer data, + gsize size, + GReallocFunc realloc_function, + GDestroyNotify destroy_function); +GIO_AVAILABLE_IN_2_36 +GOutputStream *g_memory_output_stream_new_resizable (void); +GIO_AVAILABLE_IN_ALL +gpointer g_memory_output_stream_get_data (GMemoryOutputStream *ostream); +GIO_AVAILABLE_IN_ALL +gsize g_memory_output_stream_get_size (GMemoryOutputStream *ostream); +GIO_AVAILABLE_IN_ALL +gsize g_memory_output_stream_get_data_size (GMemoryOutputStream *ostream); +GIO_AVAILABLE_IN_ALL +gpointer g_memory_output_stream_steal_data (GMemoryOutputStream *ostream); + +GIO_AVAILABLE_IN_2_34 +GBytes * g_memory_output_stream_steal_as_bytes (GMemoryOutputStream *ostream); + +G_END_DECLS + +#endif /* __G_MEMORY_OUTPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmenu.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmenu.h new file mode 100644 index 000000000..68e068429 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmenu.h @@ -0,0 +1,184 @@ +/* + * Copyright © 2011 Canonical Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#ifndef __G_MENU_H__ +#define __G_MENU_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_MENU (g_menu_get_type ()) +#define G_MENU(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_MENU, GMenu)) +#define G_IS_MENU(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_MENU)) + +#define G_TYPE_MENU_ITEM (g_menu_item_get_type ()) +#define G_MENU_ITEM(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_MENU_ITEM, GMenuItem)) +#define G_IS_MENU_ITEM(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_MENU_ITEM)) + +typedef struct _GMenuItem GMenuItem; +typedef struct _GMenu GMenu; + +GIO_AVAILABLE_IN_2_32 +GType g_menu_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_2_32 +GMenu * g_menu_new (void); + +GIO_AVAILABLE_IN_2_32 +void g_menu_freeze (GMenu *menu); + +GIO_AVAILABLE_IN_2_32 +void g_menu_insert_item (GMenu *menu, + gint position, + GMenuItem *item); +GIO_AVAILABLE_IN_2_32 +void g_menu_prepend_item (GMenu *menu, + GMenuItem *item); +GIO_AVAILABLE_IN_2_32 +void g_menu_append_item (GMenu *menu, + GMenuItem *item); +GIO_AVAILABLE_IN_2_32 +void g_menu_remove (GMenu *menu, + gint position); + +GIO_AVAILABLE_IN_2_38 +void g_menu_remove_all (GMenu *menu); + +GIO_AVAILABLE_IN_2_32 +void g_menu_insert (GMenu *menu, + gint position, + const gchar *label, + const gchar *detailed_action); +GIO_AVAILABLE_IN_2_32 +void g_menu_prepend (GMenu *menu, + const gchar *label, + const gchar *detailed_action); +GIO_AVAILABLE_IN_2_32 +void g_menu_append (GMenu *menu, + const gchar *label, + const gchar *detailed_action); + +GIO_AVAILABLE_IN_2_32 +void g_menu_insert_section (GMenu *menu, + gint position, + const gchar *label, + GMenuModel *section); +GIO_AVAILABLE_IN_2_32 +void g_menu_prepend_section (GMenu *menu, + const gchar *label, + GMenuModel *section); +GIO_AVAILABLE_IN_2_32 +void g_menu_append_section (GMenu *menu, + const gchar *label, + GMenuModel *section); + +GIO_AVAILABLE_IN_2_32 +void g_menu_insert_submenu (GMenu *menu, + gint position, + const gchar *label, + GMenuModel *submenu); +GIO_AVAILABLE_IN_2_32 +void g_menu_prepend_submenu (GMenu *menu, + const gchar *label, + GMenuModel *submenu); +GIO_AVAILABLE_IN_2_32 +void g_menu_append_submenu (GMenu *menu, + const gchar *label, + GMenuModel *submenu); + + +GIO_AVAILABLE_IN_2_32 +GType g_menu_item_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_2_32 +GMenuItem * g_menu_item_new (const gchar *label, + const gchar *detailed_action); + +GIO_AVAILABLE_IN_2_34 +GMenuItem * g_menu_item_new_from_model (GMenuModel *model, + gint item_index); + +GIO_AVAILABLE_IN_2_32 +GMenuItem * g_menu_item_new_submenu (const gchar *label, + GMenuModel *submenu); + +GIO_AVAILABLE_IN_2_32 +GMenuItem * g_menu_item_new_section (const gchar *label, + GMenuModel *section); + +GIO_AVAILABLE_IN_2_34 +GVariant * g_menu_item_get_attribute_value (GMenuItem *menu_item, + const gchar *attribute, + const GVariantType *expected_type); +GIO_AVAILABLE_IN_2_34 +gboolean g_menu_item_get_attribute (GMenuItem *menu_item, + const gchar *attribute, + const gchar *format_string, + ...); +GIO_AVAILABLE_IN_2_34 +GMenuModel *g_menu_item_get_link (GMenuItem *menu_item, + const gchar *link); + +GIO_AVAILABLE_IN_2_32 +void g_menu_item_set_attribute_value (GMenuItem *menu_item, + const gchar *attribute, + GVariant *value); +GIO_AVAILABLE_IN_2_32 +void g_menu_item_set_attribute (GMenuItem *menu_item, + const gchar *attribute, + const gchar *format_string, + ...); +GIO_AVAILABLE_IN_2_32 +void g_menu_item_set_link (GMenuItem *menu_item, + const gchar *link, + GMenuModel *model); +GIO_AVAILABLE_IN_2_32 +void g_menu_item_set_label (GMenuItem *menu_item, + const gchar *label); +GIO_AVAILABLE_IN_2_32 +void g_menu_item_set_submenu (GMenuItem *menu_item, + GMenuModel *submenu); +GIO_AVAILABLE_IN_2_32 +void g_menu_item_set_section (GMenuItem *menu_item, + GMenuModel *section); +GIO_AVAILABLE_IN_2_32 +void g_menu_item_set_action_and_target_value (GMenuItem *menu_item, + const gchar *action, + GVariant *target_value); +GIO_AVAILABLE_IN_2_32 +void g_menu_item_set_action_and_target (GMenuItem *menu_item, + const gchar *action, + const gchar *format_string, + ...); +GIO_AVAILABLE_IN_2_32 +void g_menu_item_set_detailed_action (GMenuItem *menu_item, + const gchar *detailed_action); + +GIO_AVAILABLE_IN_2_38 +void g_menu_item_set_icon (GMenuItem *menu_item, + GIcon *icon); + +G_END_DECLS + +#endif /* __G_MENU_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmenuexporter.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmenuexporter.h new file mode 100644 index 000000000..4651affda --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmenuexporter.h @@ -0,0 +1,55 @@ +/* + * Copyright © 2011 Canonical Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#ifndef __G_MENU_EXPORTER_H__ +#define __G_MENU_EXPORTER_H__ + +#include +#include + +G_BEGIN_DECLS + +/** + * G_MENU_EXPORTER_MAX_SECTION_SIZE: + * + * The maximum number of entries in a menu section supported by + * g_dbus_connection_export_menu_model(). + * + * The exact value of the limit may change in future GLib versions. + * + * Since: 2.76 + */ +#define G_MENU_EXPORTER_MAX_SECTION_SIZE 1000 \ + GIO_AVAILABLE_MACRO_IN_2_76 + +GIO_AVAILABLE_IN_2_32 +guint g_dbus_connection_export_menu_model (GDBusConnection *connection, + const gchar *object_path, + GMenuModel *menu, + GError **error); + +GIO_AVAILABLE_IN_2_32 +void g_dbus_connection_unexport_menu_model (GDBusConnection *connection, + guint export_id); + +G_END_DECLS + +#endif /* __G_MENU_EXPORTER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmenumodel.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmenumodel.h new file mode 100644 index 000000000..0ef7c9dc3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmenumodel.h @@ -0,0 +1,307 @@ +/* + * Copyright © 2011 Canonical Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#ifndef __G_MENU_MODEL_H__ +#define __G_MENU_MODEL_H__ + +#include + +#include + +G_BEGIN_DECLS + +/** + * G_MENU_ATTRIBUTE_ACTION: + * + * The menu item attribute which holds the action name of the item. Action + * names are namespaced with an identifier for the action group in which the + * action resides. For example, "win." for window-specific actions and "app." + * for application-wide actions. + * + * See also g_menu_model_get_item_attribute() and g_menu_item_set_attribute(). + * + * Since: 2.32 + **/ +#define G_MENU_ATTRIBUTE_ACTION "action" + +/** + * G_MENU_ATTRIBUTE_ACTION_NAMESPACE: + * + * The menu item attribute that holds the namespace for all action names in + * menus that are linked from this item. + * + * Since: 2.36 + **/ +#define G_MENU_ATTRIBUTE_ACTION_NAMESPACE "action-namespace" + +/** + * G_MENU_ATTRIBUTE_TARGET: + * + * The menu item attribute which holds the target with which the item's action + * will be activated. + * + * See also g_menu_item_set_action_and_target() + * + * Since: 2.32 + **/ +#define G_MENU_ATTRIBUTE_TARGET "target" + +/** + * G_MENU_ATTRIBUTE_LABEL: + * + * The menu item attribute which holds the label of the item. + * + * Since: 2.32 + **/ +#define G_MENU_ATTRIBUTE_LABEL "label" + +/** + * G_MENU_ATTRIBUTE_ICON: + * + * The menu item attribute which holds the icon of the item. + * + * The icon is stored in the format returned by g_icon_serialize(). + * + * This attribute is intended only to represent 'noun' icons such as + * favicons for a webpage, or application icons. It should not be used + * for 'verbs' (ie: stock icons). + * + * Since: 2.38 + **/ +#define G_MENU_ATTRIBUTE_ICON "icon" + +/** + * G_MENU_LINK_SUBMENU: + * + * The name of the link that associates a menu item with a submenu. + * + * See also g_menu_item_set_link(). + * + * Since: 2.32 + **/ +#define G_MENU_LINK_SUBMENU "submenu" + +/** + * G_MENU_LINK_SECTION: + * + * The name of the link that associates a menu item with a section. The linked + * menu will usually be shown in place of the menu item, using the item's label + * as a header. + * + * See also g_menu_item_set_link(). + * + * Since: 2.32 + **/ +#define G_MENU_LINK_SECTION "section" + +#define G_TYPE_MENU_MODEL (g_menu_model_get_type ()) +#define G_MENU_MODEL(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_MENU_MODEL, GMenuModel)) +#define G_MENU_MODEL_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_MENU_MODEL, GMenuModelClass)) +#define G_IS_MENU_MODEL(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_MENU_MODEL)) +#define G_IS_MENU_MODEL_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_MENU_MODEL)) +#define G_MENU_MODEL_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_MENU_MODEL, GMenuModelClass)) + +typedef struct _GMenuModelPrivate GMenuModelPrivate; +typedef struct _GMenuModelClass GMenuModelClass; + +typedef struct _GMenuAttributeIterPrivate GMenuAttributeIterPrivate; +typedef struct _GMenuAttributeIterClass GMenuAttributeIterClass; +typedef struct _GMenuAttributeIter GMenuAttributeIter; + +typedef struct _GMenuLinkIterPrivate GMenuLinkIterPrivate; +typedef struct _GMenuLinkIterClass GMenuLinkIterClass; +typedef struct _GMenuLinkIter GMenuLinkIter; + +struct _GMenuModel +{ + GObject parent_instance; + GMenuModelPrivate *priv; +}; + +/** + * GMenuModelClass::get_item_attributes: + * @model: the #GMenuModel to query + * @item_index: The #GMenuItem to query + * @attributes: (out) (element-type utf8 GLib.Variant): Attributes on the item + * + * Gets all the attributes associated with the item in the menu model. + */ +/** + * GMenuModelClass::get_item_links: + * @model: the #GMenuModel to query + * @item_index: The #GMenuItem to query + * @links: (out) (element-type utf8 Gio.MenuModel): Links from the item + * + * Gets all the links associated with the item in the menu model. + */ +struct _GMenuModelClass +{ + GObjectClass parent_class; + + gboolean (*is_mutable) (GMenuModel *model); + gint (*get_n_items) (GMenuModel *model); + void (*get_item_attributes) (GMenuModel *model, + gint item_index, + GHashTable **attributes); + GMenuAttributeIter * (*iterate_item_attributes) (GMenuModel *model, + gint item_index); + GVariant * (*get_item_attribute_value) (GMenuModel *model, + gint item_index, + const gchar *attribute, + const GVariantType *expected_type); + void (*get_item_links) (GMenuModel *model, + gint item_index, + GHashTable **links); + GMenuLinkIter * (*iterate_item_links) (GMenuModel *model, + gint item_index); + GMenuModel * (*get_item_link) (GMenuModel *model, + gint item_index, + const gchar *link); +}; + +GIO_AVAILABLE_IN_2_32 +GType g_menu_model_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_32 +gboolean g_menu_model_is_mutable (GMenuModel *model); +GIO_AVAILABLE_IN_2_32 +gint g_menu_model_get_n_items (GMenuModel *model); + +GIO_AVAILABLE_IN_2_32 +GMenuAttributeIter * g_menu_model_iterate_item_attributes (GMenuModel *model, + gint item_index); +GIO_AVAILABLE_IN_2_32 +GVariant * g_menu_model_get_item_attribute_value (GMenuModel *model, + gint item_index, + const gchar *attribute, + const GVariantType *expected_type); +GIO_AVAILABLE_IN_2_32 +gboolean g_menu_model_get_item_attribute (GMenuModel *model, + gint item_index, + const gchar *attribute, + const gchar *format_string, + ...); +GIO_AVAILABLE_IN_2_32 +GMenuLinkIter * g_menu_model_iterate_item_links (GMenuModel *model, + gint item_index); +GIO_AVAILABLE_IN_2_32 +GMenuModel * g_menu_model_get_item_link (GMenuModel *model, + gint item_index, + const gchar *link); + +GIO_AVAILABLE_IN_2_32 +void g_menu_model_items_changed (GMenuModel *model, + gint position, + gint removed, + gint added); + + +#define G_TYPE_MENU_ATTRIBUTE_ITER (g_menu_attribute_iter_get_type ()) +#define G_MENU_ATTRIBUTE_ITER(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_MENU_ATTRIBUTE_ITER, GMenuAttributeIter)) +#define G_MENU_ATTRIBUTE_ITER_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_MENU_ATTRIBUTE_ITER, GMenuAttributeIterClass)) +#define G_IS_MENU_ATTRIBUTE_ITER(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_MENU_ATTRIBUTE_ITER)) +#define G_IS_MENU_ATTRIBUTE_ITER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_MENU_ATTRIBUTE_ITER)) +#define G_MENU_ATTRIBUTE_ITER_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_MENU_ATTRIBUTE_ITER, GMenuAttributeIterClass)) + +struct _GMenuAttributeIter +{ + GObject parent_instance; + GMenuAttributeIterPrivate *priv; +}; + +struct _GMenuAttributeIterClass +{ + GObjectClass parent_class; + + gboolean (*get_next) (GMenuAttributeIter *iter, + const gchar **out_name, + GVariant **value); +}; + +GIO_AVAILABLE_IN_2_32 +GType g_menu_attribute_iter_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_32 +gboolean g_menu_attribute_iter_get_next (GMenuAttributeIter *iter, + const gchar **out_name, + GVariant **value); +GIO_AVAILABLE_IN_2_32 +gboolean g_menu_attribute_iter_next (GMenuAttributeIter *iter); +GIO_AVAILABLE_IN_2_32 +const gchar * g_menu_attribute_iter_get_name (GMenuAttributeIter *iter); +GIO_AVAILABLE_IN_2_32 +GVariant * g_menu_attribute_iter_get_value (GMenuAttributeIter *iter); + + +#define G_TYPE_MENU_LINK_ITER (g_menu_link_iter_get_type ()) +#define G_MENU_LINK_ITER(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_MENU_LINK_ITER, GMenuLinkIter)) +#define G_MENU_LINK_ITER_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_MENU_LINK_ITER, GMenuLinkIterClass)) +#define G_IS_MENU_LINK_ITER(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_MENU_LINK_ITER)) +#define G_IS_MENU_LINK_ITER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_MENU_LINK_ITER)) +#define G_MENU_LINK_ITER_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_MENU_LINK_ITER, GMenuLinkIterClass)) + +struct _GMenuLinkIter +{ + GObject parent_instance; + GMenuLinkIterPrivate *priv; +}; + +struct _GMenuLinkIterClass +{ + GObjectClass parent_class; + + gboolean (*get_next) (GMenuLinkIter *iter, + const gchar **out_link, + GMenuModel **value); +}; + +GIO_AVAILABLE_IN_2_32 +GType g_menu_link_iter_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_32 +gboolean g_menu_link_iter_get_next (GMenuLinkIter *iter, + const gchar **out_link, + GMenuModel **value); +GIO_AVAILABLE_IN_2_32 +gboolean g_menu_link_iter_next (GMenuLinkIter *iter); +GIO_AVAILABLE_IN_2_32 +const gchar * g_menu_link_iter_get_name (GMenuLinkIter *iter); +GIO_AVAILABLE_IN_2_32 +GMenuModel * g_menu_link_iter_get_value (GMenuLinkIter *iter); + +G_END_DECLS + +#endif /* __G_MENU_MODEL_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmount.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmount.h new file mode 100644 index 000000000..c17f79b33 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmount.h @@ -0,0 +1,278 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2008 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + * David Zeuthen + */ + +#ifndef __G_MOUNT_H__ +#define __G_MOUNT_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_MOUNT (g_mount_get_type ()) +#define G_MOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_MOUNT, GMount)) +#define G_IS_MOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_MOUNT)) +#define G_MOUNT_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_MOUNT, GMountIface)) + +typedef struct _GMountIface GMountIface; + +/** + * GMountIface: + * @g_iface: The parent interface. + * @changed: Changed signal that is emitted when the mount's state has changed. + * @unmounted: The unmounted signal that is emitted when the #GMount have been unmounted. If the recipient is holding references to the object they should release them so the object can be finalized. + * @pre_unmount: The ::pre-unmount signal that is emitted when the #GMount will soon be emitted. If the recipient is somehow holding the mount open by keeping an open file on it it should close the file. + * @get_root: Gets a #GFile to the root directory of the #GMount. + * @get_name: Gets a string containing the name of the #GMount. + * @get_icon: Gets a #GIcon for the #GMount. + * @get_uuid: Gets the UUID for the #GMount. The reference is typically based on the file system UUID for the mount in question and should be considered an opaque string. Returns %NULL if there is no UUID available. + * @get_volume: Gets a #GVolume the mount is located on. Returns %NULL if the #GMount is not associated with a #GVolume. + * @get_drive: Gets a #GDrive the volume of the mount is located on. Returns %NULL if the #GMount is not associated with a #GDrive or a #GVolume. This is convenience method for getting the #GVolume and using that to get the #GDrive. + * @can_unmount: Checks if a #GMount can be unmounted. + * @can_eject: Checks if a #GMount can be ejected. + * @unmount: Starts unmounting a #GMount. + * @unmount_finish: Finishes an unmounting operation. + * @eject: Starts ejecting a #GMount. + * @eject_finish: Finishes an eject operation. + * @remount: Starts remounting a #GMount. + * @remount_finish: Finishes a remounting operation. + * @guess_content_type: Starts guessing the type of the content of a #GMount. + * See g_mount_guess_content_type() for more information on content + * type guessing. This operation was added in 2.18. + * @guess_content_type_finish: Finishes a content type guessing operation. Added in 2.18. + * @guess_content_type_sync: Synchronous variant of @guess_content_type. Added in 2.18 + * @unmount_with_operation: Starts unmounting a #GMount using a #GMountOperation. Since 2.22. + * @unmount_with_operation_finish: Finishes an unmounting operation using a #GMountOperation. Since 2.22. + * @eject_with_operation: Starts ejecting a #GMount using a #GMountOperation. Since 2.22. + * @eject_with_operation_finish: Finishes an eject operation using a #GMountOperation. Since 2.22. + * @get_default_location: Gets a #GFile indication a start location that can be use as the entry point for this mount. Since 2.24. + * @get_sort_key: Gets a key used for sorting #GMount instance or %NULL if no such key exists. Since 2.32. + * @get_symbolic_icon: Gets a symbolic #GIcon for the #GMount. Since 2.34. + * + * Interface for implementing operations for mounts. + **/ +struct _GMountIface +{ + GTypeInterface g_iface; + + /* signals */ + + void (* changed) (GMount *mount); + void (* unmounted) (GMount *mount); + + /* Virtual Table */ + + GFile * (* get_root) (GMount *mount); + char * (* get_name) (GMount *mount); + GIcon * (* get_icon) (GMount *mount); + char * (* get_uuid) (GMount *mount); + GVolume * (* get_volume) (GMount *mount); + GDrive * (* get_drive) (GMount *mount); + gboolean (* can_unmount) (GMount *mount); + gboolean (* can_eject) (GMount *mount); + + void (* unmount) (GMount *mount, + GMountUnmountFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* unmount_finish) (GMount *mount, + GAsyncResult *result, + GError **error); + + void (* eject) (GMount *mount, + GMountUnmountFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* eject_finish) (GMount *mount, + GAsyncResult *result, + GError **error); + + void (* remount) (GMount *mount, + GMountMountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* remount_finish) (GMount *mount, + GAsyncResult *result, + GError **error); + + void (* guess_content_type) (GMount *mount, + gboolean force_rescan, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gchar ** (* guess_content_type_finish) (GMount *mount, + GAsyncResult *result, + GError **error); + gchar ** (* guess_content_type_sync) (GMount *mount, + gboolean force_rescan, + GCancellable *cancellable, + GError **error); + + /* Signal, not VFunc */ + void (* pre_unmount) (GMount *mount); + + void (* unmount_with_operation) (GMount *mount, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* unmount_with_operation_finish) (GMount *mount, + GAsyncResult *result, + GError **error); + + void (* eject_with_operation) (GMount *mount, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* eject_with_operation_finish) (GMount *mount, + GAsyncResult *result, + GError **error); + GFile * (* get_default_location) (GMount *mount); + + const gchar * (* get_sort_key) (GMount *mount); + GIcon * (* get_symbolic_icon) (GMount *mount); +}; + +GIO_AVAILABLE_IN_ALL +GType g_mount_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GFile * g_mount_get_root (GMount *mount); +GIO_AVAILABLE_IN_ALL +GFile * g_mount_get_default_location (GMount *mount); +GIO_AVAILABLE_IN_ALL +char * g_mount_get_name (GMount *mount); +GIO_AVAILABLE_IN_ALL +GIcon * g_mount_get_icon (GMount *mount); +GIO_AVAILABLE_IN_ALL +GIcon * g_mount_get_symbolic_icon (GMount *mount); +GIO_AVAILABLE_IN_ALL +char * g_mount_get_uuid (GMount *mount); +GIO_AVAILABLE_IN_ALL +GVolume * g_mount_get_volume (GMount *mount); +GIO_AVAILABLE_IN_ALL +GDrive * g_mount_get_drive (GMount *mount); +GIO_AVAILABLE_IN_ALL +gboolean g_mount_can_unmount (GMount *mount); +GIO_AVAILABLE_IN_ALL +gboolean g_mount_can_eject (GMount *mount); + +GIO_DEPRECATED_FOR(g_mount_unmount_with_operation) +void g_mount_unmount (GMount *mount, + GMountUnmountFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_DEPRECATED_FOR(g_mount_unmount_with_operation_finish) +gboolean g_mount_unmount_finish (GMount *mount, + GAsyncResult *result, + GError **error); + +GIO_DEPRECATED_FOR(g_mount_eject_with_operation) +void g_mount_eject (GMount *mount, + GMountUnmountFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_DEPRECATED_FOR(g_mount_eject_with_operation_finish) +gboolean g_mount_eject_finish (GMount *mount, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_mount_remount (GMount *mount, + GMountMountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_mount_remount_finish (GMount *mount, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_mount_guess_content_type (GMount *mount, + gboolean force_rescan, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gchar ** g_mount_guess_content_type_finish (GMount *mount, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +gchar ** g_mount_guess_content_type_sync (GMount *mount, + gboolean force_rescan, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_mount_is_shadowed (GMount *mount); +GIO_AVAILABLE_IN_ALL +void g_mount_shadow (GMount *mount); +GIO_AVAILABLE_IN_ALL +void g_mount_unshadow (GMount *mount); + +GIO_AVAILABLE_IN_ALL +void g_mount_unmount_with_operation (GMount *mount, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_mount_unmount_with_operation_finish (GMount *mount, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_mount_eject_with_operation (GMount *mount, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_mount_eject_with_operation_finish (GMount *mount, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +const gchar *g_mount_get_sort_key (GMount *mount); + +G_END_DECLS + +#endif /* __G_MOUNT_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmountoperation.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmountoperation.h new file mode 100644 index 000000000..b763f0d6a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gmountoperation.h @@ -0,0 +1,179 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_MOUNT_OPERATION_H__ +#define __G_MOUNT_OPERATION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_MOUNT_OPERATION (g_mount_operation_get_type ()) +#define G_MOUNT_OPERATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_MOUNT_OPERATION, GMountOperation)) +#define G_MOUNT_OPERATION_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_MOUNT_OPERATION, GMountOperationClass)) +#define G_IS_MOUNT_OPERATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_MOUNT_OPERATION)) +#define G_IS_MOUNT_OPERATION_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_MOUNT_OPERATION)) +#define G_MOUNT_OPERATION_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_MOUNT_OPERATION, GMountOperationClass)) + +/** + * GMountOperation: + * + * Class for providing authentication methods for mounting operations, + * such as mounting a file locally, or authenticating with a server. + **/ +typedef struct _GMountOperationClass GMountOperationClass; +typedef struct _GMountOperationPrivate GMountOperationPrivate; + +struct _GMountOperation +{ + GObject parent_instance; + + GMountOperationPrivate *priv; +}; + +struct _GMountOperationClass +{ + GObjectClass parent_class; + + /* signals: */ + + void (* ask_password) (GMountOperation *op, + const char *message, + const char *default_user, + const char *default_domain, + GAskPasswordFlags flags); + + /** + * GMountOperationClass::ask_question: + * @op: a #GMountOperation + * @message: string containing a message to display to the user + * @choices: (array zero-terminated=1) (element-type utf8): an array of + * strings for each possible choice + * + * Virtual implementation of #GMountOperation::ask-question. + */ + void (* ask_question) (GMountOperation *op, + const char *message, + const char *choices[]); + + void (* reply) (GMountOperation *op, + GMountOperationResult result); + + void (* aborted) (GMountOperation *op); + + /** + * GMountOperationClass::show_processes: + * @op: a #GMountOperation + * @message: string containing a message to display to the user + * @processes: (element-type GPid): an array of #GPid for processes blocking + * the operation + * @choices: (array zero-terminated=1) (element-type utf8): an array of + * strings for each possible choice + * + * Virtual implementation of #GMountOperation::show-processes. + * + * Since: 2.22 + */ + void (* show_processes) (GMountOperation *op, + const gchar *message, + GArray *processes, + const gchar *choices[]); + + void (* show_unmount_progress) (GMountOperation *op, + const gchar *message, + gint64 time_left, + gint64 bytes_left); + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); + void (*_g_reserved6) (void); + void (*_g_reserved7) (void); + void (*_g_reserved8) (void); + void (*_g_reserved9) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_mount_operation_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GMountOperation * g_mount_operation_new (void); + +GIO_AVAILABLE_IN_ALL +const char * g_mount_operation_get_username (GMountOperation *op); +GIO_AVAILABLE_IN_ALL +void g_mount_operation_set_username (GMountOperation *op, + const char *username); +GIO_AVAILABLE_IN_ALL +const char * g_mount_operation_get_password (GMountOperation *op); +GIO_AVAILABLE_IN_ALL +void g_mount_operation_set_password (GMountOperation *op, + const char *password); +GIO_AVAILABLE_IN_ALL +gboolean g_mount_operation_get_anonymous (GMountOperation *op); +GIO_AVAILABLE_IN_ALL +void g_mount_operation_set_anonymous (GMountOperation *op, + gboolean anonymous); +GIO_AVAILABLE_IN_ALL +const char * g_mount_operation_get_domain (GMountOperation *op); +GIO_AVAILABLE_IN_ALL +void g_mount_operation_set_domain (GMountOperation *op, + const char *domain); +GIO_AVAILABLE_IN_ALL +GPasswordSave g_mount_operation_get_password_save (GMountOperation *op); +GIO_AVAILABLE_IN_ALL +void g_mount_operation_set_password_save (GMountOperation *op, + GPasswordSave save); +GIO_AVAILABLE_IN_ALL +int g_mount_operation_get_choice (GMountOperation *op); +GIO_AVAILABLE_IN_ALL +void g_mount_operation_set_choice (GMountOperation *op, + int choice); +GIO_AVAILABLE_IN_ALL +void g_mount_operation_reply (GMountOperation *op, + GMountOperationResult result); +GIO_AVAILABLE_IN_2_58 +gboolean g_mount_operation_get_is_tcrypt_hidden_volume (GMountOperation *op); +GIO_AVAILABLE_IN_2_58 +void g_mount_operation_set_is_tcrypt_hidden_volume (GMountOperation *op, + gboolean hidden_volume); +GIO_AVAILABLE_IN_2_58 +gboolean g_mount_operation_get_is_tcrypt_system_volume (GMountOperation *op); +GIO_AVAILABLE_IN_2_58 +void g_mount_operation_set_is_tcrypt_system_volume (GMountOperation *op, + gboolean system_volume); +GIO_AVAILABLE_IN_2_58 +guint g_mount_operation_get_pim (GMountOperation *op); +GIO_AVAILABLE_IN_2_58 +void g_mount_operation_set_pim (GMountOperation *op, + guint pim); + +G_END_DECLS + +#endif /* __G_MOUNT_OPERATION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnativesocketaddress.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnativesocketaddress.h new file mode 100644 index 000000000..cd174ec86 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnativesocketaddress.h @@ -0,0 +1,67 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2008 Christian Kellner, Samuel Cormier-Iijima + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Christian Kellner + * Samuel Cormier-Iijima + */ + +#ifndef __G_NATIVE_SOCKET_ADDRESS_H__ +#define __G_NATIVE_SOCKET_ADDRESS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_NATIVE_SOCKET_ADDRESS (g_native_socket_address_get_type ()) +#define G_NATIVE_SOCKET_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_NATIVE_SOCKET_ADDRESS, GNativeSocketAddress)) +#define G_NATIVE_SOCKET_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_NATIVE_SOCKET_ADDRESS, GNativeSocketAddressClass)) +#define G_IS_NATIVE_SOCKET_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_NATIVE_SOCKET_ADDRESS)) +#define G_IS_NATIVE_SOCKET_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_NATIVE_SOCKET_ADDRESS)) +#define G_NATIVE_SOCKET_ADDRESS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_NATIVE_SOCKET_ADDRESS, GNativeSocketAddressClass)) + +typedef struct _GNativeSocketAddressClass GNativeSocketAddressClass; +typedef struct _GNativeSocketAddressPrivate GNativeSocketAddressPrivate; + +struct _GNativeSocketAddress +{ + GSocketAddress parent_instance; + + /*< private >*/ + GNativeSocketAddressPrivate *priv; +}; + +struct _GNativeSocketAddressClass +{ + GSocketAddressClass parent_class; +}; + +GIO_AVAILABLE_IN_2_46 +GType g_native_socket_address_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_46 +GSocketAddress *g_native_socket_address_new (gpointer native, + gsize len); + +G_END_DECLS + +#endif /* __G_NATIVE_SOCKET_ADDRESS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnativevolumemonitor.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnativevolumemonitor.h new file mode 100644 index 000000000..9cea184b6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnativevolumemonitor.h @@ -0,0 +1,63 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_NATIVE_VOLUME_MONITOR_H__ +#define __G_NATIVE_VOLUME_MONITOR_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_NATIVE_VOLUME_MONITOR (g_native_volume_monitor_get_type ()) +#define G_NATIVE_VOLUME_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_NATIVE_VOLUME_MONITOR, GNativeVolumeMonitor)) +#define G_NATIVE_VOLUME_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_NATIVE_VOLUME_MONITOR, GNativeVolumeMonitorClass)) +#define G_IS_NATIVE_VOLUME_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_NATIVE_VOLUME_MONITOR)) +#define G_IS_NATIVE_VOLUME_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_NATIVE_VOLUME_MONITOR)) + +#define G_NATIVE_VOLUME_MONITOR_EXTENSION_POINT_NAME "gio-native-volume-monitor" + +typedef struct _GNativeVolumeMonitor GNativeVolumeMonitor; +typedef struct _GNativeVolumeMonitorClass GNativeVolumeMonitorClass; + +struct _GNativeVolumeMonitor +{ + GVolumeMonitor parent_instance; +}; + +struct _GNativeVolumeMonitorClass +{ + GVolumeMonitorClass parent_class; + + GMount * (* get_mount_for_mount_path) (const char *mount_path, + GCancellable *cancellable); +}; + +GIO_AVAILABLE_IN_ALL +GType g_native_volume_monitor_get_type (void) G_GNUC_CONST; + +G_END_DECLS + +#endif /* __G_NATIVE_VOLUME_MONITOR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnetworkaddress.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnetworkaddress.h new file mode 100644 index 000000000..0a12d852b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnetworkaddress.h @@ -0,0 +1,82 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2008 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_NETWORK_ADDRESS_H__ +#define __G_NETWORK_ADDRESS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_NETWORK_ADDRESS (g_network_address_get_type ()) +#define G_NETWORK_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_NETWORK_ADDRESS, GNetworkAddress)) +#define G_NETWORK_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_NETWORK_ADDRESS, GNetworkAddressClass)) +#define G_IS_NETWORK_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_NETWORK_ADDRESS)) +#define G_IS_NETWORK_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_NETWORK_ADDRESS)) +#define G_NETWORK_ADDRESS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_NETWORK_ADDRESS, GNetworkAddressClass)) + +typedef struct _GNetworkAddressClass GNetworkAddressClass; +typedef struct _GNetworkAddressPrivate GNetworkAddressPrivate; + +struct _GNetworkAddress +{ + GObject parent_instance; + + /*< private >*/ + GNetworkAddressPrivate *priv; +}; + +struct _GNetworkAddressClass +{ + GObjectClass parent_class; + +}; + +GIO_AVAILABLE_IN_ALL +GType g_network_address_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GSocketConnectable *g_network_address_new (const gchar *hostname, + guint16 port); +GIO_AVAILABLE_IN_2_44 +GSocketConnectable *g_network_address_new_loopback (guint16 port); +GIO_AVAILABLE_IN_ALL +GSocketConnectable *g_network_address_parse (const gchar *host_and_port, + guint16 default_port, + GError **error); +GIO_AVAILABLE_IN_ALL +GSocketConnectable *g_network_address_parse_uri (const gchar *uri, + guint16 default_port, + GError **error); +GIO_AVAILABLE_IN_ALL +const gchar *g_network_address_get_hostname (GNetworkAddress *addr); +GIO_AVAILABLE_IN_ALL +guint16 g_network_address_get_port (GNetworkAddress *addr); +GIO_AVAILABLE_IN_ALL +const gchar *g_network_address_get_scheme (GNetworkAddress *addr); + + +G_END_DECLS + +#endif /* __G_NETWORK_ADDRESS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnetworking.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnetworking.h new file mode 100644 index 000000000..86f1e4d8d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnetworking.h @@ -0,0 +1,81 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2008-2011 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __G_NETWORKING_H__ +#define __G_NETWORKING_H__ + +#include +#include + +#ifdef G_OS_WIN32 +#include +#include +#include +#include +#include +#include +#undef interface + +#else /* !G_OS_WIN32 */ + +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + + +#ifndef T_SRV +#define T_SRV 33 +#endif + +#ifndef _PATH_RESCONF +#define _PATH_RESCONF "/etc/resolv.conf" +#endif + +#ifndef CMSG_LEN +/* CMSG_LEN and CMSG_SPACE are defined by RFC 2292, but missing on + * some older platforms. + */ +#define CMSG_LEN(len) ((size_t)CMSG_DATA((struct cmsghdr *)NULL) + (len)) + +/* CMSG_SPACE must add at least as much padding as CMSG_NXTHDR() + * adds. We overestimate here. + */ +#define GLIB_ALIGN_TO_SIZEOF(len, obj) (((len) + sizeof (obj) - 1) & ~(sizeof (obj) - 1)) +#define CMSG_SPACE(len) GLIB_ALIGN_TO_SIZEOF (CMSG_LEN (len), struct cmsghdr) +#endif +#endif + +G_BEGIN_DECLS + +GIO_AVAILABLE_IN_2_36 +void g_networking_init (void); + +G_END_DECLS + +#endif /* __G_NETWORKING_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnetworkmonitor.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnetworkmonitor.h new file mode 100644 index 000000000..8e6e90386 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnetworkmonitor.h @@ -0,0 +1,101 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright 2011 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_NETWORK_MONITOR_H__ +#define __G_NETWORK_MONITOR_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * G_NETWORK_MONITOR_EXTENSION_POINT_NAME: + * + * Extension point for network status monitoring functionality. + * See [Extending GIO][extending-gio]. + * + * Since: 2.30 + */ +#define G_NETWORK_MONITOR_EXTENSION_POINT_NAME "gio-network-monitor" + +#define G_TYPE_NETWORK_MONITOR (g_network_monitor_get_type ()) +#define G_NETWORK_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_NETWORK_MONITOR, GNetworkMonitor)) +#define G_IS_NETWORK_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_NETWORK_MONITOR)) +#define G_NETWORK_MONITOR_GET_INTERFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), G_TYPE_NETWORK_MONITOR, GNetworkMonitorInterface)) + +typedef struct _GNetworkMonitorInterface GNetworkMonitorInterface; + +struct _GNetworkMonitorInterface { + GTypeInterface g_iface; + + void (*network_changed) (GNetworkMonitor *monitor, + gboolean network_available); + + gboolean (*can_reach) (GNetworkMonitor *monitor, + GSocketConnectable *connectable, + GCancellable *cancellable, + GError **error); + void (*can_reach_async) (GNetworkMonitor *monitor, + GSocketConnectable *connectable, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (*can_reach_finish) (GNetworkMonitor *monitor, + GAsyncResult *result, + GError **error); +}; + +GIO_AVAILABLE_IN_2_32 +GType g_network_monitor_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_2_32 +GNetworkMonitor *g_network_monitor_get_default (void); + +GIO_AVAILABLE_IN_2_32 +gboolean g_network_monitor_get_network_available (GNetworkMonitor *monitor); + +GIO_AVAILABLE_IN_2_46 +gboolean g_network_monitor_get_network_metered (GNetworkMonitor *monitor); + +GIO_AVAILABLE_IN_2_44 +GNetworkConnectivity g_network_monitor_get_connectivity (GNetworkMonitor *monitor); + +GIO_AVAILABLE_IN_2_32 +gboolean g_network_monitor_can_reach (GNetworkMonitor *monitor, + GSocketConnectable *connectable, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_32 +void g_network_monitor_can_reach_async (GNetworkMonitor *monitor, + GSocketConnectable *connectable, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_32 +gboolean g_network_monitor_can_reach_finish (GNetworkMonitor *monitor, + GAsyncResult *result, + GError **error); + +G_END_DECLS + +#endif /* __G_NETWORK_MONITOR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnetworkservice.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnetworkservice.h new file mode 100644 index 000000000..ac00986d9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnetworkservice.h @@ -0,0 +1,77 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2008 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_NETWORK_SERVICE_H__ +#define __G_NETWORK_SERVICE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_NETWORK_SERVICE (g_network_service_get_type ()) +#define G_NETWORK_SERVICE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_NETWORK_SERVICE, GNetworkService)) +#define G_NETWORK_SERVICE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_NETWORK_SERVICE, GNetworkServiceClass)) +#define G_IS_NETWORK_SERVICE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_NETWORK_SERVICE)) +#define G_IS_NETWORK_SERVICE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_NETWORK_SERVICE)) +#define G_NETWORK_SERVICE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_NETWORK_SERVICE, GNetworkServiceClass)) + +typedef struct _GNetworkServiceClass GNetworkServiceClass; +typedef struct _GNetworkServicePrivate GNetworkServicePrivate; + +struct _GNetworkService +{ + GObject parent_instance; + + /*< private >*/ + GNetworkServicePrivate *priv; +}; + +struct _GNetworkServiceClass +{ + GObjectClass parent_class; + +}; + +GIO_AVAILABLE_IN_ALL +GType g_network_service_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GSocketConnectable *g_network_service_new (const gchar *service, + const gchar *protocol, + const gchar *domain); + +GIO_AVAILABLE_IN_ALL +const gchar *g_network_service_get_service (GNetworkService *srv); +GIO_AVAILABLE_IN_ALL +const gchar *g_network_service_get_protocol (GNetworkService *srv); +GIO_AVAILABLE_IN_ALL +const gchar *g_network_service_get_domain (GNetworkService *srv); +GIO_AVAILABLE_IN_ALL +const gchar *g_network_service_get_scheme (GNetworkService *srv); +GIO_AVAILABLE_IN_ALL +void g_network_service_set_scheme (GNetworkService *srv, const gchar *scheme); + +G_END_DECLS + +#endif /* __G_NETWORK_SERVICE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnotification.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnotification.h new file mode 100644 index 000000000..cef00a737 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gnotification.h @@ -0,0 +1,103 @@ +/* + * Copyright © 2013 Lars Uebernickel + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Lars Uebernickel + */ + +#ifndef __G_NOTIFICATION_H__ +#define __G_NOTIFICATION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_NOTIFICATION (g_notification_get_type ()) +#define G_NOTIFICATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_NOTIFICATION, GNotification)) +#define G_IS_NOTIFICATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_NOTIFICATION)) + +GIO_AVAILABLE_IN_2_40 +GType g_notification_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_40 +GNotification * g_notification_new (const gchar *title); + +GIO_AVAILABLE_IN_2_40 +void g_notification_set_title (GNotification *notification, + const gchar *title); + +GIO_AVAILABLE_IN_2_40 +void g_notification_set_body (GNotification *notification, + const gchar *body); + +GIO_AVAILABLE_IN_2_40 +void g_notification_set_icon (GNotification *notification, + GIcon *icon); + +GIO_DEPRECATED_IN_2_42_FOR(g_notification_set_priority) +void g_notification_set_urgent (GNotification *notification, + gboolean urgent); + +GIO_AVAILABLE_IN_2_42 +void g_notification_set_priority (GNotification *notification, + GNotificationPriority priority); + +GIO_AVAILABLE_IN_2_70 +void g_notification_set_category (GNotification *notification, + const gchar *category); + +GIO_AVAILABLE_IN_2_40 +void g_notification_add_button (GNotification *notification, + const gchar *label, + const gchar *detailed_action); + +GIO_AVAILABLE_IN_2_40 +void g_notification_add_button_with_target (GNotification *notification, + const gchar *label, + const gchar *action, + const gchar *target_format, + ...); + +GIO_AVAILABLE_IN_2_40 +void g_notification_add_button_with_target_value (GNotification *notification, + const gchar *label, + const gchar *action, + GVariant *target); + +GIO_AVAILABLE_IN_2_40 +void g_notification_set_default_action (GNotification *notification, + const gchar *detailed_action); + +GIO_AVAILABLE_IN_2_40 +void g_notification_set_default_action_and_target (GNotification *notification, + const gchar *action, + const gchar *target_format, + ...); + +GIO_AVAILABLE_IN_2_40 +void g_notification_set_default_action_and_target_value (GNotification *notification, + const gchar *action, + GVariant *target); + +G_END_DECLS + +#endif diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/goutputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/goutputstream.h new file mode 100644 index 000000000..b5fafe9ef --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/goutputstream.h @@ -0,0 +1,334 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_OUTPUT_STREAM_H__ +#define __G_OUTPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_OUTPUT_STREAM (g_output_stream_get_type ()) +#define G_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_OUTPUT_STREAM, GOutputStream)) +#define G_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_OUTPUT_STREAM, GOutputStreamClass)) +#define G_IS_OUTPUT_STREAM(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_OUTPUT_STREAM)) +#define G_IS_OUTPUT_STREAM_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_OUTPUT_STREAM)) +#define G_OUTPUT_STREAM_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_OUTPUT_STREAM, GOutputStreamClass)) + +/** + * GOutputStream: + * + * Base class for writing output. + * + * All classes derived from GOutputStream should implement synchronous + * writing, splicing, flushing and closing streams, but may implement + * asynchronous versions. + **/ +typedef struct _GOutputStreamClass GOutputStreamClass; +typedef struct _GOutputStreamPrivate GOutputStreamPrivate; + +struct _GOutputStream +{ + GObject parent_instance; + + /*< private >*/ + GOutputStreamPrivate *priv; +}; + + +struct _GOutputStreamClass +{ + GObjectClass parent_class; + + /* Sync ops: */ + + gssize (* write_fn) (GOutputStream *stream, + const void *buffer, + gsize count, + GCancellable *cancellable, + GError **error); + gssize (* splice) (GOutputStream *stream, + GInputStream *source, + GOutputStreamSpliceFlags flags, + GCancellable *cancellable, + GError **error); + gboolean (* flush) (GOutputStream *stream, + GCancellable *cancellable, + GError **error); + gboolean (* close_fn) (GOutputStream *stream, + GCancellable *cancellable, + GError **error); + + /* Async ops: (optional in derived classes) */ + + void (* write_async) (GOutputStream *stream, + const void *buffer, + gsize count, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gssize (* write_finish) (GOutputStream *stream, + GAsyncResult *result, + GError **error); + void (* splice_async) (GOutputStream *stream, + GInputStream *source, + GOutputStreamSpliceFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gssize (* splice_finish) (GOutputStream *stream, + GAsyncResult *result, + GError **error); + void (* flush_async) (GOutputStream *stream, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* flush_finish) (GOutputStream *stream, + GAsyncResult *result, + GError **error); + void (* close_async) (GOutputStream *stream, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* close_finish) (GOutputStream *stream, + GAsyncResult *result, + GError **error); + + gboolean (* writev_fn) (GOutputStream *stream, + const GOutputVector *vectors, + gsize n_vectors, + gsize *bytes_written, + GCancellable *cancellable, + GError **error); + + void (* writev_async) (GOutputStream *stream, + const GOutputVector *vectors, + gsize n_vectors, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + + gboolean (* writev_finish) (GOutputStream *stream, + GAsyncResult *result, + gsize *bytes_written, + GError **error); + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); + void (*_g_reserved6) (void); + void (*_g_reserved7) (void); + void (*_g_reserved8) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_output_stream_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +gssize g_output_stream_write (GOutputStream *stream, + const void *buffer, + gsize count, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_output_stream_write_all (GOutputStream *stream, + const void *buffer, + gsize count, + gsize *bytes_written, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_60 +gboolean g_output_stream_writev (GOutputStream *stream, + const GOutputVector *vectors, + gsize n_vectors, + gsize *bytes_written, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_60 +gboolean g_output_stream_writev_all (GOutputStream *stream, + GOutputVector *vectors, + gsize n_vectors, + gsize *bytes_written, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_40 +gboolean g_output_stream_printf (GOutputStream *stream, + gsize *bytes_written, + GCancellable *cancellable, + GError **error, + const gchar *format, + ...) G_GNUC_PRINTF (5, 6); +GIO_AVAILABLE_IN_2_40 +gboolean g_output_stream_vprintf (GOutputStream *stream, + gsize *bytes_written, + GCancellable *cancellable, + GError **error, + const gchar *format, + va_list args) G_GNUC_PRINTF (5, 0); +GIO_AVAILABLE_IN_2_34 +gssize g_output_stream_write_bytes (GOutputStream *stream, + GBytes *bytes, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gssize g_output_stream_splice (GOutputStream *stream, + GInputStream *source, + GOutputStreamSpliceFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_output_stream_flush (GOutputStream *stream, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_output_stream_close (GOutputStream *stream, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_output_stream_write_async (GOutputStream *stream, + const void *buffer, + gsize count, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gssize g_output_stream_write_finish (GOutputStream *stream, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_2_44 +void g_output_stream_write_all_async (GOutputStream *stream, + const void *buffer, + gsize count, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_2_44 +gboolean g_output_stream_write_all_finish (GOutputStream *stream, + GAsyncResult *result, + gsize *bytes_written, + GError **error); + +GIO_AVAILABLE_IN_2_60 +void g_output_stream_writev_async (GOutputStream *stream, + const GOutputVector *vectors, + gsize n_vectors, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_60 +gboolean g_output_stream_writev_finish (GOutputStream *stream, + GAsyncResult *result, + gsize *bytes_written, + GError **error); + +GIO_AVAILABLE_IN_2_60 +void g_output_stream_writev_all_async (GOutputStream *stream, + GOutputVector *vectors, + gsize n_vectors, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_2_60 +gboolean g_output_stream_writev_all_finish (GOutputStream *stream, + GAsyncResult *result, + gsize *bytes_written, + GError **error); + +GIO_AVAILABLE_IN_2_34 +void g_output_stream_write_bytes_async (GOutputStream *stream, + GBytes *bytes, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_34 +gssize g_output_stream_write_bytes_finish (GOutputStream *stream, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_output_stream_splice_async (GOutputStream *stream, + GInputStream *source, + GOutputStreamSpliceFlags flags, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gssize g_output_stream_splice_finish (GOutputStream *stream, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_output_stream_flush_async (GOutputStream *stream, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_output_stream_flush_finish (GOutputStream *stream, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_output_stream_close_async (GOutputStream *stream, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_output_stream_close_finish (GOutputStream *stream, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_output_stream_is_closed (GOutputStream *stream); +GIO_AVAILABLE_IN_ALL +gboolean g_output_stream_is_closing (GOutputStream *stream); +GIO_AVAILABLE_IN_ALL +gboolean g_output_stream_has_pending (GOutputStream *stream); +GIO_AVAILABLE_IN_ALL +gboolean g_output_stream_set_pending (GOutputStream *stream, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_output_stream_clear_pending (GOutputStream *stream); + + +G_END_DECLS + +#endif /* __G_OUTPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpermission.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpermission.h new file mode 100644 index 000000000..828f64231 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpermission.h @@ -0,0 +1,129 @@ +/* + * Copyright © 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#ifndef __G_PERMISSION_H__ +#define __G_PERMISSION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_PERMISSION (g_permission_get_type ()) +#define G_PERMISSION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_PERMISSION, GPermission)) +#define G_PERMISSION_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_PERMISSION, GPermissionClass)) +#define G_IS_PERMISSION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_PERMISSION)) +#define G_IS_PERMISSION_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_PERMISSION)) +#define G_PERMISSION_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_PERMISSION, GPermissionClass)) + +typedef struct _GPermissionPrivate GPermissionPrivate; +typedef struct _GPermissionClass GPermissionClass; + +struct _GPermission +{ + GObject parent_instance; + + /*< private >*/ + GPermissionPrivate *priv; +}; + +struct _GPermissionClass { + GObjectClass parent_class; + + gboolean (*acquire) (GPermission *permission, + GCancellable *cancellable, + GError **error); + void (*acquire_async) (GPermission *permission, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (*acquire_finish) (GPermission *permission, + GAsyncResult *result, + GError **error); + + gboolean (*release) (GPermission *permission, + GCancellable *cancellable, + GError **error); + void (*release_async) (GPermission *permission, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (*release_finish) (GPermission *permission, + GAsyncResult *result, + GError **error); + + gpointer reserved[16]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_permission_get_type (void); +GIO_AVAILABLE_IN_ALL +gboolean g_permission_acquire (GPermission *permission, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_permission_acquire_async (GPermission *permission, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_permission_acquire_finish (GPermission *permission, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_permission_release (GPermission *permission, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_permission_release_async (GPermission *permission, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_permission_release_finish (GPermission *permission, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_permission_get_allowed (GPermission *permission); +GIO_AVAILABLE_IN_ALL +gboolean g_permission_get_can_acquire (GPermission *permission); +GIO_AVAILABLE_IN_ALL +gboolean g_permission_get_can_release (GPermission *permission); + +GIO_AVAILABLE_IN_ALL +void g_permission_impl_update (GPermission *permission, + gboolean allowed, + gboolean can_acquire, + gboolean can_release); + +G_END_DECLS + +#endif /* __G_PERMISSION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpollableinputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpollableinputstream.h new file mode 100644 index 000000000..7b659477c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpollableinputstream.h @@ -0,0 +1,106 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_POLLABLE_INPUT_STREAM_H__ +#define __G_POLLABLE_INPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_POLLABLE_INPUT_STREAM (g_pollable_input_stream_get_type ()) +#define G_POLLABLE_INPUT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_POLLABLE_INPUT_STREAM, GPollableInputStream)) +#define G_IS_POLLABLE_INPUT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_POLLABLE_INPUT_STREAM)) +#define G_POLLABLE_INPUT_STREAM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_POLLABLE_INPUT_STREAM, GPollableInputStreamInterface)) + +/** + * GPollableInputStream: + * + * An interface for a #GInputStream that can be polled for readability. + * + * Since: 2.28 + */ +typedef struct _GPollableInputStreamInterface GPollableInputStreamInterface; + +/** + * GPollableInputStreamInterface: + * @g_iface: The parent interface. + * @can_poll: Checks if the #GPollableInputStream instance is actually pollable + * @is_readable: Checks if the stream is readable + * @create_source: Creates a #GSource to poll the stream + * @read_nonblocking: Does a non-blocking read or returns + * %G_IO_ERROR_WOULD_BLOCK + * + * The interface for pollable input streams. + * + * The default implementation of @can_poll always returns %TRUE. + * + * The default implementation of @read_nonblocking calls + * g_pollable_input_stream_is_readable(), and then calls + * g_input_stream_read() if it returns %TRUE. This means you only need + * to override it if it is possible that your @is_readable + * implementation may return %TRUE when the stream is not actually + * readable. + * + * Since: 2.28 + */ +struct _GPollableInputStreamInterface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + gboolean (*can_poll) (GPollableInputStream *stream); + + gboolean (*is_readable) (GPollableInputStream *stream); + GSource * (*create_source) (GPollableInputStream *stream, + GCancellable *cancellable); + gssize (*read_nonblocking) (GPollableInputStream *stream, + void *buffer, + gsize count, + GError **error); +}; + +GIO_AVAILABLE_IN_ALL +GType g_pollable_input_stream_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +gboolean g_pollable_input_stream_can_poll (GPollableInputStream *stream); + +GIO_AVAILABLE_IN_ALL +gboolean g_pollable_input_stream_is_readable (GPollableInputStream *stream); +GIO_AVAILABLE_IN_ALL +GSource *g_pollable_input_stream_create_source (GPollableInputStream *stream, + GCancellable *cancellable); + +GIO_AVAILABLE_IN_ALL +gssize g_pollable_input_stream_read_nonblocking (GPollableInputStream *stream, + void *buffer, + gsize count, + GCancellable *cancellable, + GError **error); + +G_END_DECLS + + +#endif /* __G_POLLABLE_INPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpollableoutputstream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpollableoutputstream.h new file mode 100644 index 000000000..a98bfa2a8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpollableoutputstream.h @@ -0,0 +1,127 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_POLLABLE_OUTPUT_STREAM_H__ +#define __G_POLLABLE_OUTPUT_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_POLLABLE_OUTPUT_STREAM (g_pollable_output_stream_get_type ()) +#define G_POLLABLE_OUTPUT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_POLLABLE_OUTPUT_STREAM, GPollableOutputStream)) +#define G_IS_POLLABLE_OUTPUT_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_POLLABLE_OUTPUT_STREAM)) +#define G_POLLABLE_OUTPUT_STREAM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_POLLABLE_OUTPUT_STREAM, GPollableOutputStreamInterface)) + +/** + * GPollableOutputStream: + * + * An interface for a #GOutputStream that can be polled for writeability. + * + * Since: 2.28 + */ +typedef struct _GPollableOutputStreamInterface GPollableOutputStreamInterface; + +/** + * GPollableOutputStreamInterface: + * @g_iface: The parent interface. + * @can_poll: Checks if the #GPollableOutputStream instance is actually pollable + * @is_writable: Checks if the stream is writable + * @create_source: Creates a #GSource to poll the stream + * @write_nonblocking: Does a non-blocking write or returns + * %G_IO_ERROR_WOULD_BLOCK + * @writev_nonblocking: Does a vectored non-blocking write, or returns + * %G_POLLABLE_RETURN_WOULD_BLOCK + * + * The interface for pollable output streams. + * + * The default implementation of @can_poll always returns %TRUE. + * + * The default implementation of @write_nonblocking calls + * g_pollable_output_stream_is_writable(), and then calls + * g_output_stream_write() if it returns %TRUE. This means you only + * need to override it if it is possible that your @is_writable + * implementation may return %TRUE when the stream is not actually + * writable. + * + * The default implementation of @writev_nonblocking calls + * g_pollable_output_stream_write_nonblocking() for each vector, and converts + * its return value and error (if set) to a #GPollableReturn. You should + * override this where possible to avoid having to allocate a #GError to return + * %G_IO_ERROR_WOULD_BLOCK. + * + * Since: 2.28 + */ +struct _GPollableOutputStreamInterface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + gboolean (*can_poll) (GPollableOutputStream *stream); + + gboolean (*is_writable) (GPollableOutputStream *stream); + GSource * (*create_source) (GPollableOutputStream *stream, + GCancellable *cancellable); + gssize (*write_nonblocking) (GPollableOutputStream *stream, + const void *buffer, + gsize count, + GError **error); + GPollableReturn (*writev_nonblocking) (GPollableOutputStream *stream, + const GOutputVector *vectors, + gsize n_vectors, + gsize *bytes_written, + GError **error); +}; + +GIO_AVAILABLE_IN_ALL +GType g_pollable_output_stream_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +gboolean g_pollable_output_stream_can_poll (GPollableOutputStream *stream); + +GIO_AVAILABLE_IN_ALL +gboolean g_pollable_output_stream_is_writable (GPollableOutputStream *stream); +GIO_AVAILABLE_IN_ALL +GSource *g_pollable_output_stream_create_source (GPollableOutputStream *stream, + GCancellable *cancellable); + +GIO_AVAILABLE_IN_ALL +gssize g_pollable_output_stream_write_nonblocking (GPollableOutputStream *stream, + const void *buffer, + gsize count, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_60 +GPollableReturn g_pollable_output_stream_writev_nonblocking (GPollableOutputStream *stream, + const GOutputVector *vectors, + gsize n_vectors, + gsize *bytes_written, + GCancellable *cancellable, + GError **error); + +G_END_DECLS + + +#endif /* __G_POLLABLE_OUTPUT_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpollableutils.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpollableutils.h new file mode 100644 index 000000000..879bcbbc2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpollableutils.h @@ -0,0 +1,66 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2012 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_POLLABLE_UTILS_H__ +#define __G_POLLABLE_UTILS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GIO_AVAILABLE_IN_ALL +GSource *g_pollable_source_new (GObject *pollable_stream); + +GIO_AVAILABLE_IN_2_34 +GSource *g_pollable_source_new_full (gpointer pollable_stream, + GSource *child_source, + GCancellable *cancellable); + +GIO_AVAILABLE_IN_2_34 +gssize g_pollable_stream_read (GInputStream *stream, + void *buffer, + gsize count, + gboolean blocking, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_34 +gssize g_pollable_stream_write (GOutputStream *stream, + const void *buffer, + gsize count, + gboolean blocking, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_34 +gboolean g_pollable_stream_write_all (GOutputStream *stream, + const void *buffer, + gsize count, + gboolean blocking, + gsize *bytes_written, + GCancellable *cancellable, + GError **error); + +G_END_DECLS + +#endif /* _G_POLLABLE_UTILS_H_ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpowerprofilemonitor.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpowerprofilemonitor.h new file mode 100644 index 000000000..e2c6aa75f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpowerprofilemonitor.h @@ -0,0 +1,65 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright 2019 Red Hat, Inc. + * Copyright 2021 Igalia S.L. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_POWER_PROFILE_MONITOR_H__ +#define __G_POWER_PROFILE_MONITOR_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * G_POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME: + * + * Extension point for power profile usage monitoring functionality. + * See [Extending GIO][extending-gio]. + * + * Since: 2.70 + */ +#define G_POWER_PROFILE_MONITOR_EXTENSION_POINT_NAME "gio-power-profile-monitor" + +#define G_TYPE_POWER_PROFILE_MONITOR (g_power_profile_monitor_get_type ()) +GIO_AVAILABLE_IN_2_70 +G_DECLARE_INTERFACE (GPowerProfileMonitor, g_power_profile_monitor, g, power_profile_monitor, GObject) + +#define G_POWER_PROFILE_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_POWER_PROFILE_MONITOR, GPowerProfileMonitor)) +#define G_IS_POWER_PROFILE_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_POWER_PROFILE_MONITOR)) +#define G_POWER_PROFILE_MONITOR_GET_INTERFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), G_TYPE_POWER_PROFILE_MONITOR, GPowerProfileMonitorInterface)) + +struct _GPowerProfileMonitorInterface +{ + /*< private >*/ + GTypeInterface g_iface; +}; + +GIO_AVAILABLE_IN_2_70 +GPowerProfileMonitor *g_power_profile_monitor_dup_default (void); + +GIO_AVAILABLE_IN_2_70 +gboolean g_power_profile_monitor_get_power_saver_enabled (GPowerProfileMonitor *monitor); + +G_END_DECLS + +#endif /* __G_POWER_PROFILE_MONITOR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpropertyaction.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpropertyaction.h new file mode 100644 index 000000000..f746e741f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gpropertyaction.h @@ -0,0 +1,49 @@ +/* + * Copyright © 2013 Canonical Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_PROPERTY_ACTION_H__ +#define __G_PROPERTY_ACTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_PROPERTY_ACTION (g_property_action_get_type ()) +#define G_PROPERTY_ACTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_PROPERTY_ACTION, GPropertyAction)) +#define G_IS_PROPERTY_ACTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_PROPERTY_ACTION)) + +GIO_AVAILABLE_IN_2_38 +GType g_property_action_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_38 +GPropertyAction * g_property_action_new (const gchar *name, + gpointer object, + const gchar *property_name); + +G_END_DECLS + +#endif /* __G_PROPERTY_ACTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gproxy.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gproxy.h new file mode 100644 index 000000000..de82410f9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gproxy.h @@ -0,0 +1,130 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ + +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Collabora Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Nicolas Dufresne + */ + +#ifndef __G_PROXY_H__ +#define __G_PROXY_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_PROXY (g_proxy_get_type ()) +#define G_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_PROXY, GProxy)) +#define G_IS_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_PROXY)) +#define G_PROXY_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_PROXY, GProxyInterface)) + +/** + * G_PROXY_EXTENSION_POINT_NAME: + * + * Extension point for proxy functionality. + * See [Extending GIO][extending-gio]. + * + * Since: 2.26 + */ +#define G_PROXY_EXTENSION_POINT_NAME "gio-proxy" + +/** + * GProxy: + * + * Interface that handles proxy connection and payload. + * + * Since: 2.26 + */ +typedef struct _GProxyInterface GProxyInterface; + +/** + * GProxyInterface: + * @g_iface: The parent interface. + * @connect: Connect to proxy server and wrap (if required) the #connection + * to handle payload. + * @connect_async: Same as connect() but asynchronous. + * @connect_finish: Returns the result of connect_async() + * @supports_hostname: Returns whether the proxy supports hostname lookups. + * + * Provides an interface for handling proxy connection and payload. + * + * Since: 2.26 + */ +struct _GProxyInterface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + + GIOStream * (* connect) (GProxy *proxy, + GIOStream *connection, + GProxyAddress *proxy_address, + GCancellable *cancellable, + GError **error); + + void (* connect_async) (GProxy *proxy, + GIOStream *connection, + GProxyAddress *proxy_address, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + + GIOStream * (* connect_finish) (GProxy *proxy, + GAsyncResult *result, + GError **error); + + gboolean (* supports_hostname) (GProxy *proxy); +}; + +GIO_AVAILABLE_IN_ALL +GType g_proxy_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GProxy *g_proxy_get_default_for_protocol (const gchar *protocol); + +GIO_AVAILABLE_IN_ALL +GIOStream *g_proxy_connect (GProxy *proxy, + GIOStream *connection, + GProxyAddress *proxy_address, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_proxy_connect_async (GProxy *proxy, + GIOStream *connection, + GProxyAddress *proxy_address, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_ALL +GIOStream *g_proxy_connect_finish (GProxy *proxy, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_proxy_supports_hostname (GProxy *proxy); + +G_END_DECLS + +#endif /* __G_PROXY_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gproxyaddress.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gproxyaddress.h new file mode 100644 index 000000000..a0176d657 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gproxyaddress.h @@ -0,0 +1,88 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Collabora, Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Nicolas Dufresne + */ + +#ifndef __G_PROXY_ADDRESS_H__ +#define __G_PROXY_ADDRESS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_PROXY_ADDRESS (g_proxy_address_get_type ()) +#define G_PROXY_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_PROXY_ADDRESS, GProxyAddress)) +#define G_PROXY_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_PROXY_ADDRESS, GProxyAddressClass)) +#define G_IS_PROXY_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_PROXY_ADDRESS)) +#define G_IS_PROXY_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_PROXY_ADDRESS)) +#define G_PROXY_ADDRESS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_PROXY_ADDRESS, GProxyAddressClass)) + +typedef struct _GProxyAddressClass GProxyAddressClass; +typedef struct _GProxyAddressPrivate GProxyAddressPrivate; + +struct _GProxyAddress +{ + GInetSocketAddress parent_instance; + + /*< private >*/ + GProxyAddressPrivate *priv; +}; + +struct _GProxyAddressClass +{ + GInetSocketAddressClass parent_class; +}; + + +GIO_AVAILABLE_IN_ALL +GType g_proxy_address_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GSocketAddress *g_proxy_address_new (GInetAddress *inetaddr, + guint16 port, + const gchar *protocol, + const gchar *dest_hostname, + guint16 dest_port, + const gchar *username, + const gchar *password); + +GIO_AVAILABLE_IN_ALL +const gchar *g_proxy_address_get_protocol (GProxyAddress *proxy); +GIO_AVAILABLE_IN_2_34 +const gchar *g_proxy_address_get_destination_protocol (GProxyAddress *proxy); +GIO_AVAILABLE_IN_ALL +const gchar *g_proxy_address_get_destination_hostname (GProxyAddress *proxy); +GIO_AVAILABLE_IN_ALL +guint16 g_proxy_address_get_destination_port (GProxyAddress *proxy); +GIO_AVAILABLE_IN_ALL +const gchar *g_proxy_address_get_username (GProxyAddress *proxy); +GIO_AVAILABLE_IN_ALL +const gchar *g_proxy_address_get_password (GProxyAddress *proxy); + +GIO_AVAILABLE_IN_2_34 +const gchar *g_proxy_address_get_uri (GProxyAddress *proxy); + +G_END_DECLS + +#endif /* __G_PROXY_ADDRESS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gproxyaddressenumerator.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gproxyaddressenumerator.h new file mode 100644 index 000000000..b8d36a685 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gproxyaddressenumerator.h @@ -0,0 +1,83 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Collabora, Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Nicolas Dufresne + */ + +#ifndef __G_PROXY_ADDRESS_ENUMERATOR_H__ +#define __G_PROXY_ADDRESS_ENUMERATOR_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_PROXY_ADDRESS_ENUMERATOR (g_proxy_address_enumerator_get_type ()) +#define G_PROXY_ADDRESS_ENUMERATOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_PROXY_ADDRESS_ENUMERATOR, GProxyAddressEnumerator)) +#define G_PROXY_ADDRESS_ENUMERATOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_PROXY_ADDRESS_ENUMERATOR, GProxyAddressEnumeratorClass)) +#define G_IS_PROXY_ADDRESS_ENUMERATOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_PROXY_ADDRESS_ENUMERATOR)) +#define G_IS_PROXY_ADDRESS_ENUMERATOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_PROXY_ADDRESS_ENUMERATOR)) +#define G_PROXY_ADDRESS_ENUMERATOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_PROXY_ADDRESS_ENUMERATOR, GProxyAddressEnumeratorClass)) + +/** + * GProxyAddressEnumerator: + * + * A subclass of #GSocketAddressEnumerator that takes another address + * enumerator and wraps each of its results in a #GProxyAddress as + * directed by the default #GProxyResolver. + */ + +typedef struct _GProxyAddressEnumeratorClass GProxyAddressEnumeratorClass; +typedef struct _GProxyAddressEnumeratorPrivate GProxyAddressEnumeratorPrivate; + +struct _GProxyAddressEnumerator +{ + /*< private >*/ + GSocketAddressEnumerator parent_instance; + GProxyAddressEnumeratorPrivate *priv; +}; + +/** + * GProxyAddressEnumeratorClass: + * + * Class structure for #GProxyAddressEnumerator. + */ +struct _GProxyAddressEnumeratorClass +{ + /*< private >*/ + GSocketAddressEnumeratorClass parent_class; + + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); + void (*_g_reserved6) (void); + void (*_g_reserved7) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_proxy_address_enumerator_get_type (void) G_GNUC_CONST; + +G_END_DECLS + +#endif /* __G_PROXY_ADDRESS_ENUMERATOR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gproxyresolver.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gproxyresolver.h new file mode 100644 index 000000000..d564c990b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gproxyresolver.h @@ -0,0 +1,97 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Collabora, Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Nicolas Dufresne + */ + +#ifndef __G_PROXY_RESOLVER_H__ +#define __G_PROXY_RESOLVER_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_PROXY_RESOLVER (g_proxy_resolver_get_type ()) +#define G_PROXY_RESOLVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_PROXY_RESOLVER, GProxyResolver)) +#define G_IS_PROXY_RESOLVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_PROXY_RESOLVER)) +#define G_PROXY_RESOLVER_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), G_TYPE_PROXY_RESOLVER, GProxyResolverInterface)) + +/** + * G_PROXY_RESOLVER_EXTENSION_POINT_NAME: + * + * Extension point for proxy resolving functionality. + * See [Extending GIO][extending-gio]. + */ +#define G_PROXY_RESOLVER_EXTENSION_POINT_NAME "gio-proxy-resolver" + +typedef struct _GProxyResolverInterface GProxyResolverInterface; + +struct _GProxyResolverInterface { + GTypeInterface g_iface; + + /* Virtual Table */ + gboolean (* is_supported) (GProxyResolver *resolver); + + gchar ** (* lookup) (GProxyResolver *resolver, + const gchar *uri, + GCancellable *cancellable, + GError **error); + + void (* lookup_async) (GProxyResolver *resolver, + const gchar *uri, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + + gchar ** (* lookup_finish) (GProxyResolver *resolver, + GAsyncResult *result, + GError **error); +}; + +GIO_AVAILABLE_IN_ALL +GType g_proxy_resolver_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GProxyResolver *g_proxy_resolver_get_default (void); + +GIO_AVAILABLE_IN_ALL +gboolean g_proxy_resolver_is_supported (GProxyResolver *resolver); +GIO_AVAILABLE_IN_ALL +gchar **g_proxy_resolver_lookup (GProxyResolver *resolver, + const gchar *uri, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_proxy_resolver_lookup_async (GProxyResolver *resolver, + const gchar *uri, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gchar **g_proxy_resolver_lookup_finish (GProxyResolver *resolver, + GAsyncResult *result, + GError **error); + + +G_END_DECLS + +#endif /* __G_PROXY_RESOLVER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gremoteactiongroup.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gremoteactiongroup.h new file mode 100644 index 000000000..fb0847efc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gremoteactiongroup.h @@ -0,0 +1,77 @@ +/* + * Copyright © 2011 Canonical Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_REMOTE_ACTION_GROUP_H__ +#define __G_REMOTE_ACTION_GROUP_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + + +#define G_TYPE_REMOTE_ACTION_GROUP (g_remote_action_group_get_type ()) +#define G_REMOTE_ACTION_GROUP(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_REMOTE_ACTION_GROUP, GRemoteActionGroup)) +#define G_IS_REMOTE_ACTION_GROUP(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_REMOTE_ACTION_GROUP)) +#define G_REMOTE_ACTION_GROUP_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), \ + G_TYPE_REMOTE_ACTION_GROUP, \ + GRemoteActionGroupInterface)) + +typedef struct _GRemoteActionGroupInterface GRemoteActionGroupInterface; + +struct _GRemoteActionGroupInterface +{ + GTypeInterface g_iface; + + void (* activate_action_full) (GRemoteActionGroup *remote, + const gchar *action_name, + GVariant *parameter, + GVariant *platform_data); + + void (* change_action_state_full) (GRemoteActionGroup *remote, + const gchar *action_name, + GVariant *value, + GVariant *platform_data); +}; + +GIO_AVAILABLE_IN_2_32 +GType g_remote_action_group_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_32 +void g_remote_action_group_activate_action_full (GRemoteActionGroup *remote, + const gchar *action_name, + GVariant *parameter, + GVariant *platform_data); + +GIO_AVAILABLE_IN_2_32 +void g_remote_action_group_change_action_state_full (GRemoteActionGroup *remote, + const gchar *action_name, + GVariant *value, + GVariant *platform_data); + +G_END_DECLS + +#endif /* __G_REMOTE_ACTION_GROUP_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gresolver.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gresolver.h new file mode 100644 index 000000000..cbcbdecb5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gresolver.h @@ -0,0 +1,299 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2008 Red Hat, Inc. + * Copyright (C) 2018 Igalia S.L. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_RESOLVER_H__ +#define __G_RESOLVER_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_RESOLVER (g_resolver_get_type ()) +#define G_RESOLVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_RESOLVER, GResolver)) +#define G_RESOLVER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_RESOLVER, GResolverClass)) +#define G_IS_RESOLVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_RESOLVER)) +#define G_IS_RESOLVER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_RESOLVER)) +#define G_RESOLVER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_RESOLVER, GResolverClass)) + +typedef struct _GResolverPrivate GResolverPrivate; +typedef struct _GResolverClass GResolverClass; + +struct _GResolver { + GObject parent_instance; + + GResolverPrivate *priv; +}; + +/** + * GResolverNameLookupFlags: + * @G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT: default behavior (same as g_resolver_lookup_by_name()) + * @G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY: only resolve ipv4 addresses + * @G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY: only resolve ipv6 addresses + * + * Flags to modify lookup behavior. + * + * Since: 2.60 + */ +typedef enum { + G_RESOLVER_NAME_LOOKUP_FLAGS_DEFAULT = 0, + G_RESOLVER_NAME_LOOKUP_FLAGS_IPV4_ONLY = 1 << 0, + G_RESOLVER_NAME_LOOKUP_FLAGS_IPV6_ONLY = 1 << 1, +} GResolverNameLookupFlags; + +struct _GResolverClass { + GObjectClass parent_class; + + /* Signals */ + void ( *reload) (GResolver *resolver); + + /* Virtual methods */ + GList * ( *lookup_by_name) (GResolver *resolver, + const gchar *hostname, + GCancellable *cancellable, + GError **error); + void ( *lookup_by_name_async) (GResolver *resolver, + const gchar *hostname, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GList * ( *lookup_by_name_finish) (GResolver *resolver, + GAsyncResult *result, + GError **error); + + gchar * ( *lookup_by_address) (GResolver *resolver, + GInetAddress *address, + GCancellable *cancellable, + GError **error); + void ( *lookup_by_address_async) (GResolver *resolver, + GInetAddress *address, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gchar * ( *lookup_by_address_finish) (GResolver *resolver, + GAsyncResult *result, + GError **error); + + GList * ( *lookup_service) (GResolver *resolver, + const gchar *rrname, + GCancellable *cancellable, + GError **error); + void ( *lookup_service_async) (GResolver *resolver, + const gchar *rrname, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GList * ( *lookup_service_finish) (GResolver *resolver, + GAsyncResult *result, + GError **error); + + GList * ( *lookup_records) (GResolver *resolver, + const gchar *rrname, + GResolverRecordType record_type, + GCancellable *cancellable, + GError **error); + + void ( *lookup_records_async) (GResolver *resolver, + const gchar *rrname, + GResolverRecordType record_type, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + + GList * ( *lookup_records_finish) (GResolver *resolver, + GAsyncResult *result, + GError **error); + /** + * GResolverClass::lookup_by_name_with_flags_async: + * @resolver: a #GResolver + * @hostname: the hostname to resolve + * @flags: extra #GResolverNameLookupFlags to modify the lookup + * @cancellable: (nullable): a #GCancellable + * @callback: (scope async): a #GAsyncReadyCallback to call when completed + * @user_data: data to pass to @callback + * + * Asynchronous version of GResolverClass::lookup_by_name_with_flags + * + * GResolverClass::lookup_by_name_with_flags_finish will be called to get + * the result. + * + * Since: 2.60 + */ + void ( *lookup_by_name_with_flags_async) (GResolver *resolver, + const gchar *hostname, + GResolverNameLookupFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + /** + * GResolverClass::lookup_by_name_with_flags_finish: + * @resolver: a #GResolver + * @result: a #GAsyncResult + * @error: (nullable): a pointer to a %NULL #GError + * + * Gets the result from GResolverClass::lookup_by_name_with_flags_async + * + * Returns: (element-type GInetAddress) (transfer full): List of #GInetAddress. + * Since: 2.60 + */ + GList * ( *lookup_by_name_with_flags_finish) (GResolver *resolver, + GAsyncResult *result, + GError **error); + /** + * GResolverClass::lookup_by_name_with_flags: + * @resolver: a #GResolver + * @hostname: the hostname to resolve + * @flags: extra #GResolverNameLookupFlags to modify the lookup + * @cancellable: (nullable): a #GCancellable + * @error: (nullable): a pointer to a %NULL #GError + * + * This is identical to GResolverClass::lookup_by_name except it takes + * @flags which modifies the behavior of the lookup. See #GResolverNameLookupFlags + * for more details. + * + * Returns: (element-type GInetAddress) (transfer full): List of #GInetAddress. + * Since: 2.60 + */ + GList * ( *lookup_by_name_with_flags) (GResolver *resolver, + const gchar *hostname, + GResolverNameLookupFlags flags, + GCancellable *cancellable, + GError **error); + +}; + +GIO_AVAILABLE_IN_ALL +GType g_resolver_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GResolver *g_resolver_get_default (void); +GIO_AVAILABLE_IN_ALL +void g_resolver_set_default (GResolver *resolver); +GIO_AVAILABLE_IN_ALL +GList *g_resolver_lookup_by_name (GResolver *resolver, + const gchar *hostname, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_resolver_lookup_by_name_async (GResolver *resolver, + const gchar *hostname, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GList *g_resolver_lookup_by_name_finish (GResolver *resolver, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_2_60 +void g_resolver_lookup_by_name_with_flags_async (GResolver *resolver, + const gchar *hostname, + GResolverNameLookupFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_60 +GList *g_resolver_lookup_by_name_with_flags_finish (GResolver *resolver, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_2_60 +GList *g_resolver_lookup_by_name_with_flags (GResolver *resolver, + const gchar *hostname, + GResolverNameLookupFlags flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_resolver_free_addresses (GList *addresses); +GIO_AVAILABLE_IN_ALL +gchar *g_resolver_lookup_by_address (GResolver *resolver, + GInetAddress *address, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_resolver_lookup_by_address_async (GResolver *resolver, + GInetAddress *address, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gchar *g_resolver_lookup_by_address_finish (GResolver *resolver, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +GList *g_resolver_lookup_service (GResolver *resolver, + const gchar *service, + const gchar *protocol, + const gchar *domain, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_resolver_lookup_service_async (GResolver *resolver, + const gchar *service, + const gchar *protocol, + const gchar *domain, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GList *g_resolver_lookup_service_finish (GResolver *resolver, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_2_34 +GList *g_resolver_lookup_records (GResolver *resolver, + const gchar *rrname, + GResolverRecordType record_type, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_34 +void g_resolver_lookup_records_async (GResolver *resolver, + const gchar *rrname, + GResolverRecordType record_type, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_34 +GList *g_resolver_lookup_records_finish (GResolver *resolver, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_resolver_free_targets (GList *targets); + +GIO_AVAILABLE_IN_2_78 +unsigned g_resolver_get_timeout (GResolver *resolver); +GIO_AVAILABLE_IN_2_78 +void g_resolver_set_timeout (GResolver *resolver, + unsigned timeout_ms); + +/** + * G_RESOLVER_ERROR: + * + * Error domain for #GResolver. Errors in this domain will be from the + * #GResolverError enumeration. See #GError for more information on + * error domains. + */ +#define G_RESOLVER_ERROR (g_resolver_error_quark ()) +GIO_AVAILABLE_IN_ALL +GQuark g_resolver_error_quark (void); + +G_END_DECLS + +#endif /* __G_RESOLVER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gresource.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gresource.h new file mode 100644 index 000000000..f9853aa28 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gresource.h @@ -0,0 +1,132 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_RESOURCE_H__ +#define __G_RESOURCE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * G_TYPE_RESOURCE: + * + * The #GType for #GResource. + */ +#define G_TYPE_RESOURCE (g_resource_get_type ()) + + +/** + * G_RESOURCE_ERROR: + * + * Error domain for #GResource. Errors in this domain will be from the + * #GResourceError enumeration. See #GError for more information on + * error domains. + */ +#define G_RESOURCE_ERROR (g_resource_error_quark ()) +GIO_AVAILABLE_IN_2_32 +GQuark g_resource_error_quark (void); + +typedef struct _GStaticResource GStaticResource; + +struct _GStaticResource { + /*< private >*/ + const guint8 *data; + gsize data_len; + GResource *resource; + GStaticResource *next; + gpointer padding; +}; + +GIO_AVAILABLE_IN_2_32 +GType g_resource_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_2_32 +GResource * g_resource_new_from_data (GBytes *data, + GError **error); +GIO_AVAILABLE_IN_2_32 +GResource * g_resource_ref (GResource *resource); +GIO_AVAILABLE_IN_2_32 +void g_resource_unref (GResource *resource); +GIO_AVAILABLE_IN_2_32 +GResource * g_resource_load (const gchar *filename, + GError **error); +GIO_AVAILABLE_IN_2_32 +GInputStream *g_resource_open_stream (GResource *resource, + const char *path, + GResourceLookupFlags lookup_flags, + GError **error); +GIO_AVAILABLE_IN_2_32 +GBytes * g_resource_lookup_data (GResource *resource, + const char *path, + GResourceLookupFlags lookup_flags, + GError **error); +GIO_AVAILABLE_IN_2_32 +char ** g_resource_enumerate_children (GResource *resource, + const char *path, + GResourceLookupFlags lookup_flags, + GError **error); +GIO_AVAILABLE_IN_2_32 +gboolean g_resource_get_info (GResource *resource, + const char *path, + GResourceLookupFlags lookup_flags, + gsize *size, + guint32 *flags, + GError **error); + +GIO_AVAILABLE_IN_2_32 +void g_resources_register (GResource *resource); +GIO_AVAILABLE_IN_2_32 +void g_resources_unregister (GResource *resource); +GIO_AVAILABLE_IN_2_32 +GInputStream *g_resources_open_stream (const char *path, + GResourceLookupFlags lookup_flags, + GError **error); +GIO_AVAILABLE_IN_2_32 +GBytes * g_resources_lookup_data (const char *path, + GResourceLookupFlags lookup_flags, + GError **error); +GIO_AVAILABLE_IN_2_32 +char ** g_resources_enumerate_children (const char *path, + GResourceLookupFlags lookup_flags, + GError **error); +GIO_AVAILABLE_IN_2_32 +gboolean g_resources_get_info (const char *path, + GResourceLookupFlags lookup_flags, + gsize *size, + guint32 *flags, + GError **error); + + +GIO_AVAILABLE_IN_2_32 +void g_static_resource_init (GStaticResource *static_resource); +GIO_AVAILABLE_IN_2_32 +void g_static_resource_fini (GStaticResource *static_resource); +GIO_AVAILABLE_IN_2_32 +GResource *g_static_resource_get_resource (GStaticResource *static_resource); + +G_END_DECLS + +#endif /* __G_RESOURCE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gseekable.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gseekable.h new file mode 100644 index 000000000..34510de6f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gseekable.h @@ -0,0 +1,105 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_SEEKABLE_H__ +#define __G_SEEKABLE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SEEKABLE (g_seekable_get_type ()) +#define G_SEEKABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SEEKABLE, GSeekable)) +#define G_IS_SEEKABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SEEKABLE)) +#define G_SEEKABLE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_SEEKABLE, GSeekableIface)) + +/** + * GSeekable: + * + * Seek object for streaming operations. + **/ +typedef struct _GSeekableIface GSeekableIface; + +/** + * GSeekableIface: + * @g_iface: The parent interface. + * @tell: Tells the current location within a stream. + * @can_seek: Checks if seeking is supported by the stream. + * @seek: Seeks to a location within a stream. + * @can_truncate: Checks if truncation is supported by the stream. + * @truncate_fn: Truncates a stream. + * + * Provides an interface for implementing seekable functionality on I/O Streams. + **/ +struct _GSeekableIface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + + goffset (* tell) (GSeekable *seekable); + + gboolean (* can_seek) (GSeekable *seekable); + gboolean (* seek) (GSeekable *seekable, + goffset offset, + GSeekType type, + GCancellable *cancellable, + GError **error); + + gboolean (* can_truncate) (GSeekable *seekable); + gboolean (* truncate_fn) (GSeekable *seekable, + goffset offset, + GCancellable *cancellable, + GError **error); + + /* TODO: Async seek/truncate */ +}; + +GIO_AVAILABLE_IN_ALL +GType g_seekable_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +goffset g_seekable_tell (GSeekable *seekable); +GIO_AVAILABLE_IN_ALL +gboolean g_seekable_can_seek (GSeekable *seekable); +GIO_AVAILABLE_IN_ALL +gboolean g_seekable_seek (GSeekable *seekable, + goffset offset, + GSeekType type, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_seekable_can_truncate (GSeekable *seekable); +GIO_AVAILABLE_IN_ALL +gboolean g_seekable_truncate (GSeekable *seekable, + goffset offset, + GCancellable *cancellable, + GError **error); + +G_END_DECLS + + +#endif /* __G_SEEKABLE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsettings.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsettings.h new file mode 100644 index 000000000..8a9d2b5c7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsettings.h @@ -0,0 +1,347 @@ +/* + * Copyright © 2009, 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#ifndef __G_SETTINGS_H__ +#define __G_SETTINGS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_SETTINGS (g_settings_get_type ()) +#define G_SETTINGS(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_SETTINGS, GSettings)) +#define G_SETTINGS_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_SETTINGS, GSettingsClass)) +#define G_IS_SETTINGS(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_SETTINGS)) +#define G_IS_SETTINGS_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_SETTINGS)) +#define G_SETTINGS_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_SETTINGS, GSettingsClass)) + +typedef struct _GSettingsPrivate GSettingsPrivate; +typedef struct _GSettingsClass GSettingsClass; + +struct _GSettingsClass +{ + GObjectClass parent_class; + + /* Signals */ + void (*writable_changed) (GSettings *settings, + const gchar *key); + void (*changed) (GSettings *settings, + const gchar *key); + gboolean (*writable_change_event) (GSettings *settings, + GQuark key); + gboolean (*change_event) (GSettings *settings, + const GQuark *keys, + gint n_keys); + + gpointer padding[20]; +}; + +struct _GSettings +{ + GObject parent_instance; + GSettingsPrivate *priv; +}; + + +GIO_AVAILABLE_IN_ALL +GType g_settings_get_type (void); + +GIO_DEPRECATED_IN_2_40_FOR(g_settings_schema_source_list_schemas) +const gchar * const * g_settings_list_schemas (void); +GIO_DEPRECATED_IN_2_40_FOR(g_settings_schema_source_list_schemas) +const gchar * const * g_settings_list_relocatable_schemas (void); +GIO_AVAILABLE_IN_ALL +GSettings * g_settings_new (const gchar *schema_id); +GIO_AVAILABLE_IN_ALL +GSettings * g_settings_new_with_path (const gchar *schema_id, + const gchar *path); +GIO_AVAILABLE_IN_ALL +GSettings * g_settings_new_with_backend (const gchar *schema_id, + GSettingsBackend *backend); +GIO_AVAILABLE_IN_ALL +GSettings * g_settings_new_with_backend_and_path (const gchar *schema_id, + GSettingsBackend *backend, + const gchar *path); +GIO_AVAILABLE_IN_2_32 +GSettings * g_settings_new_full (GSettingsSchema *schema, + GSettingsBackend *backend, + const gchar *path); +GIO_AVAILABLE_IN_ALL +gchar ** g_settings_list_children (GSettings *settings); +GIO_DEPRECATED_IN_2_46_FOR(g_settings_schema_list_keys) +gchar ** g_settings_list_keys (GSettings *settings); +GIO_DEPRECATED_IN_2_40_FOR(g_settings_schema_key_get_range) +GVariant * g_settings_get_range (GSettings *settings, + const gchar *key); +GIO_DEPRECATED_IN_2_40_FOR(g_settings_schema_key_range_check) +gboolean g_settings_range_check (GSettings *settings, + const gchar *key, + GVariant *value); + +GIO_AVAILABLE_IN_ALL +gboolean g_settings_set_value (GSettings *settings, + const gchar *key, + GVariant *value); +GIO_AVAILABLE_IN_ALL +GVariant * g_settings_get_value (GSettings *settings, + const gchar *key); + +GIO_AVAILABLE_IN_2_40 +GVariant * g_settings_get_user_value (GSettings *settings, + const gchar *key); +GIO_AVAILABLE_IN_2_40 +GVariant * g_settings_get_default_value (GSettings *settings, + const gchar *key); + +GIO_AVAILABLE_IN_ALL +gboolean g_settings_set (GSettings *settings, + const gchar *key, + const gchar *format, + ...); +GIO_AVAILABLE_IN_ALL +void g_settings_get (GSettings *settings, + const gchar *key, + const gchar *format, + ...); +GIO_AVAILABLE_IN_ALL +void g_settings_reset (GSettings *settings, + const gchar *key); + +GIO_AVAILABLE_IN_ALL +gint g_settings_get_int (GSettings *settings, + const gchar *key); +GIO_AVAILABLE_IN_ALL +gboolean g_settings_set_int (GSettings *settings, + const gchar *key, + gint value); +GIO_AVAILABLE_IN_2_50 +gint64 g_settings_get_int64 (GSettings *settings, + const gchar *key); +GIO_AVAILABLE_IN_2_50 +gboolean g_settings_set_int64 (GSettings *settings, + const gchar *key, + gint64 value); +GIO_AVAILABLE_IN_2_32 +guint g_settings_get_uint (GSettings *settings, + const gchar *key); +GIO_AVAILABLE_IN_2_32 +gboolean g_settings_set_uint (GSettings *settings, + const gchar *key, + guint value); +GIO_AVAILABLE_IN_2_50 +guint64 g_settings_get_uint64 (GSettings *settings, + const gchar *key); +GIO_AVAILABLE_IN_2_50 +gboolean g_settings_set_uint64 (GSettings *settings, + const gchar *key, + guint64 value); +GIO_AVAILABLE_IN_ALL +gchar * g_settings_get_string (GSettings *settings, + const gchar *key); +GIO_AVAILABLE_IN_ALL +gboolean g_settings_set_string (GSettings *settings, + const gchar *key, + const gchar *value); +GIO_AVAILABLE_IN_ALL +gboolean g_settings_get_boolean (GSettings *settings, + const gchar *key); +GIO_AVAILABLE_IN_ALL +gboolean g_settings_set_boolean (GSettings *settings, + const gchar *key, + gboolean value); +GIO_AVAILABLE_IN_ALL +gdouble g_settings_get_double (GSettings *settings, + const gchar *key); +GIO_AVAILABLE_IN_ALL +gboolean g_settings_set_double (GSettings *settings, + const gchar *key, + gdouble value); +GIO_AVAILABLE_IN_ALL +gchar ** g_settings_get_strv (GSettings *settings, + const gchar *key); +GIO_AVAILABLE_IN_ALL +gboolean g_settings_set_strv (GSettings *settings, + const gchar *key, + const gchar *const *value); +GIO_AVAILABLE_IN_ALL +gint g_settings_get_enum (GSettings *settings, + const gchar *key); +GIO_AVAILABLE_IN_ALL +gboolean g_settings_set_enum (GSettings *settings, + const gchar *key, + gint value); +GIO_AVAILABLE_IN_ALL +guint g_settings_get_flags (GSettings *settings, + const gchar *key); +GIO_AVAILABLE_IN_ALL +gboolean g_settings_set_flags (GSettings *settings, + const gchar *key, + guint value); +GIO_AVAILABLE_IN_ALL +GSettings * g_settings_get_child (GSettings *settings, + const gchar *name); + +GIO_AVAILABLE_IN_ALL +gboolean g_settings_is_writable (GSettings *settings, + const gchar *name); + +GIO_AVAILABLE_IN_ALL +void g_settings_delay (GSettings *settings); +GIO_AVAILABLE_IN_ALL +void g_settings_apply (GSettings *settings); +GIO_AVAILABLE_IN_ALL +void g_settings_revert (GSettings *settings); +GIO_AVAILABLE_IN_ALL +gboolean g_settings_get_has_unapplied (GSettings *settings); +GIO_AVAILABLE_IN_ALL +void g_settings_sync (void); + +/** + * GSettingsBindSetMapping: + * @value: a #GValue containing the property value to map + * @expected_type: the #GVariantType to create + * @user_data: user data that was specified when the binding was created + * + * The type for the function that is used to convert an object property + * value to a #GVariant for storing it in #GSettings. + * + * Returns: a new #GVariant holding the data from @value, + * or %NULL in case of an error + */ +typedef GVariant * (*GSettingsBindSetMapping) (const GValue *value, + const GVariantType *expected_type, + gpointer user_data); + +/** + * GSettingsBindGetMapping: + * @value: return location for the property value + * @variant: the #GVariant + * @user_data: user data that was specified when the binding was created + * + * The type for the function that is used to convert from #GSettings to + * an object property. The @value is already initialized to hold values + * of the appropriate type. + * + * Returns: %TRUE if the conversion succeeded, %FALSE in case of an error + */ +typedef gboolean (*GSettingsBindGetMapping) (GValue *value, + GVariant *variant, + gpointer user_data); + +/** + * GSettingsGetMapping: + * @value: the #GVariant to map, or %NULL + * @result: (out): the result of the mapping + * @user_data: (closure): the user data that was passed to + * g_settings_get_mapped() + * + * The type of the function that is used to convert from a value stored + * in a #GSettings to a value that is useful to the application. + * + * If the value is successfully mapped, the result should be stored at + * @result and %TRUE returned. If mapping fails (for example, if @value + * is not in the right format) then %FALSE should be returned. + * + * If @value is %NULL then it means that the mapping function is being + * given a "last chance" to successfully return a valid value. %TRUE + * must be returned in this case. + * + * Returns: %TRUE if the conversion succeeded, %FALSE in case of an error + **/ +typedef gboolean (*GSettingsGetMapping) (GVariant *value, + gpointer *result, + gpointer user_data); + +/** + * GSettingsBindFlags: + * @G_SETTINGS_BIND_DEFAULT: Equivalent to `G_SETTINGS_BIND_GET|G_SETTINGS_BIND_SET` + * @G_SETTINGS_BIND_GET: Update the #GObject property when the setting changes. + * It is an error to use this flag if the property is not writable. + * @G_SETTINGS_BIND_SET: Update the setting when the #GObject property changes. + * It is an error to use this flag if the property is not readable. + * @G_SETTINGS_BIND_NO_SENSITIVITY: Do not try to bind a "sensitivity" property to the writability of the setting + * @G_SETTINGS_BIND_GET_NO_CHANGES: When set in addition to %G_SETTINGS_BIND_GET, set the #GObject property + * value initially from the setting, but do not listen for changes of the setting + * @G_SETTINGS_BIND_INVERT_BOOLEAN: When passed to g_settings_bind(), uses a pair of mapping functions that invert + * the boolean value when mapping between the setting and the property. The setting and property must both + * be booleans. You cannot pass this flag to g_settings_bind_with_mapping(). + * + * Flags used when creating a binding. These flags determine in which + * direction the binding works. The default is to synchronize in both + * directions. + */ +typedef enum +{ + G_SETTINGS_BIND_DEFAULT, + G_SETTINGS_BIND_GET = (1<<0), + G_SETTINGS_BIND_SET = (1<<1), + G_SETTINGS_BIND_NO_SENSITIVITY = (1<<2), + G_SETTINGS_BIND_GET_NO_CHANGES = (1<<3), + G_SETTINGS_BIND_INVERT_BOOLEAN = (1<<4) +} GSettingsBindFlags; + +GIO_AVAILABLE_IN_ALL +void g_settings_bind (GSettings *settings, + const gchar *key, + gpointer object, + const gchar *property, + GSettingsBindFlags flags); +GIO_AVAILABLE_IN_ALL +void g_settings_bind_with_mapping (GSettings *settings, + const gchar *key, + gpointer object, + const gchar *property, + GSettingsBindFlags flags, + GSettingsBindGetMapping get_mapping, + GSettingsBindSetMapping set_mapping, + gpointer user_data, + GDestroyNotify destroy); +GIO_AVAILABLE_IN_ALL +void g_settings_bind_writable (GSettings *settings, + const gchar *key, + gpointer object, + const gchar *property, + gboolean inverted); +GIO_AVAILABLE_IN_ALL +void g_settings_unbind (gpointer object, + const gchar *property); + +GIO_AVAILABLE_IN_2_32 +GAction * g_settings_create_action (GSettings *settings, + const gchar *key); + +GIO_AVAILABLE_IN_ALL +gpointer g_settings_get_mapped (GSettings *settings, + const gchar *key, + GSettingsGetMapping mapping, + gpointer user_data); + +G_END_DECLS + +#endif /* __G_SETTINGS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsettingsbackend.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsettingsbackend.h new file mode 100644 index 000000000..f579bf66f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsettingsbackend.h @@ -0,0 +1,176 @@ +/* + * Copyright © 2009, 2010 Codethink Limited + * Copyright © 2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Authors: Ryan Lortie + * Matthias Clasen + */ + +#ifndef __G_SETTINGS_BACKEND_H__ +#define __G_SETTINGS_BACKEND_H__ + +#if !defined (G_SETTINGS_ENABLE_BACKEND) && !defined (GIO_COMPILATION) +#error "You must define G_SETTINGS_ENABLE_BACKEND before including ." +#endif + +#define __GIO_GIO_H_INSIDE__ +#include +#undef __GIO_GIO_H_INSIDE__ + +G_BEGIN_DECLS + +#define G_TYPE_SETTINGS_BACKEND (g_settings_backend_get_type ()) +#define G_SETTINGS_BACKEND(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_SETTINGS_BACKEND, GSettingsBackend)) +#define G_SETTINGS_BACKEND_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_SETTINGS_BACKEND, GSettingsBackendClass)) +#define G_IS_SETTINGS_BACKEND(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_SETTINGS_BACKEND)) +#define G_IS_SETTINGS_BACKEND_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_SETTINGS_BACKEND)) +#define G_SETTINGS_BACKEND_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_SETTINGS_BACKEND, GSettingsBackendClass)) + +/** + * G_SETTINGS_BACKEND_EXTENSION_POINT_NAME: + * + * Extension point for #GSettingsBackend functionality. + **/ +#define G_SETTINGS_BACKEND_EXTENSION_POINT_NAME "gsettings-backend" + +/** + * GSettingsBackend: + * + * An implementation of a settings storage repository. + **/ +typedef struct _GSettingsBackendPrivate GSettingsBackendPrivate; +typedef struct _GSettingsBackendClass GSettingsBackendClass; + +/** + * GSettingsBackendClass: + * @read: virtual method to read a key's value + * @get_writable: virtual method to get if a key is writable + * @write: virtual method to change key's value + * @write_tree: virtual method to change a tree of keys + * @reset: virtual method to reset state + * @subscribe: virtual method to subscribe to key changes + * @unsubscribe: virtual method to unsubscribe to key changes + * @sync: virtual method to sync state + * @get_permission: virtual method to get permission of a key + * @read_user_value: virtual method to read user's key value + * + * Class structure for #GSettingsBackend. + */ +struct _GSettingsBackendClass +{ + GObjectClass parent_class; + + GVariant * (*read) (GSettingsBackend *backend, + const gchar *key, + const GVariantType *expected_type, + gboolean default_value); + + gboolean (*get_writable) (GSettingsBackend *backend, + const gchar *key); + + gboolean (*write) (GSettingsBackend *backend, + const gchar *key, + GVariant *value, + gpointer origin_tag); + gboolean (*write_tree) (GSettingsBackend *backend, + GTree *tree, + gpointer origin_tag); + void (*reset) (GSettingsBackend *backend, + const gchar *key, + gpointer origin_tag); + + void (*subscribe) (GSettingsBackend *backend, + const gchar *name); + void (*unsubscribe) (GSettingsBackend *backend, + const gchar *name); + void (*sync) (GSettingsBackend *backend); + + GPermission * (*get_permission) (GSettingsBackend *backend, + const gchar *path); + + GVariant * (*read_user_value) (GSettingsBackend *backend, + const gchar *key, + const GVariantType *expected_type); + + /*< private >*/ + gpointer padding[23]; +}; + +struct _GSettingsBackend +{ + GObject parent_instance; + + /*< private >*/ + GSettingsBackendPrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_settings_backend_get_type (void); + +GIO_AVAILABLE_IN_ALL +void g_settings_backend_changed (GSettingsBackend *backend, + const gchar *key, + gpointer origin_tag); +GIO_AVAILABLE_IN_ALL +void g_settings_backend_path_changed (GSettingsBackend *backend, + const gchar *path, + gpointer origin_tag); +GIO_AVAILABLE_IN_ALL +void g_settings_backend_flatten_tree (GTree *tree, + gchar **path, + const gchar ***keys, + GVariant ***values); +GIO_AVAILABLE_IN_ALL +void g_settings_backend_keys_changed (GSettingsBackend *backend, + const gchar *path, + gchar const * const *items, + gpointer origin_tag); + +GIO_AVAILABLE_IN_ALL +void g_settings_backend_path_writable_changed (GSettingsBackend *backend, + const gchar *path); +GIO_AVAILABLE_IN_ALL +void g_settings_backend_writable_changed (GSettingsBackend *backend, + const gchar *key); +GIO_AVAILABLE_IN_ALL +void g_settings_backend_changed_tree (GSettingsBackend *backend, + GTree *tree, + gpointer origin_tag); + +GIO_AVAILABLE_IN_ALL +GSettingsBackend * g_settings_backend_get_default (void); + +GIO_AVAILABLE_IN_ALL +GSettingsBackend * g_keyfile_settings_backend_new (const gchar *filename, + const gchar *root_path, + const gchar *root_group); + +GIO_AVAILABLE_IN_ALL +GSettingsBackend * g_null_settings_backend_new (void); + +GIO_AVAILABLE_IN_ALL +GSettingsBackend * g_memory_settings_backend_new (void); + +G_END_DECLS + +#endif /* __G_SETTINGS_BACKEND_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsettingsschema.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsettingsschema.h new file mode 100644 index 000000000..a3bb7df80 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsettingsschema.h @@ -0,0 +1,115 @@ +/* + * Copyright © 2010 Codethink Limited + * Copyright © 2011 Canonical Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __G_SETTINGS_SCHEMA_H__ +#define __G_SETTINGS_SCHEMA_H__ + +#include +#include + +G_BEGIN_DECLS + +typedef struct _GSettingsSchemaSource GSettingsSchemaSource; +typedef struct _GSettingsSchema GSettingsSchema; +typedef struct _GSettingsSchemaKey GSettingsSchemaKey; + +#define G_TYPE_SETTINGS_SCHEMA_SOURCE (g_settings_schema_source_get_type ()) +GIO_AVAILABLE_IN_2_32 +GType g_settings_schema_source_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_32 +GSettingsSchemaSource * g_settings_schema_source_get_default (void); +GIO_AVAILABLE_IN_2_32 +GSettingsSchemaSource * g_settings_schema_source_ref (GSettingsSchemaSource *source); +GIO_AVAILABLE_IN_2_32 +void g_settings_schema_source_unref (GSettingsSchemaSource *source); + +GIO_AVAILABLE_IN_2_32 +GSettingsSchemaSource * g_settings_schema_source_new_from_directory (const gchar *directory, + GSettingsSchemaSource *parent, + gboolean trusted, + GError **error); + +GIO_AVAILABLE_IN_2_32 +GSettingsSchema * g_settings_schema_source_lookup (GSettingsSchemaSource *source, + const gchar *schema_id, + gboolean recursive); + +GIO_AVAILABLE_IN_2_40 +void g_settings_schema_source_list_schemas (GSettingsSchemaSource *source, + gboolean recursive, + gchar ***non_relocatable, + gchar ***relocatable); + +#define G_TYPE_SETTINGS_SCHEMA (g_settings_schema_get_type ()) +GIO_AVAILABLE_IN_2_32 +GType g_settings_schema_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_32 +GSettingsSchema * g_settings_schema_ref (GSettingsSchema *schema); +GIO_AVAILABLE_IN_2_32 +void g_settings_schema_unref (GSettingsSchema *schema); + +GIO_AVAILABLE_IN_2_32 +const gchar * g_settings_schema_get_id (GSettingsSchema *schema); +GIO_AVAILABLE_IN_2_32 +const gchar * g_settings_schema_get_path (GSettingsSchema *schema); +GIO_AVAILABLE_IN_2_40 +GSettingsSchemaKey * g_settings_schema_get_key (GSettingsSchema *schema, + const gchar *name); +GIO_AVAILABLE_IN_2_40 +gboolean g_settings_schema_has_key (GSettingsSchema *schema, + const gchar *name); +GIO_AVAILABLE_IN_2_46 +gchar** g_settings_schema_list_keys (GSettingsSchema *schema); + + +GIO_AVAILABLE_IN_2_44 +gchar ** g_settings_schema_list_children (GSettingsSchema *schema); + +#define G_TYPE_SETTINGS_SCHEMA_KEY (g_settings_schema_key_get_type ()) +GIO_AVAILABLE_IN_2_40 +GType g_settings_schema_key_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_40 +GSettingsSchemaKey * g_settings_schema_key_ref (GSettingsSchemaKey *key); +GIO_AVAILABLE_IN_2_40 +void g_settings_schema_key_unref (GSettingsSchemaKey *key); + +GIO_AVAILABLE_IN_2_40 +const GVariantType * g_settings_schema_key_get_value_type (GSettingsSchemaKey *key); +GIO_AVAILABLE_IN_2_40 +GVariant * g_settings_schema_key_get_default_value (GSettingsSchemaKey *key); +GIO_AVAILABLE_IN_2_40 +GVariant * g_settings_schema_key_get_range (GSettingsSchemaKey *key); +GIO_AVAILABLE_IN_2_40 +gboolean g_settings_schema_key_range_check (GSettingsSchemaKey *key, + GVariant *value); + +GIO_AVAILABLE_IN_2_44 +const gchar * g_settings_schema_key_get_name (GSettingsSchemaKey *key); +GIO_AVAILABLE_IN_2_40 +const gchar * g_settings_schema_key_get_summary (GSettingsSchemaKey *key); +GIO_AVAILABLE_IN_2_40 +const gchar * g_settings_schema_key_get_description (GSettingsSchemaKey *key); + +G_END_DECLS + +#endif /* __G_SETTINGS_SCHEMA_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleaction.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleaction.h new file mode 100644 index 000000000..ce80e7ae2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleaction.h @@ -0,0 +1,65 @@ +/* + * Copyright © 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_SIMPLE_ACTION_H__ +#define __G_SIMPLE_ACTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SIMPLE_ACTION (g_simple_action_get_type ()) +#define G_SIMPLE_ACTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_SIMPLE_ACTION, GSimpleAction)) +#define G_IS_SIMPLE_ACTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_SIMPLE_ACTION)) + +GIO_AVAILABLE_IN_ALL +GType g_simple_action_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GSimpleAction * g_simple_action_new (const gchar *name, + const GVariantType *parameter_type); + +GIO_AVAILABLE_IN_ALL +GSimpleAction * g_simple_action_new_stateful (const gchar *name, + const GVariantType *parameter_type, + GVariant *state); + +GIO_AVAILABLE_IN_ALL +void g_simple_action_set_enabled (GSimpleAction *simple, + gboolean enabled); + +GIO_AVAILABLE_IN_2_30 +void g_simple_action_set_state (GSimpleAction *simple, + GVariant *value); + +GIO_AVAILABLE_IN_2_44 +void g_simple_action_set_state_hint (GSimpleAction *simple, + GVariant *state_hint); + +G_END_DECLS + +#endif /* __G_SIMPLE_ACTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleactiongroup.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleactiongroup.h new file mode 100644 index 000000000..99282baff --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleactiongroup.h @@ -0,0 +1,99 @@ +/* + * Copyright © 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_SIMPLE_ACTION_GROUP_H__ +#define __G_SIMPLE_ACTION_GROUP_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include "gactiongroup.h" +#include "gactionmap.h" + +G_BEGIN_DECLS + +#define G_TYPE_SIMPLE_ACTION_GROUP (g_simple_action_group_get_type ()) +#define G_SIMPLE_ACTION_GROUP(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_SIMPLE_ACTION_GROUP, GSimpleActionGroup)) +#define G_SIMPLE_ACTION_GROUP_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_SIMPLE_ACTION_GROUP, GSimpleActionGroupClass)) +#define G_IS_SIMPLE_ACTION_GROUP(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_SIMPLE_ACTION_GROUP)) +#define G_IS_SIMPLE_ACTION_GROUP_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_SIMPLE_ACTION_GROUP)) +#define G_SIMPLE_ACTION_GROUP_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_SIMPLE_ACTION_GROUP, GSimpleActionGroupClass)) + +typedef struct _GSimpleActionGroupPrivate GSimpleActionGroupPrivate; +typedef struct _GSimpleActionGroupClass GSimpleActionGroupClass; + +/** + * GSimpleActionGroup: + * + * The #GSimpleActionGroup structure contains private data and should only be accessed using the provided API. + * + * Since: 2.28 + */ +struct _GSimpleActionGroup +{ + /*< private >*/ + GObject parent_instance; + + GSimpleActionGroupPrivate *priv; +}; + +struct _GSimpleActionGroupClass +{ + /*< private >*/ + GObjectClass parent_class; + + /*< private >*/ + gpointer padding[12]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_simple_action_group_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GSimpleActionGroup * g_simple_action_group_new (void); + +GIO_DEPRECATED_IN_2_38_FOR (g_action_map_lookup_action) +GAction * g_simple_action_group_lookup (GSimpleActionGroup *simple, + const gchar *action_name); + +GIO_DEPRECATED_IN_2_38_FOR (g_action_map_add_action) +void g_simple_action_group_insert (GSimpleActionGroup *simple, + GAction *action); + +GIO_DEPRECATED_IN_2_38_FOR (g_action_map_remove_action) +void g_simple_action_group_remove (GSimpleActionGroup *simple, + const gchar *action_name); + +GIO_DEPRECATED_IN_2_38_FOR (g_action_map_add_action_entries) +void g_simple_action_group_add_entries (GSimpleActionGroup *simple, + const GActionEntry *entries, + gint n_entries, + gpointer user_data); + +G_END_DECLS + +#endif /* __G_SIMPLE_ACTION_GROUP_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleasyncresult.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleasyncresult.h new file mode 100644 index 000000000..12efb9ce7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleasyncresult.h @@ -0,0 +1,164 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_SIMPLE_ASYNC_RESULT_H__ +#define __G_SIMPLE_ASYNC_RESULT_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SIMPLE_ASYNC_RESULT (g_simple_async_result_get_type ()) +#define G_SIMPLE_ASYNC_RESULT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_SIMPLE_ASYNC_RESULT, GSimpleAsyncResult)) +#define G_SIMPLE_ASYNC_RESULT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_SIMPLE_ASYNC_RESULT, GSimpleAsyncResultClass)) +#define G_IS_SIMPLE_ASYNC_RESULT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_SIMPLE_ASYNC_RESULT)) +#define G_IS_SIMPLE_ASYNC_RESULT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_SIMPLE_ASYNC_RESULT)) +#define G_SIMPLE_ASYNC_RESULT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_SIMPLE_ASYNC_RESULT, GSimpleAsyncResultClass)) + +/** + * GSimpleAsyncResult: + * + * A simple implementation of #GAsyncResult. + **/ +typedef struct _GSimpleAsyncResultClass GSimpleAsyncResultClass; + + +GIO_AVAILABLE_IN_ALL +GType g_simple_async_result_get_type (void) G_GNUC_CONST; + +GIO_DEPRECATED_IN_2_46_FOR(g_task_new) +GSimpleAsyncResult *g_simple_async_result_new (GObject *source_object, + GAsyncReadyCallback callback, + gpointer user_data, + gpointer source_tag); +GIO_DEPRECATED_IN_2_46_FOR(g_task_new) +GSimpleAsyncResult *g_simple_async_result_new_error (GObject *source_object, + GAsyncReadyCallback callback, + gpointer user_data, + GQuark domain, + gint code, + const char *format, + ...) G_GNUC_PRINTF (6, 7); +GIO_DEPRECATED_IN_2_46_FOR(g_task_new) +GSimpleAsyncResult *g_simple_async_result_new_from_error (GObject *source_object, + GAsyncReadyCallback callback, + gpointer user_data, + const GError *error); +GIO_DEPRECATED_IN_2_46_FOR(g_task_new) +GSimpleAsyncResult *g_simple_async_result_new_take_error (GObject *source_object, + GAsyncReadyCallback callback, + gpointer user_data, + GError *error); + +GIO_DEPRECATED_IN_2_46 +void g_simple_async_result_set_op_res_gpointer (GSimpleAsyncResult *simple, + gpointer op_res, + GDestroyNotify destroy_op_res); +GIO_DEPRECATED_IN_2_46 +gpointer g_simple_async_result_get_op_res_gpointer (GSimpleAsyncResult *simple); + +GIO_DEPRECATED_IN_2_46 +void g_simple_async_result_set_op_res_gssize (GSimpleAsyncResult *simple, + gssize op_res); +GIO_DEPRECATED_IN_2_46 +gssize g_simple_async_result_get_op_res_gssize (GSimpleAsyncResult *simple); + +GIO_DEPRECATED_IN_2_46 +void g_simple_async_result_set_op_res_gboolean (GSimpleAsyncResult *simple, + gboolean op_res); +GIO_DEPRECATED_IN_2_46 +gboolean g_simple_async_result_get_op_res_gboolean (GSimpleAsyncResult *simple); + + + +GIO_AVAILABLE_IN_2_32 /* Also deprecated, but can't mark something both AVAILABLE and DEPRECATED */ +void g_simple_async_result_set_check_cancellable (GSimpleAsyncResult *simple, + GCancellable *check_cancellable); +GIO_DEPRECATED_IN_2_46 +gpointer g_simple_async_result_get_source_tag (GSimpleAsyncResult *simple); +GIO_DEPRECATED_IN_2_46 +void g_simple_async_result_set_handle_cancellation (GSimpleAsyncResult *simple, + gboolean handle_cancellation); +GIO_DEPRECATED_IN_2_46 +void g_simple_async_result_complete (GSimpleAsyncResult *simple); +GIO_DEPRECATED_IN_2_46 +void g_simple_async_result_complete_in_idle (GSimpleAsyncResult *simple); +GIO_DEPRECATED_IN_2_46 +void g_simple_async_result_run_in_thread (GSimpleAsyncResult *simple, + GSimpleAsyncThreadFunc func, + int io_priority, + GCancellable *cancellable); +GIO_DEPRECATED_IN_2_46 +void g_simple_async_result_set_from_error (GSimpleAsyncResult *simple, + const GError *error); +GIO_DEPRECATED_IN_2_46 +void g_simple_async_result_take_error (GSimpleAsyncResult *simple, + GError *error); +GIO_DEPRECATED_IN_2_46 +gboolean g_simple_async_result_propagate_error (GSimpleAsyncResult *simple, + GError **dest); +GIO_DEPRECATED_IN_2_46 +void g_simple_async_result_set_error (GSimpleAsyncResult *simple, + GQuark domain, + gint code, + const char *format, + ...) G_GNUC_PRINTF (4, 5); +GIO_DEPRECATED_IN_2_46 +void g_simple_async_result_set_error_va (GSimpleAsyncResult *simple, + GQuark domain, + gint code, + const char *format, + va_list args) + G_GNUC_PRINTF(4, 0); +GIO_DEPRECATED_IN_2_46 +gboolean g_simple_async_result_is_valid (GAsyncResult *result, + GObject *source, + gpointer source_tag); + +GIO_DEPRECATED_IN_2_46_FOR(g_task_report_error) +void g_simple_async_report_error_in_idle (GObject *object, + GAsyncReadyCallback callback, + gpointer user_data, + GQuark domain, + gint code, + const char *format, + ...) G_GNUC_PRINTF(6, 7); +GIO_DEPRECATED_IN_2_46_FOR(g_task_report_error) +void g_simple_async_report_gerror_in_idle (GObject *object, + GAsyncReadyCallback callback, + gpointer user_data, + const GError *error); +GIO_DEPRECATED_IN_2_46_FOR(g_task_report_error) +void g_simple_async_report_take_gerror_in_idle (GObject *object, + GAsyncReadyCallback callback, + gpointer user_data, + GError *error); + +G_END_DECLS + + + +#endif /* __G_SIMPLE_ASYNC_RESULT_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleiostream.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleiostream.h new file mode 100644 index 000000000..1d98ffe91 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleiostream.h @@ -0,0 +1,47 @@ +/* + * Copyright © 2014 NICE s.r.l. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ignacio Casal Quinteiro + */ + +#ifndef __G_SIMPLE_IO_STREAM_H__ +#define __G_SIMPLE_IO_STREAM_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_SIMPLE_IO_STREAM (g_simple_io_stream_get_type ()) +#define G_SIMPLE_IO_STREAM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SIMPLE_IO_STREAM, GSimpleIOStream)) +#define G_IS_SIMPLE_IO_STREAM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SIMPLE_IO_STREAM)) + +GIO_AVAILABLE_IN_2_44 +GType g_simple_io_stream_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_44 +GIOStream *g_simple_io_stream_new (GInputStream *input_stream, + GOutputStream *output_stream); + +G_END_DECLS + +#endif /* __G_SIMPLE_IO_STREAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimplepermission.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimplepermission.h new file mode 100644 index 000000000..19c42d708 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimplepermission.h @@ -0,0 +1,47 @@ +/* + * Copyright © 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#ifndef __G_SIMPLE_PERMISSION_H__ +#define __G_SIMPLE_PERMISSION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SIMPLE_PERMISSION (g_simple_permission_get_type ()) +#define G_SIMPLE_PERMISSION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_SIMPLE_PERMISSION, \ + GSimplePermission)) +#define G_IS_SIMPLE_PERMISSION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_SIMPLE_PERMISSION)) + +GIO_AVAILABLE_IN_ALL +GType g_simple_permission_get_type (void); +GIO_AVAILABLE_IN_ALL +GPermission * g_simple_permission_new (gboolean allowed); + +G_END_DECLS + +#endif /* __G_SIMPLE_PERMISSION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleproxyresolver.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleproxyresolver.h new file mode 100644 index 000000000..2e5f4b2a8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsimpleproxyresolver.h @@ -0,0 +1,91 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright 2010, 2013 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_SIMPLE_PROXY_RESOLVER_H__ +#define __G_SIMPLE_PROXY_RESOLVER_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SIMPLE_PROXY_RESOLVER (g_simple_proxy_resolver_get_type ()) +#define G_SIMPLE_PROXY_RESOLVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_SIMPLE_PROXY_RESOLVER, GSimpleProxyResolver)) +#define G_SIMPLE_PROXY_RESOLVER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_SIMPLE_PROXY_RESOLVER, GSimpleProxyResolverClass)) +#define G_IS_SIMPLE_PROXY_RESOLVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_SIMPLE_PROXY_RESOLVER)) +#define G_IS_SIMPLE_PROXY_RESOLVER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_SIMPLE_PROXY_RESOLVER)) +#define G_SIMPLE_PROXY_RESOLVER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_SIMPLE_PROXY_RESOLVER, GSimpleProxyResolverClass)) + +/** + * GSimpleProxyResolver: + * + * A #GProxyResolver implementation for using a fixed set of proxies. + **/ +typedef struct _GSimpleProxyResolver GSimpleProxyResolver; +typedef struct _GSimpleProxyResolverPrivate GSimpleProxyResolverPrivate; +typedef struct _GSimpleProxyResolverClass GSimpleProxyResolverClass; + +struct _GSimpleProxyResolver +{ + GObject parent_instance; + + /*< private >*/ + GSimpleProxyResolverPrivate *priv; +}; + +struct _GSimpleProxyResolverClass +{ + GObjectClass parent_class; + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +GIO_AVAILABLE_IN_2_36 +GType g_simple_proxy_resolver_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_36 +GProxyResolver *g_simple_proxy_resolver_new (const gchar *default_proxy, + gchar **ignore_hosts); + +GIO_AVAILABLE_IN_2_36 +void g_simple_proxy_resolver_set_default_proxy (GSimpleProxyResolver *resolver, + const gchar *default_proxy); + +GIO_AVAILABLE_IN_2_36 +void g_simple_proxy_resolver_set_ignore_hosts (GSimpleProxyResolver *resolver, + gchar **ignore_hosts); + +GIO_AVAILABLE_IN_2_36 +void g_simple_proxy_resolver_set_uri_proxy (GSimpleProxyResolver *resolver, + const gchar *uri_scheme, + const gchar *proxy); + +G_END_DECLS + +#endif /* __G_SIMPLE_PROXY_RESOLVER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocket.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocket.h new file mode 100644 index 000000000..0f0624be5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocket.h @@ -0,0 +1,330 @@ +/* + * Copyright © 2008 Christian Kellner, Samuel Cormier-Iijima + * Copyright © 2009 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Christian Kellner + * Samuel Cormier-Iijima + * Ryan Lortie + */ + +#ifndef __G_SOCKET_H__ +#define __G_SOCKET_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SOCKET (g_socket_get_type ()) +#define G_SOCKET(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_SOCKET, GSocket)) +#define G_SOCKET_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_SOCKET, GSocketClass)) +#define G_IS_SOCKET(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_SOCKET)) +#define G_IS_SOCKET_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_SOCKET)) +#define G_SOCKET_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_SOCKET, GSocketClass)) + +typedef struct _GSocketPrivate GSocketPrivate; +typedef struct _GSocketClass GSocketClass; + +struct _GSocketClass +{ + GObjectClass parent_class; + + /*< private >*/ + + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); + void (*_g_reserved6) (void); + void (*_g_reserved7) (void); + void (*_g_reserved8) (void); + void (*_g_reserved9) (void); + void (*_g_reserved10) (void); +}; + +struct _GSocket +{ + GObject parent_instance; + GSocketPrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_socket_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GSocket * g_socket_new (GSocketFamily family, + GSocketType type, + GSocketProtocol protocol, + GError **error); +GIO_AVAILABLE_IN_ALL +GSocket * g_socket_new_from_fd (gint fd, + GError **error); +GIO_AVAILABLE_IN_ALL +int g_socket_get_fd (GSocket *socket); +GIO_AVAILABLE_IN_ALL +GSocketFamily g_socket_get_family (GSocket *socket); +GIO_AVAILABLE_IN_ALL +GSocketType g_socket_get_socket_type (GSocket *socket); +GIO_AVAILABLE_IN_ALL +GSocketProtocol g_socket_get_protocol (GSocket *socket); +GIO_AVAILABLE_IN_ALL +GSocketAddress * g_socket_get_local_address (GSocket *socket, + GError **error); +GIO_AVAILABLE_IN_ALL +GSocketAddress * g_socket_get_remote_address (GSocket *socket, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_socket_set_blocking (GSocket *socket, + gboolean blocking); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_get_blocking (GSocket *socket); +GIO_AVAILABLE_IN_ALL +void g_socket_set_keepalive (GSocket *socket, + gboolean keepalive); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_get_keepalive (GSocket *socket); +GIO_AVAILABLE_IN_ALL +gint g_socket_get_listen_backlog (GSocket *socket); +GIO_AVAILABLE_IN_ALL +void g_socket_set_listen_backlog (GSocket *socket, + gint backlog); +GIO_AVAILABLE_IN_ALL +guint g_socket_get_timeout (GSocket *socket); +GIO_AVAILABLE_IN_ALL +void g_socket_set_timeout (GSocket *socket, + guint timeout); + +GIO_AVAILABLE_IN_2_32 +guint g_socket_get_ttl (GSocket *socket); +GIO_AVAILABLE_IN_2_32 +void g_socket_set_ttl (GSocket *socket, + guint ttl); + +GIO_AVAILABLE_IN_2_32 +gboolean g_socket_get_broadcast (GSocket *socket); +GIO_AVAILABLE_IN_2_32 +void g_socket_set_broadcast (GSocket *socket, + gboolean broadcast); + +GIO_AVAILABLE_IN_2_32 +gboolean g_socket_get_multicast_loopback (GSocket *socket); +GIO_AVAILABLE_IN_2_32 +void g_socket_set_multicast_loopback (GSocket *socket, + gboolean loopback); +GIO_AVAILABLE_IN_2_32 +guint g_socket_get_multicast_ttl (GSocket *socket); +GIO_AVAILABLE_IN_2_32 +void g_socket_set_multicast_ttl (GSocket *socket, + guint ttl); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_is_connected (GSocket *socket); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_bind (GSocket *socket, + GSocketAddress *address, + gboolean allow_reuse, + GError **error); +GIO_AVAILABLE_IN_2_32 +gboolean g_socket_join_multicast_group (GSocket *socket, + GInetAddress *group, + gboolean source_specific, + const gchar *iface, + GError **error); +GIO_AVAILABLE_IN_2_32 +gboolean g_socket_leave_multicast_group (GSocket *socket, + GInetAddress *group, + gboolean source_specific, + const gchar *iface, + GError **error); +GIO_AVAILABLE_IN_2_56 +gboolean g_socket_join_multicast_group_ssm (GSocket *socket, + GInetAddress *group, + GInetAddress *source_specific, + const gchar *iface, + GError **error); +GIO_AVAILABLE_IN_2_56 +gboolean g_socket_leave_multicast_group_ssm (GSocket *socket, + GInetAddress *group, + GInetAddress *source_specific, + const gchar *iface, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_connect (GSocket *socket, + GSocketAddress *address, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_check_connect_result (GSocket *socket, + GError **error); + +GIO_AVAILABLE_IN_ALL +gssize g_socket_get_available_bytes (GSocket *socket); + +GIO_AVAILABLE_IN_ALL +GIOCondition g_socket_condition_check (GSocket *socket, + GIOCondition condition); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_condition_wait (GSocket *socket, + GIOCondition condition, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_32 +gboolean g_socket_condition_timed_wait (GSocket *socket, + GIOCondition condition, + gint64 timeout_us, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +GSocket * g_socket_accept (GSocket *socket, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_listen (GSocket *socket, + GError **error); +GIO_AVAILABLE_IN_ALL +gssize g_socket_receive (GSocket *socket, + gchar *buffer, + gsize size, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gssize g_socket_receive_from (GSocket *socket, + GSocketAddress **address, + gchar *buffer, + gsize size, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gssize g_socket_send (GSocket *socket, + const gchar *buffer, + gsize size, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gssize g_socket_send_to (GSocket *socket, + GSocketAddress *address, + const gchar *buffer, + gsize size, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gssize g_socket_receive_message (GSocket *socket, + GSocketAddress **address, + GInputVector *vectors, + gint num_vectors, + GSocketControlMessage ***messages, + gint *num_messages, + gint *flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gssize g_socket_send_message (GSocket *socket, + GSocketAddress *address, + GOutputVector *vectors, + gint num_vectors, + GSocketControlMessage **messages, + gint num_messages, + gint flags, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_48 +gint g_socket_receive_messages (GSocket *socket, + GInputMessage *messages, + guint num_messages, + gint flags, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_44 +gint g_socket_send_messages (GSocket *socket, + GOutputMessage *messages, + guint num_messages, + gint flags, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_socket_close (GSocket *socket, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_shutdown (GSocket *socket, + gboolean shutdown_read, + gboolean shutdown_write, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_is_closed (GSocket *socket); +GIO_AVAILABLE_IN_ALL +GSource * g_socket_create_source (GSocket *socket, + GIOCondition condition, + GCancellable *cancellable); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_speaks_ipv4 (GSocket *socket); +GIO_AVAILABLE_IN_ALL +GCredentials *g_socket_get_credentials (GSocket *socket, + GError **error); + +GIO_AVAILABLE_IN_ALL +gssize g_socket_receive_with_blocking (GSocket *socket, + gchar *buffer, + gsize size, + gboolean blocking, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gssize g_socket_send_with_blocking (GSocket *socket, + const gchar *buffer, + gsize size, + gboolean blocking, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_60 +GPollableReturn g_socket_send_message_with_timeout (GSocket *socket, + GSocketAddress *address, + const GOutputVector *vectors, + gint num_vectors, + GSocketControlMessage **messages, + gint num_messages, + gint flags, + gint64 timeout_us, + gsize *bytes_written, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_36 +gboolean g_socket_get_option (GSocket *socket, + gint level, + gint optname, + gint *value, + GError **error); +GIO_AVAILABLE_IN_2_36 +gboolean g_socket_set_option (GSocket *socket, + gint level, + gint optname, + gint value, + GError **error); + +G_END_DECLS + +#endif /* __G_SOCKET_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketaddress.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketaddress.h new file mode 100644 index 000000000..b2dcef242 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketaddress.h @@ -0,0 +1,84 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2008 Christian Kellner, Samuel Cormier-Iijima + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Christian Kellner + * Samuel Cormier-Iijima + */ + +#ifndef __G_SOCKET_ADDRESS_H__ +#define __G_SOCKET_ADDRESS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SOCKET_ADDRESS (g_socket_address_get_type ()) +#define G_SOCKET_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_SOCKET_ADDRESS, GSocketAddress)) +#define G_SOCKET_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_SOCKET_ADDRESS, GSocketAddressClass)) +#define G_IS_SOCKET_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_SOCKET_ADDRESS)) +#define G_IS_SOCKET_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_SOCKET_ADDRESS)) +#define G_SOCKET_ADDRESS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_SOCKET_ADDRESS, GSocketAddressClass)) + +typedef struct _GSocketAddressClass GSocketAddressClass; + +struct _GSocketAddress +{ + GObject parent_instance; +}; + +struct _GSocketAddressClass +{ + GObjectClass parent_class; + + GSocketFamily (*get_family) (GSocketAddress *address); + + gssize (*get_native_size) (GSocketAddress *address); + + gboolean (*to_native) (GSocketAddress *address, + gpointer dest, + gsize destlen, + GError **error); +}; + +GIO_AVAILABLE_IN_ALL +GType g_socket_address_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GSocketFamily g_socket_address_get_family (GSocketAddress *address); + +GIO_AVAILABLE_IN_ALL +GSocketAddress * g_socket_address_new_from_native (gpointer native, + gsize len); + +GIO_AVAILABLE_IN_ALL +gboolean g_socket_address_to_native (GSocketAddress *address, + gpointer dest, + gsize destlen, + GError **error); + +GIO_AVAILABLE_IN_ALL +gssize g_socket_address_get_native_size (GSocketAddress *address); + +G_END_DECLS + +#endif /* __G_SOCKET_ADDRESS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketaddressenumerator.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketaddressenumerator.h new file mode 100644 index 000000000..ceee6a3f9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketaddressenumerator.h @@ -0,0 +1,103 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2008 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_SOCKET_ADDRESS_ENUMERATOR_H__ +#define __G_SOCKET_ADDRESS_ENUMERATOR_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SOCKET_ADDRESS_ENUMERATOR (g_socket_address_enumerator_get_type ()) +#define G_SOCKET_ADDRESS_ENUMERATOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_SOCKET_ADDRESS_ENUMERATOR, GSocketAddressEnumerator)) +#define G_SOCKET_ADDRESS_ENUMERATOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_SOCKET_ADDRESS_ENUMERATOR, GSocketAddressEnumeratorClass)) +#define G_IS_SOCKET_ADDRESS_ENUMERATOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_SOCKET_ADDRESS_ENUMERATOR)) +#define G_IS_SOCKET_ADDRESS_ENUMERATOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_SOCKET_ADDRESS_ENUMERATOR)) +#define G_SOCKET_ADDRESS_ENUMERATOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_SOCKET_ADDRESS_ENUMERATOR, GSocketAddressEnumeratorClass)) + +/** + * GSocketAddressEnumerator: + * + * Enumerator type for objects that contain or generate + * #GSocketAddress instances. + */ +typedef struct _GSocketAddressEnumeratorClass GSocketAddressEnumeratorClass; + +struct _GSocketAddressEnumerator +{ + /*< private >*/ + GObject parent_instance; +}; + +/** + * GSocketAddressEnumeratorClass: + * @next: Virtual method for g_socket_address_enumerator_next(). + * @next_async: Virtual method for g_socket_address_enumerator_next_async(). + * @next_finish: Virtual method for g_socket_address_enumerator_next_finish(). + * + * Class structure for #GSocketAddressEnumerator. + */ +struct _GSocketAddressEnumeratorClass +{ + /*< private >*/ + GObjectClass parent_class; + + /*< public >*/ + /* Virtual Table */ + + GSocketAddress * (* next) (GSocketAddressEnumerator *enumerator, + GCancellable *cancellable, + GError **error); + + void (* next_async) (GSocketAddressEnumerator *enumerator, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + GSocketAddress * (* next_finish) (GSocketAddressEnumerator *enumerator, + GAsyncResult *result, + GError **error); +}; + +GIO_AVAILABLE_IN_ALL +GType g_socket_address_enumerator_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GSocketAddress *g_socket_address_enumerator_next (GSocketAddressEnumerator *enumerator, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_socket_address_enumerator_next_async (GSocketAddressEnumerator *enumerator, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GSocketAddress *g_socket_address_enumerator_next_finish (GSocketAddressEnumerator *enumerator, + GAsyncResult *result, + GError **error); + +G_END_DECLS + + +#endif /* __G_SOCKET_ADDRESS_ENUMERATOR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketclient.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketclient.h new file mode 100644 index 000000000..e9f815eef --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketclient.h @@ -0,0 +1,199 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2008, 2009 Codethink Limited + * Copyright © 2009 Red Hat, Inc + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + * Alexander Larsson + */ + +#ifndef __G_SOCKET_CLIENT_H__ +#define __G_SOCKET_CLIENT_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SOCKET_CLIENT (g_socket_client_get_type ()) +#define G_SOCKET_CLIENT(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_SOCKET_CLIENT, GSocketClient)) +#define G_SOCKET_CLIENT_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_SOCKET_CLIENT, GSocketClientClass)) +#define G_IS_SOCKET_CLIENT(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_SOCKET_CLIENT)) +#define G_IS_SOCKET_CLIENT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_SOCKET_CLIENT)) +#define G_SOCKET_CLIENT_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_SOCKET_CLIENT, GSocketClientClass)) + +typedef struct _GSocketClientPrivate GSocketClientPrivate; +typedef struct _GSocketClientClass GSocketClientClass; + +struct _GSocketClientClass +{ + GObjectClass parent_class; + + void (* event) (GSocketClient *client, + GSocketClientEvent event, + GSocketConnectable *connectable, + GIOStream *connection); + + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); +}; + +struct _GSocketClient +{ + GObject parent_instance; + GSocketClientPrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_socket_client_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GSocketClient *g_socket_client_new (void); + +GIO_AVAILABLE_IN_ALL +GSocketFamily g_socket_client_get_family (GSocketClient *client); +GIO_AVAILABLE_IN_ALL +void g_socket_client_set_family (GSocketClient *client, + GSocketFamily family); +GIO_AVAILABLE_IN_ALL +GSocketType g_socket_client_get_socket_type (GSocketClient *client); +GIO_AVAILABLE_IN_ALL +void g_socket_client_set_socket_type (GSocketClient *client, + GSocketType type); +GIO_AVAILABLE_IN_ALL +GSocketProtocol g_socket_client_get_protocol (GSocketClient *client); +GIO_AVAILABLE_IN_ALL +void g_socket_client_set_protocol (GSocketClient *client, + GSocketProtocol protocol); +GIO_AVAILABLE_IN_ALL +GSocketAddress *g_socket_client_get_local_address (GSocketClient *client); +GIO_AVAILABLE_IN_ALL +void g_socket_client_set_local_address (GSocketClient *client, + GSocketAddress *address); +GIO_AVAILABLE_IN_ALL +guint g_socket_client_get_timeout (GSocketClient *client); +GIO_AVAILABLE_IN_ALL +void g_socket_client_set_timeout (GSocketClient *client, + guint timeout); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_client_get_enable_proxy (GSocketClient *client); +GIO_AVAILABLE_IN_ALL +void g_socket_client_set_enable_proxy (GSocketClient *client, + gboolean enable); + +GIO_AVAILABLE_IN_2_28 +gboolean g_socket_client_get_tls (GSocketClient *client); +GIO_AVAILABLE_IN_2_28 +void g_socket_client_set_tls (GSocketClient *client, + gboolean tls); +GIO_DEPRECATED_IN_2_72 +GTlsCertificateFlags g_socket_client_get_tls_validation_flags (GSocketClient *client); +GIO_DEPRECATED_IN_2_72 +void g_socket_client_set_tls_validation_flags (GSocketClient *client, + GTlsCertificateFlags flags); +GIO_AVAILABLE_IN_2_36 +GProxyResolver *g_socket_client_get_proxy_resolver (GSocketClient *client); +GIO_AVAILABLE_IN_2_36 +void g_socket_client_set_proxy_resolver (GSocketClient *client, + GProxyResolver *proxy_resolver); + +GIO_AVAILABLE_IN_ALL +GSocketConnection * g_socket_client_connect (GSocketClient *client, + GSocketConnectable *connectable, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +GSocketConnection * g_socket_client_connect_to_host (GSocketClient *client, + const gchar *host_and_port, + guint16 default_port, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +GSocketConnection * g_socket_client_connect_to_service (GSocketClient *client, + const gchar *domain, + const gchar *service, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_26 +GSocketConnection * g_socket_client_connect_to_uri (GSocketClient *client, + const gchar *uri, + guint16 default_port, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_socket_client_connect_async (GSocketClient *client, + GSocketConnectable *connectable, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GSocketConnection * g_socket_client_connect_finish (GSocketClient *client, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_socket_client_connect_to_host_async (GSocketClient *client, + const gchar *host_and_port, + guint16 default_port, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GSocketConnection * g_socket_client_connect_to_host_finish (GSocketClient *client, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_socket_client_connect_to_service_async (GSocketClient *client, + const gchar *domain, + const gchar *service, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GSocketConnection * g_socket_client_connect_to_service_finish (GSocketClient *client, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_socket_client_connect_to_uri_async (GSocketClient *client, + const gchar *uri, + guint16 default_port, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GSocketConnection * g_socket_client_connect_to_uri_finish (GSocketClient *client, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_socket_client_add_application_proxy (GSocketClient *client, + const gchar *protocol); + +G_END_DECLS + +#endif /* __G_SOCKET_CLIENT_H___ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketconnectable.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketconnectable.h new file mode 100644 index 000000000..ed2cad9fc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketconnectable.h @@ -0,0 +1,83 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2008 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_SOCKET_CONNECTABLE_H__ +#define __G_SOCKET_CONNECTABLE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SOCKET_CONNECTABLE (g_socket_connectable_get_type ()) +#define G_SOCKET_CONNECTABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SOCKET_CONNECTABLE, GSocketConnectable)) +#define G_IS_SOCKET_CONNECTABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SOCKET_CONNECTABLE)) +#define G_SOCKET_CONNECTABLE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_SOCKET_CONNECTABLE, GSocketConnectableIface)) + +/** + * GSocketConnectable: + * + * Interface for objects that contain or generate a #GSocketAddress. + */ +typedef struct _GSocketConnectableIface GSocketConnectableIface; + +/** + * GSocketConnectableIface: + * @g_iface: The parent interface. + * @enumerate: Creates a #GSocketAddressEnumerator + * @proxy_enumerate: Creates a #GProxyAddressEnumerator + * @to_string: Format the connectable’s address as a string for debugging. + * Implementing this is optional. (Since: 2.48) + * + * Provides an interface for returning a #GSocketAddressEnumerator + * and #GProxyAddressEnumerator + */ +struct _GSocketConnectableIface +{ + GTypeInterface g_iface; + + /* Virtual Table */ + + GSocketAddressEnumerator * (* enumerate) (GSocketConnectable *connectable); + + GSocketAddressEnumerator * (* proxy_enumerate) (GSocketConnectable *connectable); + + gchar * (* to_string) (GSocketConnectable *connectable); +}; + +GIO_AVAILABLE_IN_ALL +GType g_socket_connectable_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GSocketAddressEnumerator *g_socket_connectable_enumerate (GSocketConnectable *connectable); + +GIO_AVAILABLE_IN_ALL +GSocketAddressEnumerator *g_socket_connectable_proxy_enumerate (GSocketConnectable *connectable); + +GIO_AVAILABLE_IN_2_48 +gchar *g_socket_connectable_to_string (GSocketConnectable *connectable); + +G_END_DECLS + + +#endif /* __G_SOCKET_CONNECTABLE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketconnection.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketconnection.h new file mode 100644 index 000000000..45de5ba98 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketconnection.h @@ -0,0 +1,117 @@ +/* GIO - GLib Input, Output and Streaming Library + * Copyright © 2008 Christian Kellner, Samuel Cormier-Iijima + * Copyright © 2009 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Christian Kellner + * Samuel Cormier-Iijima + * Ryan Lortie + * Alexander Larsson + */ + +#ifndef __G_SOCKET_CONNECTION_H__ +#define __G_SOCKET_CONNECTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_SOCKET_CONNECTION (g_socket_connection_get_type ()) +#define G_SOCKET_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_SOCKET_CONNECTION, GSocketConnection)) +#define G_SOCKET_CONNECTION_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_SOCKET_CONNECTION, GSocketConnectionClass)) +#define G_IS_SOCKET_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_SOCKET_CONNECTION)) +#define G_IS_SOCKET_CONNECTION_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_SOCKET_CONNECTION)) +#define G_SOCKET_CONNECTION_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_SOCKET_CONNECTION, GSocketConnectionClass)) + +typedef struct _GSocketConnectionPrivate GSocketConnectionPrivate; +typedef struct _GSocketConnectionClass GSocketConnectionClass; + +struct _GSocketConnectionClass +{ + GIOStreamClass parent_class; + + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); + void (*_g_reserved6) (void); +}; + +struct _GSocketConnection +{ + GIOStream parent_instance; + GSocketConnectionPrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_socket_connection_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_32 +gboolean g_socket_connection_is_connected (GSocketConnection *connection); +GIO_AVAILABLE_IN_2_32 +gboolean g_socket_connection_connect (GSocketConnection *connection, + GSocketAddress *address, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_32 +void g_socket_connection_connect_async (GSocketConnection *connection, + GSocketAddress *address, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_32 +gboolean g_socket_connection_connect_finish (GSocketConnection *connection, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +GSocket *g_socket_connection_get_socket (GSocketConnection *connection); +GIO_AVAILABLE_IN_ALL +GSocketAddress *g_socket_connection_get_local_address (GSocketConnection *connection, + GError **error); +GIO_AVAILABLE_IN_ALL +GSocketAddress *g_socket_connection_get_remote_address (GSocketConnection *connection, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_socket_connection_factory_register_type (GType g_type, + GSocketFamily family, + GSocketType type, + gint protocol); +GIO_AVAILABLE_IN_ALL +GType g_socket_connection_factory_lookup_type (GSocketFamily family, + GSocketType type, + gint protocol_id); +GIO_AVAILABLE_IN_ALL +GSocketConnection *g_socket_connection_factory_create_connection (GSocket *socket); + +G_END_DECLS + +#endif /* __G_SOCKET_CONNECTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketcontrolmessage.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketcontrolmessage.h new file mode 100644 index 000000000..51be2e173 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketcontrolmessage.h @@ -0,0 +1,113 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2009 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_SOCKET_CONTROL_MESSAGE_H__ +#define __G_SOCKET_CONTROL_MESSAGE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SOCKET_CONTROL_MESSAGE (g_socket_control_message_get_type ()) +#define G_SOCKET_CONTROL_MESSAGE(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_SOCKET_CONTROL_MESSAGE, \ + GSocketControlMessage)) +#define G_SOCKET_CONTROL_MESSAGE_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_SOCKET_CONTROL_MESSAGE, \ + GSocketControlMessageClass)) +#define G_IS_SOCKET_CONTROL_MESSAGE(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_SOCKET_CONTROL_MESSAGE)) +#define G_IS_SOCKET_CONTROL_MESSAGE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_SOCKET_CONTROL_MESSAGE)) +#define G_SOCKET_CONTROL_MESSAGE_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_SOCKET_CONTROL_MESSAGE, \ + GSocketControlMessageClass)) + +typedef struct _GSocketControlMessagePrivate GSocketControlMessagePrivate; +typedef struct _GSocketControlMessageClass GSocketControlMessageClass; + +/** + * GSocketControlMessageClass: + * @get_size: gets the size of the message. + * @get_level: gets the protocol of the message. + * @get_type: gets the protocol specific type of the message. + * @serialize: Writes out the message data. + * @deserialize: Tries to deserialize a message. + * + * Class structure for #GSocketControlMessage. + **/ + +struct _GSocketControlMessageClass +{ + GObjectClass parent_class; + + gsize (* get_size) (GSocketControlMessage *message); + int (* get_level) (GSocketControlMessage *message); + int (* get_type) (GSocketControlMessage *message); + void (* serialize) (GSocketControlMessage *message, + gpointer data); + GSocketControlMessage *(* deserialize) (int level, + int type, + gsize size, + gpointer data); + + /*< private >*/ + + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +struct _GSocketControlMessage +{ + GObject parent_instance; + GSocketControlMessagePrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_socket_control_message_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +gsize g_socket_control_message_get_size (GSocketControlMessage *message); +GIO_AVAILABLE_IN_ALL +int g_socket_control_message_get_level (GSocketControlMessage *message); +GIO_AVAILABLE_IN_ALL +int g_socket_control_message_get_msg_type (GSocketControlMessage *message); +GIO_AVAILABLE_IN_ALL +void g_socket_control_message_serialize (GSocketControlMessage *message, + gpointer data); +GIO_AVAILABLE_IN_ALL +GSocketControlMessage *g_socket_control_message_deserialize (int level, + int type, + gsize size, + gpointer data); + + +G_END_DECLS + +#endif /* __G_SOCKET_CONTROL_MESSAGE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketlistener.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketlistener.h new file mode 100644 index 000000000..9ad6c8fe6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketlistener.h @@ -0,0 +1,157 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2008 Christian Kellner, Samuel Cormier-Iijima + * Copyright © 2009 Codethink Limited + * Copyright © 2009 Red Hat, Inc + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Christian Kellner + * Samuel Cormier-Iijima + * Ryan Lortie + * Alexander Larsson + */ + +#ifndef __G_SOCKET_LISTENER_H__ +#define __G_SOCKET_LISTENER_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SOCKET_LISTENER (g_socket_listener_get_type ()) +#define G_SOCKET_LISTENER(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_SOCKET_LISTENER, GSocketListener)) +#define G_SOCKET_LISTENER_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_SOCKET_LISTENER, GSocketListenerClass)) +#define G_IS_SOCKET_LISTENER(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_SOCKET_LISTENER)) +#define G_IS_SOCKET_LISTENER_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_SOCKET_LISTENER)) +#define G_SOCKET_LISTENER_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_SOCKET_LISTENER, GSocketListenerClass)) + +typedef struct _GSocketListenerPrivate GSocketListenerPrivate; +typedef struct _GSocketListenerClass GSocketListenerClass; + +/** + * GSocketListenerClass: + * @changed: virtual method called when the set of socket listened to changes + * + * Class structure for #GSocketListener. + **/ +struct _GSocketListenerClass +{ + GObjectClass parent_class; + + void (* changed) (GSocketListener *listener); + + void (* event) (GSocketListener *listener, + GSocketListenerEvent event, + GSocket *socket); + + /* Padding for future expansion */ + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); + void (*_g_reserved6) (void); +}; + +struct _GSocketListener +{ + GObject parent_instance; + GSocketListenerPrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_socket_listener_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GSocketListener * g_socket_listener_new (void); + +GIO_AVAILABLE_IN_ALL +void g_socket_listener_set_backlog (GSocketListener *listener, + int listen_backlog); + +GIO_AVAILABLE_IN_ALL +gboolean g_socket_listener_add_socket (GSocketListener *listener, + GSocket *socket, + GObject *source_object, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_listener_add_address (GSocketListener *listener, + GSocketAddress *address, + GSocketType type, + GSocketProtocol protocol, + GObject *source_object, + GSocketAddress **effective_address, + GError **error); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_listener_add_inet_port (GSocketListener *listener, + guint16 port, + GObject *source_object, + GError **error); +GIO_AVAILABLE_IN_ALL +guint16 g_socket_listener_add_any_inet_port (GSocketListener *listener, + GObject *source_object, + GError **error); + +GIO_AVAILABLE_IN_ALL +GSocket * g_socket_listener_accept_socket (GSocketListener *listener, + GObject **source_object, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +void g_socket_listener_accept_socket_async (GSocketListener *listener, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GSocket * g_socket_listener_accept_socket_finish (GSocketListener *listener, + GAsyncResult *result, + GObject **source_object, + GError **error); + + +GIO_AVAILABLE_IN_ALL +GSocketConnection * g_socket_listener_accept (GSocketListener *listener, + GObject **source_object, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_socket_listener_accept_async (GSocketListener *listener, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_ALL +GSocketConnection * g_socket_listener_accept_finish (GSocketListener *listener, + GAsyncResult *result, + GObject **source_object, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_socket_listener_close (GSocketListener *listener); + +G_END_DECLS + +#endif /* __G_SOCKET_LISTENER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketservice.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketservice.h new file mode 100644 index 000000000..f4e7c220e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsocketservice.h @@ -0,0 +1,95 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2009 Codethink Limited + * Copyright © 2009 Red Hat, Inc + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + * Alexander Larsson + */ + +#ifndef __G_SOCKET_SERVICE_H__ +#define __G_SOCKET_SERVICE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SOCKET_SERVICE (g_socket_service_get_type ()) +#define G_SOCKET_SERVICE(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_SOCKET_SERVICE, GSocketService)) +#define G_SOCKET_SERVICE_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_SOCKET_SERVICE, GSocketServiceClass)) +#define G_IS_SOCKET_SERVICE(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_SOCKET_SERVICE)) +#define G_IS_SOCKET_SERVICE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_SOCKET_SERVICE)) +#define G_SOCKET_SERVICE_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_SOCKET_SERVICE, GSocketServiceClass)) + +typedef struct _GSocketServicePrivate GSocketServicePrivate; +typedef struct _GSocketServiceClass GSocketServiceClass; + +/** + * GSocketServiceClass: + * @incoming: signal emitted when new connections are accepted + * + * Class structure for #GSocketService. + */ +struct _GSocketServiceClass +{ + GSocketListenerClass parent_class; + + gboolean (* incoming) (GSocketService *service, + GSocketConnection *connection, + GObject *source_object); + + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); + void (*_g_reserved6) (void); +}; + +struct _GSocketService +{ + GSocketListener parent_instance; + GSocketServicePrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_socket_service_get_type (void); + +GIO_AVAILABLE_IN_ALL +GSocketService *g_socket_service_new (void); +GIO_AVAILABLE_IN_ALL +void g_socket_service_start (GSocketService *service); +GIO_AVAILABLE_IN_ALL +void g_socket_service_stop (GSocketService *service); +GIO_AVAILABLE_IN_ALL +gboolean g_socket_service_is_active (GSocketService *service); + + +G_END_DECLS + +#endif /* __G_SOCKET_SERVICE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsrvtarget.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsrvtarget.h new file mode 100644 index 000000000..92bb256bc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsrvtarget.h @@ -0,0 +1,60 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2008 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_SRV_TARGET_H__ +#define __G_SRV_TARGET_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GIO_AVAILABLE_IN_ALL +GType g_srv_target_get_type (void) G_GNUC_CONST; +#define G_TYPE_SRV_TARGET (g_srv_target_get_type ()) + +GIO_AVAILABLE_IN_ALL +GSrvTarget *g_srv_target_new (const gchar *hostname, + guint16 port, + guint16 priority, + guint16 weight); +GIO_AVAILABLE_IN_ALL +GSrvTarget *g_srv_target_copy (GSrvTarget *target); +GIO_AVAILABLE_IN_ALL +void g_srv_target_free (GSrvTarget *target); + +GIO_AVAILABLE_IN_ALL +const gchar *g_srv_target_get_hostname (GSrvTarget *target); +GIO_AVAILABLE_IN_ALL +guint16 g_srv_target_get_port (GSrvTarget *target); +GIO_AVAILABLE_IN_ALL +guint16 g_srv_target_get_priority (GSrvTarget *target); +GIO_AVAILABLE_IN_ALL +guint16 g_srv_target_get_weight (GSrvTarget *target); + +GIO_AVAILABLE_IN_ALL +GList *g_srv_target_list_sort (GList *targets); + +G_END_DECLS + +#endif /* __G_SRV_TARGET_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsubprocess.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsubprocess.h new file mode 100644 index 000000000..4d5b48865 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsubprocess.h @@ -0,0 +1,169 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2012 Colin Walters + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Colin Walters + */ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __G_SUBPROCESS_H__ +#define __G_SUBPROCESS_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SUBPROCESS (g_subprocess_get_type ()) +#define G_SUBPROCESS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_SUBPROCESS, GSubprocess)) +#define G_IS_SUBPROCESS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_SUBPROCESS)) + +GIO_AVAILABLE_IN_2_40 +GType g_subprocess_get_type (void) G_GNUC_CONST; + +/**** Core API ****/ + +GIO_AVAILABLE_IN_2_40 +GSubprocess * g_subprocess_new (GSubprocessFlags flags, + GError **error, + const gchar *argv0, + ...) G_GNUC_NULL_TERMINATED; +GIO_AVAILABLE_IN_2_40 +GSubprocess * g_subprocess_newv (const gchar * const *argv, + GSubprocessFlags flags, + GError **error); + +GIO_AVAILABLE_IN_2_40 +GOutputStream * g_subprocess_get_stdin_pipe (GSubprocess *subprocess); + +GIO_AVAILABLE_IN_2_40 +GInputStream * g_subprocess_get_stdout_pipe (GSubprocess *subprocess); + +GIO_AVAILABLE_IN_2_40 +GInputStream * g_subprocess_get_stderr_pipe (GSubprocess *subprocess); + +GIO_AVAILABLE_IN_2_40 +const gchar * g_subprocess_get_identifier (GSubprocess *subprocess); + +#ifdef G_OS_UNIX +GIO_AVAILABLE_IN_2_40 +void g_subprocess_send_signal (GSubprocess *subprocess, + gint signal_num); +#endif + +GIO_AVAILABLE_IN_2_40 +void g_subprocess_force_exit (GSubprocess *subprocess); + +GIO_AVAILABLE_IN_2_40 +gboolean g_subprocess_wait (GSubprocess *subprocess, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_40 +void g_subprocess_wait_async (GSubprocess *subprocess, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_2_40 +gboolean g_subprocess_wait_finish (GSubprocess *subprocess, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_2_40 +gboolean g_subprocess_wait_check (GSubprocess *subprocess, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_40 +void g_subprocess_wait_check_async (GSubprocess *subprocess, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_2_40 +gboolean g_subprocess_wait_check_finish (GSubprocess *subprocess, + GAsyncResult *result, + GError **error); + + +GIO_AVAILABLE_IN_2_40 +gint g_subprocess_get_status (GSubprocess *subprocess); + +GIO_AVAILABLE_IN_2_40 +gboolean g_subprocess_get_successful (GSubprocess *subprocess); + +GIO_AVAILABLE_IN_2_40 +gboolean g_subprocess_get_if_exited (GSubprocess *subprocess); + +GIO_AVAILABLE_IN_2_40 +gint g_subprocess_get_exit_status (GSubprocess *subprocess); + +GIO_AVAILABLE_IN_2_40 +gboolean g_subprocess_get_if_signaled (GSubprocess *subprocess); + +GIO_AVAILABLE_IN_2_40 +gint g_subprocess_get_term_sig (GSubprocess *subprocess); + +GIO_AVAILABLE_IN_2_40 +gboolean g_subprocess_communicate (GSubprocess *subprocess, + GBytes *stdin_buf, + GCancellable *cancellable, + GBytes **stdout_buf, + GBytes **stderr_buf, + GError **error); +GIO_AVAILABLE_IN_2_40 +void g_subprocess_communicate_async (GSubprocess *subprocess, + GBytes *stdin_buf, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_2_40 +gboolean g_subprocess_communicate_finish (GSubprocess *subprocess, + GAsyncResult *result, + GBytes **stdout_buf, + GBytes **stderr_buf, + GError **error); + +GIO_AVAILABLE_IN_2_40 +gboolean g_subprocess_communicate_utf8 (GSubprocess *subprocess, + const char *stdin_buf, + GCancellable *cancellable, + char **stdout_buf, + char **stderr_buf, + GError **error); +GIO_AVAILABLE_IN_2_40 +void g_subprocess_communicate_utf8_async (GSubprocess *subprocess, + const char *stdin_buf, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_2_40 +gboolean g_subprocess_communicate_utf8_finish (GSubprocess *subprocess, + GAsyncResult *result, + char **stdout_buf, + char **stderr_buf, + GError **error); + +G_END_DECLS + +#endif /* __G_SUBPROCESS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsubprocesslauncher.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsubprocesslauncher.h new file mode 100644 index 000000000..0ab91452a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gsubprocesslauncher.h @@ -0,0 +1,121 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2012,2013 Colin Walters + * Copyright © 2012,2013 Canonical Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Ryan Lortie + * Author: Colin Walters + */ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __G_SUBPROCESS_LAUNCHER_H__ +#define __G_SUBPROCESS_LAUNCHER_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_SUBPROCESS_LAUNCHER (g_subprocess_launcher_get_type ()) +#define G_SUBPROCESS_LAUNCHER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_SUBPROCESS_LAUNCHER, GSubprocessLauncher)) +#define G_IS_SUBPROCESS_LAUNCHER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_SUBPROCESS_LAUNCHER)) + +GIO_AVAILABLE_IN_2_40 +GType g_subprocess_launcher_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_40 +GSubprocessLauncher * g_subprocess_launcher_new (GSubprocessFlags flags); + +GIO_AVAILABLE_IN_2_40 +GSubprocess * g_subprocess_launcher_spawn (GSubprocessLauncher *self, + GError **error, + const gchar *argv0, + ...) G_GNUC_NULL_TERMINATED; + +GIO_AVAILABLE_IN_2_40 +GSubprocess * g_subprocess_launcher_spawnv (GSubprocessLauncher *self, + const gchar * const *argv, + GError **error); + +GIO_AVAILABLE_IN_2_40 +void g_subprocess_launcher_set_environ (GSubprocessLauncher *self, + gchar **env); + +GIO_AVAILABLE_IN_2_40 +void g_subprocess_launcher_setenv (GSubprocessLauncher *self, + const gchar *variable, + const gchar *value, + gboolean overwrite); + +GIO_AVAILABLE_IN_2_40 +void g_subprocess_launcher_unsetenv (GSubprocessLauncher *self, + const gchar *variable); + +GIO_AVAILABLE_IN_2_40 +const gchar * g_subprocess_launcher_getenv (GSubprocessLauncher *self, + const gchar *variable); + +GIO_AVAILABLE_IN_2_40 +void g_subprocess_launcher_set_cwd (GSubprocessLauncher *self, + const gchar *cwd); +GIO_AVAILABLE_IN_2_40 +void g_subprocess_launcher_set_flags (GSubprocessLauncher *self, + GSubprocessFlags flags); + +/* Extended I/O control, only available on UNIX */ +#ifdef G_OS_UNIX +GIO_AVAILABLE_IN_2_40 +void g_subprocess_launcher_set_stdin_file_path (GSubprocessLauncher *self, + const gchar *path); +GIO_AVAILABLE_IN_2_40 +void g_subprocess_launcher_take_stdin_fd (GSubprocessLauncher *self, + gint fd); +GIO_AVAILABLE_IN_2_40 +void g_subprocess_launcher_set_stdout_file_path (GSubprocessLauncher *self, + const gchar *path); +GIO_AVAILABLE_IN_2_40 +void g_subprocess_launcher_take_stdout_fd (GSubprocessLauncher *self, + gint fd); +GIO_AVAILABLE_IN_2_40 +void g_subprocess_launcher_set_stderr_file_path (GSubprocessLauncher *self, + const gchar *path); +GIO_AVAILABLE_IN_2_40 +void g_subprocess_launcher_take_stderr_fd (GSubprocessLauncher *self, + gint fd); + +GIO_AVAILABLE_IN_2_40 +void g_subprocess_launcher_take_fd (GSubprocessLauncher *self, + gint source_fd, + gint target_fd); + +GIO_AVAILABLE_IN_2_68 +void g_subprocess_launcher_close (GSubprocessLauncher *self); + +/* Child setup, only available on UNIX */ +GIO_AVAILABLE_IN_2_40 +void g_subprocess_launcher_set_child_setup (GSubprocessLauncher *self, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + GDestroyNotify destroy_notify); +#endif + +G_END_DECLS + +#endif /* __G_SUBPROCESS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtask.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtask.h new file mode 100644 index 000000000..6d7fa82ff --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtask.h @@ -0,0 +1,207 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright 2011 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_TASK_H__ +#define __G_TASK_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_TASK (g_task_get_type ()) +#define G_TASK(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_TASK, GTask)) +#define G_TASK_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_TASK, GTaskClass)) +#define G_IS_TASK(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_TASK)) +#define G_IS_TASK_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_TASK)) +#define G_TASK_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_TASK, GTaskClass)) + +typedef struct _GTaskClass GTaskClass; + +GIO_AVAILABLE_IN_2_36 +GType g_task_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_36 +GTask *g_task_new (gpointer source_object, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer callback_data); + +GIO_AVAILABLE_IN_2_36 +void g_task_report_error (gpointer source_object, + GAsyncReadyCallback callback, + gpointer callback_data, + gpointer source_tag, + GError *error); +GIO_AVAILABLE_IN_2_36 +void g_task_report_new_error (gpointer source_object, + GAsyncReadyCallback callback, + gpointer callback_data, + gpointer source_tag, + GQuark domain, + gint code, + const char *format, + ...) G_GNUC_PRINTF(7, 8); + +GIO_AVAILABLE_IN_2_36 +void g_task_set_task_data (GTask *task, + gpointer task_data, + GDestroyNotify task_data_destroy); +GIO_AVAILABLE_IN_2_36 +void g_task_set_priority (GTask *task, + gint priority); +GIO_AVAILABLE_IN_2_36 +void g_task_set_check_cancellable (GTask *task, + gboolean check_cancellable); +GIO_AVAILABLE_IN_2_36 +void g_task_set_source_tag (GTask *task, + gpointer source_tag); +GIO_AVAILABLE_IN_2_60 +void g_task_set_name (GTask *task, + const gchar *name); +GIO_AVAILABLE_IN_2_76 +void g_task_set_static_name (GTask *task, + const gchar *name); + +/* Macro wrapper to set the task name when setting the source tag. */ +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_76 +#define g_task_set_source_tag(task, tag) G_STMT_START { \ + GTask *_task = (task); \ + (g_task_set_source_tag) (_task, tag); \ + if (g_task_get_name (_task) == NULL) \ + g_task_set_static_name (_task, G_STRINGIFY (tag)); \ +} G_STMT_END +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_76 +#if defined (__GNUC__) && (__GNUC__ >= 2) +#define g_task_set_name(task, name) G_STMT_START { \ + GTask *_task = (task); \ + if (__builtin_constant_p (name)) \ + g_task_set_static_name (_task, name); \ + else \ + g_task_set_name (_task, name); \ +} G_STMT_END +#endif +#endif + +GIO_AVAILABLE_IN_2_36 +gpointer g_task_get_source_object (GTask *task); +GIO_AVAILABLE_IN_2_36 +gpointer g_task_get_task_data (GTask *task); +GIO_AVAILABLE_IN_2_36 +gint g_task_get_priority (GTask *task); +GIO_AVAILABLE_IN_2_36 +GMainContext *g_task_get_context (GTask *task); +GIO_AVAILABLE_IN_2_36 +GCancellable *g_task_get_cancellable (GTask *task); +GIO_AVAILABLE_IN_2_36 +gboolean g_task_get_check_cancellable (GTask *task); +GIO_AVAILABLE_IN_2_36 +gpointer g_task_get_source_tag (GTask *task); +GIO_AVAILABLE_IN_2_60 +const gchar *g_task_get_name (GTask *task); + +GIO_AVAILABLE_IN_2_36 +gboolean g_task_is_valid (gpointer result, + gpointer source_object); + + +typedef void (*GTaskThreadFunc) (GTask *task, + gpointer source_object, + gpointer task_data, + GCancellable *cancellable); +GIO_AVAILABLE_IN_2_36 +void g_task_run_in_thread (GTask *task, + GTaskThreadFunc task_func); +GIO_AVAILABLE_IN_2_36 +void g_task_run_in_thread_sync (GTask *task, + GTaskThreadFunc task_func); +GIO_AVAILABLE_IN_2_36 +gboolean g_task_set_return_on_cancel (GTask *task, + gboolean return_on_cancel); +GIO_AVAILABLE_IN_2_36 +gboolean g_task_get_return_on_cancel (GTask *task); + +GIO_AVAILABLE_IN_2_36 +void g_task_attach_source (GTask *task, + GSource *source, + GSourceFunc callback); + + +GIO_AVAILABLE_IN_2_36 +void g_task_return_pointer (GTask *task, + gpointer result, + GDestroyNotify result_destroy); +GIO_AVAILABLE_IN_2_36 +void g_task_return_boolean (GTask *task, + gboolean result); +GIO_AVAILABLE_IN_2_36 +void g_task_return_int (GTask *task, + gssize result); + +GIO_AVAILABLE_IN_2_36 +void g_task_return_error (GTask *task, + GError *error); +GIO_AVAILABLE_IN_2_36 +void g_task_return_new_error (GTask *task, + GQuark domain, + gint code, + const char *format, + ...) G_GNUC_PRINTF (4, 5); +GIO_AVAILABLE_IN_2_64 +void g_task_return_value (GTask *task, + GValue *result); + +GIO_AVAILABLE_IN_2_36 +gboolean g_task_return_error_if_cancelled (GTask *task); + +GIO_AVAILABLE_IN_2_36 +gpointer g_task_propagate_pointer (GTask *task, + GError **error); +GIO_AVAILABLE_IN_2_36 +gboolean g_task_propagate_boolean (GTask *task, + GError **error); +GIO_AVAILABLE_IN_2_36 +gssize g_task_propagate_int (GTask *task, + GError **error); +GIO_AVAILABLE_IN_2_64 +gboolean g_task_propagate_value (GTask *task, + GValue *value, + GError **error); +GIO_AVAILABLE_IN_2_36 +gboolean g_task_had_error (GTask *task); +GIO_AVAILABLE_IN_2_44 +gboolean g_task_get_completed (GTask *task); + +/*< private >*/ +#ifndef __GTK_DOC_IGNORE__ +#ifndef __GI_SCANNER__ +/* Debugging API, not part of the public API */ +void g_task_print_alive_tasks (void); +#endif /* !__GI_SCANNER__ */ +#endif /* !__GTK_DOC_IGNORE__ */ + +G_END_DECLS + +#endif /* __G_TASK_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtcpconnection.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtcpconnection.h new file mode 100644 index 000000000..03aa28ad3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtcpconnection.h @@ -0,0 +1,71 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2008, 2009 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_TCP_CONNECTION_H__ +#define __G_TCP_CONNECTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_TCP_CONNECTION (g_tcp_connection_get_type ()) +#define G_TCP_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_TCP_CONNECTION, GTcpConnection)) +#define G_TCP_CONNECTION_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_TCP_CONNECTION, GTcpConnectionClass)) +#define G_IS_TCP_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_TCP_CONNECTION)) +#define G_IS_TCP_CONNECTION_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_TCP_CONNECTION)) +#define G_TCP_CONNECTION_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_TCP_CONNECTION, GTcpConnectionClass)) + +typedef struct _GTcpConnectionPrivate GTcpConnectionPrivate; +typedef struct _GTcpConnectionClass GTcpConnectionClass; + +struct _GTcpConnectionClass +{ + GSocketConnectionClass parent_class; +}; + +struct _GTcpConnection +{ + GSocketConnection parent_instance; + GTcpConnectionPrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_tcp_connection_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +void g_tcp_connection_set_graceful_disconnect (GTcpConnection *connection, + gboolean graceful_disconnect); +GIO_AVAILABLE_IN_ALL +gboolean g_tcp_connection_get_graceful_disconnect (GTcpConnection *connection); + +G_END_DECLS + +#endif /* __G_TCP_CONNECTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtcpwrapperconnection.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtcpwrapperconnection.h new file mode 100644 index 000000000..1027154fb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtcpwrapperconnection.h @@ -0,0 +1,71 @@ +/* GIO - GLib Input, Output and Streaming Library + * Copyright © 2010 Collabora Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Nicolas Dufresne + * + */ + +#ifndef __G_TCP_WRAPPER_CONNECTION_H__ +#define __G_TCP_WRAPPER_CONNECTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_TCP_WRAPPER_CONNECTION (g_tcp_wrapper_connection_get_type ()) +#define G_TCP_WRAPPER_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_TCP_WRAPPER_CONNECTION, GTcpWrapperConnection)) +#define G_TCP_WRAPPER_CONNECTION_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_TCP_WRAPPER_CONNECTION, GTcpWrapperConnectionClass)) +#define G_IS_TCP_WRAPPER_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_TCP_WRAPPER_CONNECTION)) +#define G_IS_TCP_WRAPPER_CONNECTION_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_TCP_WRAPPER_CONNECTION)) +#define G_TCP_WRAPPER_CONNECTION_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_TCP_WRAPPER_CONNECTION, GTcpWrapperConnectionClass)) + +typedef struct _GTcpWrapperConnectionPrivate GTcpWrapperConnectionPrivate; +typedef struct _GTcpWrapperConnectionClass GTcpWrapperConnectionClass; + +struct _GTcpWrapperConnectionClass +{ + GTcpConnectionClass parent_class; +}; + +struct _GTcpWrapperConnection +{ + GTcpConnection parent_instance; + GTcpWrapperConnectionPrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_tcp_wrapper_connection_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GSocketConnection *g_tcp_wrapper_connection_new (GIOStream *base_io_stream, + GSocket *socket); +GIO_AVAILABLE_IN_ALL +GIOStream *g_tcp_wrapper_connection_get_base_io_stream (GTcpWrapperConnection *conn); + +G_END_DECLS + +#endif /* __G_TCP_WRAPPER_CONNECTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtestdbus.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtestdbus.h new file mode 100644 index 000000000..f52ea1eb1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtestdbus.h @@ -0,0 +1,74 @@ +/* GIO testing utilities + * + * Copyright (C) 2008-2010 Red Hat, Inc. + * Copyright (C) 2012 Collabora Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: David Zeuthen + * Xavier Claessens + */ + +#ifndef __G_TEST_DBUS_H__ +#define __G_TEST_DBUS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_TEST_DBUS \ + (g_test_dbus_get_type ()) +#define G_TEST_DBUS(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_TEST_DBUS, \ + GTestDBus)) +#define G_IS_TEST_DBUS(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_TEST_DBUS)) + +GIO_AVAILABLE_IN_2_34 +GType g_test_dbus_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_2_34 +GTestDBus * g_test_dbus_new (GTestDBusFlags flags); + +GIO_AVAILABLE_IN_2_34 +GTestDBusFlags g_test_dbus_get_flags (GTestDBus *self); + +GIO_AVAILABLE_IN_2_34 +const gchar * g_test_dbus_get_bus_address (GTestDBus *self); + +GIO_AVAILABLE_IN_2_34 +void g_test_dbus_add_service_dir (GTestDBus *self, + const gchar *path); + +GIO_AVAILABLE_IN_2_34 +void g_test_dbus_up (GTestDBus *self); + +GIO_AVAILABLE_IN_2_34 +void g_test_dbus_stop (GTestDBus *self); + +GIO_AVAILABLE_IN_2_34 +void g_test_dbus_down (GTestDBus *self); + +GIO_AVAILABLE_IN_2_34 +void g_test_dbus_unset (void); + +G_END_DECLS + +#endif /* __G_TEST_DBUS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gthemedicon.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gthemedicon.h new file mode 100644 index 000000000..5ac36ce4f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gthemedicon.h @@ -0,0 +1,70 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_THEMED_ICON_H__ +#define __G_THEMED_ICON_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_THEMED_ICON (g_themed_icon_get_type ()) +#define G_THEMED_ICON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_THEMED_ICON, GThemedIcon)) +#define G_THEMED_ICON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_THEMED_ICON, GThemedIconClass)) +#define G_IS_THEMED_ICON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_THEMED_ICON)) +#define G_IS_THEMED_ICON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_THEMED_ICON)) +#define G_THEMED_ICON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_THEMED_ICON, GThemedIconClass)) + +/** + * GThemedIcon: + * + * An implementation of #GIcon for themed icons. + **/ +typedef struct _GThemedIconClass GThemedIconClass; + +GIO_AVAILABLE_IN_ALL +GType g_themed_icon_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GIcon *g_themed_icon_new (const char *iconname); +GIO_AVAILABLE_IN_ALL +GIcon *g_themed_icon_new_with_default_fallbacks (const char *iconname); +GIO_AVAILABLE_IN_ALL +GIcon *g_themed_icon_new_from_names (char **iconnames, + int len); +GIO_AVAILABLE_IN_ALL +void g_themed_icon_prepend_name (GThemedIcon *icon, + const char *iconname); +GIO_AVAILABLE_IN_ALL +void g_themed_icon_append_name (GThemedIcon *icon, + const char *iconname); + +GIO_AVAILABLE_IN_ALL +const gchar* const * g_themed_icon_get_names (GThemedIcon *icon); + +G_END_DECLS + +#endif /* __G_THEMED_ICON_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gthreadedsocketservice.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gthreadedsocketservice.h new file mode 100644 index 000000000..48f5a3120 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gthreadedsocketservice.h @@ -0,0 +1,83 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2009 Codethink Limited + * Copyright © 2009 Red Hat, Inc + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + * Alexander Larsson + */ + +#ifndef __G_THREADED_SOCKET_SERVICE_H__ +#define __G_THREADED_SOCKET_SERVICE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_THREADED_SOCKET_SERVICE (g_threaded_socket_service_get_type ()) +#define G_THREADED_SOCKET_SERVICE(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_THREADED_SOCKET_SERVICE, \ + GThreadedSocketService)) +#define G_THREADED_SOCKET_SERVICE_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_THREADED_SOCKET_SERVICE, \ + GThreadedSocketServiceClass)) +#define G_IS_THREADED_SOCKET_SERVICE(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_THREADED_SOCKET_SERVICE)) +#define G_IS_THREADED_SOCKET_SERVICE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_THREADED_SOCKET_SERVICE)) +#define G_THREADED_SOCKET_SERVICE_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_THREADED_SOCKET_SERVICE, \ + GThreadedSocketServiceClass)) + +typedef struct _GThreadedSocketServicePrivate GThreadedSocketServicePrivate; +typedef struct _GThreadedSocketServiceClass GThreadedSocketServiceClass; + +struct _GThreadedSocketServiceClass +{ + GSocketServiceClass parent_class; + + gboolean (* run) (GThreadedSocketService *service, + GSocketConnection *connection, + GObject *source_object); + + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +struct _GThreadedSocketService +{ + GSocketService parent_instance; + GThreadedSocketServicePrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_threaded_socket_service_get_type (void); +GIO_AVAILABLE_IN_ALL +GSocketService * g_threaded_socket_service_new (int max_threads); + +G_END_DECLS + +#endif /* __G_THREADED_SOCKET_SERVICE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsbackend.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsbackend.h new file mode 100644 index 000000000..dc51b230a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsbackend.h @@ -0,0 +1,115 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Red Hat, Inc. + * Copyright © 2015 Collabora, Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_TLS_BACKEND_H__ +#define __G_TLS_BACKEND_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * G_TLS_BACKEND_EXTENSION_POINT_NAME: + * + * Extension point for TLS functionality via #GTlsBackend. + * See [Extending GIO][extending-gio]. + */ +#define G_TLS_BACKEND_EXTENSION_POINT_NAME "gio-tls-backend" + +#define G_TYPE_TLS_BACKEND (g_tls_backend_get_type ()) +#define G_TLS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_TLS_BACKEND, GTlsBackend)) +#define G_IS_TLS_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_TLS_BACKEND)) +#define G_TLS_BACKEND_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_TLS_BACKEND, GTlsBackendInterface)) + +typedef struct _GTlsBackend GTlsBackend; +typedef struct _GTlsBackendInterface GTlsBackendInterface; + +/** + * GTlsBackendInterface: + * @g_iface: The parent interface. + * @supports_tls: returns whether the backend supports TLS. + * @supports_dtls: returns whether the backend supports DTLS + * @get_default_database: returns a default #GTlsDatabase instance. + * @get_certificate_type: returns the #GTlsCertificate implementation type + * @get_client_connection_type: returns the #GTlsClientConnection implementation type + * @get_server_connection_type: returns the #GTlsServerConnection implementation type + * @get_file_database_type: returns the #GTlsFileDatabase implementation type. + * @get_dtls_client_connection_type: returns the #GDtlsClientConnection implementation type + * @get_dtls_server_connection_type: returns the #GDtlsServerConnection implementation type + * + * Provides an interface for describing TLS-related types. + * + * Since: 2.28 + */ +struct _GTlsBackendInterface +{ + GTypeInterface g_iface; + + /* methods */ + gboolean ( *supports_tls) (GTlsBackend *backend); + GType ( *get_certificate_type) (void); + GType ( *get_client_connection_type) (void); + GType ( *get_server_connection_type) (void); + GType ( *get_file_database_type) (void); + GTlsDatabase * ( *get_default_database) (GTlsBackend *backend); + gboolean ( *supports_dtls) (GTlsBackend *backend); + GType ( *get_dtls_client_connection_type) (void); + GType ( *get_dtls_server_connection_type) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_tls_backend_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GTlsBackend * g_tls_backend_get_default (void); + +GIO_AVAILABLE_IN_ALL +GTlsDatabase * g_tls_backend_get_default_database (GTlsBackend *backend); +GIO_AVAILABLE_IN_2_60 +void g_tls_backend_set_default_database (GTlsBackend *backend, + GTlsDatabase *database); + +GIO_AVAILABLE_IN_ALL +gboolean g_tls_backend_supports_tls (GTlsBackend *backend); +GIO_AVAILABLE_IN_2_48 +gboolean g_tls_backend_supports_dtls (GTlsBackend *backend); + +GIO_AVAILABLE_IN_ALL +GType g_tls_backend_get_certificate_type (GTlsBackend *backend); +GIO_AVAILABLE_IN_ALL +GType g_tls_backend_get_client_connection_type (GTlsBackend *backend); +GIO_AVAILABLE_IN_ALL +GType g_tls_backend_get_server_connection_type (GTlsBackend *backend); +GIO_AVAILABLE_IN_ALL +GType g_tls_backend_get_file_database_type (GTlsBackend *backend); + +GIO_AVAILABLE_IN_2_48 +GType g_tls_backend_get_dtls_client_connection_type (GTlsBackend *backend); +GIO_AVAILABLE_IN_2_48 +GType g_tls_backend_get_dtls_server_connection_type (GTlsBackend *backend); + +G_END_DECLS + +#endif /* __G_TLS_BACKEND_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlscertificate.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlscertificate.h new file mode 100644 index 000000000..c8d10bff8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlscertificate.h @@ -0,0 +1,125 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_TLS_CERTIFICATE_H__ +#define __G_TLS_CERTIFICATE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_TLS_CERTIFICATE (g_tls_certificate_get_type ()) +#define G_TLS_CERTIFICATE(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), G_TYPE_TLS_CERTIFICATE, GTlsCertificate)) +#define G_TLS_CERTIFICATE_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_TLS_CERTIFICATE, GTlsCertificateClass)) +#define G_IS_TLS_CERTIFICATE(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_TLS_CERTIFICATE)) +#define G_IS_TLS_CERTIFICATE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_TLS_CERTIFICATE)) +#define G_TLS_CERTIFICATE_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), G_TYPE_TLS_CERTIFICATE, GTlsCertificateClass)) + +typedef struct _GTlsCertificateClass GTlsCertificateClass; +typedef struct _GTlsCertificatePrivate GTlsCertificatePrivate; + +struct _GTlsCertificate { + GObject parent_instance; + + GTlsCertificatePrivate *priv; +}; + +struct _GTlsCertificateClass +{ + GObjectClass parent_class; + + GTlsCertificateFlags (* verify) (GTlsCertificate *cert, + GSocketConnectable *identity, + GTlsCertificate *trusted_ca); + + /*< private >*/ + /* Padding for future expansion */ + gpointer padding[8]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_tls_certificate_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GTlsCertificate *g_tls_certificate_new_from_pem (const gchar *data, + gssize length, + GError **error); +GIO_AVAILABLE_IN_2_72 +GTlsCertificate *g_tls_certificate_new_from_pkcs12 (const guint8 *data, + gsize length, + const gchar *password, + GError **error); +GIO_AVAILABLE_IN_2_72 +GTlsCertificate *g_tls_certificate_new_from_file_with_password (const gchar *file, + const gchar *password, + GError **error); +GIO_AVAILABLE_IN_ALL +GTlsCertificate *g_tls_certificate_new_from_file (const gchar *file, + GError **error); +GIO_AVAILABLE_IN_ALL +GTlsCertificate *g_tls_certificate_new_from_files (const gchar *cert_file, + const gchar *key_file, + GError **error); +GIO_AVAILABLE_IN_2_68 +GTlsCertificate *g_tls_certificate_new_from_pkcs11_uris (const gchar *pkcs11_uri, + const gchar *private_key_pkcs11_uri, + GError **error); + +GIO_AVAILABLE_IN_ALL +GList *g_tls_certificate_list_new_from_file (const gchar *file, + GError **error); + +GIO_AVAILABLE_IN_ALL +GTlsCertificate *g_tls_certificate_get_issuer (GTlsCertificate *cert); + +GIO_AVAILABLE_IN_ALL +GTlsCertificateFlags g_tls_certificate_verify (GTlsCertificate *cert, + GSocketConnectable *identity, + GTlsCertificate *trusted_ca); + +GIO_AVAILABLE_IN_2_34 +gboolean g_tls_certificate_is_same (GTlsCertificate *cert_one, + GTlsCertificate *cert_two); + +GIO_AVAILABLE_IN_2_70 +GDateTime *g_tls_certificate_get_not_valid_before (GTlsCertificate *cert); + +GIO_AVAILABLE_IN_2_70 +GDateTime *g_tls_certificate_get_not_valid_after (GTlsCertificate *cert); + +GIO_AVAILABLE_IN_2_70 +gchar *g_tls_certificate_get_subject_name (GTlsCertificate *cert); + +GIO_AVAILABLE_IN_2_70 +gchar *g_tls_certificate_get_issuer_name (GTlsCertificate *cert); + +GIO_AVAILABLE_IN_2_70 +GPtrArray *g_tls_certificate_get_dns_names (GTlsCertificate *cert); + +GIO_AVAILABLE_IN_2_70 +GPtrArray *g_tls_certificate_get_ip_addresses (GTlsCertificate *cert); + +G_END_DECLS + +#endif /* __G_TLS_CERTIFICATE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsclientconnection.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsclientconnection.h new file mode 100644 index 000000000..32d6274df --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsclientconnection.h @@ -0,0 +1,88 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_TLS_CLIENT_CONNECTION_H__ +#define __G_TLS_CLIENT_CONNECTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_TLS_CLIENT_CONNECTION (g_tls_client_connection_get_type ()) +#define G_TLS_CLIENT_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), G_TYPE_TLS_CLIENT_CONNECTION, GTlsClientConnection)) +#define G_IS_TLS_CLIENT_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_TLS_CLIENT_CONNECTION)) +#define G_TLS_CLIENT_CONNECTION_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), G_TYPE_TLS_CLIENT_CONNECTION, GTlsClientConnectionInterface)) + +typedef struct _GTlsClientConnectionInterface GTlsClientConnectionInterface; + +/** + * GTlsClientConnectionInterface: + * @g_iface: The parent interface. + * @copy_session_state: Copies session state from one #GTlsClientConnection to another. + * + * vtable for a #GTlsClientConnection implementation. + * + * Since: 2.26 + */ +struct _GTlsClientConnectionInterface +{ + GTypeInterface g_iface; + + void ( *copy_session_state ) (GTlsClientConnection *conn, + GTlsClientConnection *source); +}; + +GIO_AVAILABLE_IN_ALL +GType g_tls_client_connection_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GIOStream * g_tls_client_connection_new (GIOStream *base_io_stream, + GSocketConnectable *server_identity, + GError **error); + +GIO_DEPRECATED_IN_2_72 +GTlsCertificateFlags g_tls_client_connection_get_validation_flags (GTlsClientConnection *conn); +GIO_DEPRECATED_IN_2_72 +void g_tls_client_connection_set_validation_flags (GTlsClientConnection *conn, + GTlsCertificateFlags flags); +GIO_AVAILABLE_IN_ALL +GSocketConnectable *g_tls_client_connection_get_server_identity (GTlsClientConnection *conn); +GIO_AVAILABLE_IN_ALL +void g_tls_client_connection_set_server_identity (GTlsClientConnection *conn, + GSocketConnectable *identity); +GIO_DEPRECATED_IN_2_56 +gboolean g_tls_client_connection_get_use_ssl3 (GTlsClientConnection *conn); +GIO_DEPRECATED_IN_2_56 +void g_tls_client_connection_set_use_ssl3 (GTlsClientConnection *conn, + gboolean use_ssl3); +GIO_AVAILABLE_IN_ALL +GList * g_tls_client_connection_get_accepted_cas (GTlsClientConnection *conn); + +GIO_AVAILABLE_IN_2_46 +void g_tls_client_connection_copy_session_state (GTlsClientConnection *conn, + GTlsClientConnection *source); + +G_END_DECLS + +#endif /* __G_TLS_CLIENT_CONNECTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsconnection.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsconnection.h new file mode 100644 index 000000000..a266d61bb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsconnection.h @@ -0,0 +1,214 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_TLS_CONNECTION_H__ +#define __G_TLS_CONNECTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_TLS_CONNECTION (g_tls_connection_get_type ()) +#define G_TLS_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), G_TYPE_TLS_CONNECTION, GTlsConnection)) +#define G_TLS_CONNECTION_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_TLS_CONNECTION, GTlsConnectionClass)) +#define G_IS_TLS_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_TLS_CONNECTION)) +#define G_IS_TLS_CONNECTION_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_TLS_CONNECTION)) +#define G_TLS_CONNECTION_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), G_TYPE_TLS_CONNECTION, GTlsConnectionClass)) + +typedef struct _GTlsConnectionClass GTlsConnectionClass; +typedef struct _GTlsConnectionPrivate GTlsConnectionPrivate; + +struct _GTlsConnection { + GIOStream parent_instance; + + GTlsConnectionPrivate *priv; +}; + +/** + * GTlsConnectionClass: + * @parent_class: The parent class. + * @accept_certificate: Check whether to accept a certificate. + * @handshake: Perform a handshake operation. + * @handshake_async: Start an asynchronous handshake operation. + * @handshake_finish: Finish an asynchronous handshake operation. + * @get_binding_data: Retrieve TLS channel binding data (Since: 2.66) + * @get_negotiated_protocol: Get ALPN-negotiated protocol (Since: 2.70) + * + * The class structure for the #GTlsConnection type. + * + * Since: 2.28 + */ +struct _GTlsConnectionClass +{ + GIOStreamClass parent_class; + + /* signals */ + gboolean ( *accept_certificate) (GTlsConnection *connection, + GTlsCertificate *peer_cert, + GTlsCertificateFlags errors); + + /* methods */ + gboolean ( *handshake ) (GTlsConnection *conn, + GCancellable *cancellable, + GError **error); + + void ( *handshake_async ) (GTlsConnection *conn, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean ( *handshake_finish ) (GTlsConnection *conn, + GAsyncResult *result, + GError **error); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + gboolean ( *get_binding_data) (GTlsConnection *conn, + GTlsChannelBindingType type, + GByteArray *data, + GError **error); +G_GNUC_END_IGNORE_DEPRECATIONS + + const gchar *(*get_negotiated_protocol) (GTlsConnection *conn); + + /*< private >*/ + /* Padding for future expansion */ + gpointer padding[6]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_tls_connection_get_type (void) G_GNUC_CONST; + +GIO_DEPRECATED +void g_tls_connection_set_use_system_certdb (GTlsConnection *conn, + gboolean use_system_certdb); +GIO_DEPRECATED +gboolean g_tls_connection_get_use_system_certdb (GTlsConnection *conn); + +GIO_AVAILABLE_IN_ALL +void g_tls_connection_set_database (GTlsConnection *conn, + GTlsDatabase *database); +GIO_AVAILABLE_IN_ALL +GTlsDatabase * g_tls_connection_get_database (GTlsConnection *conn); + +GIO_AVAILABLE_IN_ALL +void g_tls_connection_set_certificate (GTlsConnection *conn, + GTlsCertificate *certificate); +GIO_AVAILABLE_IN_ALL +GTlsCertificate *g_tls_connection_get_certificate (GTlsConnection *conn); + +GIO_AVAILABLE_IN_ALL +void g_tls_connection_set_interaction (GTlsConnection *conn, + GTlsInteraction *interaction); +GIO_AVAILABLE_IN_ALL +GTlsInteraction * g_tls_connection_get_interaction (GTlsConnection *conn); + +GIO_AVAILABLE_IN_ALL +GTlsCertificate *g_tls_connection_get_peer_certificate (GTlsConnection *conn); +GIO_AVAILABLE_IN_ALL +GTlsCertificateFlags g_tls_connection_get_peer_certificate_errors (GTlsConnection *conn); + +GIO_AVAILABLE_IN_ALL +void g_tls_connection_set_require_close_notify (GTlsConnection *conn, + gboolean require_close_notify); +GIO_AVAILABLE_IN_ALL +gboolean g_tls_connection_get_require_close_notify (GTlsConnection *conn); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GIO_DEPRECATED_IN_2_60 +void g_tls_connection_set_rehandshake_mode (GTlsConnection *conn, + GTlsRehandshakeMode mode); +GIO_DEPRECATED_IN_2_60 +GTlsRehandshakeMode g_tls_connection_get_rehandshake_mode (GTlsConnection *conn); +G_GNUC_END_IGNORE_DEPRECATIONS + +GIO_AVAILABLE_IN_2_60 +void g_tls_connection_set_advertised_protocols (GTlsConnection *conn, + const gchar * const *protocols); + +GIO_AVAILABLE_IN_2_60 +const gchar * g_tls_connection_get_negotiated_protocol (GTlsConnection *conn); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GIO_AVAILABLE_IN_2_66 +gboolean g_tls_connection_get_channel_binding_data (GTlsConnection *conn, + GTlsChannelBindingType type, + GByteArray *data, + GError **error); +G_GNUC_END_IGNORE_DEPRECATIONS + +GIO_AVAILABLE_IN_ALL +gboolean g_tls_connection_handshake (GTlsConnection *conn, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_tls_connection_handshake_async (GTlsConnection *conn, + int io_priority, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_tls_connection_handshake_finish (GTlsConnection *conn, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_2_70 +GTlsProtocolVersion g_tls_connection_get_protocol_version (GTlsConnection *conn); + +GIO_AVAILABLE_IN_2_70 +gchar * g_tls_connection_get_ciphersuite_name (GTlsConnection *conn); + +/** + * G_TLS_ERROR: + * + * Error domain for TLS. Errors in this domain will be from the + * #GTlsError enumeration. See #GError for more information on error + * domains. + */ +#define G_TLS_ERROR (g_tls_error_quark ()) +GIO_AVAILABLE_IN_ALL +GQuark g_tls_error_quark (void); + +/** + * G_TLS_CHANNEL_BINDING_ERROR: + * + * Error domain for TLS channel binding. Errors in this domain will be from the + * #GTlsChannelBindingError enumeration. See #GError for more information on error + * domains. + * + * Since: 2.66 + */ +#define G_TLS_CHANNEL_BINDING_ERROR (g_tls_channel_binding_error_quark ()) +GIO_AVAILABLE_IN_2_66 +GQuark g_tls_channel_binding_error_quark (void); + +/*< protected >*/ +GIO_AVAILABLE_IN_ALL +gboolean g_tls_connection_emit_accept_certificate (GTlsConnection *conn, + GTlsCertificate *peer_cert, + GTlsCertificateFlags errors); + +G_END_DECLS + +#endif /* __G_TLS_CONNECTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsdatabase.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsdatabase.h new file mode 100644 index 000000000..4ae6dc330 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsdatabase.h @@ -0,0 +1,249 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Collabora, Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Stef Walter + */ + +#ifndef __G_TLS_DATABASE_H__ +#define __G_TLS_DATABASE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TLS_DATABASE_PURPOSE_AUTHENTICATE_SERVER "1.3.6.1.5.5.7.3.1" +#define G_TLS_DATABASE_PURPOSE_AUTHENTICATE_CLIENT "1.3.6.1.5.5.7.3.2" + +#define G_TYPE_TLS_DATABASE (g_tls_database_get_type ()) +#define G_TLS_DATABASE(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), G_TYPE_TLS_DATABASE, GTlsDatabase)) +#define G_TLS_DATABASE_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_TLS_DATABASE, GTlsDatabaseClass)) +#define G_IS_TLS_DATABASE(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_TLS_DATABASE)) +#define G_IS_TLS_DATABASE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_TLS_DATABASE)) +#define G_TLS_DATABASE_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), G_TYPE_TLS_DATABASE, GTlsDatabaseClass)) + +typedef struct _GTlsDatabaseClass GTlsDatabaseClass; +typedef struct _GTlsDatabasePrivate GTlsDatabasePrivate; + +struct _GTlsDatabase +{ + GObject parent_instance; + + GTlsDatabasePrivate *priv; +}; + +struct _GTlsDatabaseClass +{ + GObjectClass parent_class; + + /* virtual methods */ + + GTlsCertificateFlags (*verify_chain) (GTlsDatabase *self, + GTlsCertificate *chain, + const gchar *purpose, + GSocketConnectable *identity, + GTlsInteraction *interaction, + GTlsDatabaseVerifyFlags flags, + GCancellable *cancellable, + GError **error); + + void (*verify_chain_async) (GTlsDatabase *self, + GTlsCertificate *chain, + const gchar *purpose, + GSocketConnectable *identity, + GTlsInteraction *interaction, + GTlsDatabaseVerifyFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + + GTlsCertificateFlags (*verify_chain_finish) (GTlsDatabase *self, + GAsyncResult *result, + GError **error); + + gchar* (*create_certificate_handle) (GTlsDatabase *self, + GTlsCertificate *certificate); + + GTlsCertificate* (*lookup_certificate_for_handle) (GTlsDatabase *self, + const gchar *handle, + GTlsInteraction *interaction, + GTlsDatabaseLookupFlags flags, + GCancellable *cancellable, + GError **error); + + void (*lookup_certificate_for_handle_async) (GTlsDatabase *self, + const gchar *handle, + GTlsInteraction *interaction, + GTlsDatabaseLookupFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + + GTlsCertificate* (*lookup_certificate_for_handle_finish) (GTlsDatabase *self, + GAsyncResult *result, + GError **error); + + GTlsCertificate* (*lookup_certificate_issuer) (GTlsDatabase *self, + GTlsCertificate *certificate, + GTlsInteraction *interaction, + GTlsDatabaseLookupFlags flags, + GCancellable *cancellable, + GError **error); + + void (*lookup_certificate_issuer_async) (GTlsDatabase *self, + GTlsCertificate *certificate, + GTlsInteraction *interaction, + GTlsDatabaseLookupFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + + GTlsCertificate* (*lookup_certificate_issuer_finish) (GTlsDatabase *self, + GAsyncResult *result, + GError **error); + + GList* (*lookup_certificates_issued_by) (GTlsDatabase *self, + GByteArray *issuer_raw_dn, + GTlsInteraction *interaction, + GTlsDatabaseLookupFlags flags, + GCancellable *cancellable, + GError **error); + + void (*lookup_certificates_issued_by_async) (GTlsDatabase *self, + GByteArray *issuer_raw_dn, + GTlsInteraction *interaction, + GTlsDatabaseLookupFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + + GList* (*lookup_certificates_issued_by_finish) (GTlsDatabase *self, + GAsyncResult *result, + GError **error); + + /*< private >*/ + /* Padding for future expansion */ + gpointer padding[16]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_tls_database_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GTlsCertificateFlags g_tls_database_verify_chain (GTlsDatabase *self, + GTlsCertificate *chain, + const gchar *purpose, + GSocketConnectable *identity, + GTlsInteraction *interaction, + GTlsDatabaseVerifyFlags flags, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_tls_database_verify_chain_async (GTlsDatabase *self, + GTlsCertificate *chain, + const gchar *purpose, + GSocketConnectable *identity, + GTlsInteraction *interaction, + GTlsDatabaseVerifyFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_ALL +GTlsCertificateFlags g_tls_database_verify_chain_finish (GTlsDatabase *self, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +gchar* g_tls_database_create_certificate_handle (GTlsDatabase *self, + GTlsCertificate *certificate); + +GIO_AVAILABLE_IN_ALL +GTlsCertificate* g_tls_database_lookup_certificate_for_handle (GTlsDatabase *self, + const gchar *handle, + GTlsInteraction *interaction, + GTlsDatabaseLookupFlags flags, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_tls_database_lookup_certificate_for_handle_async (GTlsDatabase *self, + const gchar *handle, + GTlsInteraction *interaction, + GTlsDatabaseLookupFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_ALL +GTlsCertificate* g_tls_database_lookup_certificate_for_handle_finish (GTlsDatabase *self, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +GTlsCertificate* g_tls_database_lookup_certificate_issuer (GTlsDatabase *self, + GTlsCertificate *certificate, + GTlsInteraction *interaction, + GTlsDatabaseLookupFlags flags, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_tls_database_lookup_certificate_issuer_async (GTlsDatabase *self, + GTlsCertificate *certificate, + GTlsInteraction *interaction, + GTlsDatabaseLookupFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_ALL +GTlsCertificate* g_tls_database_lookup_certificate_issuer_finish (GTlsDatabase *self, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_ALL +GList* g_tls_database_lookup_certificates_issued_by (GTlsDatabase *self, + GByteArray *issuer_raw_dn, + GTlsInteraction *interaction, + GTlsDatabaseLookupFlags flags, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_tls_database_lookup_certificates_issued_by_async (GTlsDatabase *self, + GByteArray *issuer_raw_dn, + GTlsInteraction *interaction, + GTlsDatabaseLookupFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_ALL +GList* g_tls_database_lookup_certificates_issued_by_finish (GTlsDatabase *self, + GAsyncResult *result, + GError **error); + +G_END_DECLS + +#endif /* __G_TLS_DATABASE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsfiledatabase.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsfiledatabase.h new file mode 100644 index 000000000..57db68e4b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsfiledatabase.h @@ -0,0 +1,60 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2010 Collabora, Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * See the included COPYING file for more information. + * + * Author: Stef Walter + */ + +#ifndef __G_TLS_FILE_DATABASE_H__ +#define __G_TLS_FILE_DATABASE_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_TLS_FILE_DATABASE (g_tls_file_database_get_type ()) +#define G_TLS_FILE_DATABASE(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), G_TYPE_TLS_FILE_DATABASE, GTlsFileDatabase)) +#define G_IS_TLS_FILE_DATABASE(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_TLS_FILE_DATABASE)) +#define G_TLS_FILE_DATABASE_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), G_TYPE_TLS_FILE_DATABASE, GTlsFileDatabaseInterface)) + +typedef struct _GTlsFileDatabaseInterface GTlsFileDatabaseInterface; + +/** + * GTlsFileDatabaseInterface: + * @g_iface: The parent interface. + * + * Provides an interface for #GTlsFileDatabase implementations. + * + */ +struct _GTlsFileDatabaseInterface +{ + GTypeInterface g_iface; + + /*< private >*/ + /* Padding for future expansion */ + gpointer padding[8]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_tls_file_database_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GTlsDatabase* g_tls_file_database_new (const gchar *anchors, + GError **error); + +G_END_DECLS + +#endif /* __G_TLS_FILE_DATABASE_H___ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsinteraction.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsinteraction.h new file mode 100644 index 000000000..68e3662ba --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsinteraction.h @@ -0,0 +1,150 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2011 Collabora, Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Stef Walter + */ + +#ifndef __G_TLS_INTERACTION_H__ +#define __G_TLS_INTERACTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_TLS_INTERACTION (g_tls_interaction_get_type ()) +#define G_TLS_INTERACTION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_TLS_INTERACTION, GTlsInteraction)) +#define G_TLS_INTERACTION_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_TLS_INTERACTION, GTlsInteractionClass)) +#define G_IS_TLS_INTERACTION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_TLS_INTERACTION)) +#define G_IS_TLS_INTERACTION_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_TLS_INTERACTION)) +#define G_TLS_INTERACTION_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_TLS_INTERACTION, GTlsInteractionClass)) + +typedef struct _GTlsInteractionClass GTlsInteractionClass; +typedef struct _GTlsInteractionPrivate GTlsInteractionPrivate; + +struct _GTlsInteraction +{ + /*< private >*/ + GObject parent_instance; + GTlsInteractionPrivate *priv; +}; + +struct _GTlsInteractionClass +{ + /*< private >*/ + GObjectClass parent_class; + + /*< public >*/ + GTlsInteractionResult (* ask_password) (GTlsInteraction *interaction, + GTlsPassword *password, + GCancellable *cancellable, + GError **error); + + void (* ask_password_async) (GTlsInteraction *interaction, + GTlsPassword *password, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + + GTlsInteractionResult (* ask_password_finish) (GTlsInteraction *interaction, + GAsyncResult *result, + GError **error); + + GTlsInteractionResult (* request_certificate) (GTlsInteraction *interaction, + GTlsConnection *connection, + GTlsCertificateRequestFlags flags, + GCancellable *cancellable, + GError **error); + + void (* request_certificate_async) (GTlsInteraction *interaction, + GTlsConnection *connection, + GTlsCertificateRequestFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + + GTlsInteractionResult (* request_certificate_finish) (GTlsInteraction *interaction, + GAsyncResult *result, + GError **error); + + /*< private >*/ + /* Padding for future expansion */ + gpointer padding[21]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_tls_interaction_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GTlsInteractionResult g_tls_interaction_invoke_ask_password (GTlsInteraction *interaction, + GTlsPassword *password, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +GTlsInteractionResult g_tls_interaction_ask_password (GTlsInteraction *interaction, + GTlsPassword *password, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +void g_tls_interaction_ask_password_async (GTlsInteraction *interaction, + GTlsPassword *password, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_ALL +GTlsInteractionResult g_tls_interaction_ask_password_finish (GTlsInteraction *interaction, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_2_40 +GTlsInteractionResult g_tls_interaction_invoke_request_certificate (GTlsInteraction *interaction, + GTlsConnection *connection, + GTlsCertificateRequestFlags flags, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_40 +GTlsInteractionResult g_tls_interaction_request_certificate (GTlsInteraction *interaction, + GTlsConnection *connection, + GTlsCertificateRequestFlags flags, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_2_40 +void g_tls_interaction_request_certificate_async (GTlsInteraction *interaction, + GTlsConnection *connection, + GTlsCertificateRequestFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_AVAILABLE_IN_2_40 +GTlsInteractionResult g_tls_interaction_request_certificate_finish (GTlsInteraction *interaction, + GAsyncResult *result, + GError **error); + +G_END_DECLS + +#endif /* __G_TLS_INTERACTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlspassword.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlspassword.h new file mode 100644 index 000000000..a33ec731d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlspassword.h @@ -0,0 +1,121 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2011 Collabora, Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Stef Walter + */ + +#ifndef __G_TLS_PASSWORD_H__ +#define __G_TLS_PASSWORD_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_TLS_PASSWORD (g_tls_password_get_type ()) +#define G_TLS_PASSWORD(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_TLS_PASSWORD, GTlsPassword)) +#define G_TLS_PASSWORD_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_TLS_PASSWORD, GTlsPasswordClass)) +#define G_IS_TLS_PASSWORD(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_TLS_PASSWORD)) +#define G_IS_TLS_PASSWORD_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_TLS_PASSWORD)) +#define G_TLS_PASSWORD_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_TLS_PASSWORD, GTlsPasswordClass)) + +typedef struct _GTlsPasswordClass GTlsPasswordClass; +typedef struct _GTlsPasswordPrivate GTlsPasswordPrivate; + +struct _GTlsPassword +{ + GObject parent_instance; + + GTlsPasswordPrivate *priv; +}; + +/** + * GTlsPasswordClass: + * @get_value: virtual method for g_tls_password_get_value() + * @set_value: virtual method for g_tls_password_set_value() + * @get_default_warning: virtual method for g_tls_password_get_warning() if no + * value has been set using g_tls_password_set_warning() + * + * Class structure for #GTlsPassword. + */ +struct _GTlsPasswordClass +{ + GObjectClass parent_class; + + /* methods */ + + const guchar * ( *get_value) (GTlsPassword *password, + gsize *length); + + void ( *set_value) (GTlsPassword *password, + guchar *value, + gssize length, + GDestroyNotify destroy); + + const gchar* ( *get_default_warning) (GTlsPassword *password); + + /*< private >*/ + /* Padding for future expansion */ + gpointer padding[4]; +}; + +GIO_AVAILABLE_IN_ALL +GType g_tls_password_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GTlsPassword * g_tls_password_new (GTlsPasswordFlags flags, + const gchar *description); + +GIO_AVAILABLE_IN_ALL +const guchar * g_tls_password_get_value (GTlsPassword *password, + gsize *length); +GIO_AVAILABLE_IN_ALL +void g_tls_password_set_value (GTlsPassword *password, + const guchar *value, + gssize length); +GIO_AVAILABLE_IN_ALL +void g_tls_password_set_value_full (GTlsPassword *password, + guchar *value, + gssize length, + GDestroyNotify destroy); + +GIO_AVAILABLE_IN_ALL +GTlsPasswordFlags g_tls_password_get_flags (GTlsPassword *password); +GIO_AVAILABLE_IN_ALL +void g_tls_password_set_flags (GTlsPassword *password, + GTlsPasswordFlags flags); + +GIO_AVAILABLE_IN_ALL +const gchar* g_tls_password_get_description (GTlsPassword *password); +GIO_AVAILABLE_IN_ALL +void g_tls_password_set_description (GTlsPassword *password, + const gchar *description); + +GIO_AVAILABLE_IN_ALL +const gchar * g_tls_password_get_warning (GTlsPassword *password); +GIO_AVAILABLE_IN_ALL +void g_tls_password_set_warning (GTlsPassword *password, + const gchar *warning); + +G_END_DECLS + +#endif /* __G_TLS_PASSWORD_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsserverconnection.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsserverconnection.h new file mode 100644 index 000000000..f84c25b86 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gtlsserverconnection.h @@ -0,0 +1,71 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_TLS_SERVER_CONNECTION_H__ +#define __G_TLS_SERVER_CONNECTION_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_TLS_SERVER_CONNECTION (g_tls_server_connection_get_type ()) +#define G_TLS_SERVER_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), G_TYPE_TLS_SERVER_CONNECTION, GTlsServerConnection)) +#define G_IS_TLS_SERVER_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_TLS_SERVER_CONNECTION)) +#define G_TLS_SERVER_CONNECTION_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), G_TYPE_TLS_SERVER_CONNECTION, GTlsServerConnectionInterface)) + +/** + * GTlsServerConnection: + * + * TLS server-side connection. This is the server-side implementation + * of a #GTlsConnection. + * + * Since: 2.28 + */ +typedef struct _GTlsServerConnectionInterface GTlsServerConnectionInterface; + +/** + * GTlsServerConnectionInterface: + * @g_iface: The parent interface. + * + * vtable for a #GTlsServerConnection implementation. + * + * Since: 2.26 + */ +struct _GTlsServerConnectionInterface +{ + GTypeInterface g_iface; + +}; + +GIO_AVAILABLE_IN_ALL +GType g_tls_server_connection_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GIOStream * g_tls_server_connection_new (GIOStream *base_io_stream, + GTlsCertificate *certificate, + GError **error); + +G_END_DECLS + +#endif /* __G_TLS_SERVER_CONNECTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gunixconnection.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gunixconnection.h new file mode 100644 index 000000000..e08e8189c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gunixconnection.h @@ -0,0 +1,102 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2009 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_UNIX_CONNECTION_H__ +#define __G_UNIX_CONNECTION_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_UNIX_CONNECTION (g_unix_connection_get_type ()) +#define G_UNIX_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_UNIX_CONNECTION, GUnixConnection)) +#define G_UNIX_CONNECTION_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_UNIX_CONNECTION, GUnixConnectionClass)) +#define G_IS_UNIX_CONNECTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_UNIX_CONNECTION)) +#define G_IS_UNIX_CONNECTION_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_UNIX_CONNECTION)) +#define G_UNIX_CONNECTION_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_UNIX_CONNECTION, GUnixConnectionClass)) + +typedef struct _GUnixConnection GUnixConnection; +typedef struct _GUnixConnectionPrivate GUnixConnectionPrivate; +typedef struct _GUnixConnectionClass GUnixConnectionClass; + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixConnection, g_object_unref) + +struct _GUnixConnectionClass +{ + GSocketConnectionClass parent_class; +}; + +struct _GUnixConnection +{ + GSocketConnection parent_instance; + GUnixConnectionPrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_unix_connection_get_type (void); + +GIO_AVAILABLE_IN_ALL +gboolean g_unix_connection_send_fd (GUnixConnection *connection, + gint fd, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_ALL +gint g_unix_connection_receive_fd (GUnixConnection *connection, + GCancellable *cancellable, + GError **error); + +GIO_AVAILABLE_IN_ALL +gboolean g_unix_connection_send_credentials (GUnixConnection *connection, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_32 +void g_unix_connection_send_credentials_async (GUnixConnection *connection, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_2_32 +gboolean g_unix_connection_send_credentials_finish (GUnixConnection *connection, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_2_32 +GCredentials *g_unix_connection_receive_credentials (GUnixConnection *connection, + GCancellable *cancellable, + GError **error); +GIO_AVAILABLE_IN_2_32 +void g_unix_connection_receive_credentials_async (GUnixConnection *connection, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +GCredentials *g_unix_connection_receive_credentials_finish (GUnixConnection *connection, + GAsyncResult *result, + GError **error); + +G_END_DECLS + +#endif /* __G_UNIX_CONNECTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gunixcredentialsmessage.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gunixcredentialsmessage.h new file mode 100644 index 000000000..cd42d254e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gunixcredentialsmessage.h @@ -0,0 +1,89 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2010 Red Hat, Inc. + * Copyright (C) 2009 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: David Zeuthen + */ + +#ifndef __G_UNIX_CREDENTIALS_MESSAGE_H__ +#define __G_UNIX_CREDENTIALS_MESSAGE_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_UNIX_CREDENTIALS_MESSAGE (g_unix_credentials_message_get_type ()) +#define G_UNIX_CREDENTIALS_MESSAGE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_UNIX_CREDENTIALS_MESSAGE, GUnixCredentialsMessage)) +#define G_UNIX_CREDENTIALS_MESSAGE_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), G_TYPE_UNIX_CREDENTIALS_MESSAGE, GUnixCredentialsMessageClass)) +#define G_IS_UNIX_CREDENTIALS_MESSAGE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_UNIX_CREDENTIALS_MESSAGE)) +#define G_IS_UNIX_CREDENTIALS_MESSAGE_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE ((c), G_TYPE_UNIX_CREDENTIALS_MESSAGE)) +#define G_UNIX_CREDENTIALS_MESSAGE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_UNIX_CREDENTIALS_MESSAGE, GUnixCredentialsMessageClass)) + +typedef struct _GUnixCredentialsMessagePrivate GUnixCredentialsMessagePrivate; +typedef struct _GUnixCredentialsMessageClass GUnixCredentialsMessageClass; + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixCredentialsMessage, g_object_unref) + +/** + * GUnixCredentialsMessageClass: + * + * Class structure for #GUnixCredentialsMessage. + * + * Since: 2.26 + */ +struct _GUnixCredentialsMessageClass +{ + GSocketControlMessageClass parent_class; + + /*< private >*/ + + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); +}; + +/** + * GUnixCredentialsMessage: + * + * The #GUnixCredentialsMessage structure contains only private data + * and should only be accessed using the provided API. + * + * Since: 2.26 + */ +struct _GUnixCredentialsMessage +{ + GSocketControlMessage parent_instance; + GUnixCredentialsMessagePrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_unix_credentials_message_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GSocketControlMessage *g_unix_credentials_message_new (void); +GIO_AVAILABLE_IN_ALL +GSocketControlMessage *g_unix_credentials_message_new_with_credentials (GCredentials *credentials); +GIO_AVAILABLE_IN_ALL +GCredentials *g_unix_credentials_message_get_credentials (GUnixCredentialsMessage *message); + +GIO_AVAILABLE_IN_ALL +gboolean g_unix_credentials_message_is_supported (void); + +G_END_DECLS + +#endif /* __G_UNIX_CREDENTIALS_MESSAGE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gunixfdlist.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gunixfdlist.h new file mode 100644 index 000000000..df5587eea --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gunixfdlist.h @@ -0,0 +1,97 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright © 2009 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Ryan Lortie + */ + +#ifndef __G_UNIX_FD_LIST_H__ +#define __G_UNIX_FD_LIST_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_UNIX_FD_LIST (g_unix_fd_list_get_type ()) +#define G_UNIX_FD_LIST(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), \ + G_TYPE_UNIX_FD_LIST, GUnixFDList)) +#define G_UNIX_FD_LIST_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), \ + G_TYPE_UNIX_FD_LIST, GUnixFDListClass)) +#define G_IS_UNIX_FD_LIST(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \ + G_TYPE_UNIX_FD_LIST)) +#define G_IS_UNIX_FD_LIST_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), \ + G_TYPE_UNIX_FD_LIST)) +#define G_UNIX_FD_LIST_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), \ + G_TYPE_UNIX_FD_LIST, GUnixFDListClass)) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixFDList, g_object_unref) + +typedef struct _GUnixFDListPrivate GUnixFDListPrivate; +typedef struct _GUnixFDListClass GUnixFDListClass; + +struct _GUnixFDListClass +{ + GObjectClass parent_class; + + /*< private >*/ + + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); +}; + +struct _GUnixFDList +{ + GObject parent_instance; + GUnixFDListPrivate *priv; +}; + +GIO_AVAILABLE_IN_ALL +GType g_unix_fd_list_get_type (void) G_GNUC_CONST; +GIO_AVAILABLE_IN_ALL +GUnixFDList * g_unix_fd_list_new (void); +GIO_AVAILABLE_IN_ALL +GUnixFDList * g_unix_fd_list_new_from_array (const gint *fds, + gint n_fds); + +GIO_AVAILABLE_IN_ALL +gint g_unix_fd_list_append (GUnixFDList *list, + gint fd, + GError **error); + +GIO_AVAILABLE_IN_ALL +gint g_unix_fd_list_get_length (GUnixFDList *list); + +GIO_AVAILABLE_IN_ALL +gint g_unix_fd_list_get (GUnixFDList *list, + gint index_, + GError **error); + +GIO_AVAILABLE_IN_ALL +const gint * g_unix_fd_list_peek_fds (GUnixFDList *list, + gint *length); + +GIO_AVAILABLE_IN_ALL +gint * g_unix_fd_list_steal_fds (GUnixFDList *list, + gint *length); + +G_END_DECLS + +#endif /* __G_UNIX_FD_LIST_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gunixsocketaddress.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gunixsocketaddress.h new file mode 100644 index 000000000..705674b0f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gunixsocketaddress.h @@ -0,0 +1,83 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2008 Christian Kellner, Samuel Cormier-Iijima + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Authors: Christian Kellner + * Samuel Cormier-Iijima + */ + +#ifndef __G_UNIX_SOCKET_ADDRESS_H__ +#define __G_UNIX_SOCKET_ADDRESS_H__ + +#include + +G_BEGIN_DECLS + +#define G_TYPE_UNIX_SOCKET_ADDRESS (g_unix_socket_address_get_type ()) +#define G_UNIX_SOCKET_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_UNIX_SOCKET_ADDRESS, GUnixSocketAddress)) +#define G_UNIX_SOCKET_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_UNIX_SOCKET_ADDRESS, GUnixSocketAddressClass)) +#define G_IS_UNIX_SOCKET_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_UNIX_SOCKET_ADDRESS)) +#define G_IS_UNIX_SOCKET_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_UNIX_SOCKET_ADDRESS)) +#define G_UNIX_SOCKET_ADDRESS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_UNIX_SOCKET_ADDRESS, GUnixSocketAddressClass)) + +typedef struct _GUnixSocketAddress GUnixSocketAddress; +typedef struct _GUnixSocketAddressClass GUnixSocketAddressClass; +typedef struct _GUnixSocketAddressPrivate GUnixSocketAddressPrivate; + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUnixSocketAddress, g_object_unref) + +struct _GUnixSocketAddress +{ + GSocketAddress parent_instance; + + /*< private >*/ + GUnixSocketAddressPrivate *priv; +}; + +struct _GUnixSocketAddressClass +{ + GSocketAddressClass parent_class; +}; + +GIO_AVAILABLE_IN_ALL +GType g_unix_socket_address_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GSocketAddress *g_unix_socket_address_new (const gchar *path); +GIO_DEPRECATED_FOR(g_unix_socket_address_new_with_type) +GSocketAddress *g_unix_socket_address_new_abstract (const gchar *path, + gint path_len); +GIO_AVAILABLE_IN_ALL +GSocketAddress *g_unix_socket_address_new_with_type (const gchar *path, + gint path_len, + GUnixSocketAddressType type); +GIO_AVAILABLE_IN_ALL +const char * g_unix_socket_address_get_path (GUnixSocketAddress *address); +GIO_AVAILABLE_IN_ALL +gsize g_unix_socket_address_get_path_len (GUnixSocketAddress *address); +GIO_AVAILABLE_IN_ALL +GUnixSocketAddressType g_unix_socket_address_get_address_type (GUnixSocketAddress *address); +GIO_DEPRECATED +gboolean g_unix_socket_address_get_is_abstract (GUnixSocketAddress *address); + +GIO_AVAILABLE_IN_ALL +gboolean g_unix_socket_address_abstract_names_supported (void); + +G_END_DECLS + +#endif /* __G_UNIX_SOCKET_ADDRESS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gvfs.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gvfs.h new file mode 100644 index 000000000..cbe9792a2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gvfs.h @@ -0,0 +1,170 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_VFS_H__ +#define __G_VFS_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_VFS (g_vfs_get_type ()) +#define G_VFS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_VFS, GVfs)) +#define G_VFS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_VFS, GVfsClass)) +#define G_VFS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_VFS, GVfsClass)) +#define G_IS_VFS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_VFS)) +#define G_IS_VFS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_VFS)) + +/** + * GVfsFileLookupFunc: + * @vfs: a #GVfs + * @identifier: the identifier to look up a #GFile for. This can either + * be an URI or a parse name as returned by g_file_get_parse_name() + * @user_data: user data passed to the function + * + * This function type is used by g_vfs_register_uri_scheme() to make it + * possible for a client to associate an URI scheme to a different #GFile + * implementation. + * + * The client should return a reference to the new file that has been + * created for @uri, or %NULL to continue with the default implementation. + * + * Returns: (transfer full): a #GFile for @identifier. + * + * Since: 2.50 + */ +typedef GFile * (* GVfsFileLookupFunc) (GVfs *vfs, + const char *identifier, + gpointer user_data); + +/** + * G_VFS_EXTENSION_POINT_NAME: + * + * Extension point for #GVfs functionality. + * See [Extending GIO][extending-gio]. + */ +#define G_VFS_EXTENSION_POINT_NAME "gio-vfs" + +/** + * GVfs: + * + * Virtual File System object. + **/ +typedef struct _GVfsClass GVfsClass; + +struct _GVfs +{ + GObject parent_instance; +}; + +struct _GVfsClass +{ + GObjectClass parent_class; + + /* Virtual Table */ + + gboolean (* is_active) (GVfs *vfs); + GFile * (* get_file_for_path) (GVfs *vfs, + const char *path); + GFile * (* get_file_for_uri) (GVfs *vfs, + const char *uri); + const gchar * const * (* get_supported_uri_schemes) (GVfs *vfs); + GFile * (* parse_name) (GVfs *vfs, + const char *parse_name); + + /*< private >*/ + void (* local_file_add_info) (GVfs *vfs, + const char *filename, + guint64 device, + GFileAttributeMatcher *attribute_matcher, + GFileInfo *info, + GCancellable *cancellable, + gpointer *extra_data, + GDestroyNotify *free_extra_data); + void (* add_writable_namespaces) (GVfs *vfs, + GFileAttributeInfoList *list); + gboolean (* local_file_set_attributes) (GVfs *vfs, + const char *filename, + GFileInfo *info, + GFileQueryInfoFlags flags, + GCancellable *cancellable, + GError **error); + void (* local_file_removed) (GVfs *vfs, + const char *filename); + void (* local_file_moved) (GVfs *vfs, + const char *source, + const char *dest); + GIcon * (* deserialize_icon) (GVfs *vfs, + GVariant *value); + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); + void (*_g_reserved6) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_vfs_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +gboolean g_vfs_is_active (GVfs *vfs); +GIO_AVAILABLE_IN_ALL +GFile * g_vfs_get_file_for_path (GVfs *vfs, + const char *path); +GIO_AVAILABLE_IN_ALL +GFile * g_vfs_get_file_for_uri (GVfs *vfs, + const char *uri); +GIO_AVAILABLE_IN_ALL +const gchar* const * g_vfs_get_supported_uri_schemes (GVfs *vfs); + +GIO_AVAILABLE_IN_ALL +GFile * g_vfs_parse_name (GVfs *vfs, + const char *parse_name); + +GIO_AVAILABLE_IN_ALL +GVfs * g_vfs_get_default (void); +GIO_AVAILABLE_IN_ALL +GVfs * g_vfs_get_local (void); + +GIO_AVAILABLE_IN_2_50 +gboolean g_vfs_register_uri_scheme (GVfs *vfs, + const char *scheme, + GVfsFileLookupFunc uri_func, + gpointer uri_data, + GDestroyNotify uri_destroy, + GVfsFileLookupFunc parse_name_func, + gpointer parse_name_data, + GDestroyNotify parse_name_destroy); +GIO_AVAILABLE_IN_2_50 +gboolean g_vfs_unregister_uri_scheme (GVfs *vfs, + const char *scheme); + + +G_END_DECLS + +#endif /* __G_VFS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gvolume.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gvolume.h new file mode 100644 index 000000000..2d6e14eff --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gvolume.h @@ -0,0 +1,255 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + * David Zeuthen + */ + +#ifndef __G_VOLUME_H__ +#define __G_VOLUME_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * G_VOLUME_IDENTIFIER_KIND_HAL_UDI: + * + * The string used to obtain a Hal UDI with g_volume_get_identifier(). + * + * Deprecated: 2.58: Do not use, HAL is deprecated. + */ +#define G_VOLUME_IDENTIFIER_KIND_HAL_UDI "hal-udi" GIO_DEPRECATED_MACRO_IN_2_58 + +/** + * G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE: + * + * The string used to obtain a Unix device path with g_volume_get_identifier(). + */ +#define G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE "unix-device" + +/** + * G_VOLUME_IDENTIFIER_KIND_LABEL: + * + * The string used to obtain a filesystem label with g_volume_get_identifier(). + */ +#define G_VOLUME_IDENTIFIER_KIND_LABEL "label" + +/** + * G_VOLUME_IDENTIFIER_KIND_UUID: + * + * The string used to obtain a UUID with g_volume_get_identifier(). + */ +#define G_VOLUME_IDENTIFIER_KIND_UUID "uuid" + +/** + * G_VOLUME_IDENTIFIER_KIND_NFS_MOUNT: + * + * The string used to obtain a NFS mount with g_volume_get_identifier(). + */ +#define G_VOLUME_IDENTIFIER_KIND_NFS_MOUNT "nfs-mount" + +/** + * G_VOLUME_IDENTIFIER_KIND_CLASS: + * + * The string used to obtain the volume class with g_volume_get_identifier(). + * + * Known volume classes include `device`, `network`, and `loop`. Other + * classes may be added in the future. + * + * This is intended to be used by applications to classify #GVolume + * instances into different sections - for example a file manager or + * file chooser can use this information to show `network` volumes under + * a "Network" heading and `device` volumes under a "Devices" heading. + */ +#define G_VOLUME_IDENTIFIER_KIND_CLASS "class" + + +#define G_TYPE_VOLUME (g_volume_get_type ()) +#define G_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_VOLUME, GVolume)) +#define G_IS_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_VOLUME)) +#define G_VOLUME_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), G_TYPE_VOLUME, GVolumeIface)) + +/** + * GVolumeIface: + * @g_iface: The parent interface. + * @changed: Changed signal that is emitted when the volume's state has changed. + * @removed: The removed signal that is emitted when the #GVolume have been removed. If the recipient is holding references to the object they should release them so the object can be finalized. + * @get_name: Gets a string containing the name of the #GVolume. + * @get_icon: Gets a #GIcon for the #GVolume. + * @get_uuid: Gets the UUID for the #GVolume. The reference is typically based on the file system UUID for the mount in question and should be considered an opaque string. Returns %NULL if there is no UUID available. + * @get_drive: Gets a #GDrive the volume is located on. Returns %NULL if the #GVolume is not associated with a #GDrive. + * @get_mount: Gets a #GMount representing the mounted volume. Returns %NULL if the #GVolume is not mounted. + * @can_mount: Returns %TRUE if the #GVolume can be mounted. + * @can_eject: Checks if a #GVolume can be ejected. + * @mount_fn: Mounts a given #GVolume. + * #GVolume implementations must emit the #GMountOperation::aborted + * signal before completing a mount operation that is aborted while + * awaiting input from the user through a #GMountOperation instance. + * @mount_finish: Finishes a mount operation. + * @eject: Ejects a given #GVolume. + * @eject_finish: Finishes an eject operation. + * @get_identifier: Returns the [identifier][volume-identifier] of the given kind, or %NULL if + * the #GVolume doesn't have one. + * @enumerate_identifiers: Returns an array strings listing the kinds + * of [identifiers][volume-identifier] which the #GVolume has. + * @should_automount: Returns %TRUE if the #GVolume should be automatically mounted. + * @get_activation_root: Returns the activation root for the #GVolume if it is known in advance or %NULL if + * it is not known. + * @eject_with_operation: Starts ejecting a #GVolume using a #GMountOperation. Since 2.22. + * @eject_with_operation_finish: Finishes an eject operation using a #GMountOperation. Since 2.22. + * @get_sort_key: Gets a key used for sorting #GVolume instance or %NULL if no such key exists. Since 2.32. + * @get_symbolic_icon: Gets a symbolic #GIcon for the #GVolume. Since 2.34. + * + * Interface for implementing operations for mountable volumes. + **/ +typedef struct _GVolumeIface GVolumeIface; + +struct _GVolumeIface +{ + GTypeInterface g_iface; + + /* signals */ + + void (* changed) (GVolume *volume); + void (* removed) (GVolume *volume); + + /* Virtual Table */ + + char * (* get_name) (GVolume *volume); + GIcon * (* get_icon) (GVolume *volume); + char * (* get_uuid) (GVolume *volume); + GDrive * (* get_drive) (GVolume *volume); + GMount * (* get_mount) (GVolume *volume); + gboolean (* can_mount) (GVolume *volume); + gboolean (* can_eject) (GVolume *volume); + void (* mount_fn) (GVolume *volume, + GMountMountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* mount_finish) (GVolume *volume, + GAsyncResult *result, + GError **error); + void (* eject) (GVolume *volume, + GMountUnmountFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* eject_finish) (GVolume *volume, + GAsyncResult *result, + GError **error); + + char * (* get_identifier) (GVolume *volume, + const char *kind); + char ** (* enumerate_identifiers) (GVolume *volume); + + gboolean (* should_automount) (GVolume *volume); + + GFile * (* get_activation_root) (GVolume *volume); + + void (* eject_with_operation) (GVolume *volume, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + gboolean (* eject_with_operation_finish) (GVolume *volume, + GAsyncResult *result, + GError **error); + + const gchar * (* get_sort_key) (GVolume *volume); + GIcon * (* get_symbolic_icon) (GVolume *volume); +}; + +GIO_AVAILABLE_IN_ALL +GType g_volume_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +char * g_volume_get_name (GVolume *volume); +GIO_AVAILABLE_IN_ALL +GIcon * g_volume_get_icon (GVolume *volume); +GIO_AVAILABLE_IN_ALL +GIcon * g_volume_get_symbolic_icon (GVolume *volume); +GIO_AVAILABLE_IN_ALL +char * g_volume_get_uuid (GVolume *volume); +GIO_AVAILABLE_IN_ALL +GDrive * g_volume_get_drive (GVolume *volume); +GIO_AVAILABLE_IN_ALL +GMount * g_volume_get_mount (GVolume *volume); +GIO_AVAILABLE_IN_ALL +gboolean g_volume_can_mount (GVolume *volume); +GIO_AVAILABLE_IN_ALL +gboolean g_volume_can_eject (GVolume *volume); +GIO_AVAILABLE_IN_ALL +gboolean g_volume_should_automount (GVolume *volume); +GIO_AVAILABLE_IN_ALL +void g_volume_mount (GVolume *volume, + GMountMountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_volume_mount_finish (GVolume *volume, + GAsyncResult *result, + GError **error); +GIO_DEPRECATED_FOR(g_volume_eject_with_operation) +void g_volume_eject (GVolume *volume, + GMountUnmountFlags flags, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); + +GIO_DEPRECATED_FOR(g_volume_eject_with_operation_finish) +gboolean g_volume_eject_finish (GVolume *volume, + GAsyncResult *result, + GError **error); +GIO_AVAILABLE_IN_ALL +char * g_volume_get_identifier (GVolume *volume, + const char *kind); +GIO_AVAILABLE_IN_ALL +char ** g_volume_enumerate_identifiers (GVolume *volume); + +GIO_AVAILABLE_IN_ALL +GFile * g_volume_get_activation_root (GVolume *volume); + +GIO_AVAILABLE_IN_ALL +void g_volume_eject_with_operation (GVolume *volume, + GMountUnmountFlags flags, + GMountOperation *mount_operation, + GCancellable *cancellable, + GAsyncReadyCallback callback, + gpointer user_data); +GIO_AVAILABLE_IN_ALL +gboolean g_volume_eject_with_operation_finish (GVolume *volume, + GAsyncResult *result, + GError **error); + +GIO_AVAILABLE_IN_2_32 +const gchar *g_volume_get_sort_key (GVolume *volume); + +G_END_DECLS + +#endif /* __G_VOLUME_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gvolumemonitor.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gvolumemonitor.h new file mode 100644 index 000000000..11bd3319b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gvolumemonitor.h @@ -0,0 +1,156 @@ +/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ + +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2006-2007 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + * David Zeuthen + */ + +#ifndef __G_VOLUME_MONITOR_H__ +#define __G_VOLUME_MONITOR_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_TYPE_VOLUME_MONITOR (g_volume_monitor_get_type ()) +#define G_VOLUME_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_VOLUME_MONITOR, GVolumeMonitor)) +#define G_VOLUME_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_VOLUME_MONITOR, GVolumeMonitorClass)) +#define G_VOLUME_MONITOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_VOLUME_MONITOR, GVolumeMonitorClass)) +#define G_IS_VOLUME_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_VOLUME_MONITOR)) +#define G_IS_VOLUME_MONITOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_VOLUME_MONITOR)) + +/** + * G_VOLUME_MONITOR_EXTENSION_POINT_NAME: + * + * Extension point for volume monitor functionality. + * See [Extending GIO][extending-gio]. + */ +#define G_VOLUME_MONITOR_EXTENSION_POINT_NAME "gio-volume-monitor" + +/** + * GVolumeMonitor: + * + * A Volume Monitor that watches for volume events. + **/ +typedef struct _GVolumeMonitorClass GVolumeMonitorClass; + +struct _GVolumeMonitor +{ + GObject parent_instance; + + /*< private >*/ + gpointer priv; +}; + +struct _GVolumeMonitorClass +{ + GObjectClass parent_class; + + /*< public >*/ + /* signals */ + void (* volume_added) (GVolumeMonitor *volume_monitor, + GVolume *volume); + void (* volume_removed) (GVolumeMonitor *volume_monitor, + GVolume *volume); + void (* volume_changed) (GVolumeMonitor *volume_monitor, + GVolume *volume); + + void (* mount_added) (GVolumeMonitor *volume_monitor, + GMount *mount); + void (* mount_removed) (GVolumeMonitor *volume_monitor, + GMount *mount); + void (* mount_pre_unmount) (GVolumeMonitor *volume_monitor, + GMount *mount); + void (* mount_changed) (GVolumeMonitor *volume_monitor, + GMount *mount); + + void (* drive_connected) (GVolumeMonitor *volume_monitor, + GDrive *drive); + void (* drive_disconnected) (GVolumeMonitor *volume_monitor, + GDrive *drive); + void (* drive_changed) (GVolumeMonitor *volume_monitor, + GDrive *drive); + + /* Vtable */ + + gboolean (* is_supported) (void); + + GList * (* get_connected_drives) (GVolumeMonitor *volume_monitor); + GList * (* get_volumes) (GVolumeMonitor *volume_monitor); + GList * (* get_mounts) (GVolumeMonitor *volume_monitor); + + GVolume * (* get_volume_for_uuid) (GVolumeMonitor *volume_monitor, + const char *uuid); + + GMount * (* get_mount_for_uuid) (GVolumeMonitor *volume_monitor, + const char *uuid); + + + /* These arguments are unfortunately backwards by mistake (bug #520169). Deprecated in 2.20. */ + GVolume * (* adopt_orphan_mount) (GMount *mount, + GVolumeMonitor *volume_monitor); + + /* signal added in 2.17 */ + void (* drive_eject_button) (GVolumeMonitor *volume_monitor, + GDrive *drive); + + /* signal added in 2.21 */ + void (* drive_stop_button) (GVolumeMonitor *volume_monitor, + GDrive *drive); + + /*< private >*/ + /* Padding for future expansion */ + void (*_g_reserved1) (void); + void (*_g_reserved2) (void); + void (*_g_reserved3) (void); + void (*_g_reserved4) (void); + void (*_g_reserved5) (void); + void (*_g_reserved6) (void); +}; + +GIO_AVAILABLE_IN_ALL +GType g_volume_monitor_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GVolumeMonitor *g_volume_monitor_get (void); +GIO_AVAILABLE_IN_ALL +GList * g_volume_monitor_get_connected_drives (GVolumeMonitor *volume_monitor); +GIO_AVAILABLE_IN_ALL +GList * g_volume_monitor_get_volumes (GVolumeMonitor *volume_monitor); +GIO_AVAILABLE_IN_ALL +GList * g_volume_monitor_get_mounts (GVolumeMonitor *volume_monitor); +GIO_AVAILABLE_IN_ALL +GVolume * g_volume_monitor_get_volume_for_uuid (GVolumeMonitor *volume_monitor, + const char *uuid); +GIO_AVAILABLE_IN_ALL +GMount * g_volume_monitor_get_mount_for_uuid (GVolumeMonitor *volume_monitor, + const char *uuid); + +GIO_DEPRECATED +GVolume * g_volume_monitor_adopt_orphan_mount (GMount *mount); + +G_END_DECLS + +#endif /* __G_VOLUME_MONITOR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gzlibcompressor.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gzlibcompressor.h new file mode 100644 index 000000000..b8a99eaac --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gzlibcompressor.h @@ -0,0 +1,64 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2009 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_ZLIB_COMPRESSOR_H__ +#define __G_ZLIB_COMPRESSOR_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_ZLIB_COMPRESSOR (g_zlib_compressor_get_type ()) +#define G_ZLIB_COMPRESSOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_ZLIB_COMPRESSOR, GZlibCompressor)) +#define G_ZLIB_COMPRESSOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_ZLIB_COMPRESSOR, GZlibCompressorClass)) +#define G_IS_ZLIB_COMPRESSOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_ZLIB_COMPRESSOR)) +#define G_IS_ZLIB_COMPRESSOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_ZLIB_COMPRESSOR)) +#define G_ZLIB_COMPRESSOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_ZLIB_COMPRESSOR, GZlibCompressorClass)) + +typedef struct _GZlibCompressorClass GZlibCompressorClass; + +struct _GZlibCompressorClass +{ + GObjectClass parent_class; +}; + +GIO_AVAILABLE_IN_ALL +GType g_zlib_compressor_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GZlibCompressor *g_zlib_compressor_new (GZlibCompressorFormat format, + int level); + +GIO_AVAILABLE_IN_ALL +GFileInfo *g_zlib_compressor_get_file_info (GZlibCompressor *compressor); +GIO_AVAILABLE_IN_ALL +void g_zlib_compressor_set_file_info (GZlibCompressor *compressor, + GFileInfo *file_info); + +G_END_DECLS + +#endif /* __G_ZLIB_COMPRESSOR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gzlibdecompressor.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gzlibdecompressor.h new file mode 100644 index 000000000..ef97439f2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gio/gzlibdecompressor.h @@ -0,0 +1,60 @@ +/* GIO - GLib Input, Output and Streaming Library + * + * Copyright (C) 2009 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Alexander Larsson + */ + +#ifndef __G_ZLIB_DECOMPRESSOR_H__ +#define __G_ZLIB_DECOMPRESSOR_H__ + +#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_ZLIB_DECOMPRESSOR (g_zlib_decompressor_get_type ()) +#define G_ZLIB_DECOMPRESSOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_ZLIB_DECOMPRESSOR, GZlibDecompressor)) +#define G_ZLIB_DECOMPRESSOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_ZLIB_DECOMPRESSOR, GZlibDecompressorClass)) +#define G_IS_ZLIB_DECOMPRESSOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_ZLIB_DECOMPRESSOR)) +#define G_IS_ZLIB_DECOMPRESSOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_ZLIB_DECOMPRESSOR)) +#define G_ZLIB_DECOMPRESSOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_ZLIB_DECOMPRESSOR, GZlibDecompressorClass)) + +typedef struct _GZlibDecompressorClass GZlibDecompressorClass; + +struct _GZlibDecompressorClass +{ + GObjectClass parent_class; +}; + +GIO_AVAILABLE_IN_ALL +GType g_zlib_decompressor_get_type (void) G_GNUC_CONST; + +GIO_AVAILABLE_IN_ALL +GZlibDecompressor *g_zlib_decompressor_new (GZlibCompressorFormat format); + +GIO_AVAILABLE_IN_ALL +GFileInfo *g_zlib_decompressor_get_file_info (GZlibDecompressor *decompressor); + +G_END_DECLS + +#endif /* __G_ZLIB_DECOMPRESSOR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib-object.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib-object.h new file mode 100644 index 000000000..b00392d8c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib-object.h @@ -0,0 +1,46 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 1998, 1999, 2000 Tim Janik and Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ +#ifndef __GLIB_GOBJECT_H__ +#define __GLIB_GOBJECT_H__ + +#define __GLIB_GOBJECT_H_INSIDE__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#undef __GLIB_GOBJECT_H_INSIDE__ + +#endif /* __GLIB_GOBJECT_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib-unix.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib-unix.h new file mode 100644 index 000000000..7cf4f0dc8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib-unix.h @@ -0,0 +1,125 @@ +/* glib-unix.h - Unix specific integration + * Copyright (C) 2011 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_UNIX_H__ +#define __G_UNIX_H__ + +/* We need to include the UNIX headers needed to use the APIs below, + * but we also take this opportunity to include a wide selection of + * other UNIX headers. If one of the headers below is broken on some + * system, work around it here (or better, fix the system or tell + * people to use a better one). + */ +#include +#include +#include +#include +#include + +#include + +#ifndef G_OS_UNIX +#error "This header may only be used on UNIX" +#endif + +G_BEGIN_DECLS + +/** + * G_UNIX_ERROR: + * + * Error domain for API in the g_unix_ namespace. Note that there is no + * exported enumeration mapping %errno. Instead, all functions ensure that + * %errno is relevant. The code for all %G_UNIX_ERROR is always 0, and the + * error message is always generated via g_strerror(). + * + * It is expected that most code will not look at %errno from these APIs. + * Important cases where one would want to differentiate between errors are + * already covered by existing cross-platform GLib API, such as e.g. #GFile + * wrapping `ENOENT`. However, it is provided for completeness, at least. + */ +#define G_UNIX_ERROR (g_unix_error_quark()) + +GLIB_AVAILABLE_IN_2_30 +GQuark g_unix_error_quark (void); + +GLIB_AVAILABLE_IN_2_30 +gboolean g_unix_open_pipe (gint *fds, + gint flags, + GError **error); + +GLIB_AVAILABLE_IN_2_30 +gboolean g_unix_set_fd_nonblocking (gint fd, + gboolean nonblock, + GError **error); + +GLIB_AVAILABLE_IN_2_30 +GSource *g_unix_signal_source_new (gint signum); + +GLIB_AVAILABLE_IN_2_30 +guint g_unix_signal_add_full (gint priority, + gint signum, + GSourceFunc handler, + gpointer user_data, + GDestroyNotify notify); + +GLIB_AVAILABLE_IN_2_30 +guint g_unix_signal_add (gint signum, + GSourceFunc handler, + gpointer user_data); + +/** + * GUnixFDSourceFunc: + * @fd: the fd that triggered the event + * @condition: the IO conditions reported on @fd + * @user_data: user data passed to g_unix_fd_add() + * + * The type of functions to be called when a UNIX fd watch source + * triggers. + * + * Returns: %FALSE if the source should be removed + **/ +typedef gboolean (*GUnixFDSourceFunc) (gint fd, + GIOCondition condition, + gpointer user_data); + +GLIB_AVAILABLE_IN_2_36 +GSource *g_unix_fd_source_new (gint fd, + GIOCondition condition); + +GLIB_AVAILABLE_IN_2_36 +guint g_unix_fd_add_full (gint priority, + gint fd, + GIOCondition condition, + GUnixFDSourceFunc function, + gpointer user_data, + GDestroyNotify notify); + +GLIB_AVAILABLE_IN_2_36 +guint g_unix_fd_add (gint fd, + GIOCondition condition, + GUnixFDSourceFunc function, + gpointer user_data); + +GLIB_AVAILABLE_IN_2_64 +struct passwd *g_unix_get_passwd_entry (const gchar *user_name, + GError **error); + +G_END_DECLS + +#endif /* __G_UNIX_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib.h new file mode 100644 index 000000000..40e501997 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib.h @@ -0,0 +1,122 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_LIB_H__ +#define __G_LIB_H__ + +#define __GLIB_H_INSIDE__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef G_PLATFORM_WIN32 +#include +#endif + +#include +#include +#include +#include +#include +#include + +#include +#include + +#undef __GLIB_H_INSIDE__ + +#endif /* __G_LIB_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gallocator.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gallocator.h new file mode 100644 index 000000000..005e92b6e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gallocator.h @@ -0,0 +1,88 @@ +/* + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __G_ALLOCATOR_H__ +#define __G_ALLOCATOR_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GAllocator GAllocator; +typedef struct _GMemChunk GMemChunk; + +#define G_ALLOC_ONLY 1 +#define G_ALLOC_AND_FREE 2 +#define G_ALLOCATOR_LIST 1 +#define G_ALLOCATOR_SLIST 2 +#define G_ALLOCATOR_NODE 3 + +#define g_chunk_new(type, chunk) ((type *) g_mem_chunk_alloc (chunk)) +#define g_chunk_new0(type, chunk) ((type *) g_mem_chunk_alloc0 (chunk)) +#define g_chunk_free(mem, mem_chunk) (g_mem_chunk_free (mem_chunk, mem)) +#define g_mem_chunk_create(type, x, y) (g_mem_chunk_new (NULL, sizeof (type), 0, 0)) + + +GLIB_DEPRECATED +GMemChunk * g_mem_chunk_new (const gchar *name, + gint atom_size, + gsize area_size, + gint type); +GLIB_DEPRECATED +void g_mem_chunk_destroy (GMemChunk *mem_chunk); +GLIB_DEPRECATED +gpointer g_mem_chunk_alloc (GMemChunk *mem_chunk); +GLIB_DEPRECATED +gpointer g_mem_chunk_alloc0 (GMemChunk *mem_chunk); +GLIB_DEPRECATED +void g_mem_chunk_free (GMemChunk *mem_chunk, + gpointer mem); +GLIB_DEPRECATED +void g_mem_chunk_clean (GMemChunk *mem_chunk); +GLIB_DEPRECATED +void g_mem_chunk_reset (GMemChunk *mem_chunk); +GLIB_DEPRECATED +void g_mem_chunk_print (GMemChunk *mem_chunk); +GLIB_DEPRECATED +void g_mem_chunk_info (void); +GLIB_DEPRECATED +void g_blow_chunks (void); + + +GLIB_DEPRECATED +GAllocator * g_allocator_new (const gchar *name, + guint n_preallocs); +GLIB_DEPRECATED +void g_allocator_free (GAllocator *allocator); +GLIB_DEPRECATED +void g_list_push_allocator (GAllocator *allocator); +GLIB_DEPRECATED +void g_list_pop_allocator (void); +GLIB_DEPRECATED +void g_slist_push_allocator (GAllocator *allocator); +GLIB_DEPRECATED +void g_slist_pop_allocator (void); +GLIB_DEPRECATED +void g_node_push_allocator (GAllocator *allocator); +GLIB_DEPRECATED +void g_node_pop_allocator (void); + +G_END_DECLS + +#endif /* __G_ALLOCATOR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gcache.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gcache.h new file mode 100644 index 000000000..201f7cf5e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gcache.h @@ -0,0 +1,77 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_CACHE_H__ +#define __G_CACHE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GCache GCache GLIB_DEPRECATED_TYPE_IN_2_26_FOR(GHashTable); + +typedef gpointer (*GCacheNewFunc) (gpointer key) GLIB_DEPRECATED_TYPE_IN_2_26; +typedef gpointer (*GCacheDupFunc) (gpointer value) GLIB_DEPRECATED_TYPE_IN_2_26; +typedef void (*GCacheDestroyFunc) (gpointer value) GLIB_DEPRECATED_TYPE_IN_2_26; + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + +/* Caches + */ +GLIB_DEPRECATED +GCache* g_cache_new (GCacheNewFunc value_new_func, + GCacheDestroyFunc value_destroy_func, + GCacheDupFunc key_dup_func, + GCacheDestroyFunc key_destroy_func, + GHashFunc hash_key_func, + GHashFunc hash_value_func, + GEqualFunc key_equal_func); +GLIB_DEPRECATED +void g_cache_destroy (GCache *cache); +GLIB_DEPRECATED +gpointer g_cache_insert (GCache *cache, + gpointer key); +GLIB_DEPRECATED +void g_cache_remove (GCache *cache, + gconstpointer value); +GLIB_DEPRECATED +void g_cache_key_foreach (GCache *cache, + GHFunc func, + gpointer user_data); +GLIB_DEPRECATED +void g_cache_value_foreach (GCache *cache, + GHFunc func, + gpointer user_data); + +G_GNUC_END_IGNORE_DEPRECATIONS + +G_END_DECLS + +#endif /* __G_CACHE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gcompletion.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gcompletion.h new file mode 100644 index 000000000..2be87d276 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gcompletion.h @@ -0,0 +1,85 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_COMPLETION_H__ +#define __G_COMPLETION_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GCompletion GCompletion; + +typedef gchar* (*GCompletionFunc) (gpointer); + +/* GCompletion + */ + +typedef gint (*GCompletionStrncmpFunc) (const gchar *s1, + const gchar *s2, + gsize n); + +struct _GCompletion +{ + GList* items; + GCompletionFunc func; + + gchar* prefix; + GList* cache; + GCompletionStrncmpFunc strncmp_func; +}; + +GLIB_DEPRECATED_IN_2_26 +GCompletion* g_completion_new (GCompletionFunc func); +GLIB_DEPRECATED_IN_2_26 +void g_completion_add_items (GCompletion* cmp, + GList* items); +GLIB_DEPRECATED_IN_2_26 +void g_completion_remove_items (GCompletion* cmp, + GList* items); +GLIB_DEPRECATED_IN_2_26 +void g_completion_clear_items (GCompletion* cmp); +GLIB_DEPRECATED_IN_2_26 +GList* g_completion_complete (GCompletion* cmp, + const gchar* prefix, + gchar** new_prefix); +GLIB_DEPRECATED_IN_2_26 +GList* g_completion_complete_utf8 (GCompletion *cmp, + const gchar* prefix, + gchar** new_prefix); +GLIB_DEPRECATED_IN_2_26 +void g_completion_set_compare (GCompletion *cmp, + GCompletionStrncmpFunc strncmp_func); +GLIB_DEPRECATED_IN_2_26 +void g_completion_free (GCompletion* cmp); + +G_END_DECLS + +#endif /* __G_COMPLETION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gmain.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gmain.h new file mode 100644 index 000000000..ed01f8e5a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gmain.h @@ -0,0 +1,137 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_DEPRECATED_MAIN_H__ +#define __G_DEPRECATED_MAIN_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/* ============== Compat main loop stuff ================== */ + +/** + * g_main_new: + * @is_running: set to %TRUE to indicate that the loop is running. This + * is not very important since calling g_main_run() will set this + * to %TRUE anyway. + * + * Creates a new #GMainLoop for th default main context. + * + * Returns: a new #GMainLoop + * + * Deprecated: 2.2: Use g_main_loop_new() instead + */ +#define g_main_new(is_running) g_main_loop_new (NULL, is_running) GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_main_loop_new) + +/** + * g_main_run: + * @loop: a #GMainLoop + * + * Runs a main loop until it stops running. + * + * Deprecated: 2.2: Use g_main_loop_run() instead + */ +#define g_main_run(loop) g_main_loop_run(loop) GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_main_loop_run) + +/** + * g_main_quit: + * @loop: a #GMainLoop + * + * Stops the #GMainLoop. + * If g_main_run() was called to run the #GMainLoop, it will now return. + * + * Deprecated: 2.2: Use g_main_loop_quit() instead + */ +#define g_main_quit(loop) g_main_loop_quit(loop) GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_main_loop_quit) + +/** + * g_main_destroy: + * @loop: a #GMainLoop + * + * Frees the memory allocated for the #GMainLoop. + * + * Deprecated: 2.2: Use g_main_loop_unref() instead + */ +#define g_main_destroy(loop) g_main_loop_unref(loop) GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_main_loop_unref) + +/** + * g_main_is_running: + * @loop: a #GMainLoop + * + * Checks if the main loop is running. + * + * Returns: %TRUE if the main loop is running + * + * Deprecated: 2.2: Use g_main_loop_is_running() instead + */ +#define g_main_is_running(loop) g_main_loop_is_running(loop) GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_main_loop_is_running) + +/** + * g_main_iteration: + * @may_block: set to %TRUE if it should block (i.e. wait) until an event + * source becomes ready. It will return after an event source has been + * processed. If set to %FALSE it will return immediately if no event + * source is ready to be processed. + * + * Runs a single iteration for the default #GMainContext. + * + * Returns: %TRUE if more events are pending. + * + * Deprecated: 2.2: Use g_main_context_iteration() instead. + */ +#define g_main_iteration(may_block) g_main_context_iteration (NULL, may_block) GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_main_context_iteration) + +/** + * g_main_pending: + * + * Checks if any events are pending for the default #GMainContext + * (i.e. ready to be processed). + * + * Returns: %TRUE if any events are pending. + * + * Deprecated: 2.2: Use g_main_context_pending() instead. + */ +#define g_main_pending() g_main_context_pending (NULL) GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_main_context_pending) + +/** + * g_main_set_poll_func: + * @func: the function to call to poll all file descriptors + * + * Sets the function to use for the handle polling of file descriptors + * for the default main context. + * + * Deprecated: 2.2: Use g_main_context_set_poll_func() again + */ +#define g_main_set_poll_func(func) g_main_context_set_poll_func (NULL, func) GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_main_context_set_poll_func) + +G_END_DECLS + +#endif /* __G_DEPRECATED_MAIN_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/grel.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/grel.h new file mode 100644 index 000000000..071e609b4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/grel.h @@ -0,0 +1,107 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_REL_H__ +#define __G_REL_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GRelation GRelation; +typedef struct _GTuples GTuples; + +struct _GTuples +{ + guint len; +}; + +/* GRelation + * + * Indexed Relations. Imagine a really simple table in a + * database. Relations are not ordered. This data type is meant for + * maintaining a N-way mapping. + * + * g_relation_new() creates a relation with FIELDS fields + * + * g_relation_destroy() frees all resources + * g_tuples_destroy() frees the result of g_relation_select() + * + * g_relation_index() indexes relation FIELD with the provided + * equality and hash functions. this must be done before any + * calls to insert are made. + * + * g_relation_insert() inserts a new tuple. you are expected to + * provide the right number of fields. + * + * g_relation_delete() deletes all relations with KEY in FIELD + * g_relation_select() returns ... + * g_relation_count() counts ... + */ + +GLIB_DEPRECATED_IN_2_26 +GRelation* g_relation_new (gint fields); +GLIB_DEPRECATED_IN_2_26 +void g_relation_destroy (GRelation *relation); +GLIB_DEPRECATED_IN_2_26 +void g_relation_index (GRelation *relation, + gint field, + GHashFunc hash_func, + GEqualFunc key_equal_func); +GLIB_DEPRECATED_IN_2_26 +void g_relation_insert (GRelation *relation, + ...); +GLIB_DEPRECATED_IN_2_26 +gint g_relation_delete (GRelation *relation, + gconstpointer key, + gint field); +GLIB_DEPRECATED_IN_2_26 +GTuples* g_relation_select (GRelation *relation, + gconstpointer key, + gint field); +GLIB_DEPRECATED_IN_2_26 +gint g_relation_count (GRelation *relation, + gconstpointer key, + gint field); +GLIB_DEPRECATED_IN_2_26 +gboolean g_relation_exists (GRelation *relation, + ...); +GLIB_DEPRECATED_IN_2_26 +void g_relation_print (GRelation *relation); +GLIB_DEPRECATED_IN_2_26 +void g_tuples_destroy (GTuples *tuples); +GLIB_DEPRECATED_IN_2_26 +gpointer g_tuples_index (GTuples *tuples, + gint index_, + gint field); + +G_END_DECLS + +#endif /* __G_REL_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gthread.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gthread.h new file mode 100644 index 000000000..a36613691 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/deprecated/gthread.h @@ -0,0 +1,295 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_DEPRECATED_THREAD_H__ +#define __G_DEPRECATED_THREAD_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + +typedef enum +{ + G_THREAD_PRIORITY_LOW, + G_THREAD_PRIORITY_NORMAL, + G_THREAD_PRIORITY_HIGH, + G_THREAD_PRIORITY_URGENT +} GThreadPriority GLIB_DEPRECATED_TYPE_IN_2_32; + +struct _GThread +{ + /*< private >*/ + GThreadFunc func; + gpointer data; + gboolean joinable; + GThreadPriority priority; +}; + +typedef struct _GThreadFunctions GThreadFunctions GLIB_DEPRECATED_TYPE_IN_2_32; +struct _GThreadFunctions +{ + GMutex* (*mutex_new) (void); + void (*mutex_lock) (GMutex *mutex); + gboolean (*mutex_trylock) (GMutex *mutex); + void (*mutex_unlock) (GMutex *mutex); + void (*mutex_free) (GMutex *mutex); + GCond* (*cond_new) (void); + void (*cond_signal) (GCond *cond); + void (*cond_broadcast) (GCond *cond); + void (*cond_wait) (GCond *cond, + GMutex *mutex); + gboolean (*cond_timed_wait) (GCond *cond, + GMutex *mutex, + GTimeVal *end_time); + void (*cond_free) (GCond *cond); + GPrivate* (*private_new) (GDestroyNotify destructor); + gpointer (*private_get) (GPrivate *private_key); + void (*private_set) (GPrivate *private_key, + gpointer data); + void (*thread_create) (GThreadFunc func, + gpointer data, + gulong stack_size, + gboolean joinable, + gboolean bound, + GThreadPriority priority, + gpointer thread, + GError **error); + void (*thread_yield) (void); + void (*thread_join) (gpointer thread); + void (*thread_exit) (void); + void (*thread_set_priority)(gpointer thread, + GThreadPriority priority); + void (*thread_self) (gpointer thread); + gboolean (*thread_equal) (gpointer thread1, + gpointer thread2); +} GLIB_DEPRECATED_TYPE_IN_2_32; + +GLIB_VAR GThreadFunctions g_thread_functions_for_glib_use; +GLIB_VAR gboolean g_thread_use_default_impl; + +GLIB_VAR guint64 (*g_thread_gettime) (void); + +GLIB_DEPRECATED_IN_2_32_FOR(g_thread_new) +GThread *g_thread_create (GThreadFunc func, + gpointer data, + gboolean joinable, + GError **error); + +GLIB_DEPRECATED_IN_2_32_FOR(g_thread_new) +GThread *g_thread_create_full (GThreadFunc func, + gpointer data, + gulong stack_size, + gboolean joinable, + gboolean bound, + GThreadPriority priority, + GError **error); + +GLIB_DEPRECATED_IN_2_32 +void g_thread_set_priority (GThread *thread, + GThreadPriority priority); + +GLIB_DEPRECATED_IN_2_32 +void g_thread_foreach (GFunc thread_func, + gpointer user_data); + +#ifndef G_OS_WIN32 +#include +#include +#endif + +#define g_static_mutex_get_mutex g_static_mutex_get_mutex_impl GLIB_DEPRECATED_MACRO_IN_2_32 +#ifndef G_OS_WIN32 +#define G_STATIC_MUTEX_INIT { NULL, PTHREAD_MUTEX_INITIALIZER } GLIB_DEPRECATED_MACRO_IN_2_32_FOR(g_mutex_init) +#else +#define G_STATIC_MUTEX_INIT { NULL } GLIB_DEPRECATED_MACRO_IN_2_32_FOR(g_mutex_init) +#endif +typedef struct +{ + GMutex *mutex; +#ifndef G_OS_WIN32 + /* only for ABI compatibility reasons */ + pthread_mutex_t unused; +#endif +} GStaticMutex GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GMutex); + +#define g_static_mutex_lock(mutex) \ + g_mutex_lock (g_static_mutex_get_mutex (mutex)) GLIB_DEPRECATED_MACRO_IN_2_32_FOR(g_mutex_lock) +#define g_static_mutex_trylock(mutex) \ + g_mutex_trylock (g_static_mutex_get_mutex (mutex)) GLIB_DEPRECATED_MACRO_IN_2_32_FOR(g_mutex_trylock) +#define g_static_mutex_unlock(mutex) \ + g_mutex_unlock (g_static_mutex_get_mutex (mutex)) GLIB_DEPRECATED_MACRO_IN_2_32_FOR(g_mutex_unlock) + +GLIB_DEPRECATED_IN_2_32_FOR(g_mutex_init) +void g_static_mutex_init (GStaticMutex *mutex); +GLIB_DEPRECATED_IN_2_32_FOR(g_mutex_clear) +void g_static_mutex_free (GStaticMutex *mutex); +GLIB_DEPRECATED_IN_2_32_FOR(GMutex) +GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex); + +typedef struct _GStaticRecMutex GStaticRecMutex GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GRecMutex); +struct _GStaticRecMutex +{ + /*< private >*/ + GStaticMutex mutex; + guint depth; + + /* ABI compat only */ + union { +#ifdef G_OS_WIN32 + void *owner; +#else + pthread_t owner; +#endif + gdouble dummy; + } unused; +} GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GRecMutex); + +#define G_STATIC_REC_MUTEX_INIT { G_STATIC_MUTEX_INIT, 0, { 0 } } GLIB_DEPRECATED_MACRO_IN_2_32_FOR(g_rec_mutex_init) +GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_init) +void g_static_rec_mutex_init (GStaticRecMutex *mutex); + +GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_lock) +void g_static_rec_mutex_lock (GStaticRecMutex *mutex); + +GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_try_lock) +gboolean g_static_rec_mutex_trylock (GStaticRecMutex *mutex); + +GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_unlock) +void g_static_rec_mutex_unlock (GStaticRecMutex *mutex); + +GLIB_DEPRECATED_IN_2_32 +void g_static_rec_mutex_lock_full (GStaticRecMutex *mutex, + guint depth); + +GLIB_DEPRECATED_IN_2_32 +guint g_static_rec_mutex_unlock_full (GStaticRecMutex *mutex); + +GLIB_DEPRECATED_IN_2_32_FOR(g_rec_mutex_free) +void g_static_rec_mutex_free (GStaticRecMutex *mutex); + +typedef struct _GStaticRWLock GStaticRWLock GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GRWLock); +struct _GStaticRWLock +{ + /*< private >*/ + GStaticMutex mutex; + GCond *read_cond; + GCond *write_cond; + guint read_counter; + gboolean have_writer; + guint want_to_read; + guint want_to_write; +} GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GRWLock); + +#define G_STATIC_RW_LOCK_INIT { G_STATIC_MUTEX_INIT, NULL, NULL, 0, FALSE, 0, 0 } GLIB_DEPRECATED_MACRO_IN_2_32_FOR(g_rw_lock_init) + +GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_init) +void g_static_rw_lock_init (GStaticRWLock *lock); + +GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_reader_lock) +void g_static_rw_lock_reader_lock (GStaticRWLock *lock); + +GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_reader_trylock) +gboolean g_static_rw_lock_reader_trylock (GStaticRWLock *lock); + +GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_reader_unlock) +void g_static_rw_lock_reader_unlock (GStaticRWLock *lock); + +GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_writer_lock) +void g_static_rw_lock_writer_lock (GStaticRWLock *lock); + +GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_writer_trylock) +gboolean g_static_rw_lock_writer_trylock (GStaticRWLock *lock); + +GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_writer_unlock) +void g_static_rw_lock_writer_unlock (GStaticRWLock *lock); + +GLIB_DEPRECATED_IN_2_32_FOR(g_rw_lock_free) +void g_static_rw_lock_free (GStaticRWLock *lock); + +GLIB_DEPRECATED_IN_2_32 +GPrivate * g_private_new (GDestroyNotify notify); + +typedef struct _GStaticPrivate GStaticPrivate GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GPrivate); +struct _GStaticPrivate +{ + /*< private >*/ + guint index; +} GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GPrivate); + +#define G_STATIC_PRIVATE_INIT { 0 } GLIB_DEPRECATED_MACRO_IN_2_32_FOR(G_PRIVATE_INIT) +GLIB_DEPRECATED_IN_2_32 +void g_static_private_init (GStaticPrivate *private_key); + +GLIB_DEPRECATED_IN_2_32_FOR(g_private_get) +gpointer g_static_private_get (GStaticPrivate *private_key); + +GLIB_DEPRECATED_IN_2_32_FOR(g_private_set) +void g_static_private_set (GStaticPrivate *private_key, + gpointer data, + GDestroyNotify notify); + +GLIB_DEPRECATED_IN_2_32 +void g_static_private_free (GStaticPrivate *private_key); + +GLIB_DEPRECATED_IN_2_32 +gboolean g_once_init_enter_impl (volatile gsize *location); + +GLIB_DEPRECATED_IN_2_32 +void g_thread_init (gpointer vtable); +GLIB_DEPRECATED_IN_2_32 +void g_thread_init_with_errorcheck_mutexes (gpointer vtable); + +GLIB_DEPRECATED_IN_2_32 +gboolean g_thread_get_initialized (void); + +GLIB_VAR gboolean g_threads_got_initialized; + +#define g_thread_supported() (1) GLIB_DEPRECATED_MACRO_IN_2_32 + +GLIB_DEPRECATED_IN_2_32 +GMutex * g_mutex_new (void); +GLIB_DEPRECATED_IN_2_32 +void g_mutex_free (GMutex *mutex); +GLIB_DEPRECATED_IN_2_32 +GCond * g_cond_new (void); +GLIB_DEPRECATED_IN_2_32 +void g_cond_free (GCond *cond); +GLIB_DEPRECATED_IN_2_32 +gboolean g_cond_timed_wait (GCond *cond, + GMutex *mutex, + GTimeVal *timeval); + +G_GNUC_END_IGNORE_DEPRECATIONS + +G_END_DECLS + +#endif /* __G_DEPRECATED_THREAD_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/galloca.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/galloca.h new file mode 100644 index 000000000..db01fe52e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/galloca.h @@ -0,0 +1,147 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_ALLOCA_H__ +#define __G_ALLOCA_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +#if defined(__BIONIC__) && defined (GLIB_HAVE_ALLOCA_H) +# include +#elif defined(__GNUC__) +/* GCC does the right thing */ +# undef alloca +# define alloca(size) __builtin_alloca (size) +#elif defined (GLIB_HAVE_ALLOCA_H) +/* a native and working alloca.h is there */ +# include +#else /* !__GNUC__ && !GLIB_HAVE_ALLOCA_H */ +# if defined(_MSC_VER) || defined(__DMC__) +# include +# define alloca _alloca +# else /* !_MSC_VER && !__DMC__ */ +# ifdef _AIX +# pragma alloca +# else /* !_AIX */ +# ifndef alloca /* predefined by HP cc +Olibcalls */ +G_BEGIN_DECLS +char *alloca (); +G_END_DECLS +# endif /* !alloca */ +# endif /* !_AIX */ +# endif /* !_MSC_VER && !__DMC__ */ +#endif /* !__GNUC__ && !GLIB_HAVE_ALLOCA_H */ + +/** + * g_alloca: + * @size: number of bytes to allocate. + * + * Allocates @size bytes on the stack; these bytes will be freed when the current + * stack frame is cleaned up. This macro essentially just wraps the alloca() + * function present on most UNIX variants. + * Thus it provides the same advantages and pitfalls as alloca(): + * + * - alloca() is very fast, as on most systems it's implemented by just adjusting + * the stack pointer register. + * + * - It doesn't cause any memory fragmentation, within its scope, separate alloca() + * blocks just build up and are released together at function end. + * + * - Allocation sizes have to fit into the current stack frame. For instance in a + * threaded environment on Linux, the per-thread stack size is limited to 2 Megabytes, + * so be sparse with alloca() uses. + * + * - Allocation failure due to insufficient stack space is not indicated with a %NULL + * return like e.g. with malloc(). Instead, most systems probably handle it the same + * way as out of stack space situations from infinite function recursion, i.e. + * with a segmentation fault. + * + * - Allowing @size to be specified by an untrusted party would allow for them + * to trigger a segmentation fault by specifying a large size, leading to a + * denial of service vulnerability. @size must always be entirely under the + * control of the program. + * + * - Special care has to be taken when mixing alloca() with GNU C variable sized arrays. + * Stack space allocated with alloca() in the same scope as a variable sized array + * will be freed together with the variable sized array upon exit of that scope, and + * not upon exit of the enclosing function scope. + * + * Returns: space for @size bytes, allocated on the stack + */ +#define g_alloca(size) alloca (size) + +/** + * g_alloca0: + * @size: number of bytes to allocate. + * + * Wraps g_alloca() and initializes allocated memory to zeroes. + * If @size is `0` it returns %NULL. + * + * Note that the @size argument will be evaluated multiple times. + * + * Returns: (nullable) (transfer full): space for @size bytes, allocated on the stack + * + * Since: 2.72 + */ +#define g_alloca0(size) ((size) == 0 ? NULL : memset (g_alloca (size), 0, (size))) + +/** + * g_newa: + * @struct_type: Type of memory chunks to be allocated + * @n_structs: Number of chunks to be allocated + * + * Wraps g_alloca() in a more typesafe manner. + * + * As mentioned in the documentation for g_alloca(), @n_structs must always be + * entirely under the control of the program, or you may introduce a denial of + * service vulnerability. In addition, the multiplication of @struct_type by + * @n_structs is not checked, so an overflow may lead to a remote code execution + * vulnerability. + * + * Returns: Pointer to stack space for @n_structs chunks of type @struct_type + */ +#define g_newa(struct_type, n_structs) ((struct_type*) g_alloca (sizeof (struct_type) * (gsize) (n_structs))) + +/** + * g_newa0: + * @struct_type: the type of the elements to allocate. + * @n_structs: the number of elements to allocate. + * + * Wraps g_alloca0() in a more typesafe manner. + * + * Returns: (nullable) (transfer full): Pointer to stack space for @n_structs + * chunks of type @struct_type + * + * Since: 2.72 + */ +#define g_newa0(struct_type, n_structs) ((struct_type*) g_alloca0 (sizeof (struct_type) * (gsize) (n_structs))) + +#endif /* __G_ALLOCA_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/garray.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/garray.h new file mode 100644 index 000000000..5dc32b2a7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/garray.h @@ -0,0 +1,323 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_ARRAY_H__ +#define __G_ARRAY_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GBytes GBytes; +typedef struct _GArray GArray; +typedef struct _GByteArray GByteArray; +typedef struct _GPtrArray GPtrArray; + +struct _GArray +{ + gchar *data; + guint len; +}; + +struct _GByteArray +{ + guint8 *data; + guint len; +}; + +struct _GPtrArray +{ + gpointer *pdata; + guint len; +}; + +/* Resizable arrays. remove fills any cleared spot and shortens the + * array, while preserving the order. remove_fast will distort the + * order by moving the last element to the position of the removed. + */ + +#define g_array_append_val(a,v) g_array_append_vals (a, &(v), 1) +#define g_array_prepend_val(a,v) g_array_prepend_vals (a, &(v), 1) +#define g_array_insert_val(a,i,v) g_array_insert_vals (a, i, &(v), 1) +#define g_array_index(a,t,i) (((t*) (void *) (a)->data) [(i)]) + +GLIB_AVAILABLE_IN_ALL +GArray* g_array_new (gboolean zero_terminated, + gboolean clear_, + guint element_size); +GLIB_AVAILABLE_IN_2_76 +GArray* g_array_new_take (gpointer data, + gsize len, + gboolean clear, + gsize element_size); +GLIB_AVAILABLE_IN_2_76 +GArray* g_array_new_take_zero_terminated (gpointer data, + gboolean clear, + gsize element_size); +GLIB_AVAILABLE_IN_2_64 +gpointer g_array_steal (GArray *array, + gsize *len); +GLIB_AVAILABLE_IN_ALL +GArray* g_array_sized_new (gboolean zero_terminated, + gboolean clear_, + guint element_size, + guint reserved_size); +GLIB_AVAILABLE_IN_2_62 +GArray* g_array_copy (GArray *array); +GLIB_AVAILABLE_IN_ALL +gchar* g_array_free (GArray *array, + gboolean free_segment); +GLIB_AVAILABLE_IN_ALL +GArray *g_array_ref (GArray *array); +GLIB_AVAILABLE_IN_ALL +void g_array_unref (GArray *array); +GLIB_AVAILABLE_IN_ALL +guint g_array_get_element_size (GArray *array); +GLIB_AVAILABLE_IN_ALL +GArray* g_array_append_vals (GArray *array, + gconstpointer data, + guint len); +GLIB_AVAILABLE_IN_ALL +GArray* g_array_prepend_vals (GArray *array, + gconstpointer data, + guint len); +GLIB_AVAILABLE_IN_ALL +GArray* g_array_insert_vals (GArray *array, + guint index_, + gconstpointer data, + guint len); +GLIB_AVAILABLE_IN_ALL +GArray* g_array_set_size (GArray *array, + guint length); +GLIB_AVAILABLE_IN_ALL +GArray* g_array_remove_index (GArray *array, + guint index_); +GLIB_AVAILABLE_IN_ALL +GArray* g_array_remove_index_fast (GArray *array, + guint index_); +GLIB_AVAILABLE_IN_ALL +GArray* g_array_remove_range (GArray *array, + guint index_, + guint length); +GLIB_AVAILABLE_IN_ALL +void g_array_sort (GArray *array, + GCompareFunc compare_func); +GLIB_AVAILABLE_IN_ALL +void g_array_sort_with_data (GArray *array, + GCompareDataFunc compare_func, + gpointer user_data); +GLIB_AVAILABLE_IN_2_62 +gboolean g_array_binary_search (GArray *array, + gconstpointer target, + GCompareFunc compare_func, + guint *out_match_index); +GLIB_AVAILABLE_IN_ALL +void g_array_set_clear_func (GArray *array, + GDestroyNotify clear_func); + +/* Resizable pointer array. This interface is much less complicated + * than the above. Add appends a pointer. Remove fills any cleared + * spot and shortens the array. remove_fast will again distort order. + */ +#define g_ptr_array_index(array,index_) ((array)->pdata)[index_] +GLIB_AVAILABLE_IN_ALL +GPtrArray* g_ptr_array_new (void); +GLIB_AVAILABLE_IN_ALL +GPtrArray* g_ptr_array_new_with_free_func (GDestroyNotify element_free_func); +GLIB_AVAILABLE_IN_2_76 +GPtrArray* g_ptr_array_new_take (gpointer *data, + gsize len, + GDestroyNotify element_free_func); +GLIB_AVAILABLE_IN_2_76 +GPtrArray* g_ptr_array_new_from_array (gpointer *data, + gsize len, + GCopyFunc copy_func, + gpointer copy_func_user_data, + GDestroyNotify element_free_func); +GLIB_AVAILABLE_IN_2_64 +gpointer* g_ptr_array_steal (GPtrArray *array, + gsize *len); +GLIB_AVAILABLE_IN_2_62 +GPtrArray *g_ptr_array_copy (GPtrArray *array, + GCopyFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +GPtrArray* g_ptr_array_sized_new (guint reserved_size); +GLIB_AVAILABLE_IN_ALL +GPtrArray* g_ptr_array_new_full (guint reserved_size, + GDestroyNotify element_free_func); +GLIB_AVAILABLE_IN_2_74 +GPtrArray* g_ptr_array_new_null_terminated (guint reserved_size, + GDestroyNotify element_free_func, + gboolean null_terminated); +GLIB_AVAILABLE_IN_2_76 +GPtrArray* g_ptr_array_new_take_null_terminated (gpointer *data, + GDestroyNotify element_free_func); +GLIB_AVAILABLE_IN_2_76 +GPtrArray* g_ptr_array_new_from_null_terminated_array (gpointer *data, + GCopyFunc copy_func, + gpointer copy_func_user_data, + GDestroyNotify element_free_func); +GLIB_AVAILABLE_IN_ALL +gpointer* g_ptr_array_free (GPtrArray *array, + gboolean free_seg); +GLIB_AVAILABLE_IN_ALL +GPtrArray* g_ptr_array_ref (GPtrArray *array); +GLIB_AVAILABLE_IN_ALL +void g_ptr_array_unref (GPtrArray *array); +GLIB_AVAILABLE_IN_ALL +void g_ptr_array_set_free_func (GPtrArray *array, + GDestroyNotify element_free_func); +GLIB_AVAILABLE_IN_ALL +void g_ptr_array_set_size (GPtrArray *array, + gint length); +GLIB_AVAILABLE_IN_ALL +gpointer g_ptr_array_remove_index (GPtrArray *array, + guint index_); +GLIB_AVAILABLE_IN_ALL +gpointer g_ptr_array_remove_index_fast (GPtrArray *array, + guint index_); +GLIB_AVAILABLE_IN_2_58 +gpointer g_ptr_array_steal_index (GPtrArray *array, + guint index_); +GLIB_AVAILABLE_IN_2_58 +gpointer g_ptr_array_steal_index_fast (GPtrArray *array, + guint index_); +GLIB_AVAILABLE_IN_ALL +gboolean g_ptr_array_remove (GPtrArray *array, + gpointer data); +GLIB_AVAILABLE_IN_ALL +gboolean g_ptr_array_remove_fast (GPtrArray *array, + gpointer data); +GLIB_AVAILABLE_IN_ALL +GPtrArray *g_ptr_array_remove_range (GPtrArray *array, + guint index_, + guint length); +GLIB_AVAILABLE_IN_ALL +void g_ptr_array_add (GPtrArray *array, + gpointer data); +GLIB_AVAILABLE_IN_2_62 +void g_ptr_array_extend (GPtrArray *array_to_extend, + GPtrArray *array, + GCopyFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_2_62 +void g_ptr_array_extend_and_steal (GPtrArray *array_to_extend, + GPtrArray *array); +GLIB_AVAILABLE_IN_2_40 +void g_ptr_array_insert (GPtrArray *array, + gint index_, + gpointer data); +GLIB_AVAILABLE_IN_ALL +void g_ptr_array_sort (GPtrArray *array, + GCompareFunc compare_func); +GLIB_AVAILABLE_IN_ALL +void g_ptr_array_sort_with_data (GPtrArray *array, + GCompareDataFunc compare_func, + gpointer user_data); +GLIB_AVAILABLE_IN_2_76 +void g_ptr_array_sort_values (GPtrArray *array, + GCompareFunc compare_func); +GLIB_AVAILABLE_IN_2_76 +void g_ptr_array_sort_values_with_data (GPtrArray *array, + GCompareDataFunc compare_func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +void g_ptr_array_foreach (GPtrArray *array, + GFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_2_54 +gboolean g_ptr_array_find (GPtrArray *haystack, + gconstpointer needle, + guint *index_); +GLIB_AVAILABLE_IN_2_54 +gboolean g_ptr_array_find_with_equal_func (GPtrArray *haystack, + gconstpointer needle, + GEqualFunc equal_func, + guint *index_); + +GLIB_AVAILABLE_IN_2_74 +gboolean g_ptr_array_is_null_terminated (GPtrArray *array); + +/* Byte arrays, an array of guint8. Implemented as a GArray, + * but type-safe. + */ + +GLIB_AVAILABLE_IN_ALL +GByteArray* g_byte_array_new (void); +GLIB_AVAILABLE_IN_ALL +GByteArray* g_byte_array_new_take (guint8 *data, + gsize len); +GLIB_AVAILABLE_IN_2_64 +guint8* g_byte_array_steal (GByteArray *array, + gsize *len); +GLIB_AVAILABLE_IN_ALL +GByteArray* g_byte_array_sized_new (guint reserved_size); +GLIB_AVAILABLE_IN_ALL +guint8* g_byte_array_free (GByteArray *array, + gboolean free_segment); +GLIB_AVAILABLE_IN_ALL +GBytes* g_byte_array_free_to_bytes (GByteArray *array); +GLIB_AVAILABLE_IN_ALL +GByteArray *g_byte_array_ref (GByteArray *array); +GLIB_AVAILABLE_IN_ALL +void g_byte_array_unref (GByteArray *array); +GLIB_AVAILABLE_IN_ALL +GByteArray* g_byte_array_append (GByteArray *array, + const guint8 *data, + guint len); +GLIB_AVAILABLE_IN_ALL +GByteArray* g_byte_array_prepend (GByteArray *array, + const guint8 *data, + guint len); +GLIB_AVAILABLE_IN_ALL +GByteArray* g_byte_array_set_size (GByteArray *array, + guint length); +GLIB_AVAILABLE_IN_ALL +GByteArray* g_byte_array_remove_index (GByteArray *array, + guint index_); +GLIB_AVAILABLE_IN_ALL +GByteArray* g_byte_array_remove_index_fast (GByteArray *array, + guint index_); +GLIB_AVAILABLE_IN_ALL +GByteArray* g_byte_array_remove_range (GByteArray *array, + guint index_, + guint length); +GLIB_AVAILABLE_IN_ALL +void g_byte_array_sort (GByteArray *array, + GCompareFunc compare_func); +GLIB_AVAILABLE_IN_ALL +void g_byte_array_sort_with_data (GByteArray *array, + GCompareDataFunc compare_func, + gpointer user_data); + +G_END_DECLS + +#endif /* __G_ARRAY_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gasyncqueue.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gasyncqueue.h new file mode 100644 index 000000000..b1de117f2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gasyncqueue.h @@ -0,0 +1,126 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_ASYNCQUEUE_H__ +#define __G_ASYNCQUEUE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GAsyncQueue GAsyncQueue; + +GLIB_AVAILABLE_IN_ALL +GAsyncQueue *g_async_queue_new (void); +GLIB_AVAILABLE_IN_ALL +GAsyncQueue *g_async_queue_new_full (GDestroyNotify item_free_func); +GLIB_AVAILABLE_IN_ALL +void g_async_queue_lock (GAsyncQueue *queue); +GLIB_AVAILABLE_IN_ALL +void g_async_queue_unlock (GAsyncQueue *queue); +GLIB_AVAILABLE_IN_ALL +GAsyncQueue *g_async_queue_ref (GAsyncQueue *queue); +GLIB_AVAILABLE_IN_ALL +void g_async_queue_unref (GAsyncQueue *queue); + +GLIB_DEPRECATED_FOR(g_async_queue_ref) +void g_async_queue_ref_unlocked (GAsyncQueue *queue); + +GLIB_DEPRECATED_FOR(g_async_queue_unref) +void g_async_queue_unref_and_unlock (GAsyncQueue *queue); + +GLIB_AVAILABLE_IN_ALL +void g_async_queue_push (GAsyncQueue *queue, + gpointer data); +GLIB_AVAILABLE_IN_ALL +void g_async_queue_push_unlocked (GAsyncQueue *queue, + gpointer data); +GLIB_AVAILABLE_IN_ALL +void g_async_queue_push_sorted (GAsyncQueue *queue, + gpointer data, + GCompareDataFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +void g_async_queue_push_sorted_unlocked (GAsyncQueue *queue, + gpointer data, + GCompareDataFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +gpointer g_async_queue_pop (GAsyncQueue *queue); +GLIB_AVAILABLE_IN_ALL +gpointer g_async_queue_pop_unlocked (GAsyncQueue *queue); +GLIB_AVAILABLE_IN_ALL +gpointer g_async_queue_try_pop (GAsyncQueue *queue); +GLIB_AVAILABLE_IN_ALL +gpointer g_async_queue_try_pop_unlocked (GAsyncQueue *queue); +GLIB_AVAILABLE_IN_ALL +gpointer g_async_queue_timeout_pop (GAsyncQueue *queue, + guint64 timeout); +GLIB_AVAILABLE_IN_ALL +gpointer g_async_queue_timeout_pop_unlocked (GAsyncQueue *queue, + guint64 timeout); +GLIB_AVAILABLE_IN_ALL +gint g_async_queue_length (GAsyncQueue *queue); +GLIB_AVAILABLE_IN_ALL +gint g_async_queue_length_unlocked (GAsyncQueue *queue); +GLIB_AVAILABLE_IN_ALL +void g_async_queue_sort (GAsyncQueue *queue, + GCompareDataFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +void g_async_queue_sort_unlocked (GAsyncQueue *queue, + GCompareDataFunc func, + gpointer user_data); + +GLIB_AVAILABLE_IN_2_46 +gboolean g_async_queue_remove (GAsyncQueue *queue, + gpointer item); +GLIB_AVAILABLE_IN_2_46 +gboolean g_async_queue_remove_unlocked (GAsyncQueue *queue, + gpointer item); +GLIB_AVAILABLE_IN_2_46 +void g_async_queue_push_front (GAsyncQueue *queue, + gpointer item); +GLIB_AVAILABLE_IN_2_46 +void g_async_queue_push_front_unlocked (GAsyncQueue *queue, + gpointer item); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_DEPRECATED_FOR(g_async_queue_timeout_pop) +gpointer g_async_queue_timed_pop (GAsyncQueue *queue, + GTimeVal *end_time); +GLIB_DEPRECATED_FOR(g_async_queue_timeout_pop_unlocked) +gpointer g_async_queue_timed_pop_unlocked (GAsyncQueue *queue, + GTimeVal *end_time); +G_GNUC_END_IGNORE_DEPRECATIONS + +G_END_DECLS + +#endif /* __G_ASYNCQUEUE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gatomic.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gatomic.h new file mode 100644 index 000000000..148424dc3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gatomic.h @@ -0,0 +1,587 @@ +/* + * Copyright © 2011 Ryan Lortie + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#ifndef __G_ATOMIC_H__ +#define __G_ATOMIC_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_ALL +gint g_atomic_int_get (const volatile gint *atomic); +GLIB_AVAILABLE_IN_ALL +void g_atomic_int_set (volatile gint *atomic, + gint newval); +GLIB_AVAILABLE_IN_ALL +void g_atomic_int_inc (volatile gint *atomic); +GLIB_AVAILABLE_IN_ALL +gboolean g_atomic_int_dec_and_test (volatile gint *atomic); +GLIB_AVAILABLE_IN_ALL +gboolean g_atomic_int_compare_and_exchange (volatile gint *atomic, + gint oldval, + gint newval); +GLIB_AVAILABLE_IN_2_74 +gboolean g_atomic_int_compare_and_exchange_full (gint *atomic, + gint oldval, + gint newval, + gint *preval); +GLIB_AVAILABLE_IN_2_74 +gint g_atomic_int_exchange (gint *atomic, + gint newval); +GLIB_AVAILABLE_IN_ALL +gint g_atomic_int_add (volatile gint *atomic, + gint val); +GLIB_AVAILABLE_IN_2_30 +guint g_atomic_int_and (volatile guint *atomic, + guint val); +GLIB_AVAILABLE_IN_2_30 +guint g_atomic_int_or (volatile guint *atomic, + guint val); +GLIB_AVAILABLE_IN_ALL +guint g_atomic_int_xor (volatile guint *atomic, + guint val); + +GLIB_AVAILABLE_IN_ALL +gpointer g_atomic_pointer_get (const volatile void *atomic); +GLIB_AVAILABLE_IN_ALL +void g_atomic_pointer_set (volatile void *atomic, + gpointer newval); +GLIB_AVAILABLE_IN_ALL +gboolean g_atomic_pointer_compare_and_exchange (volatile void *atomic, + gpointer oldval, + gpointer newval); +GLIB_AVAILABLE_IN_2_74 +gboolean g_atomic_pointer_compare_and_exchange_full (void *atomic, + gpointer oldval, + gpointer newval, + void *preval); +GLIB_AVAILABLE_IN_2_74 +gpointer g_atomic_pointer_exchange (void *atomic, + gpointer newval); +GLIB_AVAILABLE_IN_ALL +gssize g_atomic_pointer_add (volatile void *atomic, + gssize val); +GLIB_AVAILABLE_IN_2_30 +gsize g_atomic_pointer_and (volatile void *atomic, + gsize val); +GLIB_AVAILABLE_IN_2_30 +gsize g_atomic_pointer_or (volatile void *atomic, + gsize val); +GLIB_AVAILABLE_IN_ALL +gsize g_atomic_pointer_xor (volatile void *atomic, + gsize val); + +GLIB_DEPRECATED_IN_2_30_FOR(g_atomic_int_add) +gint g_atomic_int_exchange_and_add (volatile gint *atomic, + gint val); + +G_END_DECLS + +#if defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) + +/* We prefer the new C11-style atomic extension of GCC if available */ +#if defined(__ATOMIC_SEQ_CST) + +#define g_atomic_int_get(atomic) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + gint gaig_temp; \ + (void) (0 ? *(atomic) ^ *(atomic) : 1); \ + __atomic_load ((gint *)(atomic), &gaig_temp, __ATOMIC_SEQ_CST); \ + (gint) gaig_temp; \ + })) +#define g_atomic_int_set(atomic, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + gint gais_temp = (gint) (newval); \ + (void) (0 ? *(atomic) ^ (newval) : 1); \ + __atomic_store ((gint *)(atomic), &gais_temp, __ATOMIC_SEQ_CST); \ + })) + +#if defined(glib_typeof) +#define g_atomic_pointer_get(atomic) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + glib_typeof (*(atomic)) gapg_temp_newval; \ + glib_typeof ((atomic)) gapg_temp_atomic = (atomic); \ + __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \ + gapg_temp_newval; \ + })) +#define g_atomic_pointer_set(atomic, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + glib_typeof ((atomic)) gaps_temp_atomic = (atomic); \ + glib_typeof (*(atomic)) gaps_temp_newval = (newval); \ + (void) (0 ? (gpointer) * (atomic) : NULL); \ + __atomic_store (gaps_temp_atomic, &gaps_temp_newval, __ATOMIC_SEQ_CST); \ + })) +#else /* if !(defined(glib_typeof) */ +#define g_atomic_pointer_get(atomic) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + gpointer gapg_temp_newval; \ + gpointer *gapg_temp_atomic = (gpointer *)(atomic); \ + __atomic_load (gapg_temp_atomic, &gapg_temp_newval, __ATOMIC_SEQ_CST); \ + gapg_temp_newval; \ + })) +#define g_atomic_pointer_set(atomic, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + gpointer *gaps_temp_atomic = (gpointer *)(atomic); \ + gpointer gaps_temp_newval = (gpointer)(newval); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + __atomic_store (gaps_temp_atomic, &gaps_temp_newval, __ATOMIC_SEQ_CST); \ + })) +#endif /* if defined(glib_typeof) */ + +#define g_atomic_int_inc(atomic) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ *(atomic) : 1); \ + (void) __atomic_fetch_add ((atomic), 1, __ATOMIC_SEQ_CST); \ + })) +#define g_atomic_int_dec_and_test(atomic) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ *(atomic) : 1); \ + __atomic_fetch_sub ((atomic), 1, __ATOMIC_SEQ_CST) == 1; \ + })) +#if defined(glib_typeof) && defined(G_CXX_STD_VERSION) +/* See comments below about equivalent g_atomic_pointer_compare_and_exchange() + * shenanigans for type-safety when compiling in C++ mode. */ +#define g_atomic_int_compare_and_exchange(atomic, oldval, newval) \ + (G_GNUC_EXTENSION ({ \ + glib_typeof (*(atomic)) gaicae_oldval = (oldval); \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1); \ + __atomic_compare_exchange_n ((atomic), &gaicae_oldval, (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \ + })) +#else /* if !(defined(glib_typeof) && defined(G_CXX_STD_VERSION)) */ +#define g_atomic_int_compare_and_exchange(atomic, oldval, newval) \ + (G_GNUC_EXTENSION ({ \ + gint gaicae_oldval = (oldval); \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1); \ + __atomic_compare_exchange_n ((atomic), (void *) (&(gaicae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \ + })) +#endif /* defined(glib_typeof) */ +#define g_atomic_int_compare_and_exchange_full(atomic, oldval, newval, preval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + G_STATIC_ASSERT (sizeof *(preval) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (newval) ^ (oldval) ^ *(preval) : 1); \ + *(preval) = (oldval); \ + __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE, \ + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) \ + ? TRUE : FALSE; \ + })) +#define g_atomic_int_exchange(atomic, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (newval) : 1); \ + (gint) __atomic_exchange_n ((atomic), (newval), __ATOMIC_SEQ_CST); \ + })) +#define g_atomic_int_add(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (val) : 1); \ + (gint) __atomic_fetch_add ((atomic), (val), __ATOMIC_SEQ_CST); \ + })) +#define g_atomic_int_and(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (val) : 1); \ + (guint) __atomic_fetch_and ((atomic), (val), __ATOMIC_SEQ_CST); \ + })) +#define g_atomic_int_or(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (val) : 1); \ + (guint) __atomic_fetch_or ((atomic), (val), __ATOMIC_SEQ_CST); \ + })) +#define g_atomic_int_xor(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (val) : 1); \ + (guint) __atomic_fetch_xor ((atomic), (val), __ATOMIC_SEQ_CST); \ + })) + +#if defined(glib_typeof) && defined(G_CXX_STD_VERSION) +/* This is typesafe because we check we can assign oldval to the type of + * (*atomic). Unfortunately it can only be done in C++ because gcc/clang warn + * when atomic is volatile and not oldval, or when atomic is gsize* and oldval + * is NULL. Note that clang++ force us to be typesafe because it is an error if the 2nd + * argument of __atomic_compare_exchange_n() has a different type than the + * first. + * https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1919 + * https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1715#note_1024120. */ +#define g_atomic_pointer_compare_and_exchange(atomic, oldval, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof (static_cast((oldval))) \ + == sizeof (gpointer)); \ + glib_typeof (*(atomic)) gapcae_oldval = (oldval); \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + __atomic_compare_exchange_n ((atomic), &gapcae_oldval, (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \ + })) +#else /* if !(defined(glib_typeof) && defined(G_CXX_STD_VERSION) */ +#define g_atomic_pointer_compare_and_exchange(atomic, oldval, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof (oldval) == sizeof (gpointer)); \ + gpointer gapcae_oldval = (gpointer)(oldval); \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + __atomic_compare_exchange_n ((atomic), (void *) (&(gapcae_oldval)), (newval), FALSE, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? TRUE : FALSE; \ + })) +#endif /* defined(glib_typeof) */ +#define g_atomic_pointer_compare_and_exchange_full(atomic, oldval, newval, preval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + G_STATIC_ASSERT (sizeof *(preval) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + (void) (0 ? (gpointer) *(preval) : NULL); \ + *(preval) = (oldval); \ + __atomic_compare_exchange_n ((atomic), (preval), (newval), FALSE, \ + __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) ? \ + TRUE : FALSE; \ + })) +#define g_atomic_pointer_exchange(atomic, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + (gpointer) __atomic_exchange_n ((atomic), (newval), __ATOMIC_SEQ_CST); \ + })) +#define g_atomic_pointer_add(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + (void) (0 ? (val) ^ (val) : 1); \ + (gssize) __atomic_fetch_add ((atomic), (val), __ATOMIC_SEQ_CST); \ + })) +#define g_atomic_pointer_and(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + gsize *gapa_atomic = (gsize *) (atomic); \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gsize)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + (void) (0 ? (val) ^ (val) : 1); \ + (gsize) __atomic_fetch_and (gapa_atomic, (val), __ATOMIC_SEQ_CST); \ + })) +#define g_atomic_pointer_or(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + gsize *gapo_atomic = (gsize *) (atomic); \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gsize)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + (void) (0 ? (val) ^ (val) : 1); \ + (gsize) __atomic_fetch_or (gapo_atomic, (val), __ATOMIC_SEQ_CST); \ + })) +#define g_atomic_pointer_xor(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + gsize *gapx_atomic = (gsize *) (atomic); \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gsize)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + (void) (0 ? (val) ^ (val) : 1); \ + (gsize) __atomic_fetch_xor (gapx_atomic, (val), __ATOMIC_SEQ_CST); \ + })) + +#else /* defined(__ATOMIC_SEQ_CST) */ + +/* We want to achieve __ATOMIC_SEQ_CST semantics here. See + * https://en.cppreference.com/w/c/atomic/memory_order#Constants. For load + * operations, that means performing an *acquire*: + * > A load operation with this memory order performs the acquire operation on + * > the affected memory location: no reads or writes in the current thread can + * > be reordered before this load. All writes in other threads that release + * > the same atomic variable are visible in the current thread. + * + * “no reads or writes in the current thread can be reordered before this load†+ * is implemented using a compiler barrier (a no-op `__asm__` section) to + * prevent instruction reordering. Writes in other threads are synchronised + * using `__sync_synchronize()`. It’s unclear from the GCC documentation whether + * `__sync_synchronize()` acts as a compiler barrier, hence our explicit use of + * one. + * + * For store operations, `__ATOMIC_SEQ_CST` means performing a *release*: + * > A store operation with this memory order performs the release operation: + * > no reads or writes in the current thread can be reordered after this store. + * > All writes in the current thread are visible in other threads that acquire + * > the same atomic variable (see Release-Acquire ordering below) and writes + * > that carry a dependency into the atomic variable become visible in other + * > threads that consume the same atomic (see Release-Consume ordering below). + * + * “no reads or writes in the current thread can be reordered after this store†+ * is implemented using a compiler barrier to prevent instruction reordering. + * “All writes in the current thread are visible in other threads†is implemented + * using `__sync_synchronize()`; similarly for “writes that carry a dependencyâ€. + */ +#define g_atomic_int_get(atomic) \ + (G_GNUC_EXTENSION ({ \ + gint gaig_result; \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ *(atomic) : 1); \ + gaig_result = (gint) *(atomic); \ + __sync_synchronize (); \ + __asm__ __volatile__ ("" : : : "memory"); \ + gaig_result; \ + })) +#define g_atomic_int_set(atomic, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (newval) : 1); \ + __sync_synchronize (); \ + __asm__ __volatile__ ("" : : : "memory"); \ + *(atomic) = (newval); \ + })) +#define g_atomic_pointer_get(atomic) \ + (G_GNUC_EXTENSION ({ \ + gpointer gapg_result; \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + gapg_result = (gpointer) *(atomic); \ + __sync_synchronize (); \ + __asm__ __volatile__ ("" : : : "memory"); \ + gapg_result; \ + })) +#if defined(glib_typeof) +#define g_atomic_pointer_set(atomic, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + __sync_synchronize (); \ + __asm__ __volatile__ ("" : : : "memory"); \ + *(atomic) = (glib_typeof (*(atomic))) (gsize) (newval); \ + })) +#else /* if !(defined(glib_typeof) */ +#define g_atomic_pointer_set(atomic, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + __sync_synchronize (); \ + __asm__ __volatile__ ("" : : : "memory"); \ + *(atomic) = (gpointer) (gsize) (newval); \ + })) +#endif /* if defined(glib_typeof) */ + +#define g_atomic_int_inc(atomic) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ *(atomic) : 1); \ + (void) __sync_fetch_and_add ((atomic), 1); \ + })) +#define g_atomic_int_dec_and_test(atomic) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ *(atomic) : 1); \ + __sync_fetch_and_sub ((atomic), 1) == 1; \ + })) +#define g_atomic_int_compare_and_exchange(atomic, oldval, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (newval) ^ (oldval) : 1); \ + __sync_bool_compare_and_swap ((atomic), (oldval), (newval)) ? TRUE : FALSE; \ + })) +#define g_atomic_int_compare_and_exchange_full(atomic, oldval, newval, preval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + G_STATIC_ASSERT (sizeof *(preval) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (newval) ^ (oldval) ^ *(preval) : 1); \ + *(preval) = __sync_val_compare_and_swap ((atomic), (oldval), (newval)); \ + (*(preval) == (oldval)) ? TRUE : FALSE; \ + })) +#if defined(_GLIB_GCC_HAVE_SYNC_SWAP) +#define g_atomic_int_exchange(atomic, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (newval) : 1); \ + (gint) __sync_swap ((atomic), (newval)); \ + })) +#else /* defined(_GLIB_GCC_HAVE_SYNC_SWAP) */ + #define g_atomic_int_exchange(atomic, newval) \ + (G_GNUC_EXTENSION ({ \ + gint oldval; \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (newval) : 1); \ + do \ + { \ + oldval = *atomic; \ + } while (!__sync_bool_compare_and_swap (atomic, oldval, newval)); \ + oldval; \ + })) +#endif /* defined(_GLIB_GCC_HAVE_SYNC_SWAP) */ +#define g_atomic_int_add(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (val) : 1); \ + (gint) __sync_fetch_and_add ((atomic), (val)); \ + })) +#define g_atomic_int_and(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (val) : 1); \ + (guint) __sync_fetch_and_and ((atomic), (val)); \ + })) +#define g_atomic_int_or(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (val) : 1); \ + (guint) __sync_fetch_and_or ((atomic), (val)); \ + })) +#define g_atomic_int_xor(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gint)); \ + (void) (0 ? *(atomic) ^ (val) : 1); \ + (guint) __sync_fetch_and_xor ((atomic), (val)); \ + })) + +#define g_atomic_pointer_compare_and_exchange(atomic, oldval, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + __sync_bool_compare_and_swap ((atomic), (oldval), (newval)) ? TRUE : FALSE; \ + })) +#define g_atomic_pointer_compare_and_exchange_full(atomic, oldval, newval, preval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + G_STATIC_ASSERT (sizeof *(preval) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + (void) (0 ? (gpointer) *(preval) : NULL); \ + *(preval) = __sync_val_compare_and_swap ((atomic), (oldval), (newval)); \ + (*(preval) == (oldval)) ? TRUE : FALSE; \ + })) +#if defined(_GLIB_GCC_HAVE_SYNC_SWAP) +#define g_atomic_pointer_exchange(atomic, newval) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + (gpointer) __sync_swap ((atomic), (newval)); \ + })) +#else +#define g_atomic_pointer_exchange(atomic, newval) \ + (G_GNUC_EXTENSION ({ \ + gpointer oldval; \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + do \ + { \ + oldval = (gpointer) *atomic; \ + } while (!__sync_bool_compare_and_swap (atomic, oldval, newval)); \ + oldval; \ + })) +#endif /* defined(_GLIB_GCC_HAVE_SYNC_SWAP) */ +#define g_atomic_pointer_add(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + (void) (0 ? (val) ^ (val) : 1); \ + (gssize) __sync_fetch_and_add ((atomic), (val)); \ + })) +#define g_atomic_pointer_and(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + (void) (0 ? (val) ^ (val) : 1); \ + (gsize) __sync_fetch_and_and ((atomic), (val)); \ + })) +#define g_atomic_pointer_or(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + (void) (0 ? (val) ^ (val) : 1); \ + (gsize) __sync_fetch_and_or ((atomic), (val)); \ + })) +#define g_atomic_pointer_xor(atomic, val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(atomic) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(atomic) : NULL); \ + (void) (0 ? (val) ^ (val) : 1); \ + (gsize) __sync_fetch_and_xor ((atomic), (val)); \ + })) + +#endif /* !defined(__ATOMIC_SEQ_CST) */ + +#else /* defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) */ + +#define g_atomic_int_get(atomic) \ + (g_atomic_int_get ((gint *) (atomic))) +#define g_atomic_int_set(atomic, newval) \ + (g_atomic_int_set ((gint *) (atomic), (gint) (newval))) +#define g_atomic_int_compare_and_exchange(atomic, oldval, newval) \ + (g_atomic_int_compare_and_exchange ((gint *) (atomic), (oldval), (newval))) +#define g_atomic_int_compare_and_exchange_full(atomic, oldval, newval, preval) \ + (g_atomic_int_compare_and_exchange_full ((gint *) (atomic), (oldval), (newval), (gint *) (preval))) +#define g_atomic_int_exchange(atomic, newval) \ + (g_atomic_int_exchange ((gint *) (atomic), (newval))) +#define g_atomic_int_add(atomic, val) \ + (g_atomic_int_add ((gint *) (atomic), (val))) +#define g_atomic_int_and(atomic, val) \ + (g_atomic_int_and ((guint *) (atomic), (val))) +#define g_atomic_int_or(atomic, val) \ + (g_atomic_int_or ((guint *) (atomic), (val))) +#define g_atomic_int_xor(atomic, val) \ + (g_atomic_int_xor ((guint *) (atomic), (val))) +#define g_atomic_int_inc(atomic) \ + (g_atomic_int_inc ((gint *) (atomic))) +#define g_atomic_int_dec_and_test(atomic) \ + (g_atomic_int_dec_and_test ((gint *) (atomic))) + +#if defined(glib_typeof) + /* The (void *) cast in the middle *looks* redundant, because + * g_atomic_pointer_get returns void * already, but it's to silence + * -Werror=bad-function-cast when we're doing something like: + * guintptr a, b; ...; a = g_atomic_pointer_get (&b); + * which would otherwise be assigning the void * result of + * g_atomic_pointer_get directly to the pointer-sized but + * non-pointer-typed result. */ +#define g_atomic_pointer_get(atomic) \ + (glib_typeof (*(atomic))) (void *) ((g_atomic_pointer_get) ((void *) atomic)) +#else /* !(defined(glib_typeof) */ +#define g_atomic_pointer_get(atomic) \ + (g_atomic_pointer_get (atomic)) +#endif + +#define g_atomic_pointer_set(atomic, newval) \ + (g_atomic_pointer_set ((atomic), (gpointer) (newval))) + +#define g_atomic_pointer_compare_and_exchange(atomic, oldval, newval) \ + (g_atomic_pointer_compare_and_exchange ((atomic), (gpointer) (oldval), (gpointer) (newval))) +#define g_atomic_pointer_compare_and_exchange_full(atomic, oldval, newval, prevval) \ + (g_atomic_pointer_compare_and_exchange_full ((atomic), (gpointer) (oldval), (gpointer) (newval), (prevval))) +#define g_atomic_pointer_exchange(atomic, newval) \ + (g_atomic_pointer_exchange ((atomic), (gpointer) (newval))) +#define g_atomic_pointer_add(atomic, val) \ + (g_atomic_pointer_add ((atomic), (gssize) (val))) +#define g_atomic_pointer_and(atomic, val) \ + (g_atomic_pointer_and ((atomic), (gsize) (val))) +#define g_atomic_pointer_or(atomic, val) \ + (g_atomic_pointer_or ((atomic), (gsize) (val))) +#define g_atomic_pointer_xor(atomic, val) \ + (g_atomic_pointer_xor ((atomic), (gsize) (val))) + +#endif /* defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) */ + +#endif /* __G_ATOMIC_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbacktrace.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbacktrace.h new file mode 100644 index 000000000..11293b318 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbacktrace.h @@ -0,0 +1,74 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_BACKTRACE_H__ +#define __G_BACKTRACE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#ifdef __sun__ +#include +#endif +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_ALL +void g_on_error_query (const gchar *prg_name); +GLIB_AVAILABLE_IN_ALL +void g_on_error_stack_trace (const gchar *prg_name); + +/** + * G_BREAKPOINT: + * + * Inserts a breakpoint instruction into the code. + * + * On architectures which support it, this is implemented as a soft interrupt + * and on other architectures it raises a `SIGTRAP` signal. + * + * `SIGTRAP` is used rather than abort() to allow breakpoints to be skipped past + * in a debugger if they are not the desired target of debugging. + */ +#if (defined (__i386__) || defined (__x86_64__)) && defined (__GNUC__) && __GNUC__ >= 2 +# define G_BREAKPOINT() G_STMT_START{ __asm__ __volatile__ ("int $03"); }G_STMT_END +#elif (defined (_MSC_VER) || defined (__DMC__)) && defined (_M_IX86) +# define G_BREAKPOINT() G_STMT_START{ __asm int 3h }G_STMT_END +#elif defined (_MSC_VER) +# define G_BREAKPOINT() G_STMT_START{ __debugbreak(); }G_STMT_END +#elif defined (__alpha__) && !defined(__osf__) && defined (__GNUC__) && __GNUC__ >= 2 +# define G_BREAKPOINT() G_STMT_START{ __asm__ __volatile__ ("bpt"); }G_STMT_END +#elif defined (__APPLE__) || (defined(_WIN32) && (defined(__clang__) || defined(__GNUC__))) +# define G_BREAKPOINT() G_STMT_START{ __builtin_trap(); }G_STMT_END +#else /* !__i386__ && !__alpha__ */ +# define G_BREAKPOINT() G_STMT_START{ raise (SIGTRAP); }G_STMT_END +#endif /* __i386__ */ + +G_END_DECLS + +#endif /* __G_BACKTRACE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbase64.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbase64.h new file mode 100644 index 000000000..4cb9ef24c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbase64.h @@ -0,0 +1,63 @@ +/* gbase64.h - Base64 coding functions + * + * Copyright (C) 2005 Alexander Larsson + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_BASE64_H__ +#define __G_BASE64_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_ALL +gsize g_base64_encode_step (const guchar *in, + gsize len, + gboolean break_lines, + gchar *out, + gint *state, + gint *save); +GLIB_AVAILABLE_IN_ALL +gsize g_base64_encode_close (gboolean break_lines, + gchar *out, + gint *state, + gint *save); +GLIB_AVAILABLE_IN_ALL +gchar* g_base64_encode (const guchar *data, + gsize len) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gsize g_base64_decode_step (const gchar *in, + gsize len, + guchar *out, + gint *state, + guint *save); +GLIB_AVAILABLE_IN_ALL +guchar *g_base64_decode (const gchar *text, + gsize *out_len) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +guchar *g_base64_decode_inplace (gchar *text, + gsize *out_len); + + +G_END_DECLS + +#endif /* __G_BASE64_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbitlock.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbitlock.h new file mode 100644 index 000000000..bef2c0926 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbitlock.h @@ -0,0 +1,78 @@ +/* + * Copyright © 2008 Ryan Lortie + * Copyright © 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#ifndef __G_BITLOCK_H__ +#define __G_BITLOCK_H__ + +#include + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_ALL +void g_bit_lock (volatile gint *address, + gint lock_bit); +GLIB_AVAILABLE_IN_ALL +gboolean g_bit_trylock (volatile gint *address, + gint lock_bit); +GLIB_AVAILABLE_IN_ALL +void g_bit_unlock (volatile gint *address, + gint lock_bit); + +GLIB_AVAILABLE_IN_ALL +void g_pointer_bit_lock (volatile void *address, + gint lock_bit); +GLIB_AVAILABLE_IN_ALL +gboolean g_pointer_bit_trylock (volatile void *address, + gint lock_bit); +GLIB_AVAILABLE_IN_ALL +void g_pointer_bit_unlock (volatile void *address, + gint lock_bit); + +#ifdef __GNUC__ + +#define g_pointer_bit_lock(address, lock_bit) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer)); \ + g_pointer_bit_lock ((address), (lock_bit)); \ + })) + +#define g_pointer_bit_trylock(address, lock_bit) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer)); \ + g_pointer_bit_trylock ((address), (lock_bit)); \ + })) + +#define g_pointer_bit_unlock(address, lock_bit) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(address) == sizeof (gpointer)); \ + g_pointer_bit_unlock ((address), (lock_bit)); \ + })) + +#endif + +G_END_DECLS + +#endif /* __G_BITLOCK_H_ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbookmarkfile.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbookmarkfile.h new file mode 100644 index 000000000..f753420ed --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbookmarkfile.h @@ -0,0 +1,300 @@ +/* gbookmarkfile.h: parsing and building desktop bookmarks + * + * Copyright (C) 2005-2006 Emmanuele Bassi + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_BOOKMARK_FILE_H__ +#define __G_BOOKMARK_FILE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include + +G_BEGIN_DECLS + +/** + * G_BOOKMARK_FILE_ERROR: + * + * Error domain for bookmark file parsing. + * + * Errors in this domain will be from the #GBookmarkFileError + * enumeration. See #GError for information on error domains. + */ +#define G_BOOKMARK_FILE_ERROR (g_bookmark_file_error_quark ()) + + +/** + * GBookmarkFileError: + * @G_BOOKMARK_FILE_ERROR_INVALID_URI: URI was ill-formed + * @G_BOOKMARK_FILE_ERROR_INVALID_VALUE: a requested field was not found + * @G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED: a requested application did + * not register a bookmark + * @G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND: a requested URI was not found + * @G_BOOKMARK_FILE_ERROR_READ: document was ill formed + * @G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING: the text being parsed was + * in an unknown encoding + * @G_BOOKMARK_FILE_ERROR_WRITE: an error occurred while writing + * @G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND: requested file was not found + * + * Error codes returned by bookmark file parsing. + */ +typedef enum +{ + G_BOOKMARK_FILE_ERROR_INVALID_URI, + G_BOOKMARK_FILE_ERROR_INVALID_VALUE, + G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED, + G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, + G_BOOKMARK_FILE_ERROR_READ, + G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING, + G_BOOKMARK_FILE_ERROR_WRITE, + G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND +} GBookmarkFileError; + +GLIB_AVAILABLE_IN_ALL +GQuark g_bookmark_file_error_quark (void); + +/** + * GBookmarkFile: + * + * An opaque data structure representing a set of bookmarks. + */ +typedef struct _GBookmarkFile GBookmarkFile; + +GLIB_AVAILABLE_IN_ALL +GBookmarkFile *g_bookmark_file_new (void); +GLIB_AVAILABLE_IN_ALL +void g_bookmark_file_free (GBookmarkFile *bookmark); + +GLIB_AVAILABLE_IN_2_76 +GBookmarkFile *g_bookmark_file_copy (GBookmarkFile *bookmark); + +GLIB_AVAILABLE_IN_ALL +gboolean g_bookmark_file_load_from_file (GBookmarkFile *bookmark, + const gchar *filename, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_bookmark_file_load_from_data (GBookmarkFile *bookmark, + const gchar *data, + gsize length, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_bookmark_file_load_from_data_dirs (GBookmarkFile *bookmark, + const gchar *file, + gchar **full_path, + GError **error); +GLIB_AVAILABLE_IN_ALL +gchar * g_bookmark_file_to_data (GBookmarkFile *bookmark, + gsize *length, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gboolean g_bookmark_file_to_file (GBookmarkFile *bookmark, + const gchar *filename, + GError **error); + +GLIB_AVAILABLE_IN_ALL +void g_bookmark_file_set_title (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *title); +GLIB_AVAILABLE_IN_ALL +gchar * g_bookmark_file_get_title (GBookmarkFile *bookmark, + const gchar *uri, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +void g_bookmark_file_set_description (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *description); +GLIB_AVAILABLE_IN_ALL +gchar * g_bookmark_file_get_description (GBookmarkFile *bookmark, + const gchar *uri, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +void g_bookmark_file_set_mime_type (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *mime_type); +GLIB_AVAILABLE_IN_ALL +gchar * g_bookmark_file_get_mime_type (GBookmarkFile *bookmark, + const gchar *uri, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +void g_bookmark_file_set_groups (GBookmarkFile *bookmark, + const gchar *uri, + const gchar **groups, + gsize length); +GLIB_AVAILABLE_IN_ALL +void g_bookmark_file_add_group (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *group); +GLIB_AVAILABLE_IN_ALL +gboolean g_bookmark_file_has_group (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *group, + GError **error); +GLIB_AVAILABLE_IN_ALL +gchar ** g_bookmark_file_get_groups (GBookmarkFile *bookmark, + const gchar *uri, + gsize *length, + GError **error); +GLIB_AVAILABLE_IN_ALL +void g_bookmark_file_add_application (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *name, + const gchar *exec); +GLIB_AVAILABLE_IN_ALL +gboolean g_bookmark_file_has_application (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *name, + GError **error); +GLIB_AVAILABLE_IN_ALL +gchar ** g_bookmark_file_get_applications (GBookmarkFile *bookmark, + const gchar *uri, + gsize *length, + GError **error); +GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_set_application_info) +gboolean g_bookmark_file_set_app_info (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *name, + const gchar *exec, + gint count, + time_t stamp, + GError **error); +GLIB_AVAILABLE_IN_2_66 +gboolean g_bookmark_file_set_application_info (GBookmarkFile *bookmark, + const char *uri, + const char *name, + const char *exec, + int count, + GDateTime *stamp, + GError **error); +GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_get_application_info) +gboolean g_bookmark_file_get_app_info (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *name, + gchar **exec, + guint *count, + time_t *stamp, + GError **error); +GLIB_AVAILABLE_IN_2_66 +gboolean g_bookmark_file_get_application_info (GBookmarkFile *bookmark, + const char *uri, + const char *name, + char **exec, + unsigned int *count, + GDateTime **stamp, + GError **error); +GLIB_AVAILABLE_IN_ALL +void g_bookmark_file_set_is_private (GBookmarkFile *bookmark, + const gchar *uri, + gboolean is_private); +GLIB_AVAILABLE_IN_ALL +gboolean g_bookmark_file_get_is_private (GBookmarkFile *bookmark, + const gchar *uri, + GError **error); +GLIB_AVAILABLE_IN_ALL +void g_bookmark_file_set_icon (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *href, + const gchar *mime_type); +GLIB_AVAILABLE_IN_ALL +gboolean g_bookmark_file_get_icon (GBookmarkFile *bookmark, + const gchar *uri, + gchar **href, + gchar **mime_type, + GError **error); +GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_set_added_date_time) +void g_bookmark_file_set_added (GBookmarkFile *bookmark, + const gchar *uri, + time_t added); +GLIB_AVAILABLE_IN_2_66 +void g_bookmark_file_set_added_date_time (GBookmarkFile *bookmark, + const char *uri, + GDateTime *added); +GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_get_added_date_time) +time_t g_bookmark_file_get_added (GBookmarkFile *bookmark, + const gchar *uri, + GError **error); +GLIB_AVAILABLE_IN_2_66 +GDateTime *g_bookmark_file_get_added_date_time (GBookmarkFile *bookmark, + const char *uri, + GError **error); +GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_set_modified_date_time) +void g_bookmark_file_set_modified (GBookmarkFile *bookmark, + const gchar *uri, + time_t modified); +GLIB_AVAILABLE_IN_2_66 +void g_bookmark_file_set_modified_date_time (GBookmarkFile *bookmark, + const char *uri, + GDateTime *modified); +GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_get_modified_date_time) +time_t g_bookmark_file_get_modified (GBookmarkFile *bookmark, + const gchar *uri, + GError **error); +GLIB_AVAILABLE_IN_2_66 +GDateTime *g_bookmark_file_get_modified_date_time (GBookmarkFile *bookmark, + const char *uri, + GError **error); +GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_set_visited_date_time) +void g_bookmark_file_set_visited (GBookmarkFile *bookmark, + const gchar *uri, + time_t visited); +GLIB_AVAILABLE_IN_2_66 +void g_bookmark_file_set_visited_date_time (GBookmarkFile *bookmark, + const char *uri, + GDateTime *visited); +GLIB_DEPRECATED_IN_2_66_FOR(g_bookmark_file_get_visited_date_time) +time_t g_bookmark_file_get_visited (GBookmarkFile *bookmark, + const gchar *uri, + GError **error); +GLIB_AVAILABLE_IN_2_66 +GDateTime *g_bookmark_file_get_visited_date_time (GBookmarkFile *bookmark, + const char *uri, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_bookmark_file_has_item (GBookmarkFile *bookmark, + const gchar *uri); +GLIB_AVAILABLE_IN_ALL +gint g_bookmark_file_get_size (GBookmarkFile *bookmark); +GLIB_AVAILABLE_IN_ALL +gchar ** g_bookmark_file_get_uris (GBookmarkFile *bookmark, + gsize *length); +GLIB_AVAILABLE_IN_ALL +gboolean g_bookmark_file_remove_group (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *group, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_bookmark_file_remove_application (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *name, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_bookmark_file_remove_item (GBookmarkFile *bookmark, + const gchar *uri, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_bookmark_file_move_item (GBookmarkFile *bookmark, + const gchar *old_uri, + const gchar *new_uri, + GError **error); + +G_END_DECLS + +#endif /* __G_BOOKMARK_FILE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbytes.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbytes.h new file mode 100644 index 000000000..d93498943 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gbytes.h @@ -0,0 +1,99 @@ +/* + * Copyright © 2009, 2010 Codethink Limited + * Copyright © 2011 Collabora Ltd. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + * Stef Walter + */ + +#ifndef __G_BYTES_H__ +#define __G_BYTES_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_ALL +GBytes * g_bytes_new (gconstpointer data, + gsize size); + +GLIB_AVAILABLE_IN_ALL +GBytes * g_bytes_new_take (gpointer data, + gsize size); + +GLIB_AVAILABLE_IN_ALL +GBytes * g_bytes_new_static (gconstpointer data, + gsize size); + +GLIB_AVAILABLE_IN_ALL +GBytes * g_bytes_new_with_free_func (gconstpointer data, + gsize size, + GDestroyNotify free_func, + gpointer user_data); + +GLIB_AVAILABLE_IN_ALL +GBytes * g_bytes_new_from_bytes (GBytes *bytes, + gsize offset, + gsize length); + +GLIB_AVAILABLE_IN_ALL +gconstpointer g_bytes_get_data (GBytes *bytes, + gsize *size); + +GLIB_AVAILABLE_IN_ALL +gsize g_bytes_get_size (GBytes *bytes); + +GLIB_AVAILABLE_IN_ALL +GBytes * g_bytes_ref (GBytes *bytes); + +GLIB_AVAILABLE_IN_ALL +void g_bytes_unref (GBytes *bytes); + +GLIB_AVAILABLE_IN_ALL +gpointer g_bytes_unref_to_data (GBytes *bytes, + gsize *size); + +GLIB_AVAILABLE_IN_ALL +GByteArray * g_bytes_unref_to_array (GBytes *bytes); + +GLIB_AVAILABLE_IN_ALL +guint g_bytes_hash (gconstpointer bytes); + +GLIB_AVAILABLE_IN_ALL +gboolean g_bytes_equal (gconstpointer bytes1, + gconstpointer bytes2); + +GLIB_AVAILABLE_IN_ALL +gint g_bytes_compare (gconstpointer bytes1, + gconstpointer bytes2); + +GLIB_AVAILABLE_IN_2_70 +gconstpointer g_bytes_get_region (GBytes *bytes, + gsize element_size, + gsize offset, + gsize n_elements); + + +G_END_DECLS + +#endif /* __G_BYTES_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gcharset.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gcharset.h new file mode 100644 index 000000000..144ec7a00 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gcharset.h @@ -0,0 +1,49 @@ +/* gcharset.h - Charset functions + * + * Copyright (C) 2011 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_CHARSET_H__ +#define __G_CHARSET_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_ALL +gboolean g_get_charset (const char **charset); +GLIB_AVAILABLE_IN_ALL +gchar * g_get_codeset (void); +GLIB_AVAILABLE_IN_2_62 +gboolean g_get_console_charset (const char **charset); + +GLIB_AVAILABLE_IN_ALL +const gchar * const * g_get_language_names (void); +GLIB_AVAILABLE_IN_2_58 +const gchar * const * g_get_language_names_with_category + (const gchar *category_name); +GLIB_AVAILABLE_IN_ALL +gchar ** g_get_locale_variants (const gchar *locale); + +G_END_DECLS + +#endif /* __G_CHARSET_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gchecksum.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gchecksum.h new file mode 100644 index 000000000..e5c54e7c7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gchecksum.h @@ -0,0 +1,106 @@ +/* gchecksum.h - data hashing functions + * + * Copyright (C) 2007 Emmanuele Bassi + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_CHECKSUM_H__ +#define __G_CHECKSUM_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +/** + * GChecksumType: + * @G_CHECKSUM_MD5: Use the MD5 hashing algorithm + * @G_CHECKSUM_SHA1: Use the SHA-1 hashing algorithm + * @G_CHECKSUM_SHA256: Use the SHA-256 hashing algorithm + * @G_CHECKSUM_SHA384: Use the SHA-384 hashing algorithm (Since: 2.51) + * @G_CHECKSUM_SHA512: Use the SHA-512 hashing algorithm (Since: 2.36) + * + * The hashing algorithm to be used by #GChecksum when performing the + * digest of some data. + * + * Note that the #GChecksumType enumeration may be extended at a later + * date to include new hashing algorithm types. + * + * Since: 2.16 + */ +typedef enum { + G_CHECKSUM_MD5, + G_CHECKSUM_SHA1, + G_CHECKSUM_SHA256, + G_CHECKSUM_SHA512, + G_CHECKSUM_SHA384 +} GChecksumType; + +/** + * GChecksum: + * + * An opaque structure representing a checksumming operation. + * + * To create a new GChecksum, use g_checksum_new(). To free + * a GChecksum, use g_checksum_free(). + * + * Since: 2.16 + */ +typedef struct _GChecksum GChecksum; + +GLIB_AVAILABLE_IN_ALL +gssize g_checksum_type_get_length (GChecksumType checksum_type); + +GLIB_AVAILABLE_IN_ALL +GChecksum * g_checksum_new (GChecksumType checksum_type); +GLIB_AVAILABLE_IN_ALL +void g_checksum_reset (GChecksum *checksum); +GLIB_AVAILABLE_IN_ALL +GChecksum * g_checksum_copy (const GChecksum *checksum); +GLIB_AVAILABLE_IN_ALL +void g_checksum_free (GChecksum *checksum); +GLIB_AVAILABLE_IN_ALL +void g_checksum_update (GChecksum *checksum, + const guchar *data, + gssize length); +GLIB_AVAILABLE_IN_ALL +const gchar * g_checksum_get_string (GChecksum *checksum); +GLIB_AVAILABLE_IN_ALL +void g_checksum_get_digest (GChecksum *checksum, + guint8 *buffer, + gsize *digest_len); + +GLIB_AVAILABLE_IN_ALL +gchar *g_compute_checksum_for_data (GChecksumType checksum_type, + const guchar *data, + gsize length); +GLIB_AVAILABLE_IN_ALL +gchar *g_compute_checksum_for_string (GChecksumType checksum_type, + const gchar *str, + gssize length); + +GLIB_AVAILABLE_IN_2_34 +gchar *g_compute_checksum_for_bytes (GChecksumType checksum_type, + GBytes *data); + +G_END_DECLS + +#endif /* __G_CHECKSUM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gconvert.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gconvert.h new file mode 100644 index 000000000..81b41c049 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gconvert.h @@ -0,0 +1,179 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_CONVERT_H__ +#define __G_CONVERT_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * GConvertError: + * @G_CONVERT_ERROR_NO_CONVERSION: Conversion between the requested character + * sets is not supported. + * @G_CONVERT_ERROR_ILLEGAL_SEQUENCE: Invalid byte sequence in conversion input; + * or the character sequence could not be represented in the target + * character set. + * @G_CONVERT_ERROR_FAILED: Conversion failed for some reason. + * @G_CONVERT_ERROR_PARTIAL_INPUT: Partial character sequence at end of input. + * @G_CONVERT_ERROR_BAD_URI: URI is invalid. + * @G_CONVERT_ERROR_NOT_ABSOLUTE_PATH: Pathname is not an absolute path. + * @G_CONVERT_ERROR_NO_MEMORY: No memory available. Since: 2.40 + * @G_CONVERT_ERROR_EMBEDDED_NUL: An embedded NUL character is present in + * conversion output where a NUL-terminated string is expected. + * Since: 2.56 + * + * Error codes returned by character set conversion routines. + */ +typedef enum +{ + G_CONVERT_ERROR_NO_CONVERSION, + G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + G_CONVERT_ERROR_FAILED, + G_CONVERT_ERROR_PARTIAL_INPUT, + G_CONVERT_ERROR_BAD_URI, + G_CONVERT_ERROR_NOT_ABSOLUTE_PATH, + G_CONVERT_ERROR_NO_MEMORY, + G_CONVERT_ERROR_EMBEDDED_NUL +} GConvertError; + +/** + * G_CONVERT_ERROR: + * + * Error domain for character set conversions. Errors in this domain will + * be from the #GConvertError enumeration. See #GError for information on + * error domains. + */ +#define G_CONVERT_ERROR g_convert_error_quark() +GLIB_AVAILABLE_IN_ALL +GQuark g_convert_error_quark (void); + +/** + * GIConv: (skip) + * + * The GIConv struct wraps an iconv() conversion descriptor. It contains + * private data and should only be accessed using the following functions. + */ +typedef struct _GIConv *GIConv; + +GLIB_AVAILABLE_IN_ALL +GIConv g_iconv_open (const gchar *to_codeset, + const gchar *from_codeset); +GLIB_AVAILABLE_IN_ALL +gsize g_iconv (GIConv converter, + gchar **inbuf, + gsize *inbytes_left, + gchar **outbuf, + gsize *outbytes_left); +GLIB_AVAILABLE_IN_ALL +gint g_iconv_close (GIConv converter); + + +GLIB_AVAILABLE_IN_ALL +gchar* g_convert (const gchar *str, + gssize len, + const gchar *to_codeset, + const gchar *from_codeset, + gsize *bytes_read, + gsize *bytes_written, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar* g_convert_with_iconv (const gchar *str, + gssize len, + GIConv converter, + gsize *bytes_read, + gsize *bytes_written, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar* g_convert_with_fallback (const gchar *str, + gssize len, + const gchar *to_codeset, + const gchar *from_codeset, + const gchar *fallback, + gsize *bytes_read, + gsize *bytes_written, + GError **error) G_GNUC_MALLOC; + + +/* Convert between libc's idea of strings and UTF-8. + */ +GLIB_AVAILABLE_IN_ALL +gchar* g_locale_to_utf8 (const gchar *opsysstring, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar* g_locale_from_utf8 (const gchar *utf8string, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error) G_GNUC_MALLOC; + +/* Convert between the operating system (or C runtime) + * representation of file names and UTF-8. + */ +GLIB_AVAILABLE_IN_ALL +gchar* g_filename_to_utf8 (const gchar *opsysstring, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar* g_filename_from_utf8 (const gchar *utf8string, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error) G_GNUC_MALLOC; + +GLIB_AVAILABLE_IN_ALL +gchar *g_filename_from_uri (const gchar *uri, + gchar **hostname, + GError **error) G_GNUC_MALLOC; + +GLIB_AVAILABLE_IN_ALL +gchar *g_filename_to_uri (const gchar *filename, + const gchar *hostname, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar *g_filename_display_name (const gchar *filename) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gboolean g_get_filename_charsets (const gchar ***filename_charsets); + +GLIB_AVAILABLE_IN_ALL +gchar *g_filename_display_basename (const gchar *filename) G_GNUC_MALLOC; + +GLIB_AVAILABLE_IN_ALL +gchar **g_uri_list_extract_uris (const gchar *uri_list); + +G_END_DECLS + +#endif /* __G_CONVERT_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gdataset.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gdataset.h new file mode 100644 index 000000000..a0d44b09e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gdataset.h @@ -0,0 +1,156 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_DATASET_H__ +#define __G_DATASET_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GData GData; + +typedef void (*GDataForeachFunc) (GQuark key_id, + gpointer data, + gpointer user_data); + +/* Keyed Data List + */ +GLIB_AVAILABLE_IN_ALL +void g_datalist_init (GData **datalist); +GLIB_AVAILABLE_IN_ALL +void g_datalist_clear (GData **datalist); +GLIB_AVAILABLE_IN_ALL +gpointer g_datalist_id_get_data (GData **datalist, + GQuark key_id); +GLIB_AVAILABLE_IN_ALL +void g_datalist_id_set_data_full (GData **datalist, + GQuark key_id, + gpointer data, + GDestroyNotify destroy_func); +GLIB_AVAILABLE_IN_2_74 +void g_datalist_id_remove_multiple (GData **datalist, + GQuark *keys, + gsize n_keys); + +typedef gpointer (*GDuplicateFunc) (gpointer data, gpointer user_data); + +GLIB_AVAILABLE_IN_2_34 +gpointer g_datalist_id_dup_data (GData **datalist, + GQuark key_id, + GDuplicateFunc dup_func, + gpointer user_data); +GLIB_AVAILABLE_IN_2_34 +gboolean g_datalist_id_replace_data (GData **datalist, + GQuark key_id, + gpointer oldval, + gpointer newval, + GDestroyNotify destroy, + GDestroyNotify *old_destroy); + +GLIB_AVAILABLE_IN_ALL +gpointer g_datalist_id_remove_no_notify (GData **datalist, + GQuark key_id); +GLIB_AVAILABLE_IN_ALL +void g_datalist_foreach (GData **datalist, + GDataForeachFunc func, + gpointer user_data); + +/** + * G_DATALIST_FLAGS_MASK: + * + * A bitmask that restricts the possible flags passed to + * g_datalist_set_flags(). Passing a flags value where + * flags & ~G_DATALIST_FLAGS_MASK != 0 is an error. + */ +#define G_DATALIST_FLAGS_MASK 0x3 + +GLIB_AVAILABLE_IN_ALL +void g_datalist_set_flags (GData **datalist, + guint flags); +GLIB_AVAILABLE_IN_ALL +void g_datalist_unset_flags (GData **datalist, + guint flags); +GLIB_AVAILABLE_IN_ALL +guint g_datalist_get_flags (GData **datalist); + +#define g_datalist_id_set_data(dl, q, d) \ + g_datalist_id_set_data_full ((dl), (q), (d), NULL) +#define g_datalist_id_remove_data(dl, q) \ + g_datalist_id_set_data ((dl), (q), NULL) +#define g_datalist_set_data_full(dl, k, d, f) \ + g_datalist_id_set_data_full ((dl), g_quark_from_string (k), (d), (f)) +#define g_datalist_remove_no_notify(dl, k) \ + g_datalist_id_remove_no_notify ((dl), g_quark_try_string (k)) +#define g_datalist_set_data(dl, k, d) \ + g_datalist_set_data_full ((dl), (k), (d), NULL) +#define g_datalist_remove_data(dl, k) \ + g_datalist_id_set_data ((dl), g_quark_try_string (k), NULL) + +/* Location Associated Keyed Data + */ +GLIB_AVAILABLE_IN_ALL +void g_dataset_destroy (gconstpointer dataset_location); +GLIB_AVAILABLE_IN_ALL +gpointer g_dataset_id_get_data (gconstpointer dataset_location, + GQuark key_id); +GLIB_AVAILABLE_IN_ALL +gpointer g_datalist_get_data (GData **datalist, + const gchar *key); +GLIB_AVAILABLE_IN_ALL +void g_dataset_id_set_data_full (gconstpointer dataset_location, + GQuark key_id, + gpointer data, + GDestroyNotify destroy_func); +GLIB_AVAILABLE_IN_ALL +gpointer g_dataset_id_remove_no_notify (gconstpointer dataset_location, + GQuark key_id); +GLIB_AVAILABLE_IN_ALL +void g_dataset_foreach (gconstpointer dataset_location, + GDataForeachFunc func, + gpointer user_data); +#define g_dataset_id_set_data(l, k, d) \ + g_dataset_id_set_data_full ((l), (k), (d), NULL) +#define g_dataset_id_remove_data(l, k) \ + g_dataset_id_set_data ((l), (k), NULL) +#define g_dataset_get_data(l, k) \ + (g_dataset_id_get_data ((l), g_quark_try_string (k))) +#define g_dataset_set_data_full(l, k, d, f) \ + g_dataset_id_set_data_full ((l), g_quark_from_string (k), (d), (f)) +#define g_dataset_remove_no_notify(l, k) \ + g_dataset_id_remove_no_notify ((l), g_quark_try_string (k)) +#define g_dataset_set_data(l, k, d) \ + g_dataset_set_data_full ((l), (k), (d), NULL) +#define g_dataset_remove_data(l, k) \ + g_dataset_id_set_data ((l), g_quark_try_string (k), NULL) + +G_END_DECLS + +#endif /* __G_DATASET_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gdate.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gdate.h new file mode 100644 index 000000000..5ef21cbf9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gdate.h @@ -0,0 +1,309 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_DATE_H__ +#define __G_DATE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +#include +#include + +G_BEGIN_DECLS + +/* GDate + * + * Date calculations (not time for now, to be resolved). These are a + * mutant combination of Steffen Beyer's DateCalc routines + * (http://www.perl.com/CPAN/authors/id/STBEY/) and Jon Trowbridge's + * date routines (written for in-house software). Written by Havoc + * Pennington + */ + +typedef gint32 GTime GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime); +typedef guint16 GDateYear; +typedef guint8 GDateDay; /* day of the month */ +typedef struct _GDate GDate; + +/* enum used to specify order of appearance in parsed date strings */ +typedef enum +{ + G_DATE_DAY = 0, + G_DATE_MONTH = 1, + G_DATE_YEAR = 2 +} GDateDMY; + +/* actual week and month values */ +typedef enum +{ + G_DATE_BAD_WEEKDAY = 0, + G_DATE_MONDAY = 1, + G_DATE_TUESDAY = 2, + G_DATE_WEDNESDAY = 3, + G_DATE_THURSDAY = 4, + G_DATE_FRIDAY = 5, + G_DATE_SATURDAY = 6, + G_DATE_SUNDAY = 7 +} GDateWeekday; +typedef enum +{ + G_DATE_BAD_MONTH = 0, + G_DATE_JANUARY = 1, + G_DATE_FEBRUARY = 2, + G_DATE_MARCH = 3, + G_DATE_APRIL = 4, + G_DATE_MAY = 5, + G_DATE_JUNE = 6, + G_DATE_JULY = 7, + G_DATE_AUGUST = 8, + G_DATE_SEPTEMBER = 9, + G_DATE_OCTOBER = 10, + G_DATE_NOVEMBER = 11, + G_DATE_DECEMBER = 12 +} GDateMonth; + +#define G_DATE_BAD_JULIAN 0U +#define G_DATE_BAD_DAY 0U +#define G_DATE_BAD_YEAR 0U + +/* Note: directly manipulating structs is generally a bad idea, but + * in this case it's an *incredibly* bad idea, because all or part + * of this struct can be invalid at any given time. Use the functions, + * or you will get hosed, I promise. + */ +struct _GDate +{ + guint julian_days : 32; /* julian days representation - we use a + * bitfield hoping that 64 bit platforms + * will pack this whole struct in one big + * int + */ + + guint julian : 1; /* julian is valid */ + guint dmy : 1; /* dmy is valid */ + + /* DMY representation */ + guint day : 6; + guint month : 4; + guint year : 16; +}; + +/* g_date_new() returns an invalid date, you then have to _set() stuff + * to get a usable object. You can also allocate a GDate statically, + * then call g_date_clear() to initialize. + */ +GLIB_AVAILABLE_IN_ALL +GDate* g_date_new (void); +GLIB_AVAILABLE_IN_ALL +GDate* g_date_new_dmy (GDateDay day, + GDateMonth month, + GDateYear year); +GLIB_AVAILABLE_IN_ALL +GDate* g_date_new_julian (guint32 julian_day); +GLIB_AVAILABLE_IN_ALL +void g_date_free (GDate *date); +GLIB_AVAILABLE_IN_2_56 +GDate* g_date_copy (const GDate *date); + +/* check g_date_valid() after doing an operation that might fail, like + * _parse. Almost all g_date operations are undefined on invalid + * dates (the exceptions are the mutators, since you need those to + * return to validity). + */ +GLIB_AVAILABLE_IN_ALL +gboolean g_date_valid (const GDate *date); +GLIB_AVAILABLE_IN_ALL +gboolean g_date_valid_day (GDateDay day) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_date_valid_month (GDateMonth month) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_date_valid_year (GDateYear year) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_date_valid_weekday (GDateWeekday weekday) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_date_valid_julian (guint32 julian_date) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_date_valid_dmy (GDateDay day, + GDateMonth month, + GDateYear year) G_GNUC_CONST; + +GLIB_AVAILABLE_IN_ALL +GDateWeekday g_date_get_weekday (const GDate *date); +GLIB_AVAILABLE_IN_ALL +GDateMonth g_date_get_month (const GDate *date); +GLIB_AVAILABLE_IN_ALL +GDateYear g_date_get_year (const GDate *date); +GLIB_AVAILABLE_IN_ALL +GDateDay g_date_get_day (const GDate *date); +GLIB_AVAILABLE_IN_ALL +guint32 g_date_get_julian (const GDate *date); +GLIB_AVAILABLE_IN_ALL +guint g_date_get_day_of_year (const GDate *date); +/* First monday/sunday is the start of week 1; if we haven't reached + * that day, return 0. These are not ISO weeks of the year; that + * routine needs to be added. + * these functions return the number of weeks, starting on the + * corresponding day + */ +GLIB_AVAILABLE_IN_ALL +guint g_date_get_monday_week_of_year (const GDate *date); +GLIB_AVAILABLE_IN_ALL +guint g_date_get_sunday_week_of_year (const GDate *date); +GLIB_AVAILABLE_IN_ALL +guint g_date_get_iso8601_week_of_year (const GDate *date); + +/* If you create a static date struct you need to clear it to get it + * in a safe state before use. You can clear a whole array at + * once with the ndates argument. + */ +GLIB_AVAILABLE_IN_ALL +void g_date_clear (GDate *date, + guint n_dates); + +/* The parse routine is meant for dates typed in by a user, so it + * permits many formats but tries to catch common typos. If your data + * needs to be strictly validated, it is not an appropriate function. + */ +GLIB_AVAILABLE_IN_ALL +void g_date_set_parse (GDate *date, + const gchar *str); +GLIB_AVAILABLE_IN_ALL +void g_date_set_time_t (GDate *date, + time_t timet); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_DEPRECATED_IN_2_62_FOR(g_date_set_time_t) +void g_date_set_time_val (GDate *date, + GTimeVal *timeval); +GLIB_DEPRECATED_FOR(g_date_set_time_t) +void g_date_set_time (GDate *date, + GTime time_); +G_GNUC_END_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_IN_ALL +void g_date_set_month (GDate *date, + GDateMonth month); +GLIB_AVAILABLE_IN_ALL +void g_date_set_day (GDate *date, + GDateDay day); +GLIB_AVAILABLE_IN_ALL +void g_date_set_year (GDate *date, + GDateYear year); +GLIB_AVAILABLE_IN_ALL +void g_date_set_dmy (GDate *date, + GDateDay day, + GDateMonth month, + GDateYear y); +GLIB_AVAILABLE_IN_ALL +void g_date_set_julian (GDate *date, + guint32 julian_date); +GLIB_AVAILABLE_IN_ALL +gboolean g_date_is_first_of_month (const GDate *date); +GLIB_AVAILABLE_IN_ALL +gboolean g_date_is_last_of_month (const GDate *date); + +/* To go forward by some number of weeks just go forward weeks*7 days */ +GLIB_AVAILABLE_IN_ALL +void g_date_add_days (GDate *date, + guint n_days); +GLIB_AVAILABLE_IN_ALL +void g_date_subtract_days (GDate *date, + guint n_days); + +/* If you add/sub months while day > 28, the day might change */ +GLIB_AVAILABLE_IN_ALL +void g_date_add_months (GDate *date, + guint n_months); +GLIB_AVAILABLE_IN_ALL +void g_date_subtract_months (GDate *date, + guint n_months); + +/* If it's feb 29, changing years can move you to the 28th */ +GLIB_AVAILABLE_IN_ALL +void g_date_add_years (GDate *date, + guint n_years); +GLIB_AVAILABLE_IN_ALL +void g_date_subtract_years (GDate *date, + guint n_years); +GLIB_AVAILABLE_IN_ALL +gboolean g_date_is_leap_year (GDateYear year) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +guint8 g_date_get_days_in_month (GDateMonth month, + GDateYear year) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +guint8 g_date_get_monday_weeks_in_year (GDateYear year) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +guint8 g_date_get_sunday_weeks_in_year (GDateYear year) G_GNUC_CONST; + +/* Returns the number of days between the two dates. If date2 comes + before date1, a negative value is return. */ +GLIB_AVAILABLE_IN_ALL +gint g_date_days_between (const GDate *date1, + const GDate *date2); + +/* qsort-friendly (with a cast...) */ +GLIB_AVAILABLE_IN_ALL +gint g_date_compare (const GDate *lhs, + const GDate *rhs); +GLIB_AVAILABLE_IN_ALL +void g_date_to_struct_tm (const GDate *date, + struct tm *tm); + +GLIB_AVAILABLE_IN_ALL +void g_date_clamp (GDate *date, + const GDate *min_date, + const GDate *max_date); + +/* Swap date1 and date2's values if date1 > date2. */ +GLIB_AVAILABLE_IN_ALL +void g_date_order (GDate *date1, GDate *date2); + +/* Just like strftime() except you can only use date-related formats. + * Using a time format is undefined. + */ +GLIB_AVAILABLE_IN_ALL +gsize g_date_strftime (gchar *s, + gsize slen, + const gchar *format, + const GDate *date); + +#define g_date_weekday g_date_get_weekday GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_date_get_weekday) +#define g_date_month g_date_get_month GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_date_get_month) +#define g_date_year g_date_get_year GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_date_get_year) +#define g_date_day g_date_get_day GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_date_get_day) +#define g_date_julian g_date_get_julian GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_date_get_julian) +#define g_date_day_of_year g_date_get_day_of_year GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_date_get_day_of_year) +#define g_date_monday_week_of_year g_date_get_monday_week_of_year GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_date_get_monday_week_of_year) +#define g_date_sunday_week_of_year g_date_get_sunday_week_of_year GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_date_get_sunday_week_of_year) +#define g_date_days_in_month g_date_get_days_in_month GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_date_get_days_in_month) +#define g_date_monday_weeks_in_year g_date_get_monday_weeks_in_year GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_date_get_monday_weeks_in_year) +#define g_date_sunday_weeks_in_year g_date_get_sunday_weeks_in_year GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_date_get_sunday_weeks_in_year) + +G_END_DECLS + +#endif /* __G_DATE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gdatetime.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gdatetime.h new file mode 100644 index 000000000..4312433bd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gdatetime.h @@ -0,0 +1,275 @@ +/* + * Copyright (C) 2009-2010 Christian Hergert + * Copyright © 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * licence, or (at your option) any later version. + * + * This is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + * + * Authors: Christian Hergert + * Thiago Santos + * Emmanuele Bassi + * Ryan Lortie + */ + +#ifndef __G_DATE_TIME_H__ +#define __G_DATE_TIME_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * G_TIME_SPAN_DAY: + * + * Evaluates to a time span of one day. + * + * Since: 2.26 + */ +#define G_TIME_SPAN_DAY (G_GINT64_CONSTANT (86400000000)) + +/** + * G_TIME_SPAN_HOUR: + * + * Evaluates to a time span of one hour. + * + * Since: 2.26 + */ +#define G_TIME_SPAN_HOUR (G_GINT64_CONSTANT (3600000000)) + +/** + * G_TIME_SPAN_MINUTE: + * + * Evaluates to a time span of one minute. + * + * Since: 2.26 + */ +#define G_TIME_SPAN_MINUTE (G_GINT64_CONSTANT (60000000)) + +/** + * G_TIME_SPAN_SECOND: + * + * Evaluates to a time span of one second. + * + * Since: 2.26 + */ +#define G_TIME_SPAN_SECOND (G_GINT64_CONSTANT (1000000)) + +/** + * G_TIME_SPAN_MILLISECOND: + * + * Evaluates to a time span of one millisecond. + * + * Since: 2.26 + */ +#define G_TIME_SPAN_MILLISECOND (G_GINT64_CONSTANT (1000)) + +/** + * GTimeSpan: + * + * A value representing an interval of time, in microseconds. + * + * Since: 2.26 + */ +typedef gint64 GTimeSpan; + +/** + * GDateTime: + * + * An opaque structure that represents a date and time, including a time zone. + * + * Since: 2.26 + */ +typedef struct _GDateTime GDateTime; + +GLIB_AVAILABLE_IN_ALL +void g_date_time_unref (GDateTime *datetime); +GLIB_AVAILABLE_IN_ALL +GDateTime * g_date_time_ref (GDateTime *datetime); + +GLIB_AVAILABLE_IN_ALL +GDateTime * g_date_time_new_now (GTimeZone *tz); +GLIB_AVAILABLE_IN_ALL +GDateTime * g_date_time_new_now_local (void); +GLIB_AVAILABLE_IN_ALL +GDateTime * g_date_time_new_now_utc (void); + +GLIB_AVAILABLE_IN_ALL +GDateTime * g_date_time_new_from_unix_local (gint64 t); +GLIB_AVAILABLE_IN_ALL +GDateTime * g_date_time_new_from_unix_utc (gint64 t); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_DEPRECATED_IN_2_62_FOR(g_date_time_new_from_unix_local) +GDateTime * g_date_time_new_from_timeval_local (const GTimeVal *tv); +GLIB_DEPRECATED_IN_2_62_FOR(g_date_time_new_from_unix_utc) +GDateTime * g_date_time_new_from_timeval_utc (const GTimeVal *tv); +G_GNUC_END_IGNORE_DEPRECATIONS + +GLIB_AVAILABLE_IN_2_56 +GDateTime * g_date_time_new_from_iso8601 (const gchar *text, + GTimeZone *default_tz); + +GLIB_AVAILABLE_IN_ALL +GDateTime * g_date_time_new (GTimeZone *tz, + gint year, + gint month, + gint day, + gint hour, + gint minute, + gdouble seconds); +GLIB_AVAILABLE_IN_ALL +GDateTime * g_date_time_new_local (gint year, + gint month, + gint day, + gint hour, + gint minute, + gdouble seconds); +GLIB_AVAILABLE_IN_ALL +GDateTime * g_date_time_new_utc (gint year, + gint month, + gint day, + gint hour, + gint minute, + gdouble seconds); + +GLIB_AVAILABLE_IN_ALL +G_GNUC_WARN_UNUSED_RESULT +GDateTime * g_date_time_add (GDateTime *datetime, + GTimeSpan timespan); + +GLIB_AVAILABLE_IN_ALL +G_GNUC_WARN_UNUSED_RESULT +GDateTime * g_date_time_add_years (GDateTime *datetime, + gint years); +GLIB_AVAILABLE_IN_ALL +G_GNUC_WARN_UNUSED_RESULT +GDateTime * g_date_time_add_months (GDateTime *datetime, + gint months); +GLIB_AVAILABLE_IN_ALL +G_GNUC_WARN_UNUSED_RESULT +GDateTime * g_date_time_add_weeks (GDateTime *datetime, + gint weeks); +GLIB_AVAILABLE_IN_ALL +G_GNUC_WARN_UNUSED_RESULT +GDateTime * g_date_time_add_days (GDateTime *datetime, + gint days); + +GLIB_AVAILABLE_IN_ALL +G_GNUC_WARN_UNUSED_RESULT +GDateTime * g_date_time_add_hours (GDateTime *datetime, + gint hours); +GLIB_AVAILABLE_IN_ALL +G_GNUC_WARN_UNUSED_RESULT +GDateTime * g_date_time_add_minutes (GDateTime *datetime, + gint minutes); +GLIB_AVAILABLE_IN_ALL +G_GNUC_WARN_UNUSED_RESULT +GDateTime * g_date_time_add_seconds (GDateTime *datetime, + gdouble seconds); + +GLIB_AVAILABLE_IN_ALL +G_GNUC_WARN_UNUSED_RESULT +GDateTime * g_date_time_add_full (GDateTime *datetime, + gint years, + gint months, + gint days, + gint hours, + gint minutes, + gdouble seconds); + +GLIB_AVAILABLE_IN_ALL +gint g_date_time_compare (gconstpointer dt1, + gconstpointer dt2); +GLIB_AVAILABLE_IN_ALL +GTimeSpan g_date_time_difference (GDateTime *end, + GDateTime *begin); +GLIB_AVAILABLE_IN_ALL +guint g_date_time_hash (gconstpointer datetime); +GLIB_AVAILABLE_IN_ALL +gboolean g_date_time_equal (gconstpointer dt1, + gconstpointer dt2); + +GLIB_AVAILABLE_IN_ALL +void g_date_time_get_ymd (GDateTime *datetime, + gint *year, + gint *month, + gint *day); + +GLIB_AVAILABLE_IN_ALL +gint g_date_time_get_year (GDateTime *datetime); +GLIB_AVAILABLE_IN_ALL +gint g_date_time_get_month (GDateTime *datetime); +GLIB_AVAILABLE_IN_ALL +gint g_date_time_get_day_of_month (GDateTime *datetime); + +GLIB_AVAILABLE_IN_ALL +gint g_date_time_get_week_numbering_year (GDateTime *datetime); +GLIB_AVAILABLE_IN_ALL +gint g_date_time_get_week_of_year (GDateTime *datetime); +GLIB_AVAILABLE_IN_ALL +gint g_date_time_get_day_of_week (GDateTime *datetime); + +GLIB_AVAILABLE_IN_ALL +gint g_date_time_get_day_of_year (GDateTime *datetime); + +GLIB_AVAILABLE_IN_ALL +gint g_date_time_get_hour (GDateTime *datetime); +GLIB_AVAILABLE_IN_ALL +gint g_date_time_get_minute (GDateTime *datetime); +GLIB_AVAILABLE_IN_ALL +gint g_date_time_get_second (GDateTime *datetime); +GLIB_AVAILABLE_IN_ALL +gint g_date_time_get_microsecond (GDateTime *datetime); +GLIB_AVAILABLE_IN_ALL +gdouble g_date_time_get_seconds (GDateTime *datetime); + +GLIB_AVAILABLE_IN_ALL +gint64 g_date_time_to_unix (GDateTime *datetime); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_DEPRECATED_IN_2_62_FOR(g_date_time_to_unix) +gboolean g_date_time_to_timeval (GDateTime *datetime, + GTimeVal *tv); +G_GNUC_END_IGNORE_DEPRECATIONS + +GLIB_AVAILABLE_IN_ALL +GTimeSpan g_date_time_get_utc_offset (GDateTime *datetime); +GLIB_AVAILABLE_IN_2_58 +GTimeZone * g_date_time_get_timezone (GDateTime *datetime); +GLIB_AVAILABLE_IN_ALL +const gchar * g_date_time_get_timezone_abbreviation (GDateTime *datetime); +GLIB_AVAILABLE_IN_ALL +gboolean g_date_time_is_daylight_savings (GDateTime *datetime); + +GLIB_AVAILABLE_IN_ALL +GDateTime * g_date_time_to_timezone (GDateTime *datetime, + GTimeZone *tz); +GLIB_AVAILABLE_IN_ALL +GDateTime * g_date_time_to_local (GDateTime *datetime); +GLIB_AVAILABLE_IN_ALL +GDateTime * g_date_time_to_utc (GDateTime *datetime); + +GLIB_AVAILABLE_IN_ALL +gchar * g_date_time_format (GDateTime *datetime, + const gchar *format) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_2_62 +gchar * g_date_time_format_iso8601 (GDateTime *datetime) G_GNUC_MALLOC; + +G_END_DECLS + +#endif /* __G_DATE_TIME_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gdir.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gdir.h new file mode 100644 index 000000000..0d3ee82b3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gdir.h @@ -0,0 +1,54 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * gdir.c: Simplified wrapper around the DIRENT functions. + * + * Copyright 2001 Hans Breuer + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __G_DIR_H__ +#define __G_DIR_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +#ifdef G_OS_UNIX +#include +#endif + +G_BEGIN_DECLS + +typedef struct _GDir GDir; + +GLIB_AVAILABLE_IN_ALL +GDir * g_dir_open (const gchar *path, + guint flags, + GError **error); +GLIB_AVAILABLE_IN_ALL +const gchar * g_dir_read_name (GDir *dir); +GLIB_AVAILABLE_IN_ALL +void g_dir_rewind (GDir *dir); +GLIB_AVAILABLE_IN_ALL +void g_dir_close (GDir *dir); + +G_END_DECLS + +#endif /* __G_DIR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/genviron.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/genviron.h new file mode 100644 index 000000000..3ac38464d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/genviron.h @@ -0,0 +1,65 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_ENVIRON_H__ +#define __G_ENVIRON_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_ALL +const gchar * g_getenv (const gchar *variable); +GLIB_AVAILABLE_IN_ALL +gboolean g_setenv (const gchar *variable, + const gchar *value, + gboolean overwrite); +GLIB_AVAILABLE_IN_ALL +void g_unsetenv (const gchar *variable); +GLIB_AVAILABLE_IN_ALL +gchar ** g_listenv (void); + +GLIB_AVAILABLE_IN_ALL +gchar ** g_get_environ (void); +GLIB_AVAILABLE_IN_ALL +const gchar * g_environ_getenv (gchar **envp, + const gchar *variable); +GLIB_AVAILABLE_IN_ALL +gchar ** g_environ_setenv (gchar **envp, + const gchar *variable, + const gchar *value, + gboolean overwrite) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +gchar ** g_environ_unsetenv (gchar **envp, + const gchar *variable) G_GNUC_WARN_UNUSED_RESULT; + +G_END_DECLS + +#endif /* __G_ENVIRON_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gerror.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gerror.h new file mode 100644 index 000000000..1aebfbeb9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gerror.h @@ -0,0 +1,263 @@ +/* gerror.h - Error reporting system + * + * Copyright 2000 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_ERROR_H__ +#define __G_ERROR_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +#include + +G_BEGIN_DECLS + +/** + * GError: + * @domain: error domain, e.g. %G_FILE_ERROR + * @code: error code, e.g. %G_FILE_ERROR_NOENT + * @message: human-readable informative error message + * + * The `GError` structure contains information about + * an error that has occurred. + */ +typedef struct _GError GError; + +struct _GError +{ + GQuark domain; + gint code; + gchar *message; +}; + +/** + * G_DEFINE_EXTENDED_ERROR: + * @ErrorType: name to return a #GQuark for + * @error_type: prefix for the function name + * + * A convenience macro which defines two functions. First, returning + * the #GQuark for the extended error type @ErrorType; it is called + * `error_type_quark()`. Second, returning the private data from a + * passed #GError; it is called `error_type_get_private()`. + * + * For this macro to work, a type named `ErrorTypePrivate` should be + * defined, `error_type_private_init()`, `error_type_private_copy()` + * and `error_type_private_clear()` functions need to be either + * declared or defined. The functions should be similar to + * #GErrorInitFunc, #GErrorCopyFunc and #GErrorClearFunc, + * respectively, but they should receive the private data type instead + * of #GError. + * + * See [Extended #GError Domains][gerror-extended-domains] for an example. + * + * Since: 2.68 + */ +#define G_DEFINE_EXTENDED_ERROR(ErrorType, error_type) \ +static inline ErrorType ## Private * \ +error_type ## _get_private (const GError *error) \ +{ \ + /* Copied from gtype.c (STRUCT_ALIGNMENT and ALIGN_STRUCT macros). */ \ + const gsize sa = 2 * sizeof (gsize); \ + const gsize as = (sizeof (ErrorType ## Private) + (sa - 1)) & -sa; \ + g_return_val_if_fail (error != NULL, NULL); \ + g_return_val_if_fail (error->domain == error_type ## _quark (), NULL); \ + return (ErrorType ## Private *) (((guint8 *)error) - as); \ +} \ + \ +static void \ +g_error_with_ ## error_type ## _private_init (GError *error) \ +{ \ + ErrorType ## Private *priv = error_type ## _get_private (error); \ + error_type ## _private_init (priv); \ +} \ + \ +static void \ +g_error_with_ ## error_type ## _private_copy (const GError *src_error, \ + GError *dest_error) \ +{ \ + const ErrorType ## Private *src_priv = error_type ## _get_private (src_error); \ + ErrorType ## Private *dest_priv = error_type ## _get_private (dest_error); \ + error_type ## _private_copy (src_priv, dest_priv); \ +} \ + \ +static void \ +g_error_with_ ## error_type ## _private_clear (GError *error) \ +{ \ + ErrorType ## Private *priv = error_type ## _get_private (error); \ + error_type ## _private_clear (priv); \ +} \ + \ +GQuark \ +error_type ## _quark (void) \ +{ \ + static GQuark q; \ + static gsize initialized = 0; \ + \ + if (g_once_init_enter (&initialized)) \ + { \ + q = g_error_domain_register_static (#ErrorType, \ + sizeof (ErrorType ## Private), \ + g_error_with_ ## error_type ## _private_init, \ + g_error_with_ ## error_type ## _private_copy, \ + g_error_with_ ## error_type ## _private_clear); \ + g_once_init_leave (&initialized, 1); \ + } \ + \ + return q; \ +} + +/** + * GErrorInitFunc: + * @error: extended error + * + * Specifies the type of function which is called just after an + * extended error instance is created and its fields filled. It should + * only initialize the fields in the private data, which can be + * received with the generated `*_get_private()` function. + * + * Normally, it is better to use G_DEFINE_EXTENDED_ERROR(), as it + * already takes care of getting the private data from @error. + * + * Since: 2.68 + */ +typedef void (*GErrorInitFunc) (GError *error); + +/** + * GErrorCopyFunc: + * @src_error: source extended error + * @dest_error: destination extended error + * + * Specifies the type of function which is called when an extended + * error instance is copied. It is passed the pointer to the + * destination error and source error, and should copy only the fields + * of the private data from @src_error to @dest_error. + * + * Normally, it is better to use G_DEFINE_EXTENDED_ERROR(), as it + * already takes care of getting the private data from @src_error and + * @dest_error. + * + * Since: 2.68 + */ +typedef void (*GErrorCopyFunc) (const GError *src_error, GError *dest_error); + +/** + * GErrorClearFunc: + * @error: extended error to clear + * + * Specifies the type of function which is called when an extended + * error instance is freed. It is passed the error pointer about to be + * freed, and should free the error's private data fields. + * + * Normally, it is better to use G_DEFINE_EXTENDED_ERROR(), as it + * already takes care of getting the private data from @error. + * + * Since: 2.68 + */ +typedef void (*GErrorClearFunc) (GError *error); + +GLIB_AVAILABLE_IN_2_68 +GQuark g_error_domain_register_static (const char *error_type_name, + gsize error_type_private_size, + GErrorInitFunc error_type_init, + GErrorCopyFunc error_type_copy, + GErrorClearFunc error_type_clear); + +GLIB_AVAILABLE_IN_2_68 +GQuark g_error_domain_register (const char *error_type_name, + gsize error_type_private_size, + GErrorInitFunc error_type_init, + GErrorCopyFunc error_type_copy, + GErrorClearFunc error_type_clear); + +GLIB_AVAILABLE_IN_ALL +GError* g_error_new (GQuark domain, + gint code, + const gchar *format, + ...) G_GNUC_PRINTF (3, 4); + +GLIB_AVAILABLE_IN_ALL +GError* g_error_new_literal (GQuark domain, + gint code, + const gchar *message); +GLIB_AVAILABLE_IN_ALL +GError* g_error_new_valist (GQuark domain, + gint code, + const gchar *format, + va_list args) G_GNUC_PRINTF(3, 0); + +GLIB_AVAILABLE_IN_ALL +void g_error_free (GError *error); +GLIB_AVAILABLE_IN_ALL +GError* g_error_copy (const GError *error); + +GLIB_AVAILABLE_IN_ALL +gboolean g_error_matches (const GError *error, + GQuark domain, + gint code); + +/* if (err) *err = g_error_new(domain, code, format, ...), also has + * some sanity checks. + */ +GLIB_AVAILABLE_IN_ALL +void g_set_error (GError **err, + GQuark domain, + gint code, + const gchar *format, + ...) G_GNUC_PRINTF (4, 5); + +GLIB_AVAILABLE_IN_ALL +void g_set_error_literal (GError **err, + GQuark domain, + gint code, + const gchar *message); + +/* if (dest) *dest = src; also has some sanity checks. + */ +GLIB_AVAILABLE_IN_ALL +void g_propagate_error (GError **dest, + GError *src); + +/* if (err && *err) { g_error_free(*err); *err = NULL; } */ +GLIB_AVAILABLE_IN_ALL +void g_clear_error (GError **err); + +/* if (err) prefix the formatted string to the ->message */ +GLIB_AVAILABLE_IN_ALL +void g_prefix_error (GError **err, + const gchar *format, + ...) G_GNUC_PRINTF (2, 3); + +/* if (err) prefix the string to the ->message */ +GLIB_AVAILABLE_IN_2_70 +void g_prefix_error_literal (GError **err, + const gchar *prefix); + +/* g_propagate_error then g_error_prefix on dest */ +GLIB_AVAILABLE_IN_ALL +void g_propagate_prefixed_error (GError **dest, + GError *src, + const gchar *format, + ...) G_GNUC_PRINTF (3, 4); + +G_END_DECLS + +#endif /* __G_ERROR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gfileutils.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gfileutils.h new file mode 100644 index 000000000..c056dd034 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gfileutils.h @@ -0,0 +1,223 @@ +/* gfileutils.h - File utility functions + * + * Copyright 2000 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_FILEUTILS_H__ +#define __G_FILEUTILS_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +#define G_FILE_ERROR g_file_error_quark () + +typedef enum +{ + G_FILE_ERROR_EXIST, + G_FILE_ERROR_ISDIR, + G_FILE_ERROR_ACCES, + G_FILE_ERROR_NAMETOOLONG, + G_FILE_ERROR_NOENT, + G_FILE_ERROR_NOTDIR, + G_FILE_ERROR_NXIO, + G_FILE_ERROR_NODEV, + G_FILE_ERROR_ROFS, + G_FILE_ERROR_TXTBSY, + G_FILE_ERROR_FAULT, + G_FILE_ERROR_LOOP, + G_FILE_ERROR_NOSPC, + G_FILE_ERROR_NOMEM, + G_FILE_ERROR_MFILE, + G_FILE_ERROR_NFILE, + G_FILE_ERROR_BADF, + G_FILE_ERROR_INVAL, + G_FILE_ERROR_PIPE, + G_FILE_ERROR_AGAIN, + G_FILE_ERROR_INTR, + G_FILE_ERROR_IO, + G_FILE_ERROR_PERM, + G_FILE_ERROR_NOSYS, + G_FILE_ERROR_FAILED +} GFileError; + +/* For backward-compat reasons, these are synced to an old + * anonymous enum in libgnome. But don't use that enum + * in new code. + */ +typedef enum +{ + G_FILE_TEST_IS_REGULAR = 1 << 0, + G_FILE_TEST_IS_SYMLINK = 1 << 1, + G_FILE_TEST_IS_DIR = 1 << 2, + G_FILE_TEST_IS_EXECUTABLE = 1 << 3, + G_FILE_TEST_EXISTS = 1 << 4 +} GFileTest; + +/** + * GFileSetContentsFlags: + * @G_FILE_SET_CONTENTS_NONE: No guarantees about file consistency or durability. + * The most dangerous setting, which is slightly faster than other settings. + * @G_FILE_SET_CONTENTS_CONSISTENT: Guarantee file consistency: after a crash, + * either the old version of the file or the new version of the file will be + * available, but not a mixture. On Unix systems this equates to an `fsync()` + * on the file and use of an atomic `rename()` of the new version of the file + * over the old. + * @G_FILE_SET_CONTENTS_DURABLE: Guarantee file durability: after a crash, the + * new version of the file will be available. On Unix systems this equates to + * an `fsync()` on the file (if %G_FILE_SET_CONTENTS_CONSISTENT is unset), or + * the effects of %G_FILE_SET_CONTENTS_CONSISTENT plus an `fsync()` on the + * directory containing the file after calling `rename()`. + * @G_FILE_SET_CONTENTS_ONLY_EXISTING: Only apply consistency and durability + * guarantees if the file already exists. This may speed up file operations + * if the file doesn’t currently exist, but may result in a corrupted version + * of the new file if the system crashes while writing it. + * + * Flags to pass to g_file_set_contents_full() to affect its safety and + * performance. + * + * Since: 2.66 + */ +typedef enum +{ + G_FILE_SET_CONTENTS_NONE = 0, + G_FILE_SET_CONTENTS_CONSISTENT = 1 << 0, + G_FILE_SET_CONTENTS_DURABLE = 1 << 1, + G_FILE_SET_CONTENTS_ONLY_EXISTING = 1 << 2 +} GFileSetContentsFlags +GLIB_AVAILABLE_ENUMERATOR_IN_2_66; + +GLIB_AVAILABLE_IN_ALL +GQuark g_file_error_quark (void); +/* So other code can generate a GFileError */ +GLIB_AVAILABLE_IN_ALL +GFileError g_file_error_from_errno (gint err_no); + +GLIB_AVAILABLE_IN_ALL +gboolean g_file_test (const gchar *filename, + GFileTest test); +GLIB_AVAILABLE_IN_ALL +gboolean g_file_get_contents (const gchar *filename, + gchar **contents, + gsize *length, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_file_set_contents (const gchar *filename, + const gchar *contents, + gssize length, + GError **error); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_IN_2_66 +gboolean g_file_set_contents_full (const gchar *filename, + const gchar *contents, + gssize length, + GFileSetContentsFlags flags, + int mode, + GError **error); +G_GNUC_END_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_IN_ALL +gchar *g_file_read_link (const gchar *filename, + GError **error); + +/* Wrapper / workalike for mkdtemp() */ +GLIB_AVAILABLE_IN_2_30 +gchar *g_mkdtemp (gchar *tmpl); +GLIB_AVAILABLE_IN_2_30 +gchar *g_mkdtemp_full (gchar *tmpl, + gint mode); + +/* Wrapper / workalike for mkstemp() */ +GLIB_AVAILABLE_IN_ALL +gint g_mkstemp (gchar *tmpl); +GLIB_AVAILABLE_IN_ALL +gint g_mkstemp_full (gchar *tmpl, + gint flags, + gint mode); + +/* Wrappers for g_mkstemp and g_mkdtemp() */ +GLIB_AVAILABLE_IN_ALL +gint g_file_open_tmp (const gchar *tmpl, + gchar **name_used, + GError **error); +GLIB_AVAILABLE_IN_2_30 +gchar *g_dir_make_tmp (const gchar *tmpl, + GError **error); + +GLIB_AVAILABLE_IN_ALL +gchar *g_build_path (const gchar *separator, + const gchar *first_element, + ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; +GLIB_AVAILABLE_IN_ALL +gchar *g_build_pathv (const gchar *separator, + gchar **args) G_GNUC_MALLOC; + +GLIB_AVAILABLE_IN_ALL +gchar *g_build_filename (const gchar *first_element, + ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; +GLIB_AVAILABLE_IN_ALL +gchar *g_build_filenamev (gchar **args) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_2_56 +gchar *g_build_filename_valist (const gchar *first_element, + va_list *args) G_GNUC_MALLOC; + +GLIB_AVAILABLE_IN_ALL +gint g_mkdir_with_parents (const gchar *pathname, + gint mode); + +#ifdef G_OS_WIN32 + +/* On Win32, the canonical directory separator is the backslash, and + * the search path separator is the semicolon. Note that also the + * (forward) slash works as directory separator. + */ +#define G_IS_DIR_SEPARATOR(c) ((c) == G_DIR_SEPARATOR || (c) == '/') + +#else /* !G_OS_WIN32 */ + +#define G_IS_DIR_SEPARATOR(c) ((c) == G_DIR_SEPARATOR) + +#endif /* !G_OS_WIN32 */ + +GLIB_AVAILABLE_IN_ALL +gboolean g_path_is_absolute (const gchar *file_name); +GLIB_AVAILABLE_IN_ALL +const gchar *g_path_skip_root (const gchar *file_name); + +GLIB_DEPRECATED_FOR(g_path_get_basename) +const gchar *g_basename (const gchar *file_name); +#define g_dirname g_path_get_dirname GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_path_get_dirname) + +GLIB_AVAILABLE_IN_ALL +gchar *g_get_current_dir (void); +GLIB_AVAILABLE_IN_ALL +gchar *g_path_get_basename (const gchar *file_name) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar *g_path_get_dirname (const gchar *file_name) G_GNUC_MALLOC; + +GLIB_AVAILABLE_IN_2_58 +gchar *g_canonicalize_filename (const gchar *filename, + const gchar *relative_to) G_GNUC_MALLOC; + +G_END_DECLS + +#endif /* __G_FILEUTILS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ggettext.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ggettext.h new file mode 100644 index 000000000..33a1fbe81 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ggettext.h @@ -0,0 +1,65 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_GETTEXT_H__ +#define __G_GETTEXT_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_ALL +const gchar *g_strip_context (const gchar *msgid, + const gchar *msgval) G_GNUC_FORMAT(1); + +GLIB_AVAILABLE_IN_ALL +const gchar *g_dgettext (const gchar *domain, + const gchar *msgid) G_GNUC_FORMAT(2); +GLIB_AVAILABLE_IN_ALL +const gchar *g_dcgettext (const gchar *domain, + const gchar *msgid, + gint category) G_GNUC_FORMAT(2); +GLIB_AVAILABLE_IN_ALL +const gchar *g_dngettext (const gchar *domain, + const gchar *msgid, + const gchar *msgid_plural, + gulong n) G_GNUC_FORMAT(3); +GLIB_AVAILABLE_IN_ALL +const gchar *g_dpgettext (const gchar *domain, + const gchar *msgctxtid, + gsize msgidoffset) G_GNUC_FORMAT(2); +GLIB_AVAILABLE_IN_ALL +const gchar *g_dpgettext2 (const gchar *domain, + const gchar *context, + const gchar *msgid) G_GNUC_FORMAT(3); + +G_END_DECLS + +#endif /* __G_GETTEXT_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ghash.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ghash.h new file mode 100644 index 000000000..3eb8f3be0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ghash.h @@ -0,0 +1,206 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_HASH_H__ +#define __G_HASH_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include + +G_BEGIN_DECLS + +typedef struct _GHashTable GHashTable; + +typedef gboolean (*GHRFunc) (gpointer key, + gpointer value, + gpointer user_data); + +typedef struct _GHashTableIter GHashTableIter; + +struct _GHashTableIter +{ + /*< private >*/ + gpointer dummy1; + gpointer dummy2; + gpointer dummy3; + int dummy4; + gboolean dummy5; + gpointer dummy6; +}; + +GLIB_AVAILABLE_IN_ALL +GHashTable* g_hash_table_new (GHashFunc hash_func, + GEqualFunc key_equal_func); +GLIB_AVAILABLE_IN_ALL +GHashTable* g_hash_table_new_full (GHashFunc hash_func, + GEqualFunc key_equal_func, + GDestroyNotify key_destroy_func, + GDestroyNotify value_destroy_func); +GLIB_AVAILABLE_IN_2_72 +GHashTable *g_hash_table_new_similar (GHashTable *other_hash_table); +GLIB_AVAILABLE_IN_ALL +void g_hash_table_destroy (GHashTable *hash_table); +GLIB_AVAILABLE_IN_ALL +gboolean g_hash_table_insert (GHashTable *hash_table, + gpointer key, + gpointer value); +GLIB_AVAILABLE_IN_ALL +gboolean g_hash_table_replace (GHashTable *hash_table, + gpointer key, + gpointer value); +GLIB_AVAILABLE_IN_ALL +gboolean g_hash_table_add (GHashTable *hash_table, + gpointer key); +GLIB_AVAILABLE_IN_ALL +gboolean g_hash_table_remove (GHashTable *hash_table, + gconstpointer key); +GLIB_AVAILABLE_IN_ALL +void g_hash_table_remove_all (GHashTable *hash_table); +GLIB_AVAILABLE_IN_ALL +gboolean g_hash_table_steal (GHashTable *hash_table, + gconstpointer key); +GLIB_AVAILABLE_IN_2_58 +gboolean g_hash_table_steal_extended (GHashTable *hash_table, + gconstpointer lookup_key, + gpointer *stolen_key, + gpointer *stolen_value); +GLIB_AVAILABLE_IN_ALL +void g_hash_table_steal_all (GHashTable *hash_table); +GLIB_AVAILABLE_IN_2_76 +GPtrArray * g_hash_table_steal_all_keys (GHashTable *hash_table); +GLIB_AVAILABLE_IN_2_76 +GPtrArray * g_hash_table_steal_all_values (GHashTable *hash_table); +GLIB_AVAILABLE_IN_ALL +gpointer g_hash_table_lookup (GHashTable *hash_table, + gconstpointer key); +GLIB_AVAILABLE_IN_ALL +gboolean g_hash_table_contains (GHashTable *hash_table, + gconstpointer key); +GLIB_AVAILABLE_IN_ALL +gboolean g_hash_table_lookup_extended (GHashTable *hash_table, + gconstpointer lookup_key, + gpointer *orig_key, + gpointer *value); +GLIB_AVAILABLE_IN_ALL +void g_hash_table_foreach (GHashTable *hash_table, + GHFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +gpointer g_hash_table_find (GHashTable *hash_table, + GHRFunc predicate, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +guint g_hash_table_foreach_remove (GHashTable *hash_table, + GHRFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +guint g_hash_table_foreach_steal (GHashTable *hash_table, + GHRFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +guint g_hash_table_size (GHashTable *hash_table); +GLIB_AVAILABLE_IN_ALL +GList * g_hash_table_get_keys (GHashTable *hash_table); +GLIB_AVAILABLE_IN_ALL +GList * g_hash_table_get_values (GHashTable *hash_table); +GLIB_AVAILABLE_IN_2_40 +gpointer * g_hash_table_get_keys_as_array (GHashTable *hash_table, + guint *length); +GLIB_AVAILABLE_IN_2_76 +GPtrArray * g_hash_table_get_keys_as_ptr_array (GHashTable *hash_table); + +GLIB_AVAILABLE_IN_2_76 +GPtrArray * g_hash_table_get_values_as_ptr_array (GHashTable *hash_table); + +GLIB_AVAILABLE_IN_ALL +void g_hash_table_iter_init (GHashTableIter *iter, + GHashTable *hash_table); +GLIB_AVAILABLE_IN_ALL +gboolean g_hash_table_iter_next (GHashTableIter *iter, + gpointer *key, + gpointer *value); +GLIB_AVAILABLE_IN_ALL +GHashTable* g_hash_table_iter_get_hash_table (GHashTableIter *iter); +GLIB_AVAILABLE_IN_ALL +void g_hash_table_iter_remove (GHashTableIter *iter); +GLIB_AVAILABLE_IN_2_30 +void g_hash_table_iter_replace (GHashTableIter *iter, + gpointer value); +GLIB_AVAILABLE_IN_ALL +void g_hash_table_iter_steal (GHashTableIter *iter); + +GLIB_AVAILABLE_IN_ALL +GHashTable* g_hash_table_ref (GHashTable *hash_table); +GLIB_AVAILABLE_IN_ALL +void g_hash_table_unref (GHashTable *hash_table); + +#define g_hash_table_freeze(hash_table) ((void)0) GLIB_DEPRECATED_MACRO_IN_2_26 +#define g_hash_table_thaw(hash_table) ((void)0) GLIB_DEPRECATED_MACRO_IN_2_26 + +/* Hash Functions + */ +GLIB_AVAILABLE_IN_ALL +gboolean g_str_equal (gconstpointer v1, + gconstpointer v2); + +/* Macro for optimization in the case it is not used as callback function */ +#define g_str_equal(v1, v2) (strcmp ((const char *) (v1), (const char *) (v2)) == 0) + +GLIB_AVAILABLE_IN_ALL +guint g_str_hash (gconstpointer v); + +GLIB_AVAILABLE_IN_ALL +gboolean g_int_equal (gconstpointer v1, + gconstpointer v2); +GLIB_AVAILABLE_IN_ALL +guint g_int_hash (gconstpointer v); + +GLIB_AVAILABLE_IN_ALL +gboolean g_int64_equal (gconstpointer v1, + gconstpointer v2); +GLIB_AVAILABLE_IN_ALL +guint g_int64_hash (gconstpointer v); + +GLIB_AVAILABLE_IN_ALL +gboolean g_double_equal (gconstpointer v1, + gconstpointer v2); +GLIB_AVAILABLE_IN_ALL +guint g_double_hash (gconstpointer v); + +GLIB_AVAILABLE_IN_ALL +guint g_direct_hash (gconstpointer v) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_direct_equal (gconstpointer v1, + gconstpointer v2) G_GNUC_CONST; + +G_END_DECLS + +#endif /* __G_HASH_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ghmac.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ghmac.h new file mode 100644 index 000000000..346b45136 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ghmac.h @@ -0,0 +1,85 @@ +/* ghmac.h - secure data hashing + * + * Copyright (C) 2011 Stef Walter + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_HMAC_H__ +#define __G_HMAC_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include "gchecksum.h" + +G_BEGIN_DECLS + +/** + * GHmac: + * + * An opaque structure representing a HMAC operation. + * To create a new GHmac, use g_hmac_new(). To free + * a GHmac, use g_hmac_unref(). + * + * Since: 2.30 + */ +typedef struct _GHmac GHmac; + +GLIB_AVAILABLE_IN_2_30 +GHmac * g_hmac_new (GChecksumType digest_type, + const guchar *key, + gsize key_len); +GLIB_AVAILABLE_IN_2_30 +GHmac * g_hmac_copy (const GHmac *hmac); +GLIB_AVAILABLE_IN_2_30 +GHmac * g_hmac_ref (GHmac *hmac); +GLIB_AVAILABLE_IN_2_30 +void g_hmac_unref (GHmac *hmac); +GLIB_AVAILABLE_IN_2_30 +void g_hmac_update (GHmac *hmac, + const guchar *data, + gssize length); +GLIB_AVAILABLE_IN_2_30 +const gchar * g_hmac_get_string (GHmac *hmac); +GLIB_AVAILABLE_IN_2_30 +void g_hmac_get_digest (GHmac *hmac, + guint8 *buffer, + gsize *digest_len); + +GLIB_AVAILABLE_IN_2_30 +gchar *g_compute_hmac_for_data (GChecksumType digest_type, + const guchar *key, + gsize key_len, + const guchar *data, + gsize length); +GLIB_AVAILABLE_IN_2_30 +gchar *g_compute_hmac_for_string (GChecksumType digest_type, + const guchar *key, + gsize key_len, + const gchar *str, + gssize length); +GLIB_AVAILABLE_IN_2_50 +gchar *g_compute_hmac_for_bytes (GChecksumType digest_type, + GBytes *key, + GBytes *data); + + +G_END_DECLS + +#endif /* __G_CHECKSUM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ghook.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ghook.h new file mode 100644 index 000000000..1bd858219 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ghook.h @@ -0,0 +1,204 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_HOOK_H__ +#define __G_HOOK_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + + +/* --- typedefs --- */ +typedef struct _GHook GHook; +typedef struct _GHookList GHookList; + +typedef gint (*GHookCompareFunc) (GHook *new_hook, + GHook *sibling); +typedef gboolean (*GHookFindFunc) (GHook *hook, + gpointer data); +typedef void (*GHookMarshaller) (GHook *hook, + gpointer marshal_data); +typedef gboolean (*GHookCheckMarshaller) (GHook *hook, + gpointer marshal_data); +typedef void (*GHookFunc) (gpointer data); +typedef gboolean (*GHookCheckFunc) (gpointer data); +typedef void (*GHookFinalizeFunc) (GHookList *hook_list, + GHook *hook); +typedef enum +{ + G_HOOK_FLAG_ACTIVE = 1 << 0, + G_HOOK_FLAG_IN_CALL = 1 << 1, + G_HOOK_FLAG_MASK = 0x0f +} GHookFlagMask; +#define G_HOOK_FLAG_USER_SHIFT (4) + + +/* --- structures --- */ +struct _GHookList +{ + gulong seq_id; + guint hook_size : 16; + guint is_setup : 1; + GHook *hooks; + gpointer dummy3; + GHookFinalizeFunc finalize_hook; + gpointer dummy[2]; +}; +struct _GHook +{ + gpointer data; + GHook *next; + GHook *prev; + guint ref_count; + gulong hook_id; + guint flags; + gpointer func; + GDestroyNotify destroy; +}; + + +/* --- macros --- */ +#define G_HOOK(hook) ((GHook*) (hook)) +#define G_HOOK_FLAGS(hook) (G_HOOK (hook)->flags) +#define G_HOOK_ACTIVE(hook) ((G_HOOK_FLAGS (hook) & \ + G_HOOK_FLAG_ACTIVE) != 0) +#define G_HOOK_IN_CALL(hook) ((G_HOOK_FLAGS (hook) & \ + G_HOOK_FLAG_IN_CALL) != 0) +#define G_HOOK_IS_VALID(hook) (G_HOOK (hook)->hook_id != 0 && \ + (G_HOOK_FLAGS (hook) & \ + G_HOOK_FLAG_ACTIVE)) +#define G_HOOK_IS_UNLINKED(hook) (G_HOOK (hook)->next == NULL && \ + G_HOOK (hook)->prev == NULL && \ + G_HOOK (hook)->hook_id == 0 && \ + G_HOOK (hook)->ref_count == 0) + + +/* --- prototypes --- */ +/* callback maintenance functions */ +GLIB_AVAILABLE_IN_ALL +void g_hook_list_init (GHookList *hook_list, + guint hook_size); +GLIB_AVAILABLE_IN_ALL +void g_hook_list_clear (GHookList *hook_list); +GLIB_AVAILABLE_IN_ALL +GHook* g_hook_alloc (GHookList *hook_list); +GLIB_AVAILABLE_IN_ALL +void g_hook_free (GHookList *hook_list, + GHook *hook); +GLIB_AVAILABLE_IN_ALL +GHook * g_hook_ref (GHookList *hook_list, + GHook *hook); +GLIB_AVAILABLE_IN_ALL +void g_hook_unref (GHookList *hook_list, + GHook *hook); +GLIB_AVAILABLE_IN_ALL +gboolean g_hook_destroy (GHookList *hook_list, + gulong hook_id); +GLIB_AVAILABLE_IN_ALL +void g_hook_destroy_link (GHookList *hook_list, + GHook *hook); +GLIB_AVAILABLE_IN_ALL +void g_hook_prepend (GHookList *hook_list, + GHook *hook); +GLIB_AVAILABLE_IN_ALL +void g_hook_insert_before (GHookList *hook_list, + GHook *sibling, + GHook *hook); +GLIB_AVAILABLE_IN_ALL +void g_hook_insert_sorted (GHookList *hook_list, + GHook *hook, + GHookCompareFunc func); +GLIB_AVAILABLE_IN_ALL +GHook* g_hook_get (GHookList *hook_list, + gulong hook_id); +GLIB_AVAILABLE_IN_ALL +GHook* g_hook_find (GHookList *hook_list, + gboolean need_valids, + GHookFindFunc func, + gpointer data); +GLIB_AVAILABLE_IN_ALL +GHook* g_hook_find_data (GHookList *hook_list, + gboolean need_valids, + gpointer data); +GLIB_AVAILABLE_IN_ALL +GHook* g_hook_find_func (GHookList *hook_list, + gboolean need_valids, + gpointer func); +GLIB_AVAILABLE_IN_ALL +GHook* g_hook_find_func_data (GHookList *hook_list, + gboolean need_valids, + gpointer func, + gpointer data); +/* return the first valid hook, and increment its reference count */ +GLIB_AVAILABLE_IN_ALL +GHook* g_hook_first_valid (GHookList *hook_list, + gboolean may_be_in_call); +/* return the next valid hook with incremented reference count, and + * decrement the reference count of the original hook + */ +GLIB_AVAILABLE_IN_ALL +GHook* g_hook_next_valid (GHookList *hook_list, + GHook *hook, + gboolean may_be_in_call); +/* GHookCompareFunc implementation to insert hooks sorted by their id */ +GLIB_AVAILABLE_IN_ALL +gint g_hook_compare_ids (GHook *new_hook, + GHook *sibling); +/* convenience macros */ +#define g_hook_append( hook_list, hook ) \ + g_hook_insert_before ((hook_list), NULL, (hook)) +/* invoke all valid hooks with the (*GHookFunc) signature. + */ +GLIB_AVAILABLE_IN_ALL +void g_hook_list_invoke (GHookList *hook_list, + gboolean may_recurse); +/* invoke all valid hooks with the (*GHookCheckFunc) signature, + * and destroy the hook if FALSE is returned. + */ +GLIB_AVAILABLE_IN_ALL +void g_hook_list_invoke_check (GHookList *hook_list, + gboolean may_recurse); +/* invoke a marshaller on all valid hooks. + */ +GLIB_AVAILABLE_IN_ALL +void g_hook_list_marshal (GHookList *hook_list, + gboolean may_recurse, + GHookMarshaller marshaller, + gpointer marshal_data); +GLIB_AVAILABLE_IN_ALL +void g_hook_list_marshal_check (GHookList *hook_list, + gboolean may_recurse, + GHookCheckMarshaller marshaller, + gpointer marshal_data); + +G_END_DECLS + +#endif /* __G_HOOK_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ghostutils.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ghostutils.h new file mode 100644 index 000000000..6f350976f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/ghostutils.h @@ -0,0 +1,45 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 2008 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_HOST_UTILS_H__ +#define __G_HOST_UTILS_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_ALL +gboolean g_hostname_is_non_ascii (const gchar *hostname); +GLIB_AVAILABLE_IN_ALL +gboolean g_hostname_is_ascii_encoded (const gchar *hostname); +GLIB_AVAILABLE_IN_ALL +gboolean g_hostname_is_ip_address (const gchar *hostname); + +GLIB_AVAILABLE_IN_ALL +gchar *g_hostname_to_ascii (const gchar *hostname); +GLIB_AVAILABLE_IN_ALL +gchar *g_hostname_to_unicode (const gchar *hostname); + +G_END_DECLS + +#endif /* __G_HOST_UTILS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gi18n-lib.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gi18n-lib.h new file mode 100644 index 000000000..fe9e79dbd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gi18n-lib.h @@ -0,0 +1,38 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997, 2002 Peter Mattis, Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __G_I18N_LIB_H__ +#define __G_I18N_LIB_H__ + +#include + +#include +#include + +#ifndef GETTEXT_PACKAGE +#error You must define GETTEXT_PACKAGE before including gi18n-lib.h. Did you forget to include config.h? +#endif + +#define _(String) ((char *) g_dgettext (GETTEXT_PACKAGE, String)) +#define Q_(String) g_dpgettext (GETTEXT_PACKAGE, String, 0) +#define N_(String) (String) +#define C_(Context,String) g_dpgettext (GETTEXT_PACKAGE, Context "\004" String, strlen (Context) + 1) +#define NC_(Context, String) (String) + +#endif /* __G_I18N_LIB_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gi18n.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gi18n.h new file mode 100644 index 000000000..dbb2cb3a5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gi18n.h @@ -0,0 +1,34 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997, 2002 Peter Mattis, Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __G_I18N_H__ +#define __G_I18N_H__ + +#include + +#include +#include + +#define _(String) gettext (String) +#define Q_(String) g_dpgettext (NULL, String, 0) +#define N_(String) (String) +#define C_(Context,String) g_dpgettext (NULL, Context "\004" String, strlen (Context) + 1) +#define NC_(Context, String) (String) + +#endif /* __G_I18N_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/giochannel.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/giochannel.h new file mode 100644 index 000000000..913019cd4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/giochannel.h @@ -0,0 +1,407 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_IOCHANNEL_H__ +#define __G_IOCHANNEL_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include + +G_BEGIN_DECLS + +/* GIOChannel + */ + +typedef struct _GIOChannel GIOChannel; +typedef struct _GIOFuncs GIOFuncs; + +typedef enum +{ + G_IO_ERROR_NONE, + G_IO_ERROR_AGAIN, + G_IO_ERROR_INVAL, + G_IO_ERROR_UNKNOWN +} GIOError; + +#define G_IO_CHANNEL_ERROR g_io_channel_error_quark() + +typedef enum +{ + /* Derived from errno */ + G_IO_CHANNEL_ERROR_FBIG, + G_IO_CHANNEL_ERROR_INVAL, + G_IO_CHANNEL_ERROR_IO, + G_IO_CHANNEL_ERROR_ISDIR, + G_IO_CHANNEL_ERROR_NOSPC, + G_IO_CHANNEL_ERROR_NXIO, + G_IO_CHANNEL_ERROR_OVERFLOW, + G_IO_CHANNEL_ERROR_PIPE, + /* Other */ + G_IO_CHANNEL_ERROR_FAILED +} GIOChannelError; + +typedef enum +{ + G_IO_STATUS_ERROR, + G_IO_STATUS_NORMAL, + G_IO_STATUS_EOF, + G_IO_STATUS_AGAIN +} GIOStatus; + +typedef enum +{ + G_SEEK_CUR, + G_SEEK_SET, + G_SEEK_END +} GSeekType; + +typedef enum +{ + G_IO_FLAG_NONE GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = 0, + G_IO_FLAG_APPEND = 1 << 0, + G_IO_FLAG_NONBLOCK = 1 << 1, + G_IO_FLAG_IS_READABLE = 1 << 2, /* Read only flag */ + G_IO_FLAG_IS_WRITABLE = 1 << 3, /* Read only flag */ + G_IO_FLAG_IS_WRITEABLE = 1 << 3, /* Misspelling in 2.29.10 and earlier */ + G_IO_FLAG_IS_SEEKABLE = 1 << 4, /* Read only flag */ + G_IO_FLAG_MASK = (1 << 5) - 1, + G_IO_FLAG_GET_MASK = G_IO_FLAG_MASK, + G_IO_FLAG_SET_MASK = G_IO_FLAG_APPEND | G_IO_FLAG_NONBLOCK +} GIOFlags; + +struct _GIOChannel +{ + /*< private >*/ + gint ref_count; + GIOFuncs *funcs; + + gchar *encoding; + GIConv read_cd; + GIConv write_cd; + gchar *line_term; /* String which indicates the end of a line of text */ + guint line_term_len; /* So we can have null in the line term */ + + gsize buf_size; + GString *read_buf; /* Raw data from the channel */ + GString *encoded_read_buf; /* Channel data converted to UTF-8 */ + GString *write_buf; /* Data ready to be written to the file */ + gchar partial_write_buf[6]; /* UTF-8 partial characters, null terminated */ + + /* Group the flags together, immediately after partial_write_buf, to save memory */ + + guint use_buffer : 1; /* The encoding uses the buffers */ + guint do_encode : 1; /* The encoding uses the GIConv coverters */ + guint close_on_unref : 1; /* Close the channel on final unref */ + guint is_readable : 1; /* Cached GIOFlag */ + guint is_writeable : 1; /* ditto */ + guint is_seekable : 1; /* ditto */ + + gpointer reserved1; + gpointer reserved2; +}; + +typedef gboolean (*GIOFunc) (GIOChannel *source, + GIOCondition condition, + gpointer data); +struct _GIOFuncs +{ + GIOStatus (*io_read) (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read, + GError **err); + GIOStatus (*io_write) (GIOChannel *channel, + const gchar *buf, + gsize count, + gsize *bytes_written, + GError **err); + GIOStatus (*io_seek) (GIOChannel *channel, + gint64 offset, + GSeekType type, + GError **err); + GIOStatus (*io_close) (GIOChannel *channel, + GError **err); + GSource* (*io_create_watch) (GIOChannel *channel, + GIOCondition condition); + void (*io_free) (GIOChannel *channel); + GIOStatus (*io_set_flags) (GIOChannel *channel, + GIOFlags flags, + GError **err); + GIOFlags (*io_get_flags) (GIOChannel *channel); +}; + +GLIB_AVAILABLE_IN_ALL +void g_io_channel_init (GIOChannel *channel); +GLIB_AVAILABLE_IN_ALL +GIOChannel *g_io_channel_ref (GIOChannel *channel); +GLIB_AVAILABLE_IN_ALL +void g_io_channel_unref (GIOChannel *channel); + +GLIB_DEPRECATED_FOR(g_io_channel_read_chars) +GIOError g_io_channel_read (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read); + +GLIB_DEPRECATED_FOR(g_io_channel_write_chars) +GIOError g_io_channel_write (GIOChannel *channel, + const gchar *buf, + gsize count, + gsize *bytes_written); + +GLIB_DEPRECATED_FOR(g_io_channel_seek_position) +GIOError g_io_channel_seek (GIOChannel *channel, + gint64 offset, + GSeekType type); + +GLIB_DEPRECATED_FOR(g_io_channel_shutdown) +void g_io_channel_close (GIOChannel *channel); + +GLIB_AVAILABLE_IN_ALL +GIOStatus g_io_channel_shutdown (GIOChannel *channel, + gboolean flush, + GError **err); +GLIB_AVAILABLE_IN_ALL +guint g_io_add_watch_full (GIOChannel *channel, + gint priority, + GIOCondition condition, + GIOFunc func, + gpointer user_data, + GDestroyNotify notify); +GLIB_AVAILABLE_IN_ALL +GSource * g_io_create_watch (GIOChannel *channel, + GIOCondition condition); +GLIB_AVAILABLE_IN_ALL +guint g_io_add_watch (GIOChannel *channel, + GIOCondition condition, + GIOFunc func, + gpointer user_data); + +/* character encoding conversion involved functions. + */ + +GLIB_AVAILABLE_IN_ALL +void g_io_channel_set_buffer_size (GIOChannel *channel, + gsize size); +GLIB_AVAILABLE_IN_ALL +gsize g_io_channel_get_buffer_size (GIOChannel *channel); +GLIB_AVAILABLE_IN_ALL +GIOCondition g_io_channel_get_buffer_condition (GIOChannel *channel); +GLIB_AVAILABLE_IN_ALL +GIOStatus g_io_channel_set_flags (GIOChannel *channel, + GIOFlags flags, + GError **error); +GLIB_AVAILABLE_IN_ALL +GIOFlags g_io_channel_get_flags (GIOChannel *channel); +GLIB_AVAILABLE_IN_ALL +void g_io_channel_set_line_term (GIOChannel *channel, + const gchar *line_term, + gint length); +GLIB_AVAILABLE_IN_ALL +const gchar * g_io_channel_get_line_term (GIOChannel *channel, + gint *length); +GLIB_AVAILABLE_IN_ALL +void g_io_channel_set_buffered (GIOChannel *channel, + gboolean buffered); +GLIB_AVAILABLE_IN_ALL +gboolean g_io_channel_get_buffered (GIOChannel *channel); +GLIB_AVAILABLE_IN_ALL +GIOStatus g_io_channel_set_encoding (GIOChannel *channel, + const gchar *encoding, + GError **error); +GLIB_AVAILABLE_IN_ALL +const gchar * g_io_channel_get_encoding (GIOChannel *channel); +GLIB_AVAILABLE_IN_ALL +void g_io_channel_set_close_on_unref (GIOChannel *channel, + gboolean do_close); +GLIB_AVAILABLE_IN_ALL +gboolean g_io_channel_get_close_on_unref (GIOChannel *channel); + + +GLIB_AVAILABLE_IN_ALL +GIOStatus g_io_channel_flush (GIOChannel *channel, + GError **error); +GLIB_AVAILABLE_IN_ALL +GIOStatus g_io_channel_read_line (GIOChannel *channel, + gchar **str_return, + gsize *length, + gsize *terminator_pos, + GError **error); +GLIB_AVAILABLE_IN_ALL +GIOStatus g_io_channel_read_line_string (GIOChannel *channel, + GString *buffer, + gsize *terminator_pos, + GError **error); +GLIB_AVAILABLE_IN_ALL +GIOStatus g_io_channel_read_to_end (GIOChannel *channel, + gchar **str_return, + gsize *length, + GError **error); +GLIB_AVAILABLE_IN_ALL +GIOStatus g_io_channel_read_chars (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read, + GError **error); +GLIB_AVAILABLE_IN_ALL +GIOStatus g_io_channel_read_unichar (GIOChannel *channel, + gunichar *thechar, + GError **error); +GLIB_AVAILABLE_IN_ALL +GIOStatus g_io_channel_write_chars (GIOChannel *channel, + const gchar *buf, + gssize count, + gsize *bytes_written, + GError **error); +GLIB_AVAILABLE_IN_ALL +GIOStatus g_io_channel_write_unichar (GIOChannel *channel, + gunichar thechar, + GError **error); +GLIB_AVAILABLE_IN_ALL +GIOStatus g_io_channel_seek_position (GIOChannel *channel, + gint64 offset, + GSeekType type, + GError **error); +GLIB_AVAILABLE_IN_ALL +GIOChannel* g_io_channel_new_file (const gchar *filename, + const gchar *mode, + GError **error); + +/* Error handling */ + +GLIB_AVAILABLE_IN_ALL +GQuark g_io_channel_error_quark (void); +GLIB_AVAILABLE_IN_ALL +GIOChannelError g_io_channel_error_from_errno (gint en); + +/* On Unix, IO channels created with this function for any file + * descriptor or socket. + * + * On Win32, this can be used either for files opened with the MSVCRT + * (the Microsoft run-time C library) _open() or _pipe, including file + * descriptors 0, 1 and 2 (corresponding to stdin, stdout and stderr), + * or for Winsock SOCKETs. If the parameter is a legal file + * descriptor, it is assumed to be such, otherwise it should be a + * SOCKET. This relies on SOCKETs and file descriptors not + * overlapping. If you want to be certain, call either + * g_io_channel_win32_new_fd() or g_io_channel_win32_new_socket() + * instead as appropriate. + * + * The term file descriptor as used in the context of Win32 refers to + * the emulated Unix-like file descriptors MSVCRT provides. The native + * corresponding concept is file HANDLE. There isn't as of yet a way to + * get GIOChannels for Win32 file HANDLEs. + */ +GLIB_AVAILABLE_IN_ALL +GIOChannel* g_io_channel_unix_new (int fd); +GLIB_AVAILABLE_IN_ALL +gint g_io_channel_unix_get_fd (GIOChannel *channel); + + +/* Hook for GClosure / GSource integration. Don't touch */ +GLIB_VAR GSourceFuncs g_io_watch_funcs; + +#ifdef G_OS_WIN32 + +/* You can use this "pseudo file descriptor" in a GPollFD to add + * polling for Windows messages. GTK applications should not do that. + */ + +#define G_WIN32_MSG_HANDLE 19981206 + +/* Use this to get a GPollFD from a GIOChannel, so that you can call + * g_io_channel_win32_poll(). After calling this you should only use + * g_io_channel_read() to read from the GIOChannel, i.e. never read() + * from the underlying file descriptor. For SOCKETs, it is possible to call + * recv(). + */ +GLIB_AVAILABLE_IN_ALL +void g_io_channel_win32_make_pollfd (GIOChannel *channel, + GIOCondition condition, + GPollFD *fd); + +/* This can be used to wait until at least one of the channels is readable. + * On Unix you would do a select() on the file descriptors of the channels. + */ +GLIB_AVAILABLE_IN_ALL +gint g_io_channel_win32_poll (GPollFD *fds, + gint n_fds, + gint timeout_); + +/* Create an IO channel for Windows messages for window handle hwnd. */ +#if GLIB_SIZEOF_VOID_P == 8 +/* We use gsize here so that it is still an integer type and not a + * pointer, like the guint in the traditional prototype. We can't use + * intptr_t as that is not portable enough. + */ +GLIB_AVAILABLE_IN_ALL +GIOChannel *g_io_channel_win32_new_messages (gsize hwnd); +#else +GLIB_AVAILABLE_IN_ALL +GIOChannel *g_io_channel_win32_new_messages (guint hwnd); +#endif + +/* Create an IO channel for C runtime (emulated Unix-like) file + * descriptors. After calling g_io_add_watch() on a IO channel + * returned by this function, you shouldn't call read() on the file + * descriptor. This is because adding polling for a file descriptor is + * implemented on Win32 by starting a thread that sits blocked in a + * read() from the file descriptor most of the time. All reads from + * the file descriptor should be done by this internal GLib + * thread. Your code should call only g_io_channel_read_chars(). + */ +GLIB_AVAILABLE_IN_ALL +GIOChannel* g_io_channel_win32_new_fd (gint fd); + +/* Get the C runtime file descriptor of a channel. */ +GLIB_AVAILABLE_IN_ALL +gint g_io_channel_win32_get_fd (GIOChannel *channel); + +/* Create an IO channel for a winsock socket. The parameter should be + * a SOCKET. Contrary to IO channels for file descriptors (on *Win32), + * you can use normal recv() or recvfrom() on sockets even if GLib + * is polling them. + */ +GLIB_AVAILABLE_IN_ALL +GIOChannel *g_io_channel_win32_new_socket (gint socket); + +GLIB_DEPRECATED_FOR(g_io_channel_win32_new_socket) +GIOChannel *g_io_channel_win32_new_stream_socket (gint socket); + +GLIB_AVAILABLE_IN_ALL +void g_io_channel_win32_set_debug (GIOChannel *channel, + gboolean flag); + +#endif + +G_END_DECLS + +#endif /* __G_IOCHANNEL_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gkeyfile.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gkeyfile.h new file mode 100644 index 000000000..9d026d681 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gkeyfile.h @@ -0,0 +1,332 @@ +/* gkeyfile.h - desktop entry file parser + * + * Copyright 2004 Red Hat, Inc. + * + * Ray Strode + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_KEY_FILE_H__ +#define __G_KEY_FILE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +typedef enum +{ + G_KEY_FILE_ERROR_UNKNOWN_ENCODING, + G_KEY_FILE_ERROR_PARSE, + G_KEY_FILE_ERROR_NOT_FOUND, + G_KEY_FILE_ERROR_KEY_NOT_FOUND, + G_KEY_FILE_ERROR_GROUP_NOT_FOUND, + G_KEY_FILE_ERROR_INVALID_VALUE +} GKeyFileError; + +#define G_KEY_FILE_ERROR g_key_file_error_quark() + +GLIB_AVAILABLE_IN_ALL +GQuark g_key_file_error_quark (void); + +typedef struct _GKeyFile GKeyFile; + +typedef enum +{ + G_KEY_FILE_NONE = 0, + G_KEY_FILE_KEEP_COMMENTS = 1 << 0, + G_KEY_FILE_KEEP_TRANSLATIONS = 1 << 1 +} GKeyFileFlags; + +GLIB_AVAILABLE_IN_ALL +GKeyFile *g_key_file_new (void); +GLIB_AVAILABLE_IN_ALL +GKeyFile *g_key_file_ref (GKeyFile *key_file); +GLIB_AVAILABLE_IN_ALL +void g_key_file_unref (GKeyFile *key_file); +GLIB_AVAILABLE_IN_ALL +void g_key_file_free (GKeyFile *key_file); +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_list_separator (GKeyFile *key_file, + gchar separator); +GLIB_AVAILABLE_IN_ALL +gboolean g_key_file_load_from_file (GKeyFile *key_file, + const gchar *file, + GKeyFileFlags flags, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_key_file_load_from_data (GKeyFile *key_file, + const gchar *data, + gsize length, + GKeyFileFlags flags, + GError **error); +GLIB_AVAILABLE_IN_2_50 +gboolean g_key_file_load_from_bytes (GKeyFile *key_file, + GBytes *bytes, + GKeyFileFlags flags, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_key_file_load_from_dirs (GKeyFile *key_file, + const gchar *file, + const gchar **search_dirs, + gchar **full_path, + GKeyFileFlags flags, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_key_file_load_from_data_dirs (GKeyFile *key_file, + const gchar *file, + gchar **full_path, + GKeyFileFlags flags, + GError **error); +GLIB_AVAILABLE_IN_ALL +gchar *g_key_file_to_data (GKeyFile *key_file, + gsize *length, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_2_40 +gboolean g_key_file_save_to_file (GKeyFile *key_file, + const gchar *filename, + GError **error); +GLIB_AVAILABLE_IN_ALL +gchar *g_key_file_get_start_group (GKeyFile *key_file) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar **g_key_file_get_groups (GKeyFile *key_file, + gsize *length); +GLIB_AVAILABLE_IN_ALL +gchar **g_key_file_get_keys (GKeyFile *key_file, + const gchar *group_name, + gsize *length, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_key_file_has_group (GKeyFile *key_file, + const gchar *group_name); +GLIB_AVAILABLE_IN_ALL +gboolean g_key_file_has_key (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +GLIB_AVAILABLE_IN_ALL +gchar *g_key_file_get_value (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_value (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *value); +GLIB_AVAILABLE_IN_ALL +gchar *g_key_file_get_string (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_string (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *string); +GLIB_AVAILABLE_IN_ALL +gchar *g_key_file_get_locale_string (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *locale, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_2_56 +gchar *g_key_file_get_locale_for_key (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *locale) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_locale_string (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *locale, + const gchar *string); +GLIB_AVAILABLE_IN_ALL +gboolean g_key_file_get_boolean (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_boolean (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gboolean value); +GLIB_AVAILABLE_IN_ALL +gint g_key_file_get_integer (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_integer (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gint value); +GLIB_AVAILABLE_IN_ALL +gint64 g_key_file_get_int64 (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_int64 (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gint64 value); +GLIB_AVAILABLE_IN_ALL +guint64 g_key_file_get_uint64 (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_uint64 (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + guint64 value); +GLIB_AVAILABLE_IN_ALL +gdouble g_key_file_get_double (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_double (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gdouble value); +GLIB_AVAILABLE_IN_ALL +gchar **g_key_file_get_string_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gsize *length, + GError **error); +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_string_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar * const list[], + gsize length); +GLIB_AVAILABLE_IN_ALL +gchar **g_key_file_get_locale_string_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *locale, + gsize *length, + GError **error); +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_locale_string_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *locale, + const gchar * const list[], + gsize length); +GLIB_AVAILABLE_IN_ALL +gboolean *g_key_file_get_boolean_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gsize *length, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_boolean_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gboolean list[], + gsize length); +GLIB_AVAILABLE_IN_ALL +gint *g_key_file_get_integer_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gsize *length, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_double_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gdouble list[], + gsize length); +GLIB_AVAILABLE_IN_ALL +gdouble *g_key_file_get_double_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gsize *length, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +void g_key_file_set_integer_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gint list[], + gsize length); +GLIB_AVAILABLE_IN_ALL +gboolean g_key_file_set_comment (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *comment, + GError **error); +GLIB_AVAILABLE_IN_ALL +gchar *g_key_file_get_comment (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error) G_GNUC_MALLOC; + +GLIB_AVAILABLE_IN_ALL +gboolean g_key_file_remove_comment (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_key_file_remove_key (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_key_file_remove_group (GKeyFile *key_file, + const gchar *group_name, + GError **error); + +/* Defines for handling freedesktop.org Desktop files */ +#define G_KEY_FILE_DESKTOP_GROUP "Desktop Entry" + +#define G_KEY_FILE_DESKTOP_KEY_TYPE "Type" +#define G_KEY_FILE_DESKTOP_KEY_VERSION "Version" +#define G_KEY_FILE_DESKTOP_KEY_NAME "Name" +#define G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME "GenericName" +#define G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY "NoDisplay" +#define G_KEY_FILE_DESKTOP_KEY_COMMENT "Comment" +#define G_KEY_FILE_DESKTOP_KEY_ICON "Icon" +#define G_KEY_FILE_DESKTOP_KEY_HIDDEN "Hidden" +#define G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN "OnlyShowIn" +#define G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN "NotShowIn" +#define G_KEY_FILE_DESKTOP_KEY_TRY_EXEC "TryExec" +#define G_KEY_FILE_DESKTOP_KEY_EXEC "Exec" +#define G_KEY_FILE_DESKTOP_KEY_PATH "Path" +#define G_KEY_FILE_DESKTOP_KEY_TERMINAL "Terminal" +#define G_KEY_FILE_DESKTOP_KEY_MIME_TYPE "MimeType" +#define G_KEY_FILE_DESKTOP_KEY_CATEGORIES "Categories" +#define G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY "StartupNotify" +#define G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS "StartupWMClass" +#define G_KEY_FILE_DESKTOP_KEY_URL "URL" +#define G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE "DBusActivatable" +#define G_KEY_FILE_DESKTOP_KEY_ACTIONS "Actions" + +#define G_KEY_FILE_DESKTOP_TYPE_APPLICATION "Application" +#define G_KEY_FILE_DESKTOP_TYPE_LINK "Link" +#define G_KEY_FILE_DESKTOP_TYPE_DIRECTORY "Directory" + +G_END_DECLS + +#endif /* __G_KEY_FILE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/glib-autocleanups.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/glib-autocleanups.h new file mode 100644 index 000000000..6adf23282 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/glib-autocleanups.h @@ -0,0 +1,107 @@ +/* + * Copyright © 2015 Canonical Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +static inline void +g_autoptr_cleanup_generic_gfree (void *p) +{ + void **pp = (void**)p; + g_free (*pp); +} + +static inline void +g_autoptr_cleanup_gstring_free (GString *string) +{ + if (string) + g_string_free (string, TRUE); +} + +/* Ignore deprecations in case we refer to a type which was added in a more + * recent GLib version than the user’s #GLIB_VERSION_MAX_ALLOWED definition. */ +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + +/* If adding a cleanup here, please also add a test case to + * glib/tests/autoptr.c + */ +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GAsyncQueue, g_async_queue_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GBookmarkFile, g_bookmark_file_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GBytes, g_bytes_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GChecksum, g_checksum_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDateTime, g_date_time_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDate, g_date_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDir, g_dir_close) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GError, g_error_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GHashTable, g_hash_table_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GHmac, g_hmac_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GIOChannel, g_io_channel_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GKeyFile, g_key_file_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GList, g_list_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GArray, g_array_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GPtrArray, g_ptr_array_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GByteArray, g_byte_array_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMainContext, g_main_context_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMainContextPusher, g_main_context_pusher_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMainLoop, g_main_loop_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSource, g_source_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMappedFile, g_mapped_file_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMarkupParseContext, g_markup_parse_context_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GNode, g_node_destroy) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GOptionContext, g_option_context_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GOptionGroup, g_option_group_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GPatternSpec, g_pattern_spec_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GQueue, g_queue_free) +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GQueue, g_queue_clear) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRand, g_rand_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRegex, g_regex_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMatchInfo, g_match_info_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GScanner, g_scanner_destroy) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSequence, g_sequence_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSList, g_slist_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GString, g_autoptr_cleanup_gstring_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GStringChunk, g_string_chunk_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GStrvBuilder, g_strv_builder_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GThread, g_thread_unref) +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GMutex, g_mutex_clear) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMutexLocker, g_mutex_locker_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRecMutexLocker, g_rec_mutex_locker_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRWLockWriterLocker, g_rw_lock_writer_locker_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRWLockReaderLocker, g_rw_lock_reader_locker_free) +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GCond, g_cond_clear) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTimer, g_timer_destroy) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTimeZone, g_time_zone_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTree, g_tree_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariant, g_variant_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariantBuilder, g_variant_builder_unref) +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GVariantBuilder, g_variant_builder_clear) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariantIter, g_variant_iter_free) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariantDict, g_variant_dict_unref) +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GVariantDict, g_variant_dict_clear) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariantType, g_variant_type_free) +G_DEFINE_AUTO_CLEANUP_FREE_FUNC(GStrv, g_strfreev, NULL) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRefString, g_ref_string_release) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUri, g_uri_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC (GPathBuf, g_path_buf_free) +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (GPathBuf, g_path_buf_clear) + +G_GNUC_END_IGNORE_DEPRECATIONS diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/glib-typeof.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/glib-typeof.h new file mode 100644 index 000000000..c3519fa47 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/glib-typeof.h @@ -0,0 +1,47 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 2021 Iain Lane, Xavier Claessens + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __GLIB_TYPEOF_H__ +#define __GLIB_TYPEOF_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +/* + * We can only use __typeof__ on GCC >= 4.8, and not when compiling C++. Since + * __typeof__ is used in a few places in GLib, provide a pre-processor symbol + * to factor the check out from callers. + * + * This symbol is private. + */ +#undef glib_typeof +#if !G_CXX_STD_CHECK_VERSION (11) && \ + (G_GNUC_CHECK_VERSION(4, 8) || defined(__clang__)) +#define glib_typeof(t) __typeof__ (t) +#elif G_CXX_STD_CHECK_VERSION (11) && \ + GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_68 +/* C++11 decltype() is close enough for our usage */ +#include +#define glib_typeof(t) typename std::remove_reference::type +#endif + +#endif /* __GLIB_TYPEOF_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/glib-visibility.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/glib-visibility.h new file mode 100644 index 000000000..296c9abb5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/glib-visibility.h @@ -0,0 +1,952 @@ +#pragma once + +#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(GLIB_STATIC_COMPILATION) +# define _GLIB_EXPORT __declspec(dllexport) +# define _GLIB_IMPORT __declspec(dllimport) +#elif __GNUC__ >= 4 +# define _GLIB_EXPORT __attribute__((visibility("default"))) +# define _GLIB_IMPORT +#else +# define _GLIB_EXPORT +# define _GLIB_IMPORT +#endif +#ifdef GLIB_COMPILATION +# define _GLIB_API _GLIB_EXPORT +#else +# define _GLIB_API _GLIB_IMPORT +#endif + +#define _GLIB_EXTERN _GLIB_API extern + +#define GLIB_VAR _GLIB_EXTERN +#define GLIB_AVAILABLE_IN_ALL _GLIB_EXTERN + +#ifdef GLIB_DISABLE_DEPRECATION_WARNINGS +#define GLIB_DEPRECATED _GLIB_EXTERN +#define GLIB_DEPRECATED_FOR(f) _GLIB_EXTERN +#define GLIB_UNAVAILABLE(maj,min) _GLIB_EXTERN +#define GLIB_UNAVAILABLE_STATIC_INLINE(maj,min) +#else +#define GLIB_DEPRECATED G_DEPRECATED _GLIB_EXTERN +#define GLIB_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GLIB_EXTERN +#define GLIB_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _GLIB_EXTERN +#define GLIB_UNAVAILABLE_STATIC_INLINE(maj,min) G_UNAVAILABLE(maj,min) +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_26 +#define GLIB_DEPRECATED_IN_2_26 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_26_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_26 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_26_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_26 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_26_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_26 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_26_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_26 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_26_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_26 +#define GLIB_DEPRECATED_MACRO_IN_2_26_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_26 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_26_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_26 +#define GLIB_DEPRECATED_TYPE_IN_2_26_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_26 +#define GLIB_AVAILABLE_IN_2_26 GLIB_UNAVAILABLE (2, 26) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_26 GLIB_UNAVAILABLE_STATIC_INLINE (2, 26) +#define GLIB_AVAILABLE_MACRO_IN_2_26 GLIB_UNAVAILABLE_MACRO (2, 26) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_26 GLIB_UNAVAILABLE_ENUMERATOR (2, 26) +#define GLIB_AVAILABLE_TYPE_IN_2_26 GLIB_UNAVAILABLE_TYPE (2, 26) +#else +#define GLIB_AVAILABLE_IN_2_26 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_26 +#define GLIB_AVAILABLE_MACRO_IN_2_26 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_26 +#define GLIB_AVAILABLE_TYPE_IN_2_26 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_28 +#define GLIB_DEPRECATED_IN_2_28 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_28_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_28 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_28_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_28 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_28_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_28 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_28_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_28 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_28_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_28 +#define GLIB_DEPRECATED_MACRO_IN_2_28_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_28 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_28_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_28 +#define GLIB_DEPRECATED_TYPE_IN_2_28_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_28 +#define GLIB_AVAILABLE_IN_2_28 GLIB_UNAVAILABLE (2, 28) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_28 GLIB_UNAVAILABLE_STATIC_INLINE (2, 28) +#define GLIB_AVAILABLE_MACRO_IN_2_28 GLIB_UNAVAILABLE_MACRO (2, 28) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_28 GLIB_UNAVAILABLE_ENUMERATOR (2, 28) +#define GLIB_AVAILABLE_TYPE_IN_2_28 GLIB_UNAVAILABLE_TYPE (2, 28) +#else +#define GLIB_AVAILABLE_IN_2_28 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_28 +#define GLIB_AVAILABLE_MACRO_IN_2_28 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_28 +#define GLIB_AVAILABLE_TYPE_IN_2_28 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_30 +#define GLIB_DEPRECATED_IN_2_30 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_30_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_30 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_30_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_30 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_30_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_30 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_30_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_30 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_30_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_30 +#define GLIB_DEPRECATED_MACRO_IN_2_30_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_30 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_30_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_30 +#define GLIB_DEPRECATED_TYPE_IN_2_30_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_30 +#define GLIB_AVAILABLE_IN_2_30 GLIB_UNAVAILABLE (2, 30) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_30 GLIB_UNAVAILABLE_STATIC_INLINE (2, 30) +#define GLIB_AVAILABLE_MACRO_IN_2_30 GLIB_UNAVAILABLE_MACRO (2, 30) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_30 GLIB_UNAVAILABLE_ENUMERATOR (2, 30) +#define GLIB_AVAILABLE_TYPE_IN_2_30 GLIB_UNAVAILABLE_TYPE (2, 30) +#else +#define GLIB_AVAILABLE_IN_2_30 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_30 +#define GLIB_AVAILABLE_MACRO_IN_2_30 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_30 +#define GLIB_AVAILABLE_TYPE_IN_2_30 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_32 +#define GLIB_DEPRECATED_IN_2_32 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_32_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_32 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_32_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_32 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_32_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_32 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_32_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_32 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_32_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_32 +#define GLIB_DEPRECATED_MACRO_IN_2_32_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_32 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_32_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_32 +#define GLIB_DEPRECATED_TYPE_IN_2_32_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_32 +#define GLIB_AVAILABLE_IN_2_32 GLIB_UNAVAILABLE (2, 32) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_32 GLIB_UNAVAILABLE_STATIC_INLINE (2, 32) +#define GLIB_AVAILABLE_MACRO_IN_2_32 GLIB_UNAVAILABLE_MACRO (2, 32) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_32 GLIB_UNAVAILABLE_ENUMERATOR (2, 32) +#define GLIB_AVAILABLE_TYPE_IN_2_32 GLIB_UNAVAILABLE_TYPE (2, 32) +#else +#define GLIB_AVAILABLE_IN_2_32 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_32 +#define GLIB_AVAILABLE_MACRO_IN_2_32 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_32 +#define GLIB_AVAILABLE_TYPE_IN_2_32 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_34 +#define GLIB_DEPRECATED_IN_2_34 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_34_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_34 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_34_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_34 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_34_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_34 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_34_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_34 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_34_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_34 +#define GLIB_DEPRECATED_MACRO_IN_2_34_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_34 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_34_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_34 +#define GLIB_DEPRECATED_TYPE_IN_2_34_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_34 +#define GLIB_AVAILABLE_IN_2_34 GLIB_UNAVAILABLE (2, 34) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_34 GLIB_UNAVAILABLE_STATIC_INLINE (2, 34) +#define GLIB_AVAILABLE_MACRO_IN_2_34 GLIB_UNAVAILABLE_MACRO (2, 34) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_34 GLIB_UNAVAILABLE_ENUMERATOR (2, 34) +#define GLIB_AVAILABLE_TYPE_IN_2_34 GLIB_UNAVAILABLE_TYPE (2, 34) +#else +#define GLIB_AVAILABLE_IN_2_34 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_34 +#define GLIB_AVAILABLE_MACRO_IN_2_34 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_34 +#define GLIB_AVAILABLE_TYPE_IN_2_34 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_36 +#define GLIB_DEPRECATED_IN_2_36 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_36_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_36 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_36_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_36 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_36_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_36 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_36_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_36 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_36_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_36 +#define GLIB_DEPRECATED_MACRO_IN_2_36_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_36 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_36_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_36 +#define GLIB_DEPRECATED_TYPE_IN_2_36_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_36 +#define GLIB_AVAILABLE_IN_2_36 GLIB_UNAVAILABLE (2, 36) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_36 GLIB_UNAVAILABLE_STATIC_INLINE (2, 36) +#define GLIB_AVAILABLE_MACRO_IN_2_36 GLIB_UNAVAILABLE_MACRO (2, 36) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_36 GLIB_UNAVAILABLE_ENUMERATOR (2, 36) +#define GLIB_AVAILABLE_TYPE_IN_2_36 GLIB_UNAVAILABLE_TYPE (2, 36) +#else +#define GLIB_AVAILABLE_IN_2_36 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_36 +#define GLIB_AVAILABLE_MACRO_IN_2_36 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_36 +#define GLIB_AVAILABLE_TYPE_IN_2_36 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_38 +#define GLIB_DEPRECATED_IN_2_38 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_38_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_38 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_38_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_38 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_38_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_38 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_38_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_38 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_38_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_38 +#define GLIB_DEPRECATED_MACRO_IN_2_38_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_38 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_38_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_38 +#define GLIB_DEPRECATED_TYPE_IN_2_38_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 +#define GLIB_AVAILABLE_IN_2_38 GLIB_UNAVAILABLE (2, 38) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_38 GLIB_UNAVAILABLE_STATIC_INLINE (2, 38) +#define GLIB_AVAILABLE_MACRO_IN_2_38 GLIB_UNAVAILABLE_MACRO (2, 38) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_38 GLIB_UNAVAILABLE_ENUMERATOR (2, 38) +#define GLIB_AVAILABLE_TYPE_IN_2_38 GLIB_UNAVAILABLE_TYPE (2, 38) +#else +#define GLIB_AVAILABLE_IN_2_38 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_38 +#define GLIB_AVAILABLE_MACRO_IN_2_38 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_38 +#define GLIB_AVAILABLE_TYPE_IN_2_38 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_40 +#define GLIB_DEPRECATED_IN_2_40 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_40_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_40 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_40_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_40 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_40_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_40 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_40_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_40 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_40_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_40 +#define GLIB_DEPRECATED_MACRO_IN_2_40_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_40 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_40_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_40 +#define GLIB_DEPRECATED_TYPE_IN_2_40_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_40 +#define GLIB_AVAILABLE_IN_2_40 GLIB_UNAVAILABLE (2, 40) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_40 GLIB_UNAVAILABLE_STATIC_INLINE (2, 40) +#define GLIB_AVAILABLE_MACRO_IN_2_40 GLIB_UNAVAILABLE_MACRO (2, 40) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_40 GLIB_UNAVAILABLE_ENUMERATOR (2, 40) +#define GLIB_AVAILABLE_TYPE_IN_2_40 GLIB_UNAVAILABLE_TYPE (2, 40) +#else +#define GLIB_AVAILABLE_IN_2_40 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_40 +#define GLIB_AVAILABLE_MACRO_IN_2_40 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_40 +#define GLIB_AVAILABLE_TYPE_IN_2_40 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_42 +#define GLIB_DEPRECATED_IN_2_42 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_42_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_42 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_42_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_42 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_42_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_42 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_42_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_42 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_42_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_42 +#define GLIB_DEPRECATED_MACRO_IN_2_42_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_42 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_42_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_42 +#define GLIB_DEPRECATED_TYPE_IN_2_42_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_42 +#define GLIB_AVAILABLE_IN_2_42 GLIB_UNAVAILABLE (2, 42) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_42 GLIB_UNAVAILABLE_STATIC_INLINE (2, 42) +#define GLIB_AVAILABLE_MACRO_IN_2_42 GLIB_UNAVAILABLE_MACRO (2, 42) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_42 GLIB_UNAVAILABLE_ENUMERATOR (2, 42) +#define GLIB_AVAILABLE_TYPE_IN_2_42 GLIB_UNAVAILABLE_TYPE (2, 42) +#else +#define GLIB_AVAILABLE_IN_2_42 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_42 +#define GLIB_AVAILABLE_MACRO_IN_2_42 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_42 +#define GLIB_AVAILABLE_TYPE_IN_2_42 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_44 +#define GLIB_DEPRECATED_IN_2_44 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_44_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_44 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_44_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_44 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_44_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_44 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_44_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_44 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_44_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_44 +#define GLIB_DEPRECATED_MACRO_IN_2_44_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_44 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_44_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_44 +#define GLIB_DEPRECATED_TYPE_IN_2_44_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_44 +#define GLIB_AVAILABLE_IN_2_44 GLIB_UNAVAILABLE (2, 44) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_44 GLIB_UNAVAILABLE_STATIC_INLINE (2, 44) +#define GLIB_AVAILABLE_MACRO_IN_2_44 GLIB_UNAVAILABLE_MACRO (2, 44) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_44 GLIB_UNAVAILABLE_ENUMERATOR (2, 44) +#define GLIB_AVAILABLE_TYPE_IN_2_44 GLIB_UNAVAILABLE_TYPE (2, 44) +#else +#define GLIB_AVAILABLE_IN_2_44 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_44 +#define GLIB_AVAILABLE_MACRO_IN_2_44 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_44 +#define GLIB_AVAILABLE_TYPE_IN_2_44 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_46 +#define GLIB_DEPRECATED_IN_2_46 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_46_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_46 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_46_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_46 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_46_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_46 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_46_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_46 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_46_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_46 +#define GLIB_DEPRECATED_MACRO_IN_2_46_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_46 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_46_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_46 +#define GLIB_DEPRECATED_TYPE_IN_2_46_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_46 +#define GLIB_AVAILABLE_IN_2_46 GLIB_UNAVAILABLE (2, 46) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_46 GLIB_UNAVAILABLE_STATIC_INLINE (2, 46) +#define GLIB_AVAILABLE_MACRO_IN_2_46 GLIB_UNAVAILABLE_MACRO (2, 46) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_46 GLIB_UNAVAILABLE_ENUMERATOR (2, 46) +#define GLIB_AVAILABLE_TYPE_IN_2_46 GLIB_UNAVAILABLE_TYPE (2, 46) +#else +#define GLIB_AVAILABLE_IN_2_46 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_46 +#define GLIB_AVAILABLE_MACRO_IN_2_46 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_46 +#define GLIB_AVAILABLE_TYPE_IN_2_46 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_48 +#define GLIB_DEPRECATED_IN_2_48 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_48_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_48 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_48_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_48 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_48_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_48 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_48_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_48 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_48_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_48 +#define GLIB_DEPRECATED_MACRO_IN_2_48_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_48 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_48_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_48 +#define GLIB_DEPRECATED_TYPE_IN_2_48_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_48 +#define GLIB_AVAILABLE_IN_2_48 GLIB_UNAVAILABLE (2, 48) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_48 GLIB_UNAVAILABLE_STATIC_INLINE (2, 48) +#define GLIB_AVAILABLE_MACRO_IN_2_48 GLIB_UNAVAILABLE_MACRO (2, 48) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_48 GLIB_UNAVAILABLE_ENUMERATOR (2, 48) +#define GLIB_AVAILABLE_TYPE_IN_2_48 GLIB_UNAVAILABLE_TYPE (2, 48) +#else +#define GLIB_AVAILABLE_IN_2_48 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_48 +#define GLIB_AVAILABLE_MACRO_IN_2_48 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_48 +#define GLIB_AVAILABLE_TYPE_IN_2_48 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_50 +#define GLIB_DEPRECATED_IN_2_50 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_50_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_50 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_50_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_50 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_50_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_50 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_50_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_50 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_50_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_50 +#define GLIB_DEPRECATED_MACRO_IN_2_50_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_50 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_50_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_50 +#define GLIB_DEPRECATED_TYPE_IN_2_50_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_50 +#define GLIB_AVAILABLE_IN_2_50 GLIB_UNAVAILABLE (2, 50) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_50 GLIB_UNAVAILABLE_STATIC_INLINE (2, 50) +#define GLIB_AVAILABLE_MACRO_IN_2_50 GLIB_UNAVAILABLE_MACRO (2, 50) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_50 GLIB_UNAVAILABLE_ENUMERATOR (2, 50) +#define GLIB_AVAILABLE_TYPE_IN_2_50 GLIB_UNAVAILABLE_TYPE (2, 50) +#else +#define GLIB_AVAILABLE_IN_2_50 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_50 +#define GLIB_AVAILABLE_MACRO_IN_2_50 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_50 +#define GLIB_AVAILABLE_TYPE_IN_2_50 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_52 +#define GLIB_DEPRECATED_IN_2_52 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_52_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_52 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_52_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_52 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_52_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_52 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_52_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_52 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_52_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_52 +#define GLIB_DEPRECATED_MACRO_IN_2_52_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_52 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_52_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_52 +#define GLIB_DEPRECATED_TYPE_IN_2_52_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_52 +#define GLIB_AVAILABLE_IN_2_52 GLIB_UNAVAILABLE (2, 52) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_52 GLIB_UNAVAILABLE_STATIC_INLINE (2, 52) +#define GLIB_AVAILABLE_MACRO_IN_2_52 GLIB_UNAVAILABLE_MACRO (2, 52) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_52 GLIB_UNAVAILABLE_ENUMERATOR (2, 52) +#define GLIB_AVAILABLE_TYPE_IN_2_52 GLIB_UNAVAILABLE_TYPE (2, 52) +#else +#define GLIB_AVAILABLE_IN_2_52 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_52 +#define GLIB_AVAILABLE_MACRO_IN_2_52 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_52 +#define GLIB_AVAILABLE_TYPE_IN_2_52 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_54 +#define GLIB_DEPRECATED_IN_2_54 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_54_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_54 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_54_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_54 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_54_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_54 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_54_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_54 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_54_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_54 +#define GLIB_DEPRECATED_MACRO_IN_2_54_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_54 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_54_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_54 +#define GLIB_DEPRECATED_TYPE_IN_2_54_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_54 +#define GLIB_AVAILABLE_IN_2_54 GLIB_UNAVAILABLE (2, 54) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_54 GLIB_UNAVAILABLE_STATIC_INLINE (2, 54) +#define GLIB_AVAILABLE_MACRO_IN_2_54 GLIB_UNAVAILABLE_MACRO (2, 54) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_54 GLIB_UNAVAILABLE_ENUMERATOR (2, 54) +#define GLIB_AVAILABLE_TYPE_IN_2_54 GLIB_UNAVAILABLE_TYPE (2, 54) +#else +#define GLIB_AVAILABLE_IN_2_54 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_54 +#define GLIB_AVAILABLE_MACRO_IN_2_54 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_54 +#define GLIB_AVAILABLE_TYPE_IN_2_54 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_56 +#define GLIB_DEPRECATED_IN_2_56 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_56_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_56 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_56_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_56 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_56_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_56 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_56_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_56 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_56_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_56 +#define GLIB_DEPRECATED_MACRO_IN_2_56_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_56 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_56_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_56 +#define GLIB_DEPRECATED_TYPE_IN_2_56_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_56 +#define GLIB_AVAILABLE_IN_2_56 GLIB_UNAVAILABLE (2, 56) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_56 GLIB_UNAVAILABLE_STATIC_INLINE (2, 56) +#define GLIB_AVAILABLE_MACRO_IN_2_56 GLIB_UNAVAILABLE_MACRO (2, 56) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_56 GLIB_UNAVAILABLE_ENUMERATOR (2, 56) +#define GLIB_AVAILABLE_TYPE_IN_2_56 GLIB_UNAVAILABLE_TYPE (2, 56) +#else +#define GLIB_AVAILABLE_IN_2_56 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_56 +#define GLIB_AVAILABLE_MACRO_IN_2_56 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_56 +#define GLIB_AVAILABLE_TYPE_IN_2_56 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_58 +#define GLIB_DEPRECATED_IN_2_58 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_58_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_58 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_58_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_58 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_58_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_58 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_58_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_58 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_58_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_58 +#define GLIB_DEPRECATED_MACRO_IN_2_58_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_58 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_58_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_58 +#define GLIB_DEPRECATED_TYPE_IN_2_58_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_58 +#define GLIB_AVAILABLE_IN_2_58 GLIB_UNAVAILABLE (2, 58) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_58 GLIB_UNAVAILABLE_STATIC_INLINE (2, 58) +#define GLIB_AVAILABLE_MACRO_IN_2_58 GLIB_UNAVAILABLE_MACRO (2, 58) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_58 GLIB_UNAVAILABLE_ENUMERATOR (2, 58) +#define GLIB_AVAILABLE_TYPE_IN_2_58 GLIB_UNAVAILABLE_TYPE (2, 58) +#else +#define GLIB_AVAILABLE_IN_2_58 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_58 +#define GLIB_AVAILABLE_MACRO_IN_2_58 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_58 +#define GLIB_AVAILABLE_TYPE_IN_2_58 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_60 +#define GLIB_DEPRECATED_IN_2_60 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_60_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_60 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_60_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_60 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_60_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_60 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_60_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_60 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_60_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_60 +#define GLIB_DEPRECATED_MACRO_IN_2_60_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_60 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_60_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_60 +#define GLIB_DEPRECATED_TYPE_IN_2_60_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_60 +#define GLIB_AVAILABLE_IN_2_60 GLIB_UNAVAILABLE (2, 60) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_60 GLIB_UNAVAILABLE_STATIC_INLINE (2, 60) +#define GLIB_AVAILABLE_MACRO_IN_2_60 GLIB_UNAVAILABLE_MACRO (2, 60) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_60 GLIB_UNAVAILABLE_ENUMERATOR (2, 60) +#define GLIB_AVAILABLE_TYPE_IN_2_60 GLIB_UNAVAILABLE_TYPE (2, 60) +#else +#define GLIB_AVAILABLE_IN_2_60 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_60 +#define GLIB_AVAILABLE_MACRO_IN_2_60 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_60 +#define GLIB_AVAILABLE_TYPE_IN_2_60 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_62 +#define GLIB_DEPRECATED_IN_2_62 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_62_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_62 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_62_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_62 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_62_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_62 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_62_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_62 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_62_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_62 +#define GLIB_DEPRECATED_MACRO_IN_2_62_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_62 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_62_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_62 +#define GLIB_DEPRECATED_TYPE_IN_2_62_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_62 +#define GLIB_AVAILABLE_IN_2_62 GLIB_UNAVAILABLE (2, 62) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 GLIB_UNAVAILABLE_STATIC_INLINE (2, 62) +#define GLIB_AVAILABLE_MACRO_IN_2_62 GLIB_UNAVAILABLE_MACRO (2, 62) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_62 GLIB_UNAVAILABLE_ENUMERATOR (2, 62) +#define GLIB_AVAILABLE_TYPE_IN_2_62 GLIB_UNAVAILABLE_TYPE (2, 62) +#else +#define GLIB_AVAILABLE_IN_2_62 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 +#define GLIB_AVAILABLE_MACRO_IN_2_62 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_62 +#define GLIB_AVAILABLE_TYPE_IN_2_62 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_64 +#define GLIB_DEPRECATED_IN_2_64 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_64_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_64 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_64_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_64 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_64_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_64 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_64_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_64 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_64_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_64 +#define GLIB_DEPRECATED_MACRO_IN_2_64_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_64 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_64_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_64 +#define GLIB_DEPRECATED_TYPE_IN_2_64_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_64 +#define GLIB_AVAILABLE_IN_2_64 GLIB_UNAVAILABLE (2, 64) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_64 GLIB_UNAVAILABLE_STATIC_INLINE (2, 64) +#define GLIB_AVAILABLE_MACRO_IN_2_64 GLIB_UNAVAILABLE_MACRO (2, 64) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_64 GLIB_UNAVAILABLE_ENUMERATOR (2, 64) +#define GLIB_AVAILABLE_TYPE_IN_2_64 GLIB_UNAVAILABLE_TYPE (2, 64) +#else +#define GLIB_AVAILABLE_IN_2_64 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_64 +#define GLIB_AVAILABLE_MACRO_IN_2_64 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_64 +#define GLIB_AVAILABLE_TYPE_IN_2_64 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_66 +#define GLIB_DEPRECATED_IN_2_66 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_66_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_66 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_66_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_66 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_66_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_66 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_66_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_66 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_66_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_66 +#define GLIB_DEPRECATED_MACRO_IN_2_66_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_66 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_66_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_66 +#define GLIB_DEPRECATED_TYPE_IN_2_66_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_66 +#define GLIB_AVAILABLE_IN_2_66 GLIB_UNAVAILABLE (2, 66) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_66 GLIB_UNAVAILABLE_STATIC_INLINE (2, 66) +#define GLIB_AVAILABLE_MACRO_IN_2_66 GLIB_UNAVAILABLE_MACRO (2, 66) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_66 GLIB_UNAVAILABLE_ENUMERATOR (2, 66) +#define GLIB_AVAILABLE_TYPE_IN_2_66 GLIB_UNAVAILABLE_TYPE (2, 66) +#else +#define GLIB_AVAILABLE_IN_2_66 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_66 +#define GLIB_AVAILABLE_MACRO_IN_2_66 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_66 +#define GLIB_AVAILABLE_TYPE_IN_2_66 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_68 +#define GLIB_DEPRECATED_IN_2_68 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_68_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_68 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_68_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_68 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_68_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_68 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_68_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_68 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_68_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_68 +#define GLIB_DEPRECATED_MACRO_IN_2_68_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_68 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_68_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_68 +#define GLIB_DEPRECATED_TYPE_IN_2_68_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_68 +#define GLIB_AVAILABLE_IN_2_68 GLIB_UNAVAILABLE (2, 68) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_68 GLIB_UNAVAILABLE_STATIC_INLINE (2, 68) +#define GLIB_AVAILABLE_MACRO_IN_2_68 GLIB_UNAVAILABLE_MACRO (2, 68) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_68 GLIB_UNAVAILABLE_ENUMERATOR (2, 68) +#define GLIB_AVAILABLE_TYPE_IN_2_68 GLIB_UNAVAILABLE_TYPE (2, 68) +#else +#define GLIB_AVAILABLE_IN_2_68 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_68 +#define GLIB_AVAILABLE_MACRO_IN_2_68 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_68 +#define GLIB_AVAILABLE_TYPE_IN_2_68 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_70 +#define GLIB_DEPRECATED_IN_2_70 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_70_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_70 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_70_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_70 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_70_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_70 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_70_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_70 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_70_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_70 +#define GLIB_DEPRECATED_MACRO_IN_2_70_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_70 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_70_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_70 +#define GLIB_DEPRECATED_TYPE_IN_2_70_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_70 +#define GLIB_AVAILABLE_IN_2_70 GLIB_UNAVAILABLE (2, 70) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_70 GLIB_UNAVAILABLE_STATIC_INLINE (2, 70) +#define GLIB_AVAILABLE_MACRO_IN_2_70 GLIB_UNAVAILABLE_MACRO (2, 70) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_70 GLIB_UNAVAILABLE_ENUMERATOR (2, 70) +#define GLIB_AVAILABLE_TYPE_IN_2_70 GLIB_UNAVAILABLE_TYPE (2, 70) +#else +#define GLIB_AVAILABLE_IN_2_70 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_70 +#define GLIB_AVAILABLE_MACRO_IN_2_70 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_70 +#define GLIB_AVAILABLE_TYPE_IN_2_70 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_72 +#define GLIB_DEPRECATED_IN_2_72 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_72_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_72 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_72_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_72 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_72_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_72 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_72_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_72 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_72_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_72 +#define GLIB_DEPRECATED_MACRO_IN_2_72_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_72 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_72_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_72 +#define GLIB_DEPRECATED_TYPE_IN_2_72_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_72 +#define GLIB_AVAILABLE_IN_2_72 GLIB_UNAVAILABLE (2, 72) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_72 GLIB_UNAVAILABLE_STATIC_INLINE (2, 72) +#define GLIB_AVAILABLE_MACRO_IN_2_72 GLIB_UNAVAILABLE_MACRO (2, 72) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_72 GLIB_UNAVAILABLE_ENUMERATOR (2, 72) +#define GLIB_AVAILABLE_TYPE_IN_2_72 GLIB_UNAVAILABLE_TYPE (2, 72) +#else +#define GLIB_AVAILABLE_IN_2_72 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_72 +#define GLIB_AVAILABLE_MACRO_IN_2_72 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_72 +#define GLIB_AVAILABLE_TYPE_IN_2_72 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_74 +#define GLIB_DEPRECATED_IN_2_74 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_74_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_74 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_74_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_74 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_74_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_74 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_74_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_74 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_74_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_74 +#define GLIB_DEPRECATED_MACRO_IN_2_74_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_74 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_74_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_74 +#define GLIB_DEPRECATED_TYPE_IN_2_74_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_74 +#define GLIB_AVAILABLE_IN_2_74 GLIB_UNAVAILABLE (2, 74) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_74 GLIB_UNAVAILABLE_STATIC_INLINE (2, 74) +#define GLIB_AVAILABLE_MACRO_IN_2_74 GLIB_UNAVAILABLE_MACRO (2, 74) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_74 GLIB_UNAVAILABLE_ENUMERATOR (2, 74) +#define GLIB_AVAILABLE_TYPE_IN_2_74 GLIB_UNAVAILABLE_TYPE (2, 74) +#else +#define GLIB_AVAILABLE_IN_2_74 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_74 +#define GLIB_AVAILABLE_MACRO_IN_2_74 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_74 +#define GLIB_AVAILABLE_TYPE_IN_2_74 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_76 +#define GLIB_DEPRECATED_IN_2_76 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_76_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_76 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_76_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_76 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_76_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_76 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_76_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_76 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_76_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_76 +#define GLIB_DEPRECATED_MACRO_IN_2_76_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_76 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_76_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_76 +#define GLIB_DEPRECATED_TYPE_IN_2_76_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_76 +#define GLIB_AVAILABLE_IN_2_76 GLIB_UNAVAILABLE (2, 76) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_76 GLIB_UNAVAILABLE_STATIC_INLINE (2, 76) +#define GLIB_AVAILABLE_MACRO_IN_2_76 GLIB_UNAVAILABLE_MACRO (2, 76) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_76 GLIB_UNAVAILABLE_ENUMERATOR (2, 76) +#define GLIB_AVAILABLE_TYPE_IN_2_76 GLIB_UNAVAILABLE_TYPE (2, 76) +#else +#define GLIB_AVAILABLE_IN_2_76 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_76 +#define GLIB_AVAILABLE_MACRO_IN_2_76 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_76 +#define GLIB_AVAILABLE_TYPE_IN_2_76 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_78 +#define GLIB_DEPRECATED_IN_2_78 GLIB_DEPRECATED +#define GLIB_DEPRECATED_IN_2_78_FOR(f) GLIB_DEPRECATED_FOR (f) +#define GLIB_DEPRECATED_MACRO_IN_2_78 GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_IN_2_78_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_78 GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_78_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GLIB_DEPRECATED_TYPE_IN_2_78 GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_IN_2_78_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GLIB_DEPRECATED_IN_2_78 _GLIB_EXTERN +#define GLIB_DEPRECATED_IN_2_78_FOR(f) _GLIB_EXTERN +#define GLIB_DEPRECATED_MACRO_IN_2_78 +#define GLIB_DEPRECATED_MACRO_IN_2_78_FOR(f) +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_78 +#define GLIB_DEPRECATED_ENUMERATOR_IN_2_78_FOR(f) +#define GLIB_DEPRECATED_TYPE_IN_2_78 +#define GLIB_DEPRECATED_TYPE_IN_2_78_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_78 +#define GLIB_AVAILABLE_IN_2_78 GLIB_UNAVAILABLE (2, 78) +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_78 GLIB_UNAVAILABLE_STATIC_INLINE (2, 78) +#define GLIB_AVAILABLE_MACRO_IN_2_78 GLIB_UNAVAILABLE_MACRO (2, 78) +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_78 GLIB_UNAVAILABLE_ENUMERATOR (2, 78) +#define GLIB_AVAILABLE_TYPE_IN_2_78 GLIB_UNAVAILABLE_TYPE (2, 78) +#else +#define GLIB_AVAILABLE_IN_2_78 _GLIB_EXTERN +#define GLIB_AVAILABLE_STATIC_INLINE_IN_2_78 +#define GLIB_AVAILABLE_MACRO_IN_2_78 +#define GLIB_AVAILABLE_ENUMERATOR_IN_2_78 +#define GLIB_AVAILABLE_TYPE_IN_2_78 +#endif diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/glist.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/glist.h new file mode 100644 index 000000000..2a453b79f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/glist.h @@ -0,0 +1,179 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_LIST_H__ +#define __G_LIST_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +typedef struct _GList GList; + +struct _GList +{ + gpointer data; + GList *next; + GList *prev; +}; + +/* Doubly linked lists + */ +GLIB_AVAILABLE_IN_ALL +GList* g_list_alloc (void) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +void g_list_free (GList *list); +GLIB_AVAILABLE_IN_ALL +void g_list_free_1 (GList *list); +#define g_list_free1 g_list_free_1 +GLIB_AVAILABLE_IN_ALL +void g_list_free_full (GList *list, + GDestroyNotify free_func); +GLIB_AVAILABLE_IN_ALL +GList* g_list_append (GList *list, + gpointer data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GList* g_list_prepend (GList *list, + gpointer data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GList* g_list_insert (GList *list, + gpointer data, + gint position) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GList* g_list_insert_sorted (GList *list, + gpointer data, + GCompareFunc func) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GList* g_list_insert_sorted_with_data (GList *list, + gpointer data, + GCompareDataFunc func, + gpointer user_data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GList* g_list_insert_before (GList *list, + GList *sibling, + gpointer data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_2_62 +GList* g_list_insert_before_link (GList *list, + GList *sibling, + GList *link_) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GList* g_list_concat (GList *list1, + GList *list2) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GList* g_list_remove (GList *list, + gconstpointer data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GList* g_list_remove_all (GList *list, + gconstpointer data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GList* g_list_remove_link (GList *list, + GList *llink) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GList* g_list_delete_link (GList *list, + GList *link_) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GList* g_list_reverse (GList *list) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GList* g_list_copy (GList *list) G_GNUC_WARN_UNUSED_RESULT; + +GLIB_AVAILABLE_IN_2_34 +GList* g_list_copy_deep (GList *list, + GCopyFunc func, + gpointer user_data) G_GNUC_WARN_UNUSED_RESULT; + +GLIB_AVAILABLE_IN_ALL +GList* g_list_nth (GList *list, + guint n); +GLIB_AVAILABLE_IN_ALL +GList* g_list_nth_prev (GList *list, + guint n); +GLIB_AVAILABLE_IN_ALL +GList* g_list_find (GList *list, + gconstpointer data); +GLIB_AVAILABLE_IN_ALL +GList* g_list_find_custom (GList *list, + gconstpointer data, + GCompareFunc func); +GLIB_AVAILABLE_IN_ALL +gint g_list_position (GList *list, + GList *llink); +GLIB_AVAILABLE_IN_ALL +gint g_list_index (GList *list, + gconstpointer data); +GLIB_AVAILABLE_IN_ALL +GList* g_list_last (GList *list); +GLIB_AVAILABLE_IN_ALL +GList* g_list_first (GList *list); +GLIB_AVAILABLE_IN_ALL +guint g_list_length (GList *list); +GLIB_AVAILABLE_IN_ALL +void g_list_foreach (GList *list, + GFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +GList* g_list_sort (GList *list, + GCompareFunc compare_func) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GList* g_list_sort_with_data (GList *list, + GCompareDataFunc compare_func, + gpointer user_data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +gpointer g_list_nth_data (GList *list, + guint n); + +GLIB_AVAILABLE_IN_2_64 +void g_clear_list (GList **list_ptr, + GDestroyNotify destroy); + +#define g_clear_list(list_ptr, destroy) \ + G_STMT_START { \ + GList *_list; \ + \ + _list = *(list_ptr); \ + if (_list) \ + { \ + *list_ptr = NULL; \ + \ + if ((destroy) != NULL) \ + g_list_free_full (_list, (destroy)); \ + else \ + g_list_free (_list); \ + } \ + } G_STMT_END \ + GLIB_AVAILABLE_MACRO_IN_2_64 + + +#define g_list_previous(list) ((list) ? (((GList *)(list))->prev) : NULL) +#define g_list_next(list) ((list) ? (((GList *)(list))->next) : NULL) + +G_END_DECLS + +#endif /* __G_LIST_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmacros.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmacros.h new file mode 100644 index 000000000..a7ed77541 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmacros.h @@ -0,0 +1,1425 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +/* This file must not include any other glib header file and must thus + * not refer to variables from glibconfig.h + */ + +#ifndef __G_MACROS_H__ +#define __G_MACROS_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +/* We include stddef.h to get the system's definition of NULL + */ +#include + +/* + * Note: Clang (but not clang-cl) defines __GNUC__ and __GNUC_MINOR__. + * Both Clang 11.1 on current Arch Linux and Apple's Clang 12.0 define + * __GNUC__ = 4 and __GNUC_MINOR__ = 2. So G_GNUC_CHECK_VERSION(4, 2) on + * current Clang will be 1. + */ +#ifdef __GNUC__ +#define G_GNUC_CHECK_VERSION(major, minor) \ + ((__GNUC__ > (major)) || \ + ((__GNUC__ == (major)) && \ + (__GNUC_MINOR__ >= (minor)))) +#else +#define G_GNUC_CHECK_VERSION(major, minor) 0 +#endif + +/* Here we provide G_GNUC_EXTENSION as an alias for __extension__, + * where this is valid. This allows for warningless compilation of + * "long long" types even in the presence of '-ansi -pedantic'. + */ +#if G_GNUC_CHECK_VERSION(2, 8) +#define G_GNUC_EXTENSION __extension__ +#else +#define G_GNUC_EXTENSION +#endif + +#if !defined (__cplusplus) + +# undef G_CXX_STD_VERSION +# define G_CXX_STD_CHECK_VERSION(version) (0) + +# if defined (__STDC_VERSION__) +# define G_C_STD_VERSION __STDC_VERSION__ +# else +# define G_C_STD_VERSION 199000L +# endif /* defined (__STDC_VERSION__) */ + +# define G_C_STD_CHECK_VERSION(version) ( \ + ((version) >= 199000L && (version) <= G_C_STD_VERSION) || \ + ((version) == 89 && G_C_STD_VERSION >= 199000L) || \ + ((version) == 90 && G_C_STD_VERSION >= 199000L) || \ + ((version) == 99 && G_C_STD_VERSION >= 199901L) || \ + ((version) == 11 && G_C_STD_VERSION >= 201112L) || \ + ((version) == 17 && G_C_STD_VERSION >= 201710L) || \ + 0) + +#else /* defined (__cplusplus) */ + +# undef G_C_STD_VERSION +# define G_C_STD_CHECK_VERSION(version) (0) + +# if defined (_MSVC_LANG) +# define G_CXX_STD_VERSION (_MSVC_LANG > __cplusplus ? _MSVC_LANG : __cplusplus) +# else +# define G_CXX_STD_VERSION __cplusplus +# endif /* defined(_MSVC_LANG) */ + +# define G_CXX_STD_CHECK_VERSION(version) ( \ + ((version) >= 199711L && (version) <= G_CXX_STD_VERSION) || \ + ((version) == 98 && G_CXX_STD_VERSION >= 199711L) || \ + ((version) == 03 && G_CXX_STD_VERSION >= 199711L) || \ + ((version) == 11 && G_CXX_STD_VERSION >= 201103L) || \ + ((version) == 14 && G_CXX_STD_VERSION >= 201402L) || \ + ((version) == 17 && G_CXX_STD_VERSION >= 201703L) || \ + ((version) == 20 && G_CXX_STD_VERSION >= 202002L) || \ + 0) + +#endif /* !defined (__cplusplus) */ + +/* Every compiler that we target supports inlining, but some of them may + * complain about it if we don't say "__inline". If we have C99, or if + * we are using C++, then we can use "inline" directly. + * Otherwise, we say "__inline" to avoid the warning. + * Unfortunately Visual Studio does not define __STDC_VERSION__ (if not + * using /std:cXX) so we need to check whether we are on Visual Studio 2013 + * or earlier to see whether we need to say "__inline" in C mode. + */ +#define G_CAN_INLINE +#ifdef G_C_STD_VERSION +# ifdef _MSC_VER +# if (_MSC_VER < 1900) +# define G_INLINE_DEFINE_NEEDED +# endif +# elif !G_C_STD_CHECK_VERSION (99) +# define G_INLINE_DEFINE_NEEDED +# endif +#endif + +#ifdef G_INLINE_DEFINE_NEEDED +# undef inline +# define inline __inline +#endif + +#undef G_INLINE_DEFINE_NEEDED + +/** + * G_INLINE_FUNC: + * + * This macro used to be used to conditionally define inline functions + * in a compatible way before this feature was supported in all + * compilers. These days, GLib requires inlining support from the + * compiler, so your GLib-using programs can safely assume that the + * "inline" keyword works properly. + * + * Never use this macro anymore. Just say "static inline". + * + * Deprecated: 2.48: Use "static inline" instead + */ + +/* For historical reasons we need to continue to support those who + * define G_IMPLEMENT_INLINES to mean "don't implement this here". + */ +#ifdef G_IMPLEMENT_INLINES +# define G_INLINE_FUNC extern GLIB_DEPRECATED_MACRO_IN_2_48_FOR(static inline) +# undef G_CAN_INLINE +#else +# define G_INLINE_FUNC static inline GLIB_DEPRECATED_MACRO_IN_2_48_FOR(static inline) +#endif /* G_IMPLEMENT_INLINES */ + +/* + * Attribute support detection. Works on clang and GCC >= 5 + * https://clang.llvm.org/docs/LanguageExtensions.html#has-attribute + * https://gcc.gnu.org/onlinedocs/cpp/_005f_005fhas_005fattribute.html + */ + +#ifdef __has_attribute +#define g_macro__has_attribute __has_attribute +#else + +/* + * Fallback for GCC < 5 and other compilers not supporting __has_attribute. + */ +#define g_macro__has_attribute(x) g_macro__has_attribute_##x + +#define g_macro__has_attribute___alloc_size__ G_GNUC_CHECK_VERSION (4, 3) +#define g_macro__has_attribute___always_inline__ G_GNUC_CHECK_VERSION (2, 0) +#define g_macro__has_attribute___const__ G_GNUC_CHECK_VERSION (2, 4) +#define g_macro__has_attribute___deprecated__ G_GNUC_CHECK_VERSION (3, 1) +#define g_macro__has_attribute___format__ G_GNUC_CHECK_VERSION (2, 4) +#define g_macro__has_attribute___format_arg__ G_GNUC_CHECK_VERSION (2, 4) +#define g_macro__has_attribute___malloc__ G_GNUC_CHECK_VERSION (2, 96) +#define g_macro__has_attribute___no_instrument_function__ G_GNUC_CHECK_VERSION (2, 4) +#define g_macro__has_attribute___noinline__ G_GNUC_CHECK_VERSION (2, 96) +#define g_macro__has_attribute___noreturn__ (G_GNUC_CHECK_VERSION (2, 8) || (0x5110 <= __SUNPRO_C)) +#define g_macro__has_attribute___pure__ G_GNUC_CHECK_VERSION (2, 96) +#define g_macro__has_attribute___sentinel__ G_GNUC_CHECK_VERSION (4, 0) +#define g_macro__has_attribute___unused__ G_GNUC_CHECK_VERSION (2, 4) +#define g_macro__has_attribute_cleanup G_GNUC_CHECK_VERSION (3, 3) +#define g_macro__has_attribute_fallthrough G_GNUC_CHECK_VERSION (6, 0) +#define g_macro__has_attribute_may_alias G_GNUC_CHECK_VERSION (3, 3) +#define g_macro__has_attribute_warn_unused_result G_GNUC_CHECK_VERSION (3, 4) + +#endif + +/* Provide macros to feature the GCC function attribute. + */ + +/** + * G_GNUC_PURE: + * + * Expands to the GNU C `pure` function attribute if the compiler is gcc. + * Declaring a function as `pure` enables better optimization of calls to + * the function. A `pure` function has no effects except its return value + * and the return value depends only on the parameters and/or global + * variables. + * + * Place the attribute after the declaration, just before the semicolon. + * + * |[ + * gboolean g_type_check_value (const GValue *value) G_GNUC_PURE; + * ]| + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-pure-function-attribute) for more details. + */ + +/** + * G_GNUC_MALLOC: + * + * Expands to the + * [GNU C `malloc` function attribute](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-functions-that-behave-like-malloc) + * if the compiler is gcc. + * Declaring a function as `malloc` enables better optimization of the function, + * but must only be done if the allocation behaviour of the function is fully + * understood, otherwise miscompilation can result. + * + * A function can have the `malloc` attribute if it returns a pointer which is + * guaranteed to not alias with any other pointer valid when the function + * returns, and moreover no pointers to valid objects occur in any storage + * addressed by the returned pointer. + * + * In practice, this means that `G_GNUC_MALLOC` can be used with any function + * which returns unallocated or zeroed-out memory, but not with functions which + * return initialised structures containing other pointers, or with functions + * that reallocate memory. This definition changed in GLib 2.58 to match the + * stricter definition introduced around GCC 5. + * + * Place the attribute after the declaration, just before the semicolon. + * + * |[ + * gpointer g_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); + * ]| + * + * See the + * [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-functions-that-behave-like-malloc) + * for more details. + * + * Since: 2.6 + */ + +/** + * G_GNUC_NO_INLINE: + * + * Expands to the GNU C `noinline` function attribute if the compiler is gcc. + * If the compiler is not gcc, this macro expands to nothing. + * + * Declaring a function as `noinline` prevents the function from being + * considered for inlining. + * + * This macro is provided for retro-compatibility and will be eventually + * deprecated, but %G_NO_INLINE should be used instead. + * + * The attribute may be placed before the declaration or definition, + * right before the `static` keyword. + * + * |[ + * G_GNUC_NO_INLINE + * static int + * do_not_inline_this (void) + * { + * ... + * } + * ]| + * + * See the + * [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-noinline-function-attribute) + * for more details. + * + * See also: %G_NO_INLINE, %G_ALWAYS_INLINE. + * + * Since: 2.58 + */ + +#if g_macro__has_attribute(__pure__) +#define G_GNUC_PURE __attribute__((__pure__)) +#else +#define G_GNUC_PURE +#endif + +#if g_macro__has_attribute(__malloc__) +#define G_GNUC_MALLOC __attribute__ ((__malloc__)) +#else +#define G_GNUC_MALLOC +#endif + +#if g_macro__has_attribute(__noinline__) +#define G_GNUC_NO_INLINE __attribute__ ((__noinline__)) \ + GLIB_AVAILABLE_MACRO_IN_2_58 +#else +#define G_GNUC_NO_INLINE \ + GLIB_AVAILABLE_MACRO_IN_2_58 +#endif + +/** + * G_GNUC_NULL_TERMINATED: + * + * Expands to the GNU C `sentinel` function attribute if the compiler is gcc. + * This function attribute only applies to variadic functions and instructs + * the compiler to check that the argument list is terminated with an + * explicit %NULL. + * + * Place the attribute after the declaration, just before the semicolon. + * + * |[ + * gchar *g_strconcat (const gchar *string1, + * ...) G_GNUC_NULL_TERMINATED; + * ]| + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-sentinel-function-attribute) for more details. + * + * Since: 2.8 + */ +#if g_macro__has_attribute(__sentinel__) +#define G_GNUC_NULL_TERMINATED __attribute__((__sentinel__)) +#else +#define G_GNUC_NULL_TERMINATED +#endif + +/* + * Clang feature detection: http://clang.llvm.org/docs/LanguageExtensions.html + * These are not available on GCC, but since the pre-processor doesn't do + * operator short-circuiting, we can't use it in a statement or we'll get: + * + * error: missing binary operator before token "(" + * + * So we define it to 0 to satisfy the pre-processor. + */ + +#ifdef __has_feature +#define g_macro__has_feature __has_feature +#else +#define g_macro__has_feature(x) 0 +#endif + +#ifdef __has_builtin +#define g_macro__has_builtin __has_builtin +#else +#define g_macro__has_builtin(x) 0 +#endif + +#ifdef __has_extension +#define g_macro__has_extension __has_extension +#else +#define g_macro__has_extension(x) 0 +#endif + +/** + * G_GNUC_ALLOC_SIZE: + * @x: the index of the argument specifying the allocation size + * + * Expands to the GNU C `alloc_size` function attribute if the compiler + * is a new enough gcc. This attribute tells the compiler that the + * function returns a pointer to memory of a size that is specified + * by the @xth function parameter. + * + * Place the attribute after the function declaration, just before the + * semicolon. + * + * |[ + * gpointer g_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); + * ]| + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-alloc_005fsize-function-attribute) for more details. + * + * Since: 2.18 + */ + +/** + * G_GNUC_ALLOC_SIZE2: + * @x: the index of the argument specifying one factor of the allocation size + * @y: the index of the argument specifying the second factor of the allocation size + * + * Expands to the GNU C `alloc_size` function attribute if the compiler is a + * new enough gcc. This attribute tells the compiler that the function returns + * a pointer to memory of a size that is specified by the product of two + * function parameters. + * + * Place the attribute after the function declaration, just before the + * semicolon. + * + * |[ + * gpointer g_malloc_n (gsize n_blocks, + * gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1, 2); + * ]| + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-alloc_005fsize-function-attribute) for more details. + * + * Since: 2.18 + */ +#if g_macro__has_attribute(__alloc_size__) +#define G_GNUC_ALLOC_SIZE(x) __attribute__((__alloc_size__(x))) +#define G_GNUC_ALLOC_SIZE2(x,y) __attribute__((__alloc_size__(x,y))) +#else +#define G_GNUC_ALLOC_SIZE(x) +#define G_GNUC_ALLOC_SIZE2(x,y) +#endif + +/** + * G_GNUC_PRINTF: + * @format_idx: the index of the argument corresponding to the + * format string (the arguments are numbered from 1) + * @arg_idx: the index of the first of the format arguments, or 0 if + * there are no format arguments + * + * Expands to the GNU C `format` function attribute if the compiler is gcc. + * This is used for declaring functions which take a variable number of + * arguments, with the same syntax as `printf()`. It allows the compiler + * to type-check the arguments passed to the function. + * + * Place the attribute after the function declaration, just before the + * semicolon. + * + * See the + * [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-Wformat-3288) + * for more details. + * + * |[ + * gint g_snprintf (gchar *string, + * gulong n, + * gchar const *format, + * ...) G_GNUC_PRINTF (3, 4); + * ]| + */ + +/** + * G_GNUC_SCANF: + * @format_idx: the index of the argument corresponding to + * the format string (the arguments are numbered from 1) + * @arg_idx: the index of the first of the format arguments, or 0 if + * there are no format arguments + * + * Expands to the GNU C `format` function attribute if the compiler is gcc. + * This is used for declaring functions which take a variable number of + * arguments, with the same syntax as `scanf()`. It allows the compiler + * to type-check the arguments passed to the function. + * + * |[ + * int my_scanf (MyStream *stream, + * const char *format, + * ...) G_GNUC_SCANF (2, 3); + * int my_vscanf (MyStream *stream, + * const char *format, + * va_list ap) G_GNUC_SCANF (2, 0); + * ]| + * + * See the + * [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-Wformat-3288) + * for details. + */ + +/** + * G_GNUC_STRFTIME: + * @format_idx: the index of the argument corresponding to + * the format string (the arguments are numbered from 1) + * + * Expands to the GNU C `strftime` format function attribute if the compiler + * is gcc. This is used for declaring functions which take a format argument + * which is passed to `strftime()` or an API implementing its formats. It allows + * the compiler check the format passed to the function. + * + * |[ + * gsize my_strftime (MyBuffer *buffer, + * const char *format, + * const struct tm *tm) G_GNUC_STRFTIME (2); + * ]| + * + * See the + * [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-Wformat-3288) + * for details. + * + * Since: 2.60 + */ + +/** + * G_GNUC_FORMAT: + * @arg_idx: the index of the argument + * + * Expands to the GNU C `format_arg` function attribute if the compiler + * is gcc. This function attribute specifies that a function takes a + * format string for a `printf()`, `scanf()`, `strftime()` or `strfmon()` style + * function and modifies it, so that the result can be passed to a `printf()`, + * `scanf()`, `strftime()` or `strfmon()` style function (with the remaining + * arguments to the format function the same as they would have been + * for the unmodified string). + * + * Place the attribute after the function declaration, just before the + * semicolon. + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-Wformat-nonliteral-1) for more details. + * + * |[ + * gchar *g_dgettext (gchar *domain_name, gchar *msgid) G_GNUC_FORMAT (2); + * ]| + */ + +/** + * G_GNUC_NORETURN: + * + * Expands to the GNU C `noreturn` function attribute if the compiler is gcc. + * It is used for declaring functions which never return. It enables + * optimization of the function, and avoids possible compiler warnings. + * + * Since 2.68, it is recommended that code uses %G_NORETURN instead of + * %G_GNUC_NORETURN, as that works on more platforms and compilers (in + * particular, MSVC and C++11) than %G_GNUC_NORETURN, which works with GCC and + * Clang only. %G_GNUC_NORETURN continues to work, so has not been deprecated + * yet. + * + * Place the attribute after the declaration, just before the semicolon. + * + * |[ + * void g_abort (void) G_GNUC_NORETURN; + * ]| + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-noreturn-function-attribute) for more details. + */ + +/** + * G_GNUC_CONST: + * + * Expands to the GNU C `const` function attribute if the compiler is gcc. + * Declaring a function as `const` enables better optimization of calls to + * the function. A `const` function doesn't examine any values except its + * parameters, and has no effects except its return value. + * + * Place the attribute after the declaration, just before the semicolon. + * + * |[ + * gchar g_ascii_tolower (gchar c) G_GNUC_CONST; + * ]| + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-const-function-attribute) for more details. + * + * A function that has pointer arguments and examines the data pointed to + * must not be declared `const`. Likewise, a function that calls a non-`const` + * function usually must not be `const`. It doesn't make sense for a `const` + * function to return `void`. + */ + +/** + * G_GNUC_UNUSED: + * + * Expands to the GNU C `unused` function attribute if the compiler is gcc. + * It is used for declaring functions and arguments which may never be used. + * It avoids possible compiler warnings. + * + * For functions, place the attribute after the declaration, just before the + * semicolon. For arguments, place the attribute at the beginning of the + * argument declaration. + * + * |[ + * void my_unused_function (G_GNUC_UNUSED gint unused_argument, + * gint other_argument) G_GNUC_UNUSED; + * ]| + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-unused-function-attribute) for more details. + */ + +/** + * G_GNUC_NO_INSTRUMENT: + * + * Expands to the GNU C `no_instrument_function` function attribute if the + * compiler is gcc. Functions with this attribute will not be instrumented + * for profiling, when the compiler is called with the + * `-finstrument-functions` option. + * + * Place the attribute after the declaration, just before the semicolon. + * + * |[ + * int do_uninteresting_things (void) G_GNUC_NO_INSTRUMENT; + * ]| + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-no_005finstrument_005ffunction-function-attribute) for more details. + */ + +#if g_macro__has_attribute(__format__) + +#if !defined (__clang__) && G_GNUC_CHECK_VERSION (4, 4) +#define G_GNUC_PRINTF( format_idx, arg_idx ) \ + __attribute__((__format__ (gnu_printf, format_idx, arg_idx))) +#define G_GNUC_SCANF( format_idx, arg_idx ) \ + __attribute__((__format__ (gnu_scanf, format_idx, arg_idx))) +#define G_GNUC_STRFTIME( format_idx ) \ + __attribute__((__format__ (gnu_strftime, format_idx, 0))) \ + GLIB_AVAILABLE_MACRO_IN_2_60 +#else +#define G_GNUC_PRINTF( format_idx, arg_idx ) \ + __attribute__((__format__ (__printf__, format_idx, arg_idx))) +#define G_GNUC_SCANF( format_idx, arg_idx ) \ + __attribute__((__format__ (__scanf__, format_idx, arg_idx))) +#define G_GNUC_STRFTIME( format_idx ) \ + __attribute__((__format__ (__strftime__, format_idx, 0))) \ + GLIB_AVAILABLE_MACRO_IN_2_60 +#endif + +#else + +#define G_GNUC_PRINTF( format_idx, arg_idx ) +#define G_GNUC_SCANF( format_idx, arg_idx ) +#define G_GNUC_STRFTIME( format_idx ) \ + GLIB_AVAILABLE_MACRO_IN_2_60 + +#endif + +#if g_macro__has_attribute(__format_arg__) +#define G_GNUC_FORMAT(arg_idx) \ + __attribute__ ((__format_arg__ (arg_idx))) +#else +#define G_GNUC_FORMAT( arg_idx ) +#endif + +#if g_macro__has_attribute(__noreturn__) +#define G_GNUC_NORETURN \ + __attribute__ ((__noreturn__)) +#else +/* NOTE: MSVC has __declspec(noreturn) but unlike GCC __attribute__, + * __declspec can only be placed at the start of the function prototype + * and not at the end, so we can't use it without breaking API. + */ +#define G_GNUC_NORETURN +#endif + +#if g_macro__has_attribute(__const__) +#define G_GNUC_CONST \ + __attribute__ ((__const__)) +#else +#define G_GNUC_CONST +#endif + +#if g_macro__has_attribute(__unused__) +#define G_GNUC_UNUSED \ + __attribute__ ((__unused__)) +#else +#define G_GNUC_UNUSED +#endif + +#if g_macro__has_attribute(__no_instrument_function__) +#define G_GNUC_NO_INSTRUMENT \ + __attribute__ ((__no_instrument_function__)) +#else +#define G_GNUC_NO_INSTRUMENT +#endif + +/** + * G_GNUC_FALLTHROUGH: + * + * Expands to the GNU C `fallthrough` statement attribute if the compiler supports it. + * This allows declaring case statement to explicitly fall through in switch + * statements. To enable this feature, use `-Wimplicit-fallthrough` during + * compilation. + * + * Put the attribute right before the case statement you want to fall through + * to. + * + * |[ + * switch (foo) + * { + * case 1: + * g_message ("it's 1"); + * G_GNUC_FALLTHROUGH; + * case 2: + * g_message ("it's either 1 or 2"); + * break; + * } + * ]| + * + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Statement-Attributes.html#index-fallthrough-statement-attribute) for more details. + * + * Since: 2.60 + */ +#if g_macro__has_attribute(fallthrough) +#define G_GNUC_FALLTHROUGH __attribute__((fallthrough)) \ + GLIB_AVAILABLE_MACRO_IN_2_60 +#else +#define G_GNUC_FALLTHROUGH \ + GLIB_AVAILABLE_MACRO_IN_2_60 +#endif + +/** + * G_GNUC_DEPRECATED: + * + * Expands to the GNU C `deprecated` attribute if the compiler is gcc. + * It can be used to mark `typedef`s, variables and functions as deprecated. + * When called with the `-Wdeprecated-declarations` option, + * gcc will generate warnings when deprecated interfaces are used. + * + * Place the attribute after the declaration, just before the semicolon. + * + * |[ + * int my_mistake (void) G_GNUC_DEPRECATED; + * ]| + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-deprecated-function-attribute) for more details. + * + * Since: 2.2 + */ +#if g_macro__has_attribute(__deprecated__) +#define G_GNUC_DEPRECATED __attribute__((__deprecated__)) +#else +#define G_GNUC_DEPRECATED +#endif /* __GNUC__ */ + +/** + * G_GNUC_DEPRECATED_FOR: + * @f: the intended replacement for the deprecated symbol, + * such as the name of a function + * + * Like %G_GNUC_DEPRECATED, but names the intended replacement for the + * deprecated symbol if the version of gcc in use is new enough to support + * custom deprecation messages. + * + * Place the attribute after the declaration, just before the semicolon. + * + * |[ + * int my_mistake (void) G_GNUC_DEPRECATED_FOR(my_replacement); + * ]| + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-deprecated-function-attribute) for more details. + * + * Note that if @f is a macro, it will be expanded in the warning message. + * You can enclose it in quotes to prevent this. (The quotes will show up + * in the warning, but it's better than showing the macro expansion.) + * + * Since: 2.26 + */ +#if G_GNUC_CHECK_VERSION(4, 5) || defined(__clang__) +#define G_GNUC_DEPRECATED_FOR(f) \ + __attribute__((deprecated("Use " #f " instead"))) \ + GLIB_AVAILABLE_MACRO_IN_2_26 +#else +#define G_GNUC_DEPRECATED_FOR(f) G_GNUC_DEPRECATED \ + GLIB_AVAILABLE_MACRO_IN_2_26 +#endif /* __GNUC__ */ + +#ifdef __ICC +#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + _Pragma ("warning (push)") \ + _Pragma ("warning (disable:1478)") +#define G_GNUC_END_IGNORE_DEPRECATIONS \ + _Pragma ("warning (pop)") +#elif G_GNUC_CHECK_VERSION(4, 6) +#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#define G_GNUC_END_IGNORE_DEPRECATIONS \ + _Pragma ("GCC diagnostic pop") +#elif defined (_MSC_VER) && (_MSC_VER >= 1500) && !defined (__clang__) +#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + __pragma (warning (push)) \ + __pragma (warning (disable : 4996)) +#define G_GNUC_END_IGNORE_DEPRECATIONS \ + __pragma (warning (pop)) +#elif defined (__clang__) +#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + _Pragma("clang diagnostic push") \ + _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") +#define G_GNUC_END_IGNORE_DEPRECATIONS \ + _Pragma("clang diagnostic pop") +#else +#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS +#define G_GNUC_END_IGNORE_DEPRECATIONS +#define GLIB_CANNOT_IGNORE_DEPRECATIONS +#endif + +/** + * G_GNUC_MAY_ALIAS: + * + * Expands to the GNU C `may_alias` type attribute if the compiler is gcc. + * Types with this attribute will not be subjected to type-based alias + * analysis, but are assumed to alias with any other type, just like `char`. + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html#index-may_005falias-type-attribute) for details. + * + * Since: 2.14 + */ +#if g_macro__has_attribute(may_alias) +#define G_GNUC_MAY_ALIAS __attribute__((may_alias)) +#else +#define G_GNUC_MAY_ALIAS +#endif + +/** + * G_GNUC_WARN_UNUSED_RESULT: + * + * Expands to the GNU C `warn_unused_result` function attribute if the compiler + * is gcc. This function attribute makes the compiler emit a warning if the + * result of a function call is ignored. + * + * Place the attribute after the declaration, just before the semicolon. + * + * |[ + * GList *g_list_append (GList *list, + * gpointer data) G_GNUC_WARN_UNUSED_RESULT; + * ]| + * + * See the [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-warn_005funused_005fresult-function-attribute) for more details. + * + * Since: 2.10 + */ +#if g_macro__has_attribute(warn_unused_result) +#define G_GNUC_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +#define G_GNUC_WARN_UNUSED_RESULT +#endif /* __GNUC__ */ + +/** + * G_GNUC_FUNCTION: + * + * Expands to "" on all modern compilers, and to __FUNCTION__ on gcc + * version 2.x. Don't use it. + * + * Deprecated: 2.16: Use G_STRFUNC() instead + */ + +/** + * G_GNUC_PRETTY_FUNCTION: + * + * Expands to "" on all modern compilers, and to __PRETTY_FUNCTION__ + * on gcc version 2.x. Don't use it. + * + * Deprecated: 2.16: Use G_STRFUNC() instead + */ + +/* Wrap the gcc __PRETTY_FUNCTION__ and __FUNCTION__ variables with + * macros, so we can refer to them as strings unconditionally. + * usage not-recommended since gcc-3.0 + * + * Mark them as deprecated since 2.26, since that’s when version macros were + * introduced. + */ +#if defined (__GNUC__) && (__GNUC__ < 3) +#define G_GNUC_FUNCTION __FUNCTION__ GLIB_DEPRECATED_MACRO_IN_2_26_FOR(G_STRFUNC) +#define G_GNUC_PRETTY_FUNCTION __PRETTY_FUNCTION__ GLIB_DEPRECATED_MACRO_IN_2_26_FOR(G_STRFUNC) +#else /* !__GNUC__ */ +#define G_GNUC_FUNCTION "" GLIB_DEPRECATED_MACRO_IN_2_26_FOR(G_STRFUNC) +#define G_GNUC_PRETTY_FUNCTION "" GLIB_DEPRECATED_MACRO_IN_2_26_FOR(G_STRFUNC) +#endif /* !__GNUC__ */ + +#if g_macro__has_feature(attribute_analyzer_noreturn) && defined(__clang_analyzer__) +#define G_ANALYZER_ANALYZING 1 +#define G_ANALYZER_NORETURN __attribute__((analyzer_noreturn)) +#elif defined(__COVERITY__) +#define G_ANALYZER_ANALYZING 1 +#define G_ANALYZER_NORETURN __attribute__((noreturn)) +#else +#define G_ANALYZER_ANALYZING 0 +#define G_ANALYZER_NORETURN +#endif + +#define G_STRINGIFY(macro_or_string) G_STRINGIFY_ARG (macro_or_string) +#define G_STRINGIFY_ARG(contents) #contents + +#ifndef __GI_SCANNER__ /* The static assert macro really confuses the introspection parser */ +#define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2 +#define G_PASTE(identifier1,identifier2) G_PASTE_ARGS (identifier1, identifier2) +#if G_CXX_STD_CHECK_VERSION (11) +#define G_STATIC_ASSERT(expr) static_assert (expr, "Expression evaluates to false") +#elif (G_C_STD_CHECK_VERSION (11) || \ + g_macro__has_feature(c_static_assert) || g_macro__has_extension(c_static_assert)) +#define G_STATIC_ASSERT(expr) _Static_assert (expr, "Expression evaluates to false") +#else +#ifdef __COUNTER__ +#define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __COUNTER__)[(expr) ? 1 : -1] G_GNUC_UNUSED +#else +#define G_STATIC_ASSERT(expr) typedef char G_PASTE (_GStaticAssertCompileTimeAssertion_, __LINE__)[(expr) ? 1 : -1] G_GNUC_UNUSED +#endif +#endif /* G_CXX_STD_CHECK_VERSION (11) */ +#define G_STATIC_ASSERT_EXPR(expr) ((void) sizeof (char[(expr) ? 1 : -1])) +#endif /* !__GI_SCANNER__ */ + +/* Provide a string identifying the current code position */ +#if defined (__GNUC__) && (__GNUC__ < 3) && !defined (G_CXX_STD_VERSION) +#define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) ":" __PRETTY_FUNCTION__ "()" +#else +#define G_STRLOC __FILE__ ":" G_STRINGIFY (__LINE__) +#endif + +/* Provide a string identifying the current function, non-concatenatable */ +#if defined (__GNUC__) && defined (G_CXX_STD_VERSION) +#define G_STRFUNC ((const char*) (__PRETTY_FUNCTION__)) +#elif G_C_STD_CHECK_VERSION (99) +#define G_STRFUNC ((const char*) (__func__)) +#elif defined (__GNUC__) || (defined(_MSC_VER) && (_MSC_VER > 1300)) +#define G_STRFUNC ((const char*) (__FUNCTION__)) +#else +#define G_STRFUNC ((const char*) ("???")) +#endif + +/* Guard C code in headers, while including them from C++ */ +#ifdef G_CXX_STD_VERSION +#define G_BEGIN_DECLS extern "C" { +#define G_END_DECLS } +#else +#define G_BEGIN_DECLS +#define G_END_DECLS +#endif + +/* Provide definitions for some commonly used macros. + * Some of them are only provided if they haven't already + * been defined. It is assumed that if they are already + * defined then the current definition is correct. + */ +#ifndef NULL +# if G_CXX_STD_CHECK_VERSION (11) +# define NULL (nullptr) +# elif defined (G_CXX_STD_VERSION) +# define NULL (0L) +# else +# define NULL ((void*) 0) +# endif /* G_CXX_STD_CHECK_VERSION (11) */ +#endif + +#ifndef FALSE +#define FALSE (0) +#endif + +#ifndef TRUE +#define TRUE (!FALSE) +#endif + +#undef MAX +#define MAX(a, b) (((a) > (b)) ? (a) : (b)) + +#undef MIN +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) + +#undef ABS +#define ABS(a) (((a) < 0) ? -(a) : (a)) + +#undef CLAMP +#define CLAMP(x, low, high) (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x))) + +#define G_APPROX_VALUE(a, b, epsilon) \ + (((a) > (b) ? (a) - (b) : (b) - (a)) < (epsilon)) + +/* Count the number of elements in an array. The array must be defined + * as such; using this with a dynamically allocated array will give + * incorrect results. + */ +#define G_N_ELEMENTS(arr) (sizeof (arr) / sizeof ((arr)[0])) + +/* Macros by analogy to GINT_TO_POINTER, GPOINTER_TO_INT + */ +#define GPOINTER_TO_SIZE(p) ((gsize) (p)) +#define GSIZE_TO_POINTER(s) ((gpointer) (gsize) (s)) + +/* Provide convenience macros for handling structure + * fields through their offsets. + */ + +#if G_GNUC_CHECK_VERSION(4, 0) || defined(_MSC_VER) +#define G_STRUCT_OFFSET(struct_type, member) \ + ((glong) offsetof (struct_type, member)) +#else +#define G_STRUCT_OFFSET(struct_type, member) \ + ((glong) ((guint8*) &((struct_type*) 0)->member)) +#endif + +#define G_STRUCT_MEMBER_P(struct_p, struct_offset) \ + ((gpointer) ((guint8*) (struct_p) + (glong) (struct_offset))) +#define G_STRUCT_MEMBER(member_type, struct_p, struct_offset) \ + (*(member_type*) G_STRUCT_MEMBER_P ((struct_p), (struct_offset))) + +/* Provide simple macro statement wrappers: + * G_STMT_START { statements; } G_STMT_END; + * This can be used as a single statement, like: + * if (x) G_STMT_START { ... } G_STMT_END; else ... + * This intentionally does not use compiler extensions like GCC's '({...})' to + * avoid portability issue or side effects when compiled with different compilers. + * MSVC complains about "while(0)": C4127: "Conditional expression is constant", + * so we use __pragma to avoid the warning since the use here is intentional. + */ +#if !(defined (G_STMT_START) && defined (G_STMT_END)) +#define G_STMT_START do +#if defined (_MSC_VER) && (_MSC_VER >= 1500) +#define G_STMT_END \ + __pragma(warning(push)) \ + __pragma(warning(disable:4127)) \ + while(0) \ + __pragma(warning(pop)) +#else +#define G_STMT_END while (0) +#endif +#endif + +/* Provide G_ALIGNOF alignment macro. + * + * Note we cannot use the gcc __alignof__ operator here, as that returns the + * preferred alignment rather than the minimal alignment. See + * https://gitlab.gnome.org/GNOME/glib/merge_requests/538/diffs#note_390790. + */ + +/** + * G_ALIGNOF + * @type: a type-name + * + * Return the minimal alignment required by the platform ABI for values of the given + * type. The address of a variable or struct member of the given type must always be + * a multiple of this alignment. For example, most platforms require int variables + * to be aligned at a 4-byte boundary, so `G_ALIGNOF (int)` is 4 on most platforms. + * + * Note this is not necessarily the same as the value returned by GCC’s + * `__alignof__` operator, which returns the preferred alignment for a type. + * The preferred alignment may be a stricter alignment than the minimal + * alignment. + * + * Since: 2.60 + */ +#if G_C_STD_CHECK_VERSION (11) +#define G_ALIGNOF(type) _Alignof (type) \ + GLIB_AVAILABLE_MACRO_IN_2_60 +#else +#define G_ALIGNOF(type) (G_STRUCT_OFFSET (struct { char a; type b; }, b)) \ + GLIB_AVAILABLE_MACRO_IN_2_60 +#endif + +/** + * G_CONST_RETURN: + * + * If %G_DISABLE_CONST_RETURNS is defined, this macro expands + * to nothing. By default, the macro expands to const. The macro + * can be used in place of const for functions that return a value + * that should not be modified. The purpose of this macro is to allow + * us to turn on const for returned constant strings by default, while + * allowing programmers who find that annoying to turn it off. This macro + * should only be used for return values and for "out" parameters, it + * doesn't make sense for "in" parameters. + * + * Deprecated: 2.30: API providers should replace all existing uses with + * const and API consumers should adjust their code accordingly + */ +#ifdef G_DISABLE_CONST_RETURNS +#define G_CONST_RETURN GLIB_DEPRECATED_MACRO_IN_2_30_FOR(const) +#else +#define G_CONST_RETURN const GLIB_DEPRECATED_MACRO_IN_2_30_FOR(const) +#endif + +/** + * G_NORETURN: + * + * Expands to the GNU C or MSVC `noreturn` function attribute depending on + * the compiler. It is used for declaring functions which never return. + * Enables optimization of the function, and avoids possible compiler warnings. + * + * Note that %G_NORETURN supersedes the previous %G_GNUC_NORETURN macro, which + * will eventually be deprecated. %G_NORETURN supports more platforms. + * + * Place the attribute before the function declaration as follows: + * + * |[ + * G_NORETURN void g_abort (void); + * ]| + * + * Since: 2.68 + */ +/* Note: We can’t annotate this with GLIB_AVAILABLE_MACRO_IN_2_68 because it’s + * used within the GLib headers in function declarations which are always + * evaluated when a header is included. This results in warnings in third party + * code which includes glib.h, even if the third party code doesn’t use the new + * macro itself. */ +#if G_CXX_STD_CHECK_VERSION (11) + /* Use ISO C++11 syntax when the compiler supports it. */ +# define G_NORETURN [[noreturn]] +#elif g_macro__has_attribute(__noreturn__) + /* For compatibility with G_NORETURN_FUNCPTR on clang, use + __attribute__((__noreturn__)), not _Noreturn. */ +# define G_NORETURN __attribute__ ((__noreturn__)) +#elif defined (_MSC_VER) && (1200 <= _MSC_VER) + /* Use MSVC specific syntax. */ +# define G_NORETURN __declspec (noreturn) + /* Use ISO C11 syntax when the compiler supports it. */ +#elif G_C_STD_CHECK_VERSION (11) +# define G_NORETURN _Noreturn +#else +# define G_NORETURN /* empty */ +#endif + +/** + * G_NORETURN_FUNCPTR: + * + * Expands to the GNU C or MSVC `noreturn` function attribute depending on + * the compiler. It is used for declaring function pointers which never return. + * Enables optimization of the function, and avoids possible compiler warnings. + * + * Place the attribute before the function declaration as follows: + * + * |[ + * G_NORETURN_FUNCPTR void (*funcptr) (void); + * ]| + * + * Note that if the function is not a function pointer, you can simply use + * the %G_NORETURN macro as follows: + * + * |[ + * G_NORETURN void g_abort (void); + * ]| + * + * Since: 2.68 + */ +#if g_macro__has_attribute(__noreturn__) +# define G_NORETURN_FUNCPTR __attribute__ ((__noreturn__)) \ + GLIB_AVAILABLE_MACRO_IN_2_68 +#else +# define G_NORETURN_FUNCPTR /* empty */ \ + GLIB_AVAILABLE_MACRO_IN_2_68 +#endif + +/** + * G_ALWAYS_INLINE: + * + * Expands to the GNU C `always_inline` or MSVC `__forceinline` function + * attribute depending on the compiler. It is used for declaring functions + * as always inlined, ignoring the compiler optimization levels. + * + * The attribute may be placed before the declaration or definition, + * right before the `static` keyword. + * + * |[ + * G_ALWAYS_INLINE + * static int + * do_inline_this (void) + * { + * ... + * } + * ]| + * + * See the + * [GNU C documentation](https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-always_005finline-function-attribute) + * and the + * [MSVC documentation](https://docs.microsoft.com/en-us/visualstudio/misc/inline-inline-forceinline) + * + * Since: 2.74 + */ +/* Note: We can’t annotate this with GLIB_AVAILABLE_MACRO_IN_2_74 because it’s + * used within the GLib headers in function declarations which are always + * evaluated when a header is included. This results in warnings in third party + * code which includes glib.h, even if the third party code doesn’t use the new + * macro itself. */ +#if g_macro__has_attribute(__always_inline__) +# if G_CXX_STD_CHECK_VERSION (11) + /* Use ISO C++11 syntax when the compiler supports it. */ +# define G_ALWAYS_INLINE [[gnu::always_inline]] +# else +# define G_ALWAYS_INLINE __attribute__ ((__always_inline__)) +# endif +#elif defined (_MSC_VER) + /* Use MSVC specific syntax. */ +# if G_CXX_STD_CHECK_VERSION (20) && _MSC_VER >= 1927 +# define G_ALWAYS_INLINE [[msvc::forceinline]] +# else +# define G_ALWAYS_INLINE __forceinline +# endif +#else +# define G_ALWAYS_INLINE /* empty */ +#endif + +/** + * G_NO_INLINE: + * + * Expands to the GNU C or MSVC `noinline` function attribute + * depending on the compiler. It is used for declaring functions + * preventing from being considered for inlining. + * + * Note that %G_NO_INLINE supersedes the previous %G_GNUC_NO_INLINE + * macro, which will eventually be deprecated. + * %G_NO_INLINE supports more platforms. + * + * The attribute may be placed before the declaration or definition, + * right before the `static` keyword. + * + * |[ + * G_NO_INLINE + * static int + * do_not_inline_this (void) + * { + * ... + * } + * ]| + * + * Since: 2.74 + */ +/* Note: We can’t annotate this with GLIB_AVAILABLE_MACRO_IN_2_74 because it’s + * used within the GLib headers in function declarations which are always + * evaluated when a header is included. This results in warnings in third party + * code which includes glib.h, even if the third party code doesn’t use the new + * macro itself. */ +#if g_macro__has_attribute(__noinline__) +# if G_CXX_STD_CHECK_VERSION (11) + /* Use ISO C++11 syntax when the compiler supports it. */ +# if defined (__GNUC__) +# define G_NO_INLINE [[gnu::noinline]] +# elif defined (_MSC_VER) +# if G_CXX_STD_CHECK_VERSION (20) && _MSC_VER >= 1927 +# define G_NO_INLINE [[msvc::noinline]] +# else +# define G_NO_INLINE __declspec (noinline) +# endif +# endif +# else +# define G_NO_INLINE __attribute__ ((__noinline__)) +# endif +#elif defined (_MSC_VER) && (1200 <= _MSC_VER) + /* Use MSVC specific syntax. */ + /* Use ISO C++11 syntax when the compiler supports it. */ +# if G_CXX_STD_CHECK_VERSION (20) && _MSC_VER >= 1927 +# define G_NO_INLINE [[msvc::noinline]] +# else +# define G_NO_INLINE __declspec (noinline) +# endif +#else +# define G_NO_INLINE /* empty */ +#endif + +/* + * The G_LIKELY and G_UNLIKELY macros let the programmer give hints to + * the compiler about the expected result of an expression. Some compilers + * can use this information for optimizations. + * + * The _G_BOOLEAN_EXPR macro is intended to trigger a gcc warning when + * putting assignments in g_return_if_fail (). + */ +#if G_GNUC_CHECK_VERSION(2, 0) && defined(__OPTIMIZE__) +#define _G_BOOLEAN_EXPR_IMPL(uniq, expr) \ + G_GNUC_EXTENSION ({ \ + int G_PASTE (_g_boolean_var_, uniq); \ + if (expr) \ + G_PASTE (_g_boolean_var_, uniq) = 1; \ + else \ + G_PASTE (_g_boolean_var_, uniq) = 0; \ + G_PASTE (_g_boolean_var_, uniq); \ +}) +#define _G_BOOLEAN_EXPR(expr) _G_BOOLEAN_EXPR_IMPL (__COUNTER__, expr) +#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1)) +#define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0)) +#else +#define G_LIKELY(expr) (expr) +#define G_UNLIKELY(expr) (expr) +#endif + +#if __GNUC__ >= 4 && !defined(_WIN32) && !defined(__CYGWIN__) +#define G_HAVE_GNUC_VISIBILITY 1 +#endif + +/* GLIB_CANNOT_IGNORE_DEPRECATIONS is defined above for compilers that do not + * have a way to temporarily suppress deprecation warnings. In these cases, + * suppress the deprecated attribute altogether (otherwise a simple #include + * will emit a barrage of warnings). + */ +#if defined(GLIB_CANNOT_IGNORE_DEPRECATIONS) +#define G_DEPRECATED +#elif G_GNUC_CHECK_VERSION(3, 1) || defined(__clang__) +#define G_DEPRECATED __attribute__((__deprecated__)) +#elif defined(_MSC_VER) && (_MSC_VER >= 1300) +#define G_DEPRECATED __declspec(deprecated) +#else +#define G_DEPRECATED +#endif + +#if defined(GLIB_CANNOT_IGNORE_DEPRECATIONS) +#define G_DEPRECATED_FOR(f) G_DEPRECATED +#elif G_GNUC_CHECK_VERSION(4, 5) || defined(__clang__) +#define G_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead"))) +#elif defined(_MSC_FULL_VER) && (_MSC_FULL_VER > 140050320) +#define G_DEPRECATED_FOR(f) __declspec(deprecated("is deprecated. Use '" #f "' instead")) +#else +#define G_DEPRECATED_FOR(f) G_DEPRECATED +#endif + +#if G_GNUC_CHECK_VERSION(4, 5) || defined(__clang__) +#define G_UNAVAILABLE(maj,min) __attribute__((deprecated("Not available before " #maj "." #min))) +#elif defined(_MSC_FULL_VER) && (_MSC_FULL_VER > 140050320) +#define G_UNAVAILABLE(maj,min) __declspec(deprecated("is not available before " #maj "." #min)) +#else +#define G_UNAVAILABLE(maj,min) G_DEPRECATED +#endif + +/* These macros are used to mark deprecated symbols in GLib headers, + * and thus have to be exposed in installed headers. But please + * do *not* use them in other projects. Instead, use G_DEPRECATED + * or define your own wrappers around it. + */ + +#if !defined(GLIB_DISABLE_DEPRECATION_WARNINGS) && \ + (G_GNUC_CHECK_VERSION(4, 6) || \ + __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4)) +#define _GLIB_GNUC_DO_PRAGMA(x) _Pragma(G_STRINGIFY (x)) +#define GLIB_DEPRECATED_MACRO _GLIB_GNUC_DO_PRAGMA(GCC warning "Deprecated pre-processor symbol") +#define GLIB_DEPRECATED_MACRO_FOR(f) \ + _GLIB_GNUC_DO_PRAGMA(GCC warning G_STRINGIFY (Deprecated pre-processor symbol: replace with #f)) +#define GLIB_UNAVAILABLE_MACRO(maj,min) \ + _GLIB_GNUC_DO_PRAGMA(GCC warning G_STRINGIFY (Not available before maj.min)) +#else +#define GLIB_DEPRECATED_MACRO +#define GLIB_DEPRECATED_MACRO_FOR(f) +#define GLIB_UNAVAILABLE_MACRO(maj,min) +#endif + +#if !defined(GLIB_DISABLE_DEPRECATION_WARNINGS) && \ + (G_GNUC_CHECK_VERSION(6, 1) || \ + (defined (__clang_major__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 0)))) +#define GLIB_DEPRECATED_ENUMERATOR G_DEPRECATED +#define GLIB_DEPRECATED_ENUMERATOR_FOR(f) G_DEPRECATED_FOR(f) +#define GLIB_UNAVAILABLE_ENUMERATOR(maj,min) G_UNAVAILABLE(maj,min) +#else +#define GLIB_DEPRECATED_ENUMERATOR +#define GLIB_DEPRECATED_ENUMERATOR_FOR(f) +#define GLIB_UNAVAILABLE_ENUMERATOR(maj,min) +#endif + +#if !defined(GLIB_DISABLE_DEPRECATION_WARNINGS) && \ + (G_GNUC_CHECK_VERSION(3, 1) || \ + (defined (__clang_major__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 0)))) +#define GLIB_DEPRECATED_TYPE G_DEPRECATED +#define GLIB_DEPRECATED_TYPE_FOR(f) G_DEPRECATED_FOR(f) +#define GLIB_UNAVAILABLE_TYPE(maj,min) G_UNAVAILABLE(maj,min) +#else +#define GLIB_DEPRECATED_TYPE +#define GLIB_DEPRECATED_TYPE_FOR(f) +#define GLIB_UNAVAILABLE_TYPE(maj,min) +#endif + +#ifndef __GI_SCANNER__ + +#if g_macro__has_attribute(cleanup) + +/* these macros are private; note that gstdio.h also uses _GLIB_CLEANUP */ +#define _GLIB_AUTOPTR_FUNC_NAME(TypeName) glib_autoptr_cleanup_##TypeName +#define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName +#define _GLIB_AUTOPTR_TYPENAME(TypeName) TypeName##_autoptr +#define _GLIB_AUTOPTR_LIST_FUNC_NAME(TypeName) glib_listautoptr_cleanup_##TypeName +#define _GLIB_AUTOPTR_LIST_TYPENAME(TypeName) TypeName##_listautoptr +#define _GLIB_AUTOPTR_SLIST_FUNC_NAME(TypeName) glib_slistautoptr_cleanup_##TypeName +#define _GLIB_AUTOPTR_SLIST_TYPENAME(TypeName) TypeName##_slistautoptr +#define _GLIB_AUTOPTR_QUEUE_FUNC_NAME(TypeName) glib_queueautoptr_cleanup_##TypeName +#define _GLIB_AUTOPTR_QUEUE_TYPENAME(TypeName) TypeName##_queueautoptr +#define _GLIB_AUTO_FUNC_NAME(TypeName) glib_auto_cleanup_##TypeName +#define _GLIB_CLEANUP(func) __attribute__((cleanup(func))) +#define _GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS(TypeName, ParentName, cleanup) \ + typedef TypeName *_GLIB_AUTOPTR_TYPENAME(TypeName); \ + typedef GList *_GLIB_AUTOPTR_LIST_TYPENAME(TypeName); \ + typedef GSList *_GLIB_AUTOPTR_SLIST_TYPENAME(TypeName); \ + typedef GQueue *_GLIB_AUTOPTR_QUEUE_TYPENAME(TypeName); \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + static G_GNUC_UNUSED inline void _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (TypeName *_ptr) \ + { if (_ptr) (cleanup) ((ParentName *) _ptr); } \ + static G_GNUC_UNUSED inline void _GLIB_AUTOPTR_FUNC_NAME(TypeName) (TypeName **_ptr) \ + { _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) (*_ptr); } \ + static G_GNUC_UNUSED inline void _GLIB_AUTOPTR_LIST_FUNC_NAME(TypeName) (GList **_l) \ + { g_list_free_full (*_l, (GDestroyNotify) (void(*)(void)) cleanup); } \ + static G_GNUC_UNUSED inline void _GLIB_AUTOPTR_SLIST_FUNC_NAME(TypeName) (GSList **_l) \ + { g_slist_free_full (*_l, (GDestroyNotify) (void(*)(void)) cleanup); } \ + static G_GNUC_UNUSED inline void _GLIB_AUTOPTR_QUEUE_FUNC_NAME(TypeName) (GQueue **_q) \ + { if (*_q) g_queue_free_full (*_q, (GDestroyNotify) (void(*)(void)) cleanup); } \ + G_GNUC_END_IGNORE_DEPRECATIONS +#define _GLIB_DEFINE_AUTOPTR_CHAINUP(ModuleObjName, ParentName) \ + _GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS(ModuleObjName, ParentName, _GLIB_AUTOPTR_CLEAR_FUNC_NAME(ParentName)) + + +/* these macros are API */ +#define G_DEFINE_AUTOPTR_CLEANUP_FUNC(TypeName, func) \ + _GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS(TypeName, TypeName, func) +#define G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(TypeName, func) \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + static G_GNUC_UNUSED inline void _GLIB_AUTO_FUNC_NAME(TypeName) (TypeName *_ptr) { (func) (_ptr); } \ + G_GNUC_END_IGNORE_DEPRECATIONS +#define G_DEFINE_AUTO_CLEANUP_FREE_FUNC(TypeName, func, none) \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + static G_GNUC_UNUSED inline void _GLIB_AUTO_FUNC_NAME(TypeName) (TypeName *_ptr) { if (*_ptr != none) (func) (*_ptr); } \ + G_GNUC_END_IGNORE_DEPRECATIONS +#define g_autoptr(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_TYPENAME(TypeName) +#define g_autolist(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_LIST_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_LIST_TYPENAME(TypeName) +#define g_autoslist(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_SLIST_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_SLIST_TYPENAME(TypeName) +#define g_autoqueue(TypeName) _GLIB_CLEANUP(_GLIB_AUTOPTR_QUEUE_FUNC_NAME(TypeName)) _GLIB_AUTOPTR_QUEUE_TYPENAME(TypeName) +#define g_auto(TypeName) _GLIB_CLEANUP(_GLIB_AUTO_FUNC_NAME(TypeName)) TypeName +#define g_autofree _GLIB_CLEANUP(g_autoptr_cleanup_generic_gfree) + +#else /* not GNU C */ +/* this (dummy) macro is private */ +#define _GLIB_DEFINE_AUTOPTR_CHAINUP(ModuleObjName, ParentName) + +/* these (dummy) macros are API */ +#define G_DEFINE_AUTOPTR_CLEANUP_FUNC(TypeName, func) +#define G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(TypeName, func) +#define G_DEFINE_AUTO_CLEANUP_FREE_FUNC(TypeName, func, none) + +/* no declaration of g_auto() or g_autoptr() here */ +#endif /* __GNUC__ */ + +#else + +#define _GLIB_DEFINE_AUTOPTR_CHAINUP(ModuleObjName, ParentName) + +#define G_DEFINE_AUTOPTR_CLEANUP_FUNC(TypeName, func) +#define G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(TypeName, func) +#define G_DEFINE_AUTO_CLEANUP_FREE_FUNC(TypeName, func, none) + +#endif /* __GI_SCANNER__ */ + +/** + * G_SIZEOF_MEMBER: + * @struct_type: a structure type, e.g. #GOutputVector + * @member: a field in the structure, e.g. `size` + * + * Returns the size of @member in the struct definition without having a + * declared instance of @struct_type. + * + * Returns: the size of @member in bytes. + * + * Since: 2.64 + */ +#define G_SIZEOF_MEMBER(struct_type, member) \ + GLIB_AVAILABLE_MACRO_IN_2_64 \ + sizeof (((struct_type *) 0)->member) + +#endif /* __G_MACROS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmain.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmain.h new file mode 100644 index 000000000..14a1d2b06 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmain.h @@ -0,0 +1,862 @@ +/* gmain.h - the GLib Main loop + * Copyright (C) 1998-2000 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_MAIN_H__ +#define __G_MAIN_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include + +G_BEGIN_DECLS + +typedef enum /*< flags >*/ +{ + G_IO_IN GLIB_SYSDEF_POLLIN, + G_IO_OUT GLIB_SYSDEF_POLLOUT, + G_IO_PRI GLIB_SYSDEF_POLLPRI, + G_IO_ERR GLIB_SYSDEF_POLLERR, + G_IO_HUP GLIB_SYSDEF_POLLHUP, + G_IO_NVAL GLIB_SYSDEF_POLLNVAL +} GIOCondition; + +/** + * GMainContextFlags: + * @G_MAIN_CONTEXT_FLAGS_NONE: Default behaviour. + * @G_MAIN_CONTEXT_FLAGS_OWNERLESS_POLLING: Assume that polling for events will + * free the thread to process other jobs. That's useful if you're using + * `g_main_context_{prepare,query,check,dispatch}` to integrate GMainContext in + * other event loops. + * + * Flags to pass to g_main_context_new_with_flags() which affect the behaviour + * of a #GMainContext. + * + * Since: 2.72 + */ +GLIB_AVAILABLE_TYPE_IN_2_72 +typedef enum /*< flags >*/ +{ + G_MAIN_CONTEXT_FLAGS_NONE = 0, + G_MAIN_CONTEXT_FLAGS_OWNERLESS_POLLING = 1 +} GMainContextFlags; + + +/** + * GMainContext: + * + * The `GMainContext` struct is an opaque data + * type representing a set of sources to be handled in a main loop. + */ +typedef struct _GMainContext GMainContext; + +/** + * GMainLoop: + * + * The `GMainLoop` struct is an opaque data type + * representing the main event loop of a GLib or GTK application. + */ +typedef struct _GMainLoop GMainLoop; + +/** + * GSource: + * + * The `GSource` struct is an opaque data type + * representing an event source. + */ +typedef struct _GSource GSource; +typedef struct _GSourcePrivate GSourcePrivate; + +/** + * GSourceCallbackFuncs: + * @ref: Called when a reference is added to the callback object + * @unref: Called when a reference to the callback object is dropped + * @get: Called to extract the callback function and data from the + * callback object. + * + * The `GSourceCallbackFuncs` struct contains + * functions for managing callback objects. + */ +typedef struct _GSourceCallbackFuncs GSourceCallbackFuncs; + +/** + * GSourceFuncs: + * @prepare: Called before all the file descriptors are polled. If the + * source can determine that it is ready here (without waiting for the + * results of the poll() call) it should return %TRUE. It can also return + * a @timeout_ value which should be the maximum timeout (in milliseconds) + * which should be passed to the poll() call. The actual timeout used will + * be -1 if all sources returned -1, or it will be the minimum of all + * the @timeout_ values returned which were >= 0. Since 2.36 this may + * be %NULL, in which case the effect is as if the function always returns + * %FALSE with a timeout of -1. If @prepare returns a + * timeout and the source also has a ready time set, then the + * lower of the two will be used. + * @check: Called after all the file descriptors are polled. The source + * should return %TRUE if it is ready to be dispatched. Note that some + * time may have passed since the previous prepare function was called, + * so the source should be checked again here. Since 2.36 this may + * be %NULL, in which case the effect is as if the function always returns + * %FALSE. + * @dispatch: Called to dispatch the event source, after it has returned + * %TRUE in either its @prepare or its @check function, or if a ready time + * has been reached. The @dispatch function receives a callback function and + * user data. The callback function may be %NULL if the source was never + * connected to a callback using g_source_set_callback(). The @dispatch + * function should call the callback function with @user_data and whatever + * additional parameters are needed for this type of event source. The + * return value of the @dispatch function should be %G_SOURCE_REMOVE if the + * source should be removed or %G_SOURCE_CONTINUE to keep it. + * @finalize: Called when the source is finalized. At this point, the source + * will have been destroyed, had its callback cleared, and have been removed + * from its #GMainContext, but it will still have its final reference count, + * so methods can be called on it from within this function. + * + * The `GSourceFuncs` struct contains a table of + * functions used to handle event sources in a generic manner. + * + * For idle sources, the prepare and check functions always return %TRUE + * to indicate that the source is always ready to be processed. The prepare + * function also returns a timeout value of 0 to ensure that the poll() call + * doesn't block (since that would be time wasted which could have been spent + * running the idle function). + * + * For timeout sources, the prepare and check functions both return %TRUE + * if the timeout interval has expired. The prepare function also returns + * a timeout value to ensure that the poll() call doesn't block too long + * and miss the next timeout. + * + * For file descriptor sources, the prepare function typically returns %FALSE, + * since it must wait until poll() has been called before it knows whether + * any events need to be processed. It sets the returned timeout to -1 to + * indicate that it doesn't mind how long the poll() call blocks. In the + * check function, it tests the results of the poll() call to see if the + * required condition has been met, and returns %TRUE if so. + */ +typedef struct _GSourceFuncs GSourceFuncs; + +/** + * GPid: + * + * A type which is used to hold a process identification. + * + * On UNIX, processes are identified by a process id (an integer), + * while Windows uses process handles (which are pointers). + * + * GPid is used in GLib only for descendant processes spawned with + * the g_spawn functions. + */ +/* defined in glibconfig.h */ + +/** + * G_PID_FORMAT: + * + * A format specifier that can be used in printf()-style format strings + * when printing a #GPid. + * + * Since: 2.50 + */ +/* defined in glibconfig.h */ + +/** + * GSourceFunc: + * @user_data: data passed to the function, set when the source was + * created with one of the above functions + * + * Specifies the type of function passed to g_timeout_add(), + * g_timeout_add_full(), g_idle_add(), and g_idle_add_full(). + * + * When calling g_source_set_callback(), you may need to cast a function of a + * different type to this type. Use G_SOURCE_FUNC() to avoid warnings about + * incompatible function types. + * + * Returns: %FALSE if the source should be removed. %G_SOURCE_CONTINUE and + * %G_SOURCE_REMOVE are more memorable names for the return value. + */ +typedef gboolean (*GSourceFunc) (gpointer user_data); + +/** + * GSourceOnceFunc: + * @user_data: data passed to the function, set when the source was + * created + * + * A source function that is only called once before being removed from the main + * context automatically. + * + * See: g_idle_add_once(), g_timeout_add_once() + * + * Since: 2.74 + */ +typedef void (* GSourceOnceFunc) (gpointer user_data); + +/** + * G_SOURCE_FUNC: + * @f: a function pointer. + * + * Cast a function pointer to a #GSourceFunc, suppressing warnings from GCC 8 + * onwards with `-Wextra` or `-Wcast-function-type` enabled about the function + * types being incompatible. + * + * For example, the correct type of callback for a source created by + * g_child_watch_source_new() is #GChildWatchFunc, which accepts more arguments + * than #GSourceFunc. Casting the function with `(GSourceFunc)` to call + * g_source_set_callback() will trigger a warning, even though it will be cast + * back to the correct type before it is called by the source. + * + * Since: 2.58 + */ +#define G_SOURCE_FUNC(f) ((GSourceFunc) (void (*)(void)) (f)) GLIB_AVAILABLE_MACRO_IN_2_58 + +/** + * GChildWatchFunc: + * @pid: the process id of the child process + * @wait_status: Status information about the child process, encoded + * in a platform-specific manner + * @user_data: user data passed to g_child_watch_add() + * + * Prototype of a #GChildWatchSource callback, called when a child + * process has exited. + * + * To interpret @wait_status, see the documentation + * for g_spawn_check_wait_status(). In particular, + * on Unix platforms, note that it is usually not equal + * to the integer passed to `exit()` or returned from `main()`. + */ +typedef void (*GChildWatchFunc) (GPid pid, + gint wait_status, + gpointer user_data); + + +/** + * GSourceDisposeFunc: + * @source: #GSource that is currently being disposed + * + * Dispose function for @source. See g_source_set_dispose_function() for + * details. + * + * Since: 2.64 + */ +GLIB_AVAILABLE_TYPE_IN_2_64 +typedef void (*GSourceDisposeFunc) (GSource *source); + +struct _GSource +{ + /*< private >*/ + gpointer callback_data; + GSourceCallbackFuncs *callback_funcs; + + const GSourceFuncs *source_funcs; + guint ref_count; + + GMainContext *context; + + gint priority; + guint flags; + guint source_id; + + GSList *poll_fds; + + GSource *prev; + GSource *next; + + char *name; + + GSourcePrivate *priv; +}; + +struct _GSourceCallbackFuncs +{ + void (*ref) (gpointer cb_data); + void (*unref) (gpointer cb_data); + void (*get) (gpointer cb_data, + GSource *source, + GSourceFunc *func, + gpointer *data); +}; + +/** + * GSourceDummyMarshal: + * + * This is just a placeholder for #GClosureMarshal, + * which cannot be used here for dependency reasons. + */ +typedef void (*GSourceDummyMarshal) (void); + +struct _GSourceFuncs +{ + gboolean (*prepare) (GSource *source, + gint *timeout_);/* Can be NULL */ + gboolean (*check) (GSource *source);/* Can be NULL */ + gboolean (*dispatch) (GSource *source, + GSourceFunc callback, + gpointer user_data); + void (*finalize) (GSource *source); /* Can be NULL */ + + /*< private >*/ + /* For use by g_source_set_closure */ + GSourceFunc closure_callback; + GSourceDummyMarshal closure_marshal; /* Really is of type GClosureMarshal */ +}; + +/* Standard priorities */ + +/** + * G_PRIORITY_HIGH: + * + * Use this for high priority event sources. + * + * It is not used within GLib or GTK. + */ +#define G_PRIORITY_HIGH -100 + +/** + * G_PRIORITY_DEFAULT: + * + * Use this for default priority event sources. + * + * In GLib this priority is used when adding timeout functions + * with g_timeout_add(). In GDK this priority is used for events + * from the X server. + */ +#define G_PRIORITY_DEFAULT 0 + +/** + * G_PRIORITY_HIGH_IDLE: + * + * Use this for high priority idle functions. + * + * GTK uses %G_PRIORITY_HIGH_IDLE + 10 for resizing operations, + * and %G_PRIORITY_HIGH_IDLE + 20 for redrawing operations. (This is + * done to ensure that any pending resizes are processed before any + * pending redraws, so that widgets are not redrawn twice unnecessarily.) + */ +#define G_PRIORITY_HIGH_IDLE 100 + +/** + * G_PRIORITY_DEFAULT_IDLE: + * + * Use this for default priority idle functions. + * + * In GLib this priority is used when adding idle functions with + * g_idle_add(). + */ +#define G_PRIORITY_DEFAULT_IDLE 200 + +/** + * G_PRIORITY_LOW: + * + * Use this for very low priority background tasks. + * + * It is not used within GLib or GTK. + */ +#define G_PRIORITY_LOW 300 + +/** + * G_SOURCE_REMOVE: + * + * Use this macro as the return value of a #GSourceFunc to remove + * the #GSource from the main loop. + * + * Since: 2.32 + */ +#define G_SOURCE_REMOVE FALSE + +/** + * G_SOURCE_CONTINUE: + * + * Use this macro as the return value of a #GSourceFunc to leave + * the #GSource in the main loop. + * + * Since: 2.32 + */ +#define G_SOURCE_CONTINUE TRUE + +/* GMainContext: */ + +GLIB_AVAILABLE_IN_ALL +GMainContext *g_main_context_new (void); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_IN_2_72 +GMainContext *g_main_context_new_with_flags (GMainContextFlags flags); +G_GNUC_END_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_IN_ALL +GMainContext *g_main_context_ref (GMainContext *context); +GLIB_AVAILABLE_IN_ALL +void g_main_context_unref (GMainContext *context); +GLIB_AVAILABLE_IN_ALL +GMainContext *g_main_context_default (void); + +GLIB_AVAILABLE_IN_ALL +gboolean g_main_context_iteration (GMainContext *context, + gboolean may_block); +GLIB_AVAILABLE_IN_ALL +gboolean g_main_context_pending (GMainContext *context); + +/* For implementation of legacy interfaces + */ +GLIB_AVAILABLE_IN_ALL +GSource *g_main_context_find_source_by_id (GMainContext *context, + guint source_id); +GLIB_AVAILABLE_IN_ALL +GSource *g_main_context_find_source_by_user_data (GMainContext *context, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +GSource *g_main_context_find_source_by_funcs_user_data (GMainContext *context, + GSourceFuncs *funcs, + gpointer user_data); + +/* Low level functions for implementing custom main loops. + */ +GLIB_AVAILABLE_IN_ALL +void g_main_context_wakeup (GMainContext *context); +GLIB_AVAILABLE_IN_ALL +gboolean g_main_context_acquire (GMainContext *context); +GLIB_AVAILABLE_IN_ALL +void g_main_context_release (GMainContext *context); +GLIB_AVAILABLE_IN_ALL +gboolean g_main_context_is_owner (GMainContext *context); +GLIB_DEPRECATED_IN_2_58_FOR(g_main_context_is_owner) +gboolean g_main_context_wait (GMainContext *context, + GCond *cond, + GMutex *mutex); + +GLIB_AVAILABLE_IN_ALL +gboolean g_main_context_prepare (GMainContext *context, + gint *priority); +GLIB_AVAILABLE_IN_ALL +gint g_main_context_query (GMainContext *context, + gint max_priority, + gint *timeout_, + GPollFD *fds, + gint n_fds); +GLIB_AVAILABLE_IN_ALL +gboolean g_main_context_check (GMainContext *context, + gint max_priority, + GPollFD *fds, + gint n_fds); +GLIB_AVAILABLE_IN_ALL +void g_main_context_dispatch (GMainContext *context); + +GLIB_AVAILABLE_IN_ALL +void g_main_context_set_poll_func (GMainContext *context, + GPollFunc func); +GLIB_AVAILABLE_IN_ALL +GPollFunc g_main_context_get_poll_func (GMainContext *context); + +/* Low level functions for use by source implementations + */ +GLIB_AVAILABLE_IN_ALL +void g_main_context_add_poll (GMainContext *context, + GPollFD *fd, + gint priority); +GLIB_AVAILABLE_IN_ALL +void g_main_context_remove_poll (GMainContext *context, + GPollFD *fd); + +GLIB_AVAILABLE_IN_ALL +gint g_main_depth (void); +GLIB_AVAILABLE_IN_ALL +GSource *g_main_current_source (void); + +/* GMainContexts for other threads + */ +GLIB_AVAILABLE_IN_ALL +void g_main_context_push_thread_default (GMainContext *context); +GLIB_AVAILABLE_IN_ALL +void g_main_context_pop_thread_default (GMainContext *context); +GLIB_AVAILABLE_IN_ALL +GMainContext *g_main_context_get_thread_default (void); +GLIB_AVAILABLE_IN_ALL +GMainContext *g_main_context_ref_thread_default (void); + +/** + * GMainContextPusher: + * + * Opaque type. See g_main_context_pusher_new() for details. + * + * Since: 2.64 + */ +typedef void GMainContextPusher GLIB_AVAILABLE_TYPE_IN_2_64; + +/** + * g_main_context_pusher_new: + * @main_context: (transfer none): a main context to push + * + * Push @main_context as the new thread-default main context for the current + * thread, using g_main_context_push_thread_default(), and return a new + * #GMainContextPusher. Pop with g_main_context_pusher_free(). Using + * g_main_context_pop_thread_default() on @main_context while a + * #GMainContextPusher exists for it can lead to undefined behaviour. + * + * Using two #GMainContextPushers in the same scope is not allowed, as it leads + * to an undefined pop order. + * + * This is intended to be used with g_autoptr(). Note that g_autoptr() + * is only available when using GCC or clang, so the following example + * will only work with those compilers: + * |[ + * typedef struct + * { + * ... + * GMainContext *context; + * ... + * } MyObject; + * + * static void + * my_object_do_stuff (MyObject *self) + * { + * g_autoptr(GMainContextPusher) pusher = g_main_context_pusher_new (self->context); + * + * // Code with main context as the thread default here + * + * if (cond) + * // No need to pop + * return; + * + * // Optionally early pop + * g_clear_pointer (&pusher, g_main_context_pusher_free); + * + * // Code with main context no longer the thread default here + * } + * ]| + * + * Returns: (transfer full): a #GMainContextPusher + * Since: 2.64 + */ +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_64 +static inline GMainContextPusher * +g_main_context_pusher_new (GMainContext *main_context) +{ + g_main_context_push_thread_default (main_context); + return (GMainContextPusher *) main_context; +} +G_GNUC_END_IGNORE_DEPRECATIONS + +/** + * g_main_context_pusher_free: + * @pusher: (transfer full): a #GMainContextPusher + * + * Pop @pusher’s main context as the thread default main context. + * See g_main_context_pusher_new() for details. + * + * This will pop the #GMainContext as the current thread-default main context, + * but will not call g_main_context_unref() on it. + * + * Since: 2.64 + */ +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_64 +static inline void +g_main_context_pusher_free (GMainContextPusher *pusher) +{ + g_main_context_pop_thread_default ((GMainContext *) pusher); +} +G_GNUC_END_IGNORE_DEPRECATIONS + +/* GMainLoop: */ + +GLIB_AVAILABLE_IN_ALL +GMainLoop *g_main_loop_new (GMainContext *context, + gboolean is_running); +GLIB_AVAILABLE_IN_ALL +void g_main_loop_run (GMainLoop *loop); +GLIB_AVAILABLE_IN_ALL +void g_main_loop_quit (GMainLoop *loop); +GLIB_AVAILABLE_IN_ALL +GMainLoop *g_main_loop_ref (GMainLoop *loop); +GLIB_AVAILABLE_IN_ALL +void g_main_loop_unref (GMainLoop *loop); +GLIB_AVAILABLE_IN_ALL +gboolean g_main_loop_is_running (GMainLoop *loop); +GLIB_AVAILABLE_IN_ALL +GMainContext *g_main_loop_get_context (GMainLoop *loop); + +/* GSource: */ + +GLIB_AVAILABLE_IN_ALL +GSource *g_source_new (GSourceFuncs *source_funcs, + guint struct_size); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_IN_2_64 +void g_source_set_dispose_function (GSource *source, + GSourceDisposeFunc dispose); +G_GNUC_END_IGNORE_DEPRECATIONS + +GLIB_AVAILABLE_IN_ALL +GSource *g_source_ref (GSource *source); +GLIB_AVAILABLE_IN_ALL +void g_source_unref (GSource *source); + +GLIB_AVAILABLE_IN_ALL +guint g_source_attach (GSource *source, + GMainContext *context); +GLIB_AVAILABLE_IN_ALL +void g_source_destroy (GSource *source); + +GLIB_AVAILABLE_IN_ALL +void g_source_set_priority (GSource *source, + gint priority); +GLIB_AVAILABLE_IN_ALL +gint g_source_get_priority (GSource *source); +GLIB_AVAILABLE_IN_ALL +void g_source_set_can_recurse (GSource *source, + gboolean can_recurse); +GLIB_AVAILABLE_IN_ALL +gboolean g_source_get_can_recurse (GSource *source); +GLIB_AVAILABLE_IN_ALL +guint g_source_get_id (GSource *source); + +GLIB_AVAILABLE_IN_ALL +GMainContext *g_source_get_context (GSource *source); + +GLIB_AVAILABLE_IN_ALL +void g_source_set_callback (GSource *source, + GSourceFunc func, + gpointer data, + GDestroyNotify notify); + +GLIB_AVAILABLE_IN_ALL +void g_source_set_funcs (GSource *source, + GSourceFuncs *funcs); +GLIB_AVAILABLE_IN_ALL +gboolean g_source_is_destroyed (GSource *source); + +GLIB_AVAILABLE_IN_ALL +void g_source_set_name (GSource *source, + const char *name); +GLIB_AVAILABLE_IN_2_70 +void g_source_set_static_name (GSource *source, + const char *name); +GLIB_AVAILABLE_IN_ALL +const char * g_source_get_name (GSource *source); +GLIB_AVAILABLE_IN_ALL +void g_source_set_name_by_id (guint tag, + const char *name); + +GLIB_AVAILABLE_IN_2_36 +void g_source_set_ready_time (GSource *source, + gint64 ready_time); +GLIB_AVAILABLE_IN_2_36 +gint64 g_source_get_ready_time (GSource *source); + +#ifdef G_OS_UNIX +GLIB_AVAILABLE_IN_2_36 +gpointer g_source_add_unix_fd (GSource *source, + gint fd, + GIOCondition events); +GLIB_AVAILABLE_IN_2_36 +void g_source_modify_unix_fd (GSource *source, + gpointer tag, + GIOCondition new_events); +GLIB_AVAILABLE_IN_2_36 +void g_source_remove_unix_fd (GSource *source, + gpointer tag); +GLIB_AVAILABLE_IN_2_36 +GIOCondition g_source_query_unix_fd (GSource *source, + gpointer tag); +#endif + +/* Used to implement g_source_connect_closure and internally*/ +GLIB_AVAILABLE_IN_ALL +void g_source_set_callback_indirect (GSource *source, + gpointer callback_data, + GSourceCallbackFuncs *callback_funcs); + +GLIB_AVAILABLE_IN_ALL +void g_source_add_poll (GSource *source, + GPollFD *fd); +GLIB_AVAILABLE_IN_ALL +void g_source_remove_poll (GSource *source, + GPollFD *fd); + +GLIB_AVAILABLE_IN_ALL +void g_source_add_child_source (GSource *source, + GSource *child_source); +GLIB_AVAILABLE_IN_ALL +void g_source_remove_child_source (GSource *source, + GSource *child_source); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_DEPRECATED_IN_2_28_FOR(g_source_get_time) +void g_source_get_current_time (GSource *source, + GTimeVal *timeval); +G_GNUC_END_IGNORE_DEPRECATIONS + +GLIB_AVAILABLE_IN_ALL +gint64 g_source_get_time (GSource *source); + + /* void g_source_connect_closure (GSource *source, + GClosure *closure); + */ + +/* Specific source types + */ +GLIB_AVAILABLE_IN_ALL +GSource *g_idle_source_new (void); +GLIB_AVAILABLE_IN_ALL +GSource *g_child_watch_source_new (GPid pid); +GLIB_AVAILABLE_IN_ALL +GSource *g_timeout_source_new (guint interval); +GLIB_AVAILABLE_IN_ALL +GSource *g_timeout_source_new_seconds (guint interval); + +/* Miscellaneous functions + */ +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_DEPRECATED_IN_2_62_FOR(g_get_real_time) +void g_get_current_time (GTimeVal *result); +G_GNUC_END_IGNORE_DEPRECATIONS + +GLIB_AVAILABLE_IN_ALL +gint64 g_get_monotonic_time (void); +GLIB_AVAILABLE_IN_ALL +gint64 g_get_real_time (void); + + +/* Source manipulation by ID */ +GLIB_AVAILABLE_IN_ALL +gboolean g_source_remove (guint tag); +GLIB_AVAILABLE_IN_ALL +gboolean g_source_remove_by_user_data (gpointer user_data); +GLIB_AVAILABLE_IN_ALL +gboolean g_source_remove_by_funcs_user_data (GSourceFuncs *funcs, + gpointer user_data); + +/** + * GClearHandleFunc: + * @handle_id: the handle ID to clear + * + * Specifies the type of function passed to g_clear_handle_id(). + * The implementation is expected to free the resource identified + * by @handle_id; for instance, if @handle_id is a #GSource ID, + * g_source_remove() can be used. + * + * Since: 2.56 + */ +typedef void (* GClearHandleFunc) (guint handle_id); + +GLIB_AVAILABLE_IN_2_56 +void g_clear_handle_id (guint *tag_ptr, + GClearHandleFunc clear_func); + +#define g_clear_handle_id(tag_ptr, clear_func) \ + G_STMT_START { \ + G_STATIC_ASSERT (sizeof *(tag_ptr) == sizeof (guint)); \ + guint *_tag_ptr = (guint *) (tag_ptr); \ + guint _handle_id; \ + \ + _handle_id = *_tag_ptr; \ + if (_handle_id > 0) \ + { \ + *_tag_ptr = 0; \ + clear_func (_handle_id); \ + } \ + } G_STMT_END \ + GLIB_AVAILABLE_MACRO_IN_2_56 + +/* Idles, child watchers and timeouts */ +GLIB_AVAILABLE_IN_ALL +guint g_timeout_add_full (gint priority, + guint interval, + GSourceFunc function, + gpointer data, + GDestroyNotify notify); +GLIB_AVAILABLE_IN_ALL +guint g_timeout_add (guint interval, + GSourceFunc function, + gpointer data); +GLIB_AVAILABLE_IN_2_74 +guint g_timeout_add_once (guint interval, + GSourceOnceFunc function, + gpointer data); +GLIB_AVAILABLE_IN_ALL +guint g_timeout_add_seconds_full (gint priority, + guint interval, + GSourceFunc function, + gpointer data, + GDestroyNotify notify); +GLIB_AVAILABLE_IN_ALL +guint g_timeout_add_seconds (guint interval, + GSourceFunc function, + gpointer data); +GLIB_AVAILABLE_IN_2_78 +guint g_timeout_add_seconds_once (guint interval, + GSourceOnceFunc function, + gpointer data); +GLIB_AVAILABLE_IN_ALL +guint g_child_watch_add_full (gint priority, + GPid pid, + GChildWatchFunc function, + gpointer data, + GDestroyNotify notify); +GLIB_AVAILABLE_IN_ALL +guint g_child_watch_add (GPid pid, + GChildWatchFunc function, + gpointer data); +GLIB_AVAILABLE_IN_ALL +guint g_idle_add (GSourceFunc function, + gpointer data); +GLIB_AVAILABLE_IN_ALL +guint g_idle_add_full (gint priority, + GSourceFunc function, + gpointer data, + GDestroyNotify notify); +GLIB_AVAILABLE_IN_2_74 +guint g_idle_add_once (GSourceOnceFunc function, + gpointer data); +GLIB_AVAILABLE_IN_ALL +gboolean g_idle_remove_by_data (gpointer data); + +GLIB_AVAILABLE_IN_ALL +void g_main_context_invoke_full (GMainContext *context, + gint priority, + GSourceFunc function, + gpointer data, + GDestroyNotify notify); +GLIB_AVAILABLE_IN_ALL +void g_main_context_invoke (GMainContext *context, + GSourceFunc function, + gpointer data); + +GLIB_AVAILABLE_STATIC_INLINE_IN_2_70 +static inline int +g_steal_fd (int *fd_ptr) +{ + int fd = *fd_ptr; + *fd_ptr = -1; + return fd; +} + +/* Hook for GClosure / GSource integration. Don't touch */ +GLIB_VAR GSourceFuncs g_timeout_funcs; +GLIB_VAR GSourceFuncs g_child_watch_funcs; +GLIB_VAR GSourceFuncs g_idle_funcs; +#ifdef G_OS_UNIX +GLIB_VAR GSourceFuncs g_unix_signal_funcs; +GLIB_VAR GSourceFuncs g_unix_fd_source_funcs; +#endif + +G_END_DECLS + +#endif /* __G_MAIN_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmappedfile.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmappedfile.h new file mode 100644 index 000000000..4f5f6981b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmappedfile.h @@ -0,0 +1,60 @@ +/* GLIB - Library of useful routines for C programming + * gmappedfile.h: Simplified wrapper around the mmap function + * + * Copyright 2005 Matthias Clasen + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __G_MAPPED_FILE_H__ +#define __G_MAPPED_FILE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +typedef struct _GMappedFile GMappedFile; + +GLIB_AVAILABLE_IN_ALL +GMappedFile *g_mapped_file_new (const gchar *filename, + gboolean writable, + GError **error); +GLIB_AVAILABLE_IN_ALL +GMappedFile *g_mapped_file_new_from_fd (gint fd, + gboolean writable, + GError **error); +GLIB_AVAILABLE_IN_ALL +gsize g_mapped_file_get_length (GMappedFile *file); +GLIB_AVAILABLE_IN_ALL +gchar *g_mapped_file_get_contents (GMappedFile *file); +GLIB_AVAILABLE_IN_2_34 +GBytes * g_mapped_file_get_bytes (GMappedFile *file); +GLIB_AVAILABLE_IN_ALL +GMappedFile *g_mapped_file_ref (GMappedFile *file); +GLIB_AVAILABLE_IN_ALL +void g_mapped_file_unref (GMappedFile *file); + +GLIB_DEPRECATED_FOR(g_mapped_file_unref) +void g_mapped_file_free (GMappedFile *file); + +G_END_DECLS + +#endif /* __G_MAPPED_FILE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmarkup.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmarkup.h new file mode 100644 index 000000000..5b5781350 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmarkup.h @@ -0,0 +1,265 @@ +/* gmarkup.h - Simple XML-like string parser/writer + * + * Copyright 2000 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_MARKUP_H__ +#define __G_MARKUP_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +#include +#include + +G_BEGIN_DECLS + +/** + * GMarkupError: + * @G_MARKUP_ERROR_BAD_UTF8: text being parsed was not valid UTF-8 + * @G_MARKUP_ERROR_EMPTY: document contained nothing, or only whitespace + * @G_MARKUP_ERROR_PARSE: document was ill-formed + * @G_MARKUP_ERROR_UNKNOWN_ELEMENT: error should be set by #GMarkupParser + * functions; element wasn't known + * @G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE: error should be set by #GMarkupParser + * functions; attribute wasn't known + * @G_MARKUP_ERROR_INVALID_CONTENT: error should be set by #GMarkupParser + * functions; content was invalid + * @G_MARKUP_ERROR_MISSING_ATTRIBUTE: error should be set by #GMarkupParser + * functions; a required attribute was missing + * + * Error codes returned by markup parsing. + */ +typedef enum +{ + G_MARKUP_ERROR_BAD_UTF8, + G_MARKUP_ERROR_EMPTY, + G_MARKUP_ERROR_PARSE, + /* The following are primarily intended for specific GMarkupParser + * implementations to set. + */ + G_MARKUP_ERROR_UNKNOWN_ELEMENT, + G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, + G_MARKUP_ERROR_INVALID_CONTENT, + G_MARKUP_ERROR_MISSING_ATTRIBUTE +} GMarkupError; + +/** + * G_MARKUP_ERROR: + * + * Error domain for markup parsing. + * Errors in this domain will be from the #GMarkupError enumeration. + * See #GError for information on error domains. + */ +#define G_MARKUP_ERROR g_markup_error_quark () + +GLIB_AVAILABLE_IN_ALL +GQuark g_markup_error_quark (void); + +/** + * GMarkupParseFlags: + * @G_MARKUP_DEFAULT_FLAGS: No special behaviour. Since: 2.74 + * @G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG: flag you should not use + * @G_MARKUP_TREAT_CDATA_AS_TEXT: When this flag is set, CDATA marked + * sections are not passed literally to the @passthrough function of + * the parser. Instead, the content of the section (without the + * ``) is + * passed to the @text function. This flag was added in GLib 2.12 + * @G_MARKUP_PREFIX_ERROR_POSITION: Normally errors caught by GMarkup + * itself have line/column information prefixed to them to let the + * caller know the location of the error. When this flag is set the + * location information is also prefixed to errors generated by the + * #GMarkupParser implementation functions + * @G_MARKUP_IGNORE_QUALIFIED: Ignore (don't report) qualified + * attributes and tags, along with their contents. A qualified + * attribute or tag is one that contains ':' in its name (ie: is in + * another namespace). Since: 2.40. + * + * Flags that affect the behaviour of the parser. + */ +typedef enum +{ + G_MARKUP_DEFAULT_FLAGS GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = 0, + G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0, + G_MARKUP_TREAT_CDATA_AS_TEXT = 1 << 1, + G_MARKUP_PREFIX_ERROR_POSITION = 1 << 2, + G_MARKUP_IGNORE_QUALIFIED = 1 << 3 +} GMarkupParseFlags; + +/** + * GMarkupParseContext: + * + * A parse context is used to parse a stream of bytes that + * you expect to contain marked-up text. + * + * See g_markup_parse_context_new(), #GMarkupParser, and so + * on for more details. + */ +typedef struct _GMarkupParseContext GMarkupParseContext; +typedef struct _GMarkupParser GMarkupParser; + +/** + * GMarkupParser: + * @start_element: Callback to invoke when the opening tag of an element + * is seen. The callback's @attribute_names and @attribute_values parameters + * are %NULL-terminated. + * @end_element: Callback to invoke when the closing tag of an element + * is seen. Note that this is also called for empty tags like + * ``. + * @text: Callback to invoke when some text is seen (text is always + * inside an element). Note that the text of an element may be spread + * over multiple calls of this function. If the + * %G_MARKUP_TREAT_CDATA_AS_TEXT flag is set, this function is also + * called for the content of CDATA marked sections. + * @passthrough: Callback to invoke for comments, processing instructions + * and doctype declarations; if you're re-writing the parsed document, + * write the passthrough text back out in the same position. If the + * %G_MARKUP_TREAT_CDATA_AS_TEXT flag is not set, this function is also + * called for CDATA marked sections. + * @error: Callback to invoke when an error occurs. + * + * Any of the fields in #GMarkupParser can be %NULL, in which case they + * will be ignored. Except for the @error function, any of these callbacks + * can set an error; in particular the %G_MARKUP_ERROR_UNKNOWN_ELEMENT, + * %G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, and %G_MARKUP_ERROR_INVALID_CONTENT + * errors are intended to be set from these callbacks. If you set an error + * from a callback, g_markup_parse_context_parse() will report that error + * back to its caller. + */ +struct _GMarkupParser +{ + /* Called for open tags */ + void (*start_element) (GMarkupParseContext *context, + const gchar *element_name, + const gchar **attribute_names, + const gchar **attribute_values, + gpointer user_data, + GError **error); + + /* Called for close tags */ + void (*end_element) (GMarkupParseContext *context, + const gchar *element_name, + gpointer user_data, + GError **error); + + /* Called for character data */ + /* text is not nul-terminated */ + void (*text) (GMarkupParseContext *context, + const gchar *text, + gsize text_len, + gpointer user_data, + GError **error); + + /* Called for strings that should be re-saved verbatim in this same + * position, but are not otherwise interpretable. At the moment + * this includes comments and processing instructions. + */ + /* text is not nul-terminated. */ + void (*passthrough) (GMarkupParseContext *context, + const gchar *passthrough_text, + gsize text_len, + gpointer user_data, + GError **error); + + /* Called on error, including one set by other + * methods in the vtable. The GError should not be freed. + */ + void (*error) (GMarkupParseContext *context, + GError *error, + gpointer user_data); +}; + +GLIB_AVAILABLE_IN_ALL +GMarkupParseContext *g_markup_parse_context_new (const GMarkupParser *parser, + GMarkupParseFlags flags, + gpointer user_data, + GDestroyNotify user_data_dnotify); +GLIB_AVAILABLE_IN_2_36 +GMarkupParseContext *g_markup_parse_context_ref (GMarkupParseContext *context); +GLIB_AVAILABLE_IN_2_36 +void g_markup_parse_context_unref (GMarkupParseContext *context); +GLIB_AVAILABLE_IN_ALL +void g_markup_parse_context_free (GMarkupParseContext *context); +GLIB_AVAILABLE_IN_ALL +gboolean g_markup_parse_context_parse (GMarkupParseContext *context, + const gchar *text, + gssize text_len, + GError **error); +GLIB_AVAILABLE_IN_ALL +void g_markup_parse_context_push (GMarkupParseContext *context, + const GMarkupParser *parser, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +gpointer g_markup_parse_context_pop (GMarkupParseContext *context); + +GLIB_AVAILABLE_IN_ALL +gboolean g_markup_parse_context_end_parse (GMarkupParseContext *context, + GError **error); +GLIB_AVAILABLE_IN_ALL +const gchar * g_markup_parse_context_get_element (GMarkupParseContext *context); +GLIB_AVAILABLE_IN_ALL +const GSList * g_markup_parse_context_get_element_stack (GMarkupParseContext *context); + +/* For user-constructed error messages, has no precise semantics */ +GLIB_AVAILABLE_IN_ALL +void g_markup_parse_context_get_position (GMarkupParseContext *context, + gint *line_number, + gint *char_number); +GLIB_AVAILABLE_IN_ALL +gpointer g_markup_parse_context_get_user_data (GMarkupParseContext *context); + +/* useful when saving */ +GLIB_AVAILABLE_IN_ALL +gchar* g_markup_escape_text (const gchar *text, + gssize length); + +GLIB_AVAILABLE_IN_ALL +gchar *g_markup_printf_escaped (const char *format, + ...) G_GNUC_PRINTF (1, 2); +GLIB_AVAILABLE_IN_ALL +gchar *g_markup_vprintf_escaped (const char *format, + va_list args) G_GNUC_PRINTF(1, 0); + +typedef enum +{ + G_MARKUP_COLLECT_INVALID, + G_MARKUP_COLLECT_STRING, + G_MARKUP_COLLECT_STRDUP, + G_MARKUP_COLLECT_BOOLEAN, + G_MARKUP_COLLECT_TRISTATE, + + G_MARKUP_COLLECT_OPTIONAL = (1 << 16) +} GMarkupCollectType; + + +/* useful from start_element */ +GLIB_AVAILABLE_IN_ALL +gboolean g_markup_collect_attributes (const gchar *element_name, + const gchar **attribute_names, + const gchar **attribute_values, + GError **error, + GMarkupCollectType first_type, + const gchar *first_attr, + ...); + +G_END_DECLS + +#endif /* __G_MARKUP_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmem.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmem.h new file mode 100644 index 000000000..9f3d42733 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmem.h @@ -0,0 +1,425 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_MEM_H__ +#define __G_MEM_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +/** + * GMemVTable: + * @malloc: function to use for allocating memory. + * @realloc: function to use for reallocating memory. + * @free: function to use to free memory. + * @calloc: function to use for allocating zero-filled memory. + * @try_malloc: function to use for allocating memory without a default error handler. + * @try_realloc: function to use for reallocating memory without a default error handler. + * + * A set of functions used to perform memory allocation. The same #GMemVTable must + * be used for all allocations in the same program; a call to g_mem_set_vtable(), + * if it exists, should be prior to any use of GLib. + * + * This functions related to this has been deprecated in 2.46, and no longer work. + */ +typedef struct _GMemVTable GMemVTable; + + +#if GLIB_SIZEOF_VOID_P > GLIB_SIZEOF_LONG +/** + * G_MEM_ALIGN: + * + * Indicates the number of bytes to which memory will be aligned on the + * current platform. + */ +# define G_MEM_ALIGN GLIB_SIZEOF_VOID_P +#else /* GLIB_SIZEOF_VOID_P <= GLIB_SIZEOF_LONG */ +# define G_MEM_ALIGN GLIB_SIZEOF_LONG +#endif /* GLIB_SIZEOF_VOID_P <= GLIB_SIZEOF_LONG */ + + +/* Memory allocation functions + */ + +GLIB_AVAILABLE_IN_ALL +void (g_free) (gpointer mem); +GLIB_AVAILABLE_IN_2_76 +void g_free_sized (gpointer mem, + size_t size); + +GLIB_AVAILABLE_IN_2_34 +void g_clear_pointer (gpointer *pp, + GDestroyNotify destroy); + +GLIB_AVAILABLE_IN_ALL +gpointer g_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); +GLIB_AVAILABLE_IN_ALL +gpointer g_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); +GLIB_AVAILABLE_IN_ALL +gpointer g_realloc (gpointer mem, + gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +gpointer g_try_malloc (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); +GLIB_AVAILABLE_IN_ALL +gpointer g_try_malloc0 (gsize n_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); +GLIB_AVAILABLE_IN_ALL +gpointer g_try_realloc (gpointer mem, + gsize n_bytes) G_GNUC_WARN_UNUSED_RESULT; + +GLIB_AVAILABLE_IN_ALL +gpointer g_malloc_n (gsize n_blocks, + gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2); +GLIB_AVAILABLE_IN_ALL +gpointer g_malloc0_n (gsize n_blocks, + gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2); +GLIB_AVAILABLE_IN_ALL +gpointer g_realloc_n (gpointer mem, + gsize n_blocks, + gsize n_block_bytes) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +gpointer g_try_malloc_n (gsize n_blocks, + gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2); +GLIB_AVAILABLE_IN_ALL +gpointer g_try_malloc0_n (gsize n_blocks, + gsize n_block_bytes) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE2(1,2); +GLIB_AVAILABLE_IN_ALL +gpointer g_try_realloc_n (gpointer mem, + gsize n_blocks, + gsize n_block_bytes) G_GNUC_WARN_UNUSED_RESULT; + +GLIB_AVAILABLE_IN_2_72 +gpointer g_aligned_alloc (gsize n_blocks, + gsize n_block_bytes, + gsize alignment) G_GNUC_WARN_UNUSED_RESULT G_GNUC_ALLOC_SIZE2(1,2); +GLIB_AVAILABLE_IN_2_72 +gpointer g_aligned_alloc0 (gsize n_blocks, + gsize n_block_bytes, + gsize alignment) G_GNUC_WARN_UNUSED_RESULT G_GNUC_ALLOC_SIZE2(1,2); +GLIB_AVAILABLE_IN_2_72 +void g_aligned_free (gpointer mem); +GLIB_AVAILABLE_IN_2_76 +void g_aligned_free_sized (gpointer mem, + size_t alignment, + size_t size); + +#if defined(glib_typeof) && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_58 +#define g_clear_pointer(pp, destroy) \ + G_STMT_START \ + { \ + G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \ + glib_typeof ((pp)) _pp = (pp); \ + glib_typeof (*(pp)) _ptr = *_pp; \ + *_pp = NULL; \ + if (_ptr) \ + (destroy) (_ptr); \ + } \ + G_STMT_END \ + GLIB_AVAILABLE_MACRO_IN_2_34 +#else /* __GNUC__ */ +#define g_clear_pointer(pp, destroy) \ + G_STMT_START { \ + G_STATIC_ASSERT (sizeof *(pp) == sizeof (gpointer)); \ + /* Only one access, please; work around type aliasing */ \ + union { char *in; gpointer *out; } _pp; \ + gpointer _p; \ + /* This assignment is needed to avoid a gcc warning */ \ + GDestroyNotify _destroy = (GDestroyNotify) (destroy); \ + \ + _pp.in = (char *) (pp); \ + _p = *_pp.out; \ + if (_p) \ + { \ + *_pp.out = NULL; \ + _destroy (_p); \ + } \ + } G_STMT_END \ + GLIB_AVAILABLE_MACRO_IN_2_34 +#endif /* __GNUC__ */ + + +#if G_GNUC_CHECK_VERSION (4, 1) && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_78 && defined(G_HAVE_FREE_SIZED) + +#define g_free(mem) \ + (__builtin_object_size ((mem), 0) != ((size_t) - 1)) ? \ + g_free_sized (mem, __builtin_object_size ((mem), 0)) : (g_free) (mem) + +#endif /* G_GNUC_CHECK_VERSION (4, 1) && && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_78 && defined(G_HAVE_FREE_SIZED) */ + +/** + * g_steal_pointer: + * @pp: (not nullable): a pointer to a pointer + * + * Sets @pp to %NULL, returning the value that was there before. + * + * Conceptually, this transfers the ownership of the pointer from the + * referenced variable to the "caller" of the macro (ie: "steals" the + * reference). + * + * The return value will be properly typed, according to the type of + * @pp. + * + * This can be very useful when combined with g_autoptr() to prevent the + * return value of a function from being automatically freed. Consider + * the following example (which only works on GCC and clang): + * + * |[ + * GObject * + * create_object (void) + * { + * g_autoptr(GObject) obj = g_object_new (G_TYPE_OBJECT, NULL); + * + * if (early_error_case) + * return NULL; + * + * return g_steal_pointer (&obj); + * } + * ]| + * + * It can also be used in similar ways for 'out' parameters and is + * particularly useful for dealing with optional out parameters: + * + * |[ + * gboolean + * get_object (GObject **obj_out) + * { + * g_autoptr(GObject) obj = g_object_new (G_TYPE_OBJECT, NULL); + * + * if (early_error_case) + * return FALSE; + * + * if (obj_out) + * *obj_out = g_steal_pointer (&obj); + * + * return TRUE; + * } + * ]| + * + * In the above example, the object will be automatically freed in the + * early error case and also in the case that %NULL was given for + * @obj_out. + * + * Since: 2.44 + */ +GLIB_AVAILABLE_STATIC_INLINE_IN_2_44 +static inline gpointer +g_steal_pointer (gpointer pp) +{ + gpointer *ptr = (gpointer *) pp; + gpointer ref; + + ref = *ptr; + *ptr = NULL; + + return ref; +} + +/* type safety */ +#if defined(glib_typeof) && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_58 +#define g_steal_pointer(pp) ((glib_typeof (*pp)) (g_steal_pointer) (pp)) +#else /* __GNUC__ */ +/* This version does not depend on gcc extensions, but gcc does not warn + * about incompatible-pointer-types: */ +#define g_steal_pointer(pp) \ + (0 ? (*(pp)) : (g_steal_pointer) (pp)) +#endif /* __GNUC__ */ + +/* Optimise: avoid the call to the (slower) _n function if we can + * determine at compile-time that no overflow happens. + */ +#if defined (__GNUC__) && (__GNUC__ >= 2) && defined (__OPTIMIZE__) +# define _G_NEW(struct_type, n_structs, func) \ + (struct_type *) (G_GNUC_EXTENSION ({ \ + gsize __n = (gsize) (n_structs); \ + gsize __s = sizeof (struct_type); \ + gpointer __p; \ + if (__s == 1) \ + __p = g_##func (__n); \ + else if (__builtin_constant_p (__n) && \ + (__s == 0 || __n <= G_MAXSIZE / __s)) \ + __p = g_##func (__n * __s); \ + else \ + __p = g_##func##_n (__n, __s); \ + __p; \ + })) +# define _G_RENEW(struct_type, mem, n_structs, func) \ + (struct_type *) (G_GNUC_EXTENSION ({ \ + gsize __n = (gsize) (n_structs); \ + gsize __s = sizeof (struct_type); \ + gpointer __p = (gpointer) (mem); \ + if (__s == 1) \ + __p = g_##func (__p, __n); \ + else if (__builtin_constant_p (__n) && \ + (__s == 0 || __n <= G_MAXSIZE / __s)) \ + __p = g_##func (__p, __n * __s); \ + else \ + __p = g_##func##_n (__p, __n, __s); \ + __p; \ + })) + +#else + +/* Unoptimised version: always call the _n() function. */ + +#define _G_NEW(struct_type, n_structs, func) \ + ((struct_type *) g_##func##_n ((n_structs), sizeof (struct_type))) +#define _G_RENEW(struct_type, mem, n_structs, func) \ + ((struct_type *) g_##func##_n (mem, (n_structs), sizeof (struct_type))) + +#endif + +/** + * g_new: + * @struct_type: the type of the elements to allocate + * @n_structs: the number of elements to allocate + * + * Allocates @n_structs elements of type @struct_type. + * The returned pointer is cast to a pointer to the given type. + * If @n_structs is 0 it returns %NULL. + * Care is taken to avoid overflow when calculating the size of the allocated block. + * + * Since the returned pointer is already casted to the right type, + * it is normally unnecessary to cast it explicitly, and doing + * so might hide memory allocation errors. + * + * Returns: a pointer to the allocated memory, cast to a pointer to @struct_type + */ +#define g_new(struct_type, n_structs) _G_NEW (struct_type, n_structs, malloc) +/** + * g_new0: + * @struct_type: the type of the elements to allocate. + * @n_structs: the number of elements to allocate. + * + * Allocates @n_structs elements of type @struct_type, initialized to 0's. + * The returned pointer is cast to a pointer to the given type. + * If @n_structs is 0 it returns %NULL. + * Care is taken to avoid overflow when calculating the size of the allocated block. + * + * Since the returned pointer is already casted to the right type, + * it is normally unnecessary to cast it explicitly, and doing + * so might hide memory allocation errors. + * + * Returns: a pointer to the allocated memory, cast to a pointer to @struct_type. + */ +#define g_new0(struct_type, n_structs) _G_NEW (struct_type, n_structs, malloc0) +/** + * g_renew: + * @struct_type: the type of the elements to allocate + * @mem: the currently allocated memory + * @n_structs: the number of elements to allocate + * + * Reallocates the memory pointed to by @mem, so that it now has space for + * @n_structs elements of type @struct_type. It returns the new address of + * the memory, which may have been moved. + * Care is taken to avoid overflow when calculating the size of the allocated block. + * + * Returns: a pointer to the new allocated memory, cast to a pointer to @struct_type + */ +#define g_renew(struct_type, mem, n_structs) _G_RENEW (struct_type, mem, n_structs, realloc) +/** + * g_try_new: + * @struct_type: the type of the elements to allocate + * @n_structs: the number of elements to allocate + * + * Attempts to allocate @n_structs elements of type @struct_type, and returns + * %NULL on failure. Contrast with g_new(), which aborts the program on failure. + * The returned pointer is cast to a pointer to the given type. + * The function returns %NULL when @n_structs is 0 of if an overflow occurs. + * + * Since: 2.8 + * Returns: a pointer to the allocated memory, cast to a pointer to @struct_type + */ +#define g_try_new(struct_type, n_structs) _G_NEW (struct_type, n_structs, try_malloc) +/** + * g_try_new0: + * @struct_type: the type of the elements to allocate + * @n_structs: the number of elements to allocate + * + * Attempts to allocate @n_structs elements of type @struct_type, initialized + * to 0's, and returns %NULL on failure. Contrast with g_new0(), which aborts + * the program on failure. + * The returned pointer is cast to a pointer to the given type. + * The function returns %NULL when @n_structs is 0 or if an overflow occurs. + * + * Since: 2.8 + * Returns: a pointer to the allocated memory, cast to a pointer to @struct_type + */ +#define g_try_new0(struct_type, n_structs) _G_NEW (struct_type, n_structs, try_malloc0) +/** + * g_try_renew: + * @struct_type: the type of the elements to allocate + * @mem: the currently allocated memory + * @n_structs: the number of elements to allocate + * + * Attempts to reallocate the memory pointed to by @mem, so that it now has + * space for @n_structs elements of type @struct_type, and returns %NULL on + * failure. Contrast with g_renew(), which aborts the program on failure. + * It returns the new address of the memory, which may have been moved. + * The function returns %NULL if an overflow occurs. + * + * Since: 2.8 + * Returns: a pointer to the new allocated memory, cast to a pointer to @struct_type + */ +#define g_try_renew(struct_type, mem, n_structs) _G_RENEW (struct_type, mem, n_structs, try_realloc) + + +/* Memory allocation virtualization for debugging purposes + * g_mem_set_vtable() has to be the very first GLib function called + * if being used + */ +struct _GMemVTable { + gpointer (*malloc) (gsize n_bytes); + gpointer (*realloc) (gpointer mem, + gsize n_bytes); + void (*free) (gpointer mem); + /* optional; set to NULL if not used ! */ + gpointer (*calloc) (gsize n_blocks, + gsize n_block_bytes); + gpointer (*try_malloc) (gsize n_bytes); + gpointer (*try_realloc) (gpointer mem, + gsize n_bytes); +}; +GLIB_DEPRECATED_IN_2_46 +void g_mem_set_vtable (GMemVTable *vtable); +GLIB_DEPRECATED_IN_2_46 +gboolean g_mem_is_system_malloc (void); + +GLIB_VAR gboolean g_mem_gc_friendly; + +/* Memory profiler and checker, has to be enabled via g_mem_set_vtable() + */ +GLIB_VAR GMemVTable *glib_mem_profiler_table; +GLIB_DEPRECATED_IN_2_46 +void g_mem_profile (void); + +G_END_DECLS + +#endif /* __G_MEM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmessages.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmessages.h new file mode 100644 index 000000000..eab6d0678 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gmessages.h @@ -0,0 +1,690 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_MESSAGES_H__ +#define __G_MESSAGES_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include +#include +#include + +G_BEGIN_DECLS + +/* calculate a string size, guaranteed to fit format + args. + */ +GLIB_AVAILABLE_IN_ALL +gsize g_printf_string_upper_bound (const gchar* format, + va_list args) G_GNUC_PRINTF(1, 0); + +/* Log level shift offset for user defined + * log levels (0-7 are used by GLib). + */ +#define G_LOG_LEVEL_USER_SHIFT (8) + +/* Glib log levels and flags. + */ +typedef enum +{ + /* log flags */ + G_LOG_FLAG_RECURSION = 1 << 0, + G_LOG_FLAG_FATAL = 1 << 1, + + /* GLib log levels */ + G_LOG_LEVEL_ERROR = 1 << 2, /* always fatal */ + G_LOG_LEVEL_CRITICAL = 1 << 3, + G_LOG_LEVEL_WARNING = 1 << 4, + G_LOG_LEVEL_MESSAGE = 1 << 5, + G_LOG_LEVEL_INFO = 1 << 6, + G_LOG_LEVEL_DEBUG = 1 << 7, + + G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL) +} GLogLevelFlags; + +/* GLib log levels that are considered fatal by default */ +#define G_LOG_FATAL_MASK (G_LOG_FLAG_RECURSION | G_LOG_LEVEL_ERROR) + +typedef void (*GLogFunc) (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer user_data); + +/* Logging mechanism + */ +GLIB_AVAILABLE_IN_ALL +guint g_log_set_handler (const gchar *log_domain, + GLogLevelFlags log_levels, + GLogFunc log_func, + gpointer user_data); +GLIB_AVAILABLE_IN_2_46 +guint g_log_set_handler_full (const gchar *log_domain, + GLogLevelFlags log_levels, + GLogFunc log_func, + gpointer user_data, + GDestroyNotify destroy); +GLIB_AVAILABLE_IN_ALL +void g_log_remove_handler (const gchar *log_domain, + guint handler_id); +GLIB_AVAILABLE_IN_ALL +void g_log_default_handler (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer unused_data); +GLIB_AVAILABLE_IN_ALL +GLogFunc g_log_set_default_handler (GLogFunc log_func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +void g_log (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *format, + ...) G_GNUC_PRINTF (3, 4); +GLIB_AVAILABLE_IN_ALL +void g_logv (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *format, + va_list args) G_GNUC_PRINTF(3, 0); +GLIB_AVAILABLE_IN_ALL +GLogLevelFlags g_log_set_fatal_mask (const gchar *log_domain, + GLogLevelFlags fatal_mask); +GLIB_AVAILABLE_IN_ALL +GLogLevelFlags g_log_set_always_fatal (GLogLevelFlags fatal_mask); + +/* Structured logging mechanism. */ + +/** + * GLogWriterOutput: + * @G_LOG_WRITER_HANDLED: Log writer has handled the log entry. + * @G_LOG_WRITER_UNHANDLED: Log writer could not handle the log entry. + * + * Return values from #GLogWriterFuncs to indicate whether the given log entry + * was successfully handled by the writer, or whether there was an error in + * handling it (and hence a fallback writer should be used). + * + * If a #GLogWriterFunc ignores a log entry, it should return + * %G_LOG_WRITER_HANDLED. + * + * Since: 2.50 + */ +typedef enum +{ + G_LOG_WRITER_HANDLED = 1, + G_LOG_WRITER_UNHANDLED = 0, +} GLogWriterOutput; + +/** + * GLogField: + * @key: field name (UTF-8 string) + * @value: field value (arbitrary bytes) + * @length: length of @value, in bytes, or -1 if it is nul-terminated + * + * Structure representing a single field in a structured log entry. See + * g_log_structured() for details. + * + * Log fields may contain arbitrary values, including binary with embedded nul + * bytes. If the field contains a string, the string must be UTF-8 encoded and + * have a trailing nul byte. Otherwise, @length must be set to a non-negative + * value. + * + * Since: 2.50 + */ +typedef struct _GLogField GLogField; +struct _GLogField +{ + const gchar *key; + gconstpointer value; + gssize length; +}; + +/** + * GLogWriterFunc: + * @log_level: log level of the message + * @fields: (array length=n_fields): fields forming the message + * @n_fields: number of @fields + * @user_data: user data passed to g_log_set_writer_func() + * + * Writer function for log entries. A log entry is a collection of one or more + * #GLogFields, using the standard [field names from journal + * specification](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html). + * See g_log_structured() for more information. + * + * Writer functions must ignore fields which they do not recognise, unless they + * can write arbitrary binary output, as field values may be arbitrary binary. + * + * @log_level is guaranteed to be included in @fields as the `PRIORITY` field, + * but is provided separately for convenience of deciding whether or where to + * output the log entry. + * + * Writer functions should return %G_LOG_WRITER_HANDLED if they handled the log + * message successfully or if they deliberately ignored it. If there was an + * error handling the message (for example, if the writer function is meant to + * send messages to a remote logging server and there is a network error), it + * should return %G_LOG_WRITER_UNHANDLED. This allows writer functions to be + * chained and fall back to simpler handlers in case of failure. + * + * Returns: %G_LOG_WRITER_HANDLED if the log entry was handled successfully; + * %G_LOG_WRITER_UNHANDLED otherwise + * + * Since: 2.50 + */ +typedef GLogWriterOutput (*GLogWriterFunc) (GLogLevelFlags log_level, + const GLogField *fields, + gsize n_fields, + gpointer user_data); + +GLIB_AVAILABLE_IN_2_50 +void g_log_structured (const gchar *log_domain, + GLogLevelFlags log_level, + ...); +GLIB_AVAILABLE_IN_2_50 +void g_log_structured_array (GLogLevelFlags log_level, + const GLogField *fields, + gsize n_fields); + +GLIB_AVAILABLE_IN_2_50 +void g_log_variant (const gchar *log_domain, + GLogLevelFlags log_level, + GVariant *fields); + +GLIB_AVAILABLE_IN_2_50 +void g_log_set_writer_func (GLogWriterFunc func, + gpointer user_data, + GDestroyNotify user_data_free); + +GLIB_AVAILABLE_IN_2_50 +gboolean g_log_writer_supports_color (gint output_fd); +GLIB_AVAILABLE_IN_2_50 +gboolean g_log_writer_is_journald (gint output_fd); + +GLIB_AVAILABLE_IN_2_50 +gchar *g_log_writer_format_fields (GLogLevelFlags log_level, + const GLogField *fields, + gsize n_fields, + gboolean use_color); + +GLIB_AVAILABLE_IN_2_50 +GLogWriterOutput g_log_writer_journald (GLogLevelFlags log_level, + const GLogField *fields, + gsize n_fields, + gpointer user_data); +GLIB_AVAILABLE_IN_2_50 +GLogWriterOutput g_log_writer_standard_streams (GLogLevelFlags log_level, + const GLogField *fields, + gsize n_fields, + gpointer user_data); +GLIB_AVAILABLE_IN_2_50 +GLogWriterOutput g_log_writer_default (GLogLevelFlags log_level, + const GLogField *fields, + gsize n_fields, + gpointer user_data); + +GLIB_AVAILABLE_IN_2_68 +void g_log_writer_default_set_use_stderr (gboolean use_stderr); +GLIB_AVAILABLE_IN_2_68 +gboolean g_log_writer_default_would_drop (GLogLevelFlags log_level, + const char *log_domain); + +/* G_MESSAGES_DEBUG enablement */ +GLIB_AVAILABLE_IN_2_72 +gboolean g_log_get_debug_enabled (void); +GLIB_AVAILABLE_IN_2_72 +void g_log_set_debug_enabled (gboolean enabled); + +/** + * G_DEBUG_HERE: + * + * A convenience form of g_log_structured(), recommended to be added to + * functions when debugging. It prints the current monotonic time and the code + * location using %G_STRLOC. + * + * Since: 2.50 + */ +#define G_DEBUG_HERE() \ + g_log_structured (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \ + "CODE_FILE", __FILE__, \ + "CODE_LINE", G_STRINGIFY (__LINE__), \ + "CODE_FUNC", G_STRFUNC, \ + "MESSAGE", "%" G_GINT64_FORMAT ": %s", \ + g_get_monotonic_time (), G_STRLOC) + +/* internal */ +void _g_log_fallback_handler (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer unused_data); + +/* Internal functions, used to implement the following macros */ +GLIB_AVAILABLE_IN_ALL +void g_return_if_fail_warning (const char *log_domain, + const char *pretty_function, + const char *expression) G_ANALYZER_NORETURN; +GLIB_AVAILABLE_IN_ALL +void g_warn_message (const char *domain, + const char *file, + int line, + const char *func, + const char *warnexpr) G_ANALYZER_NORETURN; +G_NORETURN +GLIB_DEPRECATED +void g_assert_warning (const char *log_domain, + const char *file, + const int line, + const char *pretty_function, + const char *expression); + +GLIB_AVAILABLE_IN_2_56 +void g_log_structured_standard (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *file, + const gchar *line, + const gchar *func, + const gchar *message_format, + ...) G_GNUC_PRINTF (6, 7); + +#ifndef G_LOG_DOMAIN +#define G_LOG_DOMAIN ((gchar*) 0) +#endif /* G_LOG_DOMAIN */ + +#if defined(G_HAVE_ISO_VARARGS) && !G_ANALYZER_ANALYZING +#if defined(G_LOG_USE_STRUCTURED) && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_56 +#define g_error(...) G_STMT_START { \ + g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, \ + __FILE__, G_STRINGIFY (__LINE__), \ + G_STRFUNC, __VA_ARGS__); \ + for (;;) ; \ + } G_STMT_END +#define g_message(...) g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, \ + __FILE__, G_STRINGIFY (__LINE__), \ + G_STRFUNC, __VA_ARGS__) +#define g_critical(...) g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, \ + __FILE__, G_STRINGIFY (__LINE__), \ + G_STRFUNC, __VA_ARGS__) +#define g_warning(...) g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, \ + __FILE__, G_STRINGIFY (__LINE__), \ + G_STRFUNC, __VA_ARGS__) +#define g_info(...) g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, \ + __FILE__, G_STRINGIFY (__LINE__), \ + G_STRFUNC, __VA_ARGS__) +#define g_debug(...) g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \ + __FILE__, G_STRINGIFY (__LINE__), \ + G_STRFUNC, __VA_ARGS__) +#else +/* for(;;) ; so that GCC knows that control doesn't go past g_error(). + * Put space before ending semicolon to avoid C++ build warnings. + */ +#define g_error(...) G_STMT_START { \ + g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_ERROR, \ + __VA_ARGS__); \ + for (;;) ; \ + } G_STMT_END +#define g_message(...) g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_MESSAGE, \ + __VA_ARGS__) +#define g_critical(...) g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_CRITICAL, \ + __VA_ARGS__) +#define g_warning(...) g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_WARNING, \ + __VA_ARGS__) +#define g_info(...) g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_INFO, \ + __VA_ARGS__) +#define g_debug(...) g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_DEBUG, \ + __VA_ARGS__) +#endif +#elif defined(G_HAVE_GNUC_VARARGS) && !G_ANALYZER_ANALYZING +#if defined(G_LOG_USE_STRUCTURED) && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_56 +#define g_error(format...) G_STMT_START { \ + g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, \ + __FILE__, G_STRINGIFY (__LINE__), \ + G_STRFUNC, format); \ + for (;;) ; \ + } G_STMT_END +#define g_message(format...) g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, \ + __FILE__, G_STRINGIFY (__LINE__), \ + G_STRFUNC, format) +#define g_critical(format...) g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, \ + __FILE__, G_STRINGIFY (__LINE__), \ + G_STRFUNC, format) +#define g_warning(format...) g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, \ + __FILE__, G_STRINGIFY (__LINE__), \ + G_STRFUNC, format) +#define g_info(format...) g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, \ + __FILE__, G_STRINGIFY (__LINE__), \ + G_STRFUNC, format) +#define g_debug(format...) g_log_structured_standard (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \ + __FILE__, G_STRINGIFY (__LINE__), \ + G_STRFUNC, format) +#else +#define g_error(format...) G_STMT_START { \ + g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_ERROR, \ + format); \ + for (;;) ; \ + } G_STMT_END + +#define g_message(format...) g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_MESSAGE, \ + format) +#define g_critical(format...) g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_CRITICAL, \ + format) +#define g_warning(format...) g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_WARNING, \ + format) +#define g_info(format...) g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_INFO, \ + format) +#define g_debug(format...) g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_DEBUG, \ + format) +#endif +#else /* no varargs macros */ +G_NORETURN static void g_error (const gchar *format, ...) G_ANALYZER_NORETURN; +static void g_critical (const gchar *format, ...) G_ANALYZER_NORETURN; + +static inline void +g_error (const gchar *format, + ...) +{ + va_list args; + va_start (args, format); + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, format, args); + va_end (args); + + for(;;) ; +} +static inline void +g_message (const gchar *format, + ...) +{ + va_list args; + va_start (args, format); + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, format, args); + va_end (args); +} +static inline void +g_critical (const gchar *format, + ...) +{ + va_list args; + va_start (args, format); + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, format, args); + va_end (args); +} +static inline void +g_warning (const gchar *format, + ...) +{ + va_list args; + va_start (args, format); + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, format, args); + va_end (args); +} +static inline void +g_info (const gchar *format, + ...) +{ + va_list args; + va_start (args, format); + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, format, args); + va_end (args); +} +static inline void +g_debug (const gchar *format, + ...) +{ + va_list args; + va_start (args, format); + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, format, args); + va_end (args); +} +#endif /* !__GNUC__ */ + +/** + * g_warning_once: + * @...: format string, followed by parameters to insert + * into the format string (as with printf()) + * + * Logs a warning only once. + * + * g_warning_once() calls g_warning() with the passed message the first time + * the statement is executed; subsequent times it is a no-op. + * + * Note! On platforms where the compiler doesn't support variadic macros, the + * warning is printed each time instead of only once. + * + * Since: 2.64 + */ +#if defined(G_HAVE_ISO_VARARGS) && !G_ANALYZER_ANALYZING +#define g_warning_once(...) \ + G_STMT_START { \ + static int G_PASTE (_GWarningOnceBoolean, __LINE__) = 0; /* (atomic) */ \ + if (g_atomic_int_compare_and_exchange (&G_PASTE (_GWarningOnceBoolean, __LINE__), \ + 0, 1)) \ + g_warning (__VA_ARGS__); \ + } G_STMT_END \ + GLIB_AVAILABLE_MACRO_IN_2_64 +#elif defined(G_HAVE_GNUC_VARARGS) && !G_ANALYZER_ANALYZING +#define g_warning_once(format...) \ + G_STMT_START { \ + static int G_PASTE (_GWarningOnceBoolean, __LINE__) = 0; /* (atomic) */ \ + if (g_atomic_int_compare_and_exchange (&G_PASTE (_GWarningOnceBoolean, __LINE__), \ + 0, 1)) \ + g_warning (format); \ + } G_STMT_END \ + GLIB_AVAILABLE_MACRO_IN_2_64 +#else +#define g_warning_once g_warning +#endif + +/** + * GPrintFunc: + * @string: the message to output + * + * Specifies the type of the print handler functions. + * These are called with the complete formatted string to output. + */ +typedef void (*GPrintFunc) (const gchar *string); +GLIB_AVAILABLE_IN_ALL +void g_print (const gchar *format, + ...) G_GNUC_PRINTF (1, 2); +GLIB_AVAILABLE_IN_ALL +GPrintFunc g_set_print_handler (GPrintFunc func); +GLIB_AVAILABLE_IN_ALL +void g_printerr (const gchar *format, + ...) G_GNUC_PRINTF (1, 2); +GLIB_AVAILABLE_IN_ALL +GPrintFunc g_set_printerr_handler (GPrintFunc func); + +/** + * g_warn_if_reached: + * + * Logs a warning. + * + * Since: 2.16 + */ +#define g_warn_if_reached() \ + do { \ + g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, NULL); \ + } while (0) + +/** + * g_warn_if_fail: + * @expr: the expression to check + * + * Logs a warning if the expression is not true. + * + * Since: 2.16 + */ +#define g_warn_if_fail(expr) \ + do { \ + if G_LIKELY (expr) ; \ + else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, #expr); \ + } while (0) + +#ifdef G_DISABLE_CHECKS + +/** + * g_return_if_fail: + * @expr: the expression to check + * + * Verifies that the expression @expr, usually representing a precondition, + * evaluates to %TRUE. If the function returns a value, use + * g_return_val_if_fail() instead. + * + * If @expr evaluates to %FALSE, the current function should be considered to + * have undefined behaviour (a programmer error). The only correct solution + * to such an error is to change the module that is calling the current + * function, so that it avoids this incorrect call. + * + * To make this undefined behaviour visible, if @expr evaluates to %FALSE, + * the result is usually that a critical message is logged and the current + * function returns. + * + * If `G_DISABLE_CHECKS` is defined then the check is not performed. You + * should therefore not depend on any side effects of @expr. + * + * To debug failure of a g_return_if_fail() check, run the code under a debugger + * with `G_DEBUG=fatal-criticals` or `G_DEBUG=fatal-warnings` defined in the + * environment (see [Running GLib Applications](glib-running.html)): + * + * |[ + * G_DEBUG=fatal-warnings gdb ./my-program + * ]| + * + * Any unrelated failures can be skipped over in + * [gdb](https://www.gnu.org/software/gdb/) using the `continue` command. + */ +#define g_return_if_fail(expr) G_STMT_START{ (void)0; }G_STMT_END + +/** + * g_return_val_if_fail: + * @expr: the expression to check + * @val: the value to return from the current function + * if the expression is not true + * + * Verifies that the expression @expr, usually representing a precondition, + * evaluates to %TRUE. If the function does not return a value, use + * g_return_if_fail() instead. + * + * If @expr evaluates to %FALSE, the current function should be considered to + * have undefined behaviour (a programmer error). The only correct solution + * to such an error is to change the module that is calling the current + * function, so that it avoids this incorrect call. + * + * To make this undefined behaviour visible, if @expr evaluates to %FALSE, + * the result is usually that a critical message is logged and @val is + * returned from the current function. + * + * If `G_DISABLE_CHECKS` is defined then the check is not performed. You + * should therefore not depend on any side effects of @expr. + * + * See g_return_if_fail() for guidance on how to debug failure of this check. + */ +#define g_return_val_if_fail(expr,val) G_STMT_START{ (void)0; }G_STMT_END + +/** + * g_return_if_reached: + * + * Logs a critical message and returns from the current function. + * This can only be used in functions which do not return a value. + * + * See g_return_if_fail() for guidance on how to debug failure of this check. + */ +#define g_return_if_reached() G_STMT_START{ return; }G_STMT_END + +/** + * g_return_val_if_reached: + * @val: the value to return from the current function + * + * Logs a critical message and returns @val. + * + * See g_return_if_fail() for guidance on how to debug failure of this check. + */ +#define g_return_val_if_reached(val) G_STMT_START{ return (val); }G_STMT_END + +#else /* !G_DISABLE_CHECKS */ + +#define g_return_if_fail(expr) \ + G_STMT_START { \ + if (G_LIKELY (expr)) \ + { } \ + else \ + { \ + g_return_if_fail_warning (G_LOG_DOMAIN, \ + G_STRFUNC, \ + #expr); \ + return; \ + } \ + } G_STMT_END + +#define g_return_val_if_fail(expr, val) \ + G_STMT_START { \ + if (G_LIKELY (expr)) \ + { } \ + else \ + { \ + g_return_if_fail_warning (G_LOG_DOMAIN, \ + G_STRFUNC, \ + #expr); \ + return (val); \ + } \ + } G_STMT_END + +#define g_return_if_reached() \ + G_STMT_START { \ + g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_CRITICAL, \ + "file %s: line %d (%s): should not be reached", \ + __FILE__, \ + __LINE__, \ + G_STRFUNC); \ + return; \ + } G_STMT_END + +#define g_return_val_if_reached(val) \ + G_STMT_START { \ + g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_CRITICAL, \ + "file %s: line %d (%s): should not be reached", \ + __FILE__, \ + __LINE__, \ + G_STRFUNC); \ + return (val); \ + } G_STMT_END + +#endif /* !G_DISABLE_CHECKS */ + +G_END_DECLS + +#endif /* __G_MESSAGES_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gnode.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gnode.h new file mode 100644 index 000000000..94ab99621 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gnode.h @@ -0,0 +1,309 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_NODE_H__ +#define __G_NODE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GNode GNode; + +/* Tree traverse flags */ +typedef enum +{ + G_TRAVERSE_LEAVES = 1 << 0, + G_TRAVERSE_NON_LEAVES = 1 << 1, + G_TRAVERSE_ALL = G_TRAVERSE_LEAVES | G_TRAVERSE_NON_LEAVES, + G_TRAVERSE_MASK = 0x03, + G_TRAVERSE_LEAFS = G_TRAVERSE_LEAVES, + G_TRAVERSE_NON_LEAFS = G_TRAVERSE_NON_LEAVES +} GTraverseFlags; + +/* Tree traverse orders */ +typedef enum +{ + G_IN_ORDER, + G_PRE_ORDER, + G_POST_ORDER, + G_LEVEL_ORDER +} GTraverseType; + +typedef gboolean (*GNodeTraverseFunc) (GNode *node, + gpointer data); +typedef void (*GNodeForeachFunc) (GNode *node, + gpointer data); + +/* N-way tree implementation + */ +struct _GNode +{ + gpointer data; + GNode *next; + GNode *prev; + GNode *parent; + GNode *children; +}; + +/** + * G_NODE_IS_ROOT: + * @node: a #GNode + * + * Returns %TRUE if a #GNode is the root of a tree. + * + * Returns: %TRUE if the #GNode is the root of a tree + * (i.e. it has no parent or siblings) + */ +#define G_NODE_IS_ROOT(node) (((GNode*) (node))->parent == NULL && \ + ((GNode*) (node))->prev == NULL && \ + ((GNode*) (node))->next == NULL) + +/** + * G_NODE_IS_LEAF: + * @node: a #GNode + * + * Returns %TRUE if a #GNode is a leaf node. + * + * Returns: %TRUE if the #GNode is a leaf node + * (i.e. it has no children) + */ +#define G_NODE_IS_LEAF(node) (((GNode*) (node))->children == NULL) + +GLIB_AVAILABLE_IN_ALL +GNode* g_node_new (gpointer data); +GLIB_AVAILABLE_IN_ALL +void g_node_destroy (GNode *root); +GLIB_AVAILABLE_IN_ALL +void g_node_unlink (GNode *node); +GLIB_AVAILABLE_IN_ALL +GNode* g_node_copy_deep (GNode *node, + GCopyFunc copy_func, + gpointer data); +GLIB_AVAILABLE_IN_ALL +GNode* g_node_copy (GNode *node); +GLIB_AVAILABLE_IN_ALL +GNode* g_node_insert (GNode *parent, + gint position, + GNode *node); +GLIB_AVAILABLE_IN_ALL +GNode* g_node_insert_before (GNode *parent, + GNode *sibling, + GNode *node); +GLIB_AVAILABLE_IN_ALL +GNode* g_node_insert_after (GNode *parent, + GNode *sibling, + GNode *node); +GLIB_AVAILABLE_IN_ALL +GNode* g_node_prepend (GNode *parent, + GNode *node); +GLIB_AVAILABLE_IN_ALL +guint g_node_n_nodes (GNode *root, + GTraverseFlags flags); +GLIB_AVAILABLE_IN_ALL +GNode* g_node_get_root (GNode *node); +GLIB_AVAILABLE_IN_ALL +gboolean g_node_is_ancestor (GNode *node, + GNode *descendant); +GLIB_AVAILABLE_IN_ALL +guint g_node_depth (GNode *node); +GLIB_AVAILABLE_IN_ALL +GNode* g_node_find (GNode *root, + GTraverseType order, + GTraverseFlags flags, + gpointer data); + +/* convenience macros */ +/** + * g_node_append: + * @parent: the #GNode to place the new #GNode under + * @node: the #GNode to insert + * + * Inserts a #GNode as the last child of the given parent. + * + * Returns: the inserted #GNode + */ +#define g_node_append(parent, node) \ + g_node_insert_before ((parent), NULL, (node)) + +/** + * g_node_insert_data: + * @parent: the #GNode to place the new #GNode under + * @position: the position to place the new #GNode at. If position is -1, + * the new #GNode is inserted as the last child of @parent + * @data: the data for the new #GNode + * + * Inserts a new #GNode at the given position. + * + * Returns: the new #GNode + */ +#define g_node_insert_data(parent, position, data) \ + g_node_insert ((parent), (position), g_node_new (data)) + +/** + * g_node_insert_data_after: + * @parent: the #GNode to place the new #GNode under + * @sibling: the sibling #GNode to place the new #GNode after + * @data: the data for the new #GNode + * + * Inserts a new #GNode after the given sibling. + * + * Returns: the new #GNode + */ + +#define g_node_insert_data_after(parent, sibling, data) \ + g_node_insert_after ((parent), (sibling), g_node_new (data)) +/** + * g_node_insert_data_before: + * @parent: the #GNode to place the new #GNode under + * @sibling: the sibling #GNode to place the new #GNode before + * @data: the data for the new #GNode + * + * Inserts a new #GNode before the given sibling. + * + * Returns: the new #GNode + */ +#define g_node_insert_data_before(parent, sibling, data) \ + g_node_insert_before ((parent), (sibling), g_node_new (data)) + +/** + * g_node_prepend_data: + * @parent: the #GNode to place the new #GNode under + * @data: the data for the new #GNode + * + * Inserts a new #GNode as the first child of the given parent. + * + * Returns: the new #GNode + */ +#define g_node_prepend_data(parent, data) \ + g_node_prepend ((parent), g_node_new (data)) + +/** + * g_node_append_data: + * @parent: the #GNode to place the new #GNode under + * @data: the data for the new #GNode + * + * Inserts a new #GNode as the last child of the given parent. + * + * Returns: the new #GNode + */ +#define g_node_append_data(parent, data) \ + g_node_insert_before ((parent), NULL, g_node_new (data)) + +/* traversal function, assumes that 'node' is root + * (only traverses 'node' and its subtree). + * this function is just a high level interface to + * low level traversal functions, optimized for speed. + */ +GLIB_AVAILABLE_IN_ALL +void g_node_traverse (GNode *root, + GTraverseType order, + GTraverseFlags flags, + gint max_depth, + GNodeTraverseFunc func, + gpointer data); + +/* return the maximum tree height starting with 'node', this is an expensive + * operation, since we need to visit all nodes. this could be shortened by + * adding 'guint height' to struct _GNode, but then again, this is not very + * often needed, and would make g_node_insert() more time consuming. + */ +GLIB_AVAILABLE_IN_ALL +guint g_node_max_height (GNode *root); + +GLIB_AVAILABLE_IN_ALL +void g_node_children_foreach (GNode *node, + GTraverseFlags flags, + GNodeForeachFunc func, + gpointer data); +GLIB_AVAILABLE_IN_ALL +void g_node_reverse_children (GNode *node); +GLIB_AVAILABLE_IN_ALL +guint g_node_n_children (GNode *node); +GLIB_AVAILABLE_IN_ALL +GNode* g_node_nth_child (GNode *node, + guint n); +GLIB_AVAILABLE_IN_ALL +GNode* g_node_last_child (GNode *node); +GLIB_AVAILABLE_IN_ALL +GNode* g_node_find_child (GNode *node, + GTraverseFlags flags, + gpointer data); +GLIB_AVAILABLE_IN_ALL +gint g_node_child_position (GNode *node, + GNode *child); +GLIB_AVAILABLE_IN_ALL +gint g_node_child_index (GNode *node, + gpointer data); + +GLIB_AVAILABLE_IN_ALL +GNode* g_node_first_sibling (GNode *node); +GLIB_AVAILABLE_IN_ALL +GNode* g_node_last_sibling (GNode *node); + +/** + * g_node_prev_sibling: + * @node: a #GNode + * + * Gets the previous sibling of a #GNode. + * + * Returns: the previous sibling of @node, or %NULL if @node is the first + * node or %NULL + */ +#define g_node_prev_sibling(node) ((node) ? \ + ((GNode*) (node))->prev : NULL) + +/** + * g_node_next_sibling: + * @node: a #GNode + * + * Gets the next sibling of a #GNode. + * + * Returns: the next sibling of @node, or %NULL if @node is the last node + * or %NULL + */ +#define g_node_next_sibling(node) ((node) ? \ + ((GNode*) (node))->next : NULL) + +/** + * g_node_first_child: + * @node: a #GNode + * + * Gets the first child of a #GNode. + * + * Returns: the first child of @node, or %NULL if @node is %NULL + * or has no children + */ +#define g_node_first_child(node) ((node) ? \ + ((GNode*) (node))->children : NULL) + +G_END_DECLS + +#endif /* __G_NODE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/goption.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/goption.h new file mode 100644 index 000000000..dcb0e554c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/goption.h @@ -0,0 +1,409 @@ +/* goption.h - Option parser + * + * Copyright (C) 2004 Anders Carlsson + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_OPTION_H__ +#define __G_OPTION_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +/** + * GOptionContext: + * + * A `GOptionContext` struct defines which options + * are accepted by the commandline option parser. The struct has only private + * fields and should not be directly accessed. + */ +typedef struct _GOptionContext GOptionContext; + +/** + * GOptionGroup: + * + * A `GOptionGroup` struct defines the options in a single + * group. The struct has only private fields and should not be directly accessed. + * + * All options in a group share the same translation function. Libraries which + * need to parse commandline options are expected to provide a function for + * getting a `GOptionGroup` holding their options, which + * the application can then add to its #GOptionContext. + */ +typedef struct _GOptionGroup GOptionGroup; +typedef struct _GOptionEntry GOptionEntry; + +/** + * GOptionFlags: + * @G_OPTION_FLAG_NONE: No flags. Since: 2.42. + * @G_OPTION_FLAG_HIDDEN: The option doesn't appear in `--help` output. + * @G_OPTION_FLAG_IN_MAIN: The option appears in the main section of the + * `--help` output, even if it is defined in a group. + * @G_OPTION_FLAG_REVERSE: For options of the %G_OPTION_ARG_NONE kind, this + * flag indicates that the sense of the option is reversed. i.e. %FALSE will + * be stored into the argument rather than %TRUE. + * @G_OPTION_FLAG_NO_ARG: For options of the %G_OPTION_ARG_CALLBACK kind, + * this flag indicates that the callback does not take any argument + * (like a %G_OPTION_ARG_NONE option). Since 2.8 + * @G_OPTION_FLAG_FILENAME: For options of the %G_OPTION_ARG_CALLBACK + * kind, this flag indicates that the argument should be passed to the + * callback in the GLib filename encoding rather than UTF-8. Since 2.8 + * @G_OPTION_FLAG_OPTIONAL_ARG: For options of the %G_OPTION_ARG_CALLBACK + * kind, this flag indicates that the argument supply is optional. + * If no argument is given then data of %GOptionParseFunc will be + * set to NULL. Since 2.8 + * @G_OPTION_FLAG_NOALIAS: This flag turns off the automatic conflict + * resolution which prefixes long option names with `groupname-` if + * there is a conflict. This option should only be used in situations + * where aliasing is necessary to model some legacy commandline interface. + * It is not safe to use this option, unless all option groups are under + * your direct control. Since 2.8. + * + * Flags which modify individual options. + */ +typedef enum +{ + G_OPTION_FLAG_NONE = 0, + G_OPTION_FLAG_HIDDEN = 1 << 0, + G_OPTION_FLAG_IN_MAIN = 1 << 1, + G_OPTION_FLAG_REVERSE = 1 << 2, + G_OPTION_FLAG_NO_ARG = 1 << 3, + G_OPTION_FLAG_FILENAME = 1 << 4, + G_OPTION_FLAG_OPTIONAL_ARG = 1 << 5, + G_OPTION_FLAG_NOALIAS = 1 << 6 +} GOptionFlags; + +/** + * GOptionArg: + * @G_OPTION_ARG_NONE: No extra argument. This is useful for simple flags or booleans. + * @G_OPTION_ARG_STRING: The option takes a UTF-8 string argument. + * @G_OPTION_ARG_INT: The option takes an integer argument. + * @G_OPTION_ARG_CALLBACK: The option provides a callback (of type + * #GOptionArgFunc) to parse the extra argument. + * @G_OPTION_ARG_FILENAME: The option takes a filename as argument, which will + be in the GLib filename encoding rather than UTF-8. + * @G_OPTION_ARG_STRING_ARRAY: The option takes a string argument, multiple + * uses of the option are collected into an array of strings. + * @G_OPTION_ARG_FILENAME_ARRAY: The option takes a filename as argument, + * multiple uses of the option are collected into an array of strings. + * @G_OPTION_ARG_DOUBLE: The option takes a double argument. The argument + * can be formatted either for the user's locale or for the "C" locale. + * Since 2.12 + * @G_OPTION_ARG_INT64: The option takes a 64-bit integer. Like + * %G_OPTION_ARG_INT but for larger numbers. The number can be in + * decimal base, or in hexadecimal (when prefixed with `0x`, for + * example, `0xffffffff`). Since 2.12 + * + * The #GOptionArg enum values determine which type of extra argument the + * options expect to find. If an option expects an extra argument, it can + * be specified in several ways; with a short option: `-x arg`, with a long + * option: `--name arg` or combined in a single argument: `--name=arg`. + */ +typedef enum +{ + G_OPTION_ARG_NONE, + G_OPTION_ARG_STRING, + G_OPTION_ARG_INT, + G_OPTION_ARG_CALLBACK, + G_OPTION_ARG_FILENAME, + G_OPTION_ARG_STRING_ARRAY, + G_OPTION_ARG_FILENAME_ARRAY, + G_OPTION_ARG_DOUBLE, + G_OPTION_ARG_INT64 +} GOptionArg; + +/** + * GOptionArgFunc: + * @option_name: The name of the option being parsed. This will be either a + * single dash followed by a single letter (for a short name) or two dashes + * followed by a long option name. + * @value: The value to be parsed. + * @data: User data added to the #GOptionGroup containing the option when it + * was created with g_option_group_new() + * @error: A return location for errors. The error code %G_OPTION_ERROR_FAILED + * is intended to be used for errors in #GOptionArgFunc callbacks. + * + * The type of function to be passed as callback for %G_OPTION_ARG_CALLBACK + * options. + * + * Returns: %TRUE if the option was successfully parsed, %FALSE if an error + * occurred, in which case @error should be set with g_set_error() + */ +typedef gboolean (*GOptionArgFunc) (const gchar *option_name, + const gchar *value, + gpointer data, + GError **error); + +/** + * GOptionParseFunc: + * @context: The active #GOptionContext + * @group: The group to which the function belongs + * @data: User data added to the #GOptionGroup containing the option when it + * was created with g_option_group_new() + * @error: A return location for error details + * + * The type of function that can be called before and after parsing. + * + * Returns: %TRUE if the function completed successfully, %FALSE if an error + * occurred, in which case @error should be set with g_set_error() + */ +typedef gboolean (*GOptionParseFunc) (GOptionContext *context, + GOptionGroup *group, + gpointer data, + GError **error); + +/** + * GOptionErrorFunc: + * @context: The active #GOptionContext + * @group: The group to which the function belongs + * @data: User data added to the #GOptionGroup containing the option when it + * was created with g_option_group_new() + * @error: The #GError containing details about the parse error + * + * The type of function to be used as callback when a parse error occurs. + */ +typedef void (*GOptionErrorFunc) (GOptionContext *context, + GOptionGroup *group, + gpointer data, + GError **error); + +/** + * G_OPTION_ERROR: + * + * Error domain for option parsing. Errors in this domain will + * be from the #GOptionError enumeration. See #GError for information on + * error domains. + */ +#define G_OPTION_ERROR (g_option_error_quark ()) + +/** + * GOptionError: + * @G_OPTION_ERROR_UNKNOWN_OPTION: An option was not known to the parser. + * This error will only be reported, if the parser hasn't been instructed + * to ignore unknown options, see g_option_context_set_ignore_unknown_options(). + * @G_OPTION_ERROR_BAD_VALUE: A value couldn't be parsed. + * @G_OPTION_ERROR_FAILED: A #GOptionArgFunc callback failed. + * + * Error codes returned by option parsing. + */ +typedef enum +{ + G_OPTION_ERROR_UNKNOWN_OPTION, + G_OPTION_ERROR_BAD_VALUE, + G_OPTION_ERROR_FAILED +} GOptionError; + +GLIB_AVAILABLE_IN_ALL +GQuark g_option_error_quark (void); + +/** + * GOptionEntry: + * @long_name: The long name of an option can be used to specify it + * in a commandline as `--long_name`. Every option must have a + * long name. To resolve conflicts if multiple option groups contain + * the same long name, it is also possible to specify the option as + * `--groupname-long_name`. + * @short_name: If an option has a short name, it can be specified + * `-short_name` in a commandline. @short_name must be a printable + * ASCII character different from '-', or zero if the option has no + * short name. + * @flags: Flags from #GOptionFlags + * @arg: The type of the option, as a #GOptionArg + * @arg_data: If the @arg type is %G_OPTION_ARG_CALLBACK, then @arg_data + * must point to a #GOptionArgFunc callback function, which will be + * called to handle the extra argument. Otherwise, @arg_data is a + * pointer to a location to store the value, the required type of + * the location depends on the @arg type: + * - %G_OPTION_ARG_NONE: %gboolean + * - %G_OPTION_ARG_STRING: %gchar* + * - %G_OPTION_ARG_INT: %gint + * - %G_OPTION_ARG_FILENAME: %gchar* + * - %G_OPTION_ARG_STRING_ARRAY: %gchar** + * - %G_OPTION_ARG_FILENAME_ARRAY: %gchar** + * - %G_OPTION_ARG_DOUBLE: %gdouble + * If @arg type is %G_OPTION_ARG_STRING or %G_OPTION_ARG_FILENAME, + * the location will contain a newly allocated string if the option + * was given. That string needs to be freed by the callee using g_free(). + * Likewise if @arg type is %G_OPTION_ARG_STRING_ARRAY or + * %G_OPTION_ARG_FILENAME_ARRAY, the data should be freed using g_strfreev(). + * @description: the description for the option in `--help` + * output. The @description is translated using the @translate_func + * of the group, see g_option_group_set_translation_domain(). + * @arg_description: The placeholder to use for the extra argument parsed + * by the option in `--help` output. The @arg_description is translated + * using the @translate_func of the group, see + * g_option_group_set_translation_domain(). + * + * A GOptionEntry struct defines a single option. To have an effect, they + * must be added to a #GOptionGroup with g_option_context_add_main_entries() + * or g_option_group_add_entries(). + */ +struct _GOptionEntry +{ + const gchar *long_name; + gchar short_name; + gint flags; + + GOptionArg arg; + gpointer arg_data; + + const gchar *description; + const gchar *arg_description; +}; + +/** + * G_OPTION_REMAINING: + * + * If a long option in the main group has this name, it is not treated as a + * regular option. Instead it collects all non-option arguments which would + * otherwise be left in `argv`. The option must be of type + * %G_OPTION_ARG_CALLBACK, %G_OPTION_ARG_STRING_ARRAY + * or %G_OPTION_ARG_FILENAME_ARRAY. + * + * + * Using %G_OPTION_REMAINING instead of simply scanning `argv` + * for leftover arguments has the advantage that GOption takes care of + * necessary encoding conversions for strings or filenames. + * + * Since: 2.6 + */ +#define G_OPTION_REMAINING "" + +/** + * G_OPTION_ENTRY_NULL: + * + * A #GOptionEntry array requires a %NULL terminator, this macro can + * be used as terminator instead of an explicit `{ 0 }` but it cannot + * be assigned to a variable. + * + * |[ + * GOptionEntry option[] = { G_OPTION_ENTRY_NULL }; + * ]| + * + * Since: 2.70 + */ +#define G_OPTION_ENTRY_NULL \ + GLIB_AVAILABLE_MACRO_IN_2_70 \ + { NULL, 0, 0, 0, NULL, NULL, NULL } + + +GLIB_AVAILABLE_IN_ALL +GOptionContext *g_option_context_new (const gchar *parameter_string); +GLIB_AVAILABLE_IN_ALL +void g_option_context_set_summary (GOptionContext *context, + const gchar *summary); +GLIB_AVAILABLE_IN_ALL +const gchar * g_option_context_get_summary (GOptionContext *context); +GLIB_AVAILABLE_IN_ALL +void g_option_context_set_description (GOptionContext *context, + const gchar *description); +GLIB_AVAILABLE_IN_ALL +const gchar * g_option_context_get_description (GOptionContext *context); +GLIB_AVAILABLE_IN_ALL +void g_option_context_free (GOptionContext *context); +GLIB_AVAILABLE_IN_ALL +void g_option_context_set_help_enabled (GOptionContext *context, + gboolean help_enabled); +GLIB_AVAILABLE_IN_ALL +gboolean g_option_context_get_help_enabled (GOptionContext *context); +GLIB_AVAILABLE_IN_ALL +void g_option_context_set_ignore_unknown_options (GOptionContext *context, + gboolean ignore_unknown); +GLIB_AVAILABLE_IN_ALL +gboolean g_option_context_get_ignore_unknown_options (GOptionContext *context); + +GLIB_AVAILABLE_IN_2_44 +void g_option_context_set_strict_posix (GOptionContext *context, + gboolean strict_posix); +GLIB_AVAILABLE_IN_2_44 +gboolean g_option_context_get_strict_posix (GOptionContext *context); + +GLIB_AVAILABLE_IN_ALL +void g_option_context_add_main_entries (GOptionContext *context, + const GOptionEntry *entries, + const gchar *translation_domain); +GLIB_AVAILABLE_IN_ALL +gboolean g_option_context_parse (GOptionContext *context, + gint *argc, + gchar ***argv, + GError **error); +GLIB_AVAILABLE_IN_2_40 +gboolean g_option_context_parse_strv (GOptionContext *context, + gchar ***arguments, + GError **error); +GLIB_AVAILABLE_IN_ALL +void g_option_context_set_translate_func (GOptionContext *context, + GTranslateFunc func, + gpointer data, + GDestroyNotify destroy_notify); +GLIB_AVAILABLE_IN_ALL +void g_option_context_set_translation_domain (GOptionContext *context, + const gchar *domain); + +GLIB_AVAILABLE_IN_ALL +void g_option_context_add_group (GOptionContext *context, + GOptionGroup *group); +GLIB_AVAILABLE_IN_ALL +void g_option_context_set_main_group (GOptionContext *context, + GOptionGroup *group); +GLIB_AVAILABLE_IN_ALL +GOptionGroup *g_option_context_get_main_group (GOptionContext *context); +GLIB_AVAILABLE_IN_ALL +gchar *g_option_context_get_help (GOptionContext *context, + gboolean main_help, + GOptionGroup *group); + +GLIB_AVAILABLE_IN_ALL +GOptionGroup *g_option_group_new (const gchar *name, + const gchar *description, + const gchar *help_description, + gpointer user_data, + GDestroyNotify destroy); +GLIB_AVAILABLE_IN_ALL +void g_option_group_set_parse_hooks (GOptionGroup *group, + GOptionParseFunc pre_parse_func, + GOptionParseFunc post_parse_func); +GLIB_AVAILABLE_IN_ALL +void g_option_group_set_error_hook (GOptionGroup *group, + GOptionErrorFunc error_func); +GLIB_DEPRECATED_IN_2_44 +void g_option_group_free (GOptionGroup *group); +GLIB_AVAILABLE_IN_2_44 +GOptionGroup *g_option_group_ref (GOptionGroup *group); +GLIB_AVAILABLE_IN_2_44 +void g_option_group_unref (GOptionGroup *group); +GLIB_AVAILABLE_IN_ALL +void g_option_group_add_entries (GOptionGroup *group, + const GOptionEntry *entries); +GLIB_AVAILABLE_IN_ALL +void g_option_group_set_translate_func (GOptionGroup *group, + GTranslateFunc func, + gpointer data, + GDestroyNotify destroy_notify); +GLIB_AVAILABLE_IN_ALL +void g_option_group_set_translation_domain (GOptionGroup *group, + const gchar *domain); + +G_END_DECLS + +#endif /* __G_OPTION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gpathbuf.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gpathbuf.h new file mode 100644 index 000000000..b42341998 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gpathbuf.h @@ -0,0 +1,90 @@ +/* gpathbuf.h: A mutable path builder + * + * SPDX-FileCopyrightText: 2023 Emmanuele Bassi + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#pragma once + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GPathBuf GPathBuf; + +/** + * GPathBuf: (copy-func g_path_buf_copy) (free-func g_path_buf_free) + * + * A mutable path builder. + * + * Since: 2.76 + */ +struct _GPathBuf +{ + /*< private >*/ + gpointer dummy[8]; +}; + +/** + * G_PATH_BUF_INIT: + * + * Initializes a #GPathBuf on the stack. + * + * A stack-allocated `GPathBuf` must be initialized if it is used + * together with g_auto() to avoid warnings and crashes if the + * function returns before calling g_path_buf_init(). + * + * |[ + * g_auto (GPathBuf) buf = G_PATH_BUF_INIT; + * ]| + * + * Since: 2.76 + */ +#define G_PATH_BUF_INIT { { NULL, } } \ + GLIB_AVAILABLE_MACRO_IN_2_76 + +GLIB_AVAILABLE_IN_2_76 +GPathBuf * g_path_buf_new (void); +GLIB_AVAILABLE_IN_2_76 +GPathBuf * g_path_buf_new_from_path (const char *path); +GLIB_AVAILABLE_IN_2_76 +GPathBuf * g_path_buf_init (GPathBuf *buf); +GLIB_AVAILABLE_IN_2_76 +GPathBuf * g_path_buf_init_from_path (GPathBuf *buf, + const char *path); +GLIB_AVAILABLE_IN_2_76 +void g_path_buf_clear (GPathBuf *buf); +GLIB_AVAILABLE_IN_2_76 +char * g_path_buf_clear_to_path (GPathBuf *buf) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_2_76 +void g_path_buf_free (GPathBuf *buf); +GLIB_AVAILABLE_IN_2_76 +char * g_path_buf_free_to_path (GPathBuf *buf) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_2_76 +GPathBuf * g_path_buf_copy (GPathBuf *buf); + +GLIB_AVAILABLE_IN_2_76 +GPathBuf * g_path_buf_push (GPathBuf *buf, + const char *path); +GLIB_AVAILABLE_IN_2_76 +gboolean g_path_buf_pop (GPathBuf *buf); + +GLIB_AVAILABLE_IN_2_76 +gboolean g_path_buf_set_filename (GPathBuf *buf, + const char *file_name); +GLIB_AVAILABLE_IN_2_76 +gboolean g_path_buf_set_extension (GPathBuf *buf, + const char *extension); + +GLIB_AVAILABLE_IN_2_76 +char * g_path_buf_to_path (GPathBuf *buf) G_GNUC_WARN_UNUSED_RESULT; + +GLIB_AVAILABLE_IN_2_76 +gboolean g_path_buf_equal (gconstpointer v1, + gconstpointer v2); + +G_END_DECLS diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gpattern.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gpattern.h new file mode 100644 index 000000000..c8ceb84d2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gpattern.h @@ -0,0 +1,65 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997, 1999 Peter Mattis, Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __G_PATTERN_H__ +#define __G_PATTERN_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + + +typedef struct _GPatternSpec GPatternSpec; + +GLIB_AVAILABLE_IN_ALL +GPatternSpec* g_pattern_spec_new (const gchar *pattern); +GLIB_AVAILABLE_IN_ALL +void g_pattern_spec_free (GPatternSpec *pspec); +GLIB_AVAILABLE_IN_2_70 +GPatternSpec *g_pattern_spec_copy (GPatternSpec *pspec); +GLIB_AVAILABLE_IN_ALL +gboolean g_pattern_spec_equal (GPatternSpec *pspec1, + GPatternSpec *pspec2); +GLIB_AVAILABLE_IN_2_70 +gboolean g_pattern_spec_match (GPatternSpec *pspec, + gsize string_length, + const gchar *string, + const gchar *string_reversed); +GLIB_AVAILABLE_IN_2_70 +gboolean g_pattern_spec_match_string (GPatternSpec *pspec, + const gchar *string); +GLIB_DEPRECATED_IN_2_70_FOR (g_pattern_spec_match) +gboolean g_pattern_match (GPatternSpec *pspec, + guint string_length, + const gchar *string, + const gchar *string_reversed); +GLIB_DEPRECATED_IN_2_70_FOR (g_pattern_spec_match_string) +gboolean g_pattern_match_string (GPatternSpec *pspec, + const gchar *string); +GLIB_AVAILABLE_IN_ALL +gboolean g_pattern_match_simple (const gchar *pattern, + const gchar *string); + +G_END_DECLS + +#endif /* __G_PATTERN_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gpoll.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gpoll.h new file mode 100644 index 000000000..bd72bc428 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gpoll.h @@ -0,0 +1,122 @@ +/* gpoll.h - poll(2) support + * Copyright (C) 2008 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_POLL_H__ +#define __G_POLL_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (__G_MAIN_H__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +/* Any definitions using GPollFD or GPollFunc are primarily + * for Unix and not guaranteed to be the compatible on all + * operating systems on which GLib runs. Right now, the + * GLib does use these functions on Win32 as well, but interprets + * them in a fairly different way than on Unix. If you use + * these definitions, you are should be prepared to recode + * for different operating systems. + * + * Note that on systems with a working poll(2), that function is used + * in place of g_poll(). Thus g_poll() must have the same signature as + * poll(), meaning GPollFD must have the same layout as struct pollfd. + * + * On Win32, the fd in a GPollFD should be Win32 HANDLE (*not* a file + * descriptor as provided by the C runtime) that can be used by + * MsgWaitForMultipleObjects. This does *not* include file handles + * from CreateFile, SOCKETs, nor pipe handles. (But you can use + * WSAEventSelect to signal events when a SOCKET is readable). + * + * On Win32, fd can also be the special value G_WIN32_MSG_HANDLE to + * indicate polling for messages. + * + * But note that G_WIN32_MSG_HANDLE GPollFDs should not be used by GDK + * (GTK) programs, as GDK itself wants to read messages and convert them + * to GDK events. + * + * So, unless you really know what you are doing, it's best not to try + * to use the main loop polling stuff for your own needs on + * Windows. + */ +typedef struct _GPollFD GPollFD; + +/** + * GPollFunc: + * @ufds: an array of #GPollFD elements + * @nfsd: the number of elements in @ufds + * @timeout_: the maximum time to wait for an event of the file descriptors. + * A negative value indicates an infinite timeout. + * + * Specifies the type of function passed to g_main_context_set_poll_func(). + * The semantics of the function should match those of the poll() system call. + * + * Returns: the number of #GPollFD elements which have events or errors + * reported, or -1 if an error occurred. + */ +typedef gint (*GPollFunc) (GPollFD *ufds, + guint nfsd, + gint timeout_); + +/** + * GPollFD: + * @fd: the file descriptor to poll (or a HANDLE on Win32) + * @events: a bitwise combination from #GIOCondition, specifying which + * events should be polled for. Typically for reading from a file + * descriptor you would use %G_IO_IN | %G_IO_HUP | %G_IO_ERR, and + * for writing you would use %G_IO_OUT | %G_IO_ERR. + * @revents: a bitwise combination of flags from #GIOCondition, returned + * from the poll() function to indicate which events occurred. + * + * Represents a file descriptor, which events to poll for, and which events + * occurred. + */ +struct _GPollFD +{ +#if defined (G_OS_WIN32) && GLIB_SIZEOF_VOID_P == 8 +#ifndef __GTK_DOC_IGNORE__ + gint64 fd; +#endif +#else + gint fd; +#endif + gushort events; + gushort revents; +}; + +/** + * G_POLLFD_FORMAT: + * + * A format specifier that can be used in printf()-style format strings + * when printing the @fd member of a #GPollFD. + */ +/* defined in glibconfig.h */ + +GLIB_AVAILABLE_IN_ALL +gint +g_poll (GPollFD *fds, + guint nfds, + gint timeout); + +G_END_DECLS + +#endif /* __G_POLL_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gprimes.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gprimes.h new file mode 100644 index 000000000..f35b5fd6f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gprimes.h @@ -0,0 +1,52 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_PRIMES_H__ +#define __G_PRIMES_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/* Prime numbers. + */ + +/* This function returns prime numbers spaced by approximately 1.5-2.0 + * and is for use in resizing data structures which prefer + * prime-valued sizes. The closest spaced prime function returns the + * next largest prime, or the highest it knows about which is about + * MAXINT/4. + */ +GLIB_AVAILABLE_IN_ALL +guint g_spaced_primes_closest (guint num) G_GNUC_CONST; + +G_END_DECLS + +#endif /* __G_PRIMES_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gprintf.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gprintf.h new file mode 100644 index 000000000..78b25202c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gprintf.h @@ -0,0 +1,59 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997, 2002 Peter Mattis, Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __G_PRINTF_H__ +#define __G_PRINTF_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_ALL +gint g_printf (gchar const *format, + ...) G_GNUC_PRINTF (1, 2); +GLIB_AVAILABLE_IN_ALL +gint g_fprintf (FILE *file, + gchar const *format, + ...) G_GNUC_PRINTF (2, 3); +GLIB_AVAILABLE_IN_ALL +gint g_sprintf (gchar *string, + gchar const *format, + ...) G_GNUC_PRINTF (2, 3); + +GLIB_AVAILABLE_IN_ALL +gint g_vprintf (gchar const *format, + va_list args) G_GNUC_PRINTF(1, 0); +GLIB_AVAILABLE_IN_ALL +gint g_vfprintf (FILE *file, + gchar const *format, + va_list args) G_GNUC_PRINTF(2, 0); +GLIB_AVAILABLE_IN_ALL +gint g_vsprintf (gchar *string, + gchar const *format, + va_list args) G_GNUC_PRINTF(2, 0); +GLIB_AVAILABLE_IN_ALL +gint g_vasprintf (gchar **string, + gchar const *format, + va_list args) G_GNUC_PRINTF(2, 0); + +G_END_DECLS + +#endif /* __G_PRINTF_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gqsort.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gqsort.h new file mode 100644 index 000000000..c04c0381e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gqsort.h @@ -0,0 +1,47 @@ + /* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_QSORT_H__ +#define __G_QSORT_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_ALL +void g_qsort_with_data (gconstpointer pbase, + gint total_elems, + gsize size, + GCompareDataFunc compare_func, + gpointer user_data); + +G_END_DECLS + +#endif /* __G_QSORT_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gquark.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gquark.h new file mode 100644 index 000000000..d0c44039f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gquark.h @@ -0,0 +1,70 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_QUARK_H__ +#define __G_QUARK_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef guint32 GQuark; + +/* Quarks (string<->id association) + */ +GLIB_AVAILABLE_IN_ALL +GQuark g_quark_try_string (const gchar *string); +GLIB_AVAILABLE_IN_ALL +GQuark g_quark_from_static_string (const gchar *string); +GLIB_AVAILABLE_IN_ALL +GQuark g_quark_from_string (const gchar *string); +GLIB_AVAILABLE_IN_ALL +const gchar * g_quark_to_string (GQuark quark) G_GNUC_CONST; + +#define G_DEFINE_QUARK(QN, q_n) \ +GQuark \ +q_n##_quark (void) \ +{ \ + static GQuark q; \ + \ + if G_UNLIKELY (q == 0) \ + q = g_quark_from_static_string (#QN); \ + \ + return q; \ +} + +GLIB_AVAILABLE_IN_ALL +const gchar * g_intern_string (const gchar *string); +GLIB_AVAILABLE_IN_ALL +const gchar * g_intern_static_string (const gchar *string); + +G_END_DECLS + +#endif /* __G_QUARK_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gqueue.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gqueue.h new file mode 100644 index 000000000..c3a28c843 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gqueue.h @@ -0,0 +1,205 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_QUEUE_H__ +#define __G_QUEUE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GQueue GQueue; + +/** + * GQueue: + * @head: a pointer to the first element of the queue + * @tail: a pointer to the last element of the queue + * @length: the number of elements in the queue + * + * Contains the public fields of a + * [Queue][glib-Double-ended-Queues]. + */ +struct _GQueue +{ + GList *head; + GList *tail; + guint length; +}; + +/** + * G_QUEUE_INIT: + * + * A statically-allocated #GQueue must be initialized with this + * macro before it can be used. This macro can be used to initialize + * a variable, but it cannot be assigned to a variable. In that case + * you have to use g_queue_init(). + * + * |[ + * GQueue my_queue = G_QUEUE_INIT; + * ]| + * + * Since: 2.14 + */ +#define G_QUEUE_INIT { NULL, NULL, 0 } + +/* Queues + */ +GLIB_AVAILABLE_IN_ALL +GQueue* g_queue_new (void); +GLIB_AVAILABLE_IN_ALL +void g_queue_free (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +void g_queue_free_full (GQueue *queue, + GDestroyNotify free_func); +GLIB_AVAILABLE_IN_ALL +void g_queue_init (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +void g_queue_clear (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +gboolean g_queue_is_empty (GQueue *queue); +GLIB_AVAILABLE_IN_2_60 +void g_queue_clear_full (GQueue *queue, + GDestroyNotify free_func); +GLIB_AVAILABLE_IN_ALL +guint g_queue_get_length (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +void g_queue_reverse (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +GQueue * g_queue_copy (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +void g_queue_foreach (GQueue *queue, + GFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +GList * g_queue_find (GQueue *queue, + gconstpointer data); +GLIB_AVAILABLE_IN_ALL +GList * g_queue_find_custom (GQueue *queue, + gconstpointer data, + GCompareFunc func); +GLIB_AVAILABLE_IN_ALL +void g_queue_sort (GQueue *queue, + GCompareDataFunc compare_func, + gpointer user_data); + +GLIB_AVAILABLE_IN_ALL +void g_queue_push_head (GQueue *queue, + gpointer data); +GLIB_AVAILABLE_IN_ALL +void g_queue_push_tail (GQueue *queue, + gpointer data); +GLIB_AVAILABLE_IN_ALL +void g_queue_push_nth (GQueue *queue, + gpointer data, + gint n); +GLIB_AVAILABLE_IN_ALL +gpointer g_queue_pop_head (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +gpointer g_queue_pop_tail (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +gpointer g_queue_pop_nth (GQueue *queue, + guint n); +GLIB_AVAILABLE_IN_ALL +gpointer g_queue_peek_head (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +gpointer g_queue_peek_tail (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +gpointer g_queue_peek_nth (GQueue *queue, + guint n); +GLIB_AVAILABLE_IN_ALL +gint g_queue_index (GQueue *queue, + gconstpointer data); +GLIB_AVAILABLE_IN_ALL +gboolean g_queue_remove (GQueue *queue, + gconstpointer data); +GLIB_AVAILABLE_IN_ALL +guint g_queue_remove_all (GQueue *queue, + gconstpointer data); +GLIB_AVAILABLE_IN_ALL +void g_queue_insert_before (GQueue *queue, + GList *sibling, + gpointer data); +GLIB_AVAILABLE_IN_2_62 +void g_queue_insert_before_link + (GQueue *queue, + GList *sibling, + GList *link_); +GLIB_AVAILABLE_IN_ALL +void g_queue_insert_after (GQueue *queue, + GList *sibling, + gpointer data); +GLIB_AVAILABLE_IN_2_62 +void g_queue_insert_after_link + (GQueue *queue, + GList *sibling, + GList *link_); +GLIB_AVAILABLE_IN_ALL +void g_queue_insert_sorted (GQueue *queue, + gpointer data, + GCompareDataFunc func, + gpointer user_data); + +GLIB_AVAILABLE_IN_ALL +void g_queue_push_head_link (GQueue *queue, + GList *link_); +GLIB_AVAILABLE_IN_ALL +void g_queue_push_tail_link (GQueue *queue, + GList *link_); +GLIB_AVAILABLE_IN_ALL +void g_queue_push_nth_link (GQueue *queue, + gint n, + GList *link_); +GLIB_AVAILABLE_IN_ALL +GList* g_queue_pop_head_link (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +GList* g_queue_pop_tail_link (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +GList* g_queue_pop_nth_link (GQueue *queue, + guint n); +GLIB_AVAILABLE_IN_ALL +GList* g_queue_peek_head_link (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +GList* g_queue_peek_tail_link (GQueue *queue); +GLIB_AVAILABLE_IN_ALL +GList* g_queue_peek_nth_link (GQueue *queue, + guint n); +GLIB_AVAILABLE_IN_ALL +gint g_queue_link_index (GQueue *queue, + GList *link_); +GLIB_AVAILABLE_IN_ALL +void g_queue_unlink (GQueue *queue, + GList *link_); +GLIB_AVAILABLE_IN_ALL +void g_queue_delete_link (GQueue *queue, + GList *link_); + +G_END_DECLS + +#endif /* __G_QUEUE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/grand.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/grand.h new file mode 100644 index 000000000..c4ae956aa --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/grand.h @@ -0,0 +1,101 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_RAND_H__ +#define __G_RAND_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GRand GRand; + +/* GRand - a good and fast random number generator: Mersenne Twister + * see http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html for more info. + * The range functions return a value in the interval [begin, end). + * int -> [0..2^32-1] + * int_range -> [begin..end-1] + * double -> [0..1) + * double_range -> [begin..end) + */ + +GLIB_AVAILABLE_IN_ALL +GRand* g_rand_new_with_seed (guint32 seed); +GLIB_AVAILABLE_IN_ALL +GRand* g_rand_new_with_seed_array (const guint32 *seed, + guint seed_length); +GLIB_AVAILABLE_IN_ALL +GRand* g_rand_new (void); +GLIB_AVAILABLE_IN_ALL +void g_rand_free (GRand *rand_); +GLIB_AVAILABLE_IN_ALL +GRand* g_rand_copy (GRand *rand_); +GLIB_AVAILABLE_IN_ALL +void g_rand_set_seed (GRand *rand_, + guint32 seed); +GLIB_AVAILABLE_IN_ALL +void g_rand_set_seed_array (GRand *rand_, + const guint32 *seed, + guint seed_length); + +#define g_rand_boolean(rand_) ((g_rand_int (rand_) & (1 << 15)) != 0) + +GLIB_AVAILABLE_IN_ALL +guint32 g_rand_int (GRand *rand_); +GLIB_AVAILABLE_IN_ALL +gint32 g_rand_int_range (GRand *rand_, + gint32 begin, + gint32 end); +GLIB_AVAILABLE_IN_ALL +gdouble g_rand_double (GRand *rand_); +GLIB_AVAILABLE_IN_ALL +gdouble g_rand_double_range (GRand *rand_, + gdouble begin, + gdouble end); +GLIB_AVAILABLE_IN_ALL +void g_random_set_seed (guint32 seed); + +#define g_random_boolean() ((g_random_int () & (1 << 15)) != 0) + +GLIB_AVAILABLE_IN_ALL +guint32 g_random_int (void); +GLIB_AVAILABLE_IN_ALL +gint32 g_random_int_range (gint32 begin, + gint32 end); +GLIB_AVAILABLE_IN_ALL +gdouble g_random_double (void); +GLIB_AVAILABLE_IN_ALL +gdouble g_random_double_range (gdouble begin, + gdouble end); + + +G_END_DECLS + +#endif /* __G_RAND_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/grcbox.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/grcbox.h new file mode 100644 index 000000000..f101e43a4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/grcbox.h @@ -0,0 +1,91 @@ +/* grcbox.h: Reference counted data + * + * Copyright 2018 Emmanuele Bassi + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#pragma once + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_2_58 +gpointer g_rc_box_alloc (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); +GLIB_AVAILABLE_IN_2_58 +gpointer g_rc_box_alloc0 (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); +GLIB_AVAILABLE_IN_2_58 +gpointer g_rc_box_dup (gsize block_size, + gconstpointer mem_block) G_GNUC_ALLOC_SIZE(1); +GLIB_AVAILABLE_IN_2_58 +gpointer g_rc_box_acquire (gpointer mem_block); +GLIB_AVAILABLE_IN_2_58 +void g_rc_box_release (gpointer mem_block); +GLIB_AVAILABLE_IN_2_58 +void g_rc_box_release_full (gpointer mem_block, + GDestroyNotify clear_func); + +GLIB_AVAILABLE_IN_2_58 +gsize g_rc_box_get_size (gpointer mem_block); + +GLIB_AVAILABLE_IN_2_58 +gpointer g_atomic_rc_box_alloc (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); +GLIB_AVAILABLE_IN_2_58 +gpointer g_atomic_rc_box_alloc0 (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); +GLIB_AVAILABLE_IN_2_58 +gpointer g_atomic_rc_box_dup (gsize block_size, + gconstpointer mem_block) G_GNUC_ALLOC_SIZE(1); +GLIB_AVAILABLE_IN_2_58 +gpointer g_atomic_rc_box_acquire (gpointer mem_block); +GLIB_AVAILABLE_IN_2_58 +void g_atomic_rc_box_release (gpointer mem_block); +GLIB_AVAILABLE_IN_2_58 +void g_atomic_rc_box_release_full (gpointer mem_block, + GDestroyNotify clear_func); + +GLIB_AVAILABLE_IN_2_58 +gsize g_atomic_rc_box_get_size (gpointer mem_block); + +#define g_rc_box_new(type) \ + ((type *) g_rc_box_alloc (sizeof (type))) +#define g_rc_box_new0(type) \ + ((type *) g_rc_box_alloc0 (sizeof (type))) +#define g_atomic_rc_box_new(type) \ + ((type *) g_atomic_rc_box_alloc (sizeof (type))) +#define g_atomic_rc_box_new0(type) \ + ((type *) g_atomic_rc_box_alloc0 (sizeof (type))) + +#if defined(glib_typeof) +/* Type check to avoid assigning references to different types */ +#define g_rc_box_acquire(mem_block) \ + ((glib_typeof (mem_block)) (g_rc_box_acquire) (mem_block)) +#define g_atomic_rc_box_acquire(mem_block) \ + ((glib_typeof (mem_block)) (g_atomic_rc_box_acquire) (mem_block)) + +/* Type check to avoid duplicating data to different types */ +#define g_rc_box_dup(block_size, mem_block) \ + ((glib_typeof (mem_block)) (g_rc_box_dup) (block_size, mem_block)) +#define g_atomic_rc_box_dup(block_size, mem_block) \ + ((glib_typeof (mem_block)) (g_atomic_rc_box_dup) (block_size, mem_block)) +#endif + +G_END_DECLS diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/grefcount.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/grefcount.h new file mode 100644 index 000000000..53b96932e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/grefcount.h @@ -0,0 +1,179 @@ +/* grefcount.h: Reference counting + * + * Copyright 2018 Emmanuele Bassi + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __GREFCOUNT_H__ +#define __GREFCOUNT_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_2_58 +void g_ref_count_init (grefcount *rc); +GLIB_AVAILABLE_IN_2_58 +void g_ref_count_inc (grefcount *rc); +GLIB_AVAILABLE_IN_2_58 +gboolean g_ref_count_dec (grefcount *rc); +GLIB_AVAILABLE_IN_2_58 +gboolean g_ref_count_compare (grefcount *rc, + gint val); + +GLIB_AVAILABLE_IN_2_58 +void g_atomic_ref_count_init (gatomicrefcount *arc); +GLIB_AVAILABLE_IN_2_58 +void g_atomic_ref_count_inc (gatomicrefcount *arc); +GLIB_AVAILABLE_IN_2_58 +gboolean g_atomic_ref_count_dec (gatomicrefcount *arc); +GLIB_AVAILABLE_IN_2_58 +gboolean g_atomic_ref_count_compare (gatomicrefcount *arc, + gint val); + +/** + * G_REF_COUNT_INIT: + * + * Evaluates to the initial reference count for `grefcount`. + * + * This macro is useful for initializing `grefcount` fields inside + * structures, for instance: + * + * |[ + * typedef struct { + * grefcount ref_count; + * char *name; + * char *address; + * } Person; + * + * static const Person default_person = { + * .ref_count = G_REF_COUNT_INIT, + * .name = "Default name", + * .address = "Default address", + * }; + * ]| + * + * Since: 2.78 + */ +#define G_REF_COUNT_INIT -1 \ + GLIB_AVAILABLE_MACRO_IN_2_78 + +/** + * G_ATOMIC_REF_COUNT_INIT: + * + * Evaluates to the initial reference count for `gatomicrefcount`. + * + * This macro is useful for initializing `gatomicrefcount` fields inside + * structures, for instance: + * + * |[ + * typedef struct { + * gatomicrefcount ref_count; + * char *name; + * char *address; + * } Person; + * + * static const Person default_person = { + * .ref_count = G_ATOMIC_REF_COUNT_INIT, + * .name = "Default name", + * .address = "Default address", + * }; + * ]| + * + * Since: 2.78 + */ +#define G_ATOMIC_REF_COUNT_INIT 1 \ + GLIB_AVAILABLE_MACRO_IN_2_78 + +/* On GCC we can use __extension__ to inline the API without using + * ancillary functions; we only do this when disabling checks, as + * it disables warnings when saturating the reference counters + */ +#if defined(__GNUC__) && defined(G_DISABLE_CHECKS) + +# define g_ref_count_init(rc) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(rc) == sizeof (grefcount)); \ + (void) (0 ? *(rc) ^ *(rc) : 1); \ + *(rc) = -1; \ + })) + +# define g_ref_count_inc(rc) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(rc) == sizeof (grefcount)); \ + (void) (0 ? *(rc) ^ *(rc) : 1); \ + if (*(rc) == G_MININT) ; else { \ + *(rc) -= 1; \ + } \ + })) + +# define g_ref_count_dec(rc) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(rc) == sizeof (grefcount)); \ + grefcount __rc = *(rc); \ + __rc += 1; \ + if (__rc == 0) ; else { \ + *(rc) = __rc; \ + } \ + (gboolean) (__rc == 0); \ + })) + +# define g_ref_count_compare(rc,val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(rc) == sizeof (grefcount)); \ + (void) (0 ? *(rc) ^ (val) : 1); \ + (gboolean) (*(rc) == -(val)); \ + })) + +# define g_atomic_ref_count_init(rc) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(rc) == sizeof (gatomicrefcount)); \ + (void) (0 ? *(rc) ^ *(rc) : 1); \ + *(rc) = 1; \ + })) + +# define g_atomic_ref_count_inc(rc) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(rc) == sizeof (gatomicrefcount)); \ + (void) (0 ? *(rc) ^ *(rc) : 1); \ + (void) (g_atomic_int_get (rc) == G_MAXINT ? 0 : g_atomic_int_inc ((rc))); \ + })) + +# define g_atomic_ref_count_dec(rc) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(rc) == sizeof (gatomicrefcount)); \ + (void) (0 ? *(rc) ^ *(rc) : 1); \ + g_atomic_int_dec_and_test ((rc)); \ + })) + +# define g_atomic_ref_count_compare(rc,val) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(rc) == sizeof (gatomicrefcount)); \ + (void) (0 ? *(rc) ^ (val) : 1); \ + (gboolean) (g_atomic_int_get (rc) == (val)); \ + })) + +#endif /* __GNUC__ && G_DISABLE_CHECKS */ + +G_END_DECLS + +#endif /* __GREFCOUNT_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/grefstring.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/grefstring.h new file mode 100644 index 000000000..ae7d173fc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/grefstring.h @@ -0,0 +1,59 @@ +/* grefstring.h: Reference counted strings + * + * Copyright 2018 Emmanuele Bassi + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#pragma once + +#include "gmem.h" +#include "gmacros.h" + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_2_58 +char * g_ref_string_new (const char *str); +GLIB_AVAILABLE_IN_2_58 +char * g_ref_string_new_len (const char *str, + gssize len); +GLIB_AVAILABLE_IN_2_58 +char * g_ref_string_new_intern (const char *str); + +GLIB_AVAILABLE_IN_2_58 +char * g_ref_string_acquire (char *str); +GLIB_AVAILABLE_IN_2_58 +void g_ref_string_release (char *str); + +GLIB_AVAILABLE_IN_2_58 +gsize g_ref_string_length (char *str); + +/** + * GRefString: + * + * A typedef for a reference-counted string. A pointer to a #GRefString can be + * treated like a standard `char*` array by all code, but can additionally have + * `g_ref_string_*()` methods called on it. `g_ref_string_*()` methods cannot be + * called on `char*` arrays not allocated using g_ref_string_new(). + * + * If using #GRefString with autocleanups, g_autoptr() must be used rather than + * g_autofree(), so that the reference counting metadata is also freed. + * + * Since: 2.58 + */ +typedef char GRefString; + +G_END_DECLS diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gregex.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gregex.h new file mode 100644 index 000000000..30eb38707 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gregex.h @@ -0,0 +1,620 @@ +/* GRegex -- regular expression API wrapper around PCRE. + * + * Copyright (C) 1999, 2000 Scott Wimer + * Copyright (C) 2004, Matthias Clasen + * Copyright (C) 2005 - 2007, Marco Barisione + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_REGEX_H__ +#define __G_REGEX_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +/** + * GRegexError: + * @G_REGEX_ERROR_COMPILE: Compilation of the regular expression failed. + * @G_REGEX_ERROR_OPTIMIZE: Optimization of the regular expression failed. + * @G_REGEX_ERROR_REPLACE: Replacement failed due to an ill-formed replacement + * string. + * @G_REGEX_ERROR_MATCH: The match process failed. + * @G_REGEX_ERROR_INTERNAL: Internal error of the regular expression engine. + * Since 2.16 + * @G_REGEX_ERROR_STRAY_BACKSLASH: "\\" at end of pattern. Since 2.16 + * @G_REGEX_ERROR_MISSING_CONTROL_CHAR: "\\c" at end of pattern. Since 2.16 + * @G_REGEX_ERROR_UNRECOGNIZED_ESCAPE: Unrecognized character follows "\\". + * Since 2.16 + * @G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER: Numbers out of order in "{}" + * quantifier. Since 2.16 + * @G_REGEX_ERROR_QUANTIFIER_TOO_BIG: Number too big in "{}" quantifier. + * Since 2.16 + * @G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS: Missing terminating "]" for + * character class. Since 2.16 + * @G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS: Invalid escape sequence + * in character class. Since 2.16 + * @G_REGEX_ERROR_RANGE_OUT_OF_ORDER: Range out of order in character class. + * Since 2.16 + * @G_REGEX_ERROR_NOTHING_TO_REPEAT: Nothing to repeat. Since 2.16 + * @G_REGEX_ERROR_UNRECOGNIZED_CHARACTER: Unrecognized character after "(?", + * "(?<" or "(?P". Since 2.16 + * @G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS: POSIX named classes are + * supported only within a class. Since 2.16 + * @G_REGEX_ERROR_UNMATCHED_PARENTHESIS: Missing terminating ")" or ")" + * without opening "(". Since 2.16 + * @G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE: Reference to non-existent + * subpattern. Since 2.16 + * @G_REGEX_ERROR_UNTERMINATED_COMMENT: Missing terminating ")" after comment. + * Since 2.16 + * @G_REGEX_ERROR_EXPRESSION_TOO_LARGE: Regular expression too large. + * Since 2.16 + * @G_REGEX_ERROR_MEMORY_ERROR: Failed to get memory. Since 2.16 + * @G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND: Lookbehind assertion is not + * fixed length. Since 2.16 + * @G_REGEX_ERROR_MALFORMED_CONDITION: Malformed number or name after "(?(". + * Since 2.16 + * @G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES: Conditional group contains + * more than two branches. Since 2.16 + * @G_REGEX_ERROR_ASSERTION_EXPECTED: Assertion expected after "(?(". + * Since 2.16 + * @G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME: Unknown POSIX class name. + * Since 2.16 + * @G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED: POSIX collating + * elements are not supported. Since 2.16 + * @G_REGEX_ERROR_HEX_CODE_TOO_LARGE: Character value in "\\x{...}" sequence + * is too large. Since 2.16 + * @G_REGEX_ERROR_INVALID_CONDITION: Invalid condition "(?(0)". Since 2.16 + * @G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND: \\C not allowed in + * lookbehind assertion. Since 2.16 + * @G_REGEX_ERROR_INFINITE_LOOP: Recursive call could loop indefinitely. + * Since 2.16 + * @G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR: Missing terminator + * in subpattern name. Since 2.16 + * @G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME: Two named subpatterns have + * the same name. Since 2.16 + * @G_REGEX_ERROR_MALFORMED_PROPERTY: Malformed "\\P" or "\\p" sequence. + * Since 2.16 + * @G_REGEX_ERROR_UNKNOWN_PROPERTY: Unknown property name after "\\P" or + * "\\p". Since 2.16 + * @G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG: Subpattern name is too long + * (maximum 32 characters). Since 2.16 + * @G_REGEX_ERROR_TOO_MANY_SUBPATTERNS: Too many named subpatterns (maximum + * 10,000). Since 2.16 + * @G_REGEX_ERROR_INVALID_OCTAL_VALUE: Octal value is greater than "\\377". + * Since 2.16 + * @G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE: "DEFINE" group contains more + * than one branch. Since 2.16 + * @G_REGEX_ERROR_DEFINE_REPETION: Repeating a "DEFINE" group is not allowed. + * This error is never raised. Since: 2.16 Deprecated: 2.34 + * @G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS: Inconsistent newline options. + * Since 2.16 + * @G_REGEX_ERROR_MISSING_BACK_REFERENCE: "\\g" is not followed by a braced, + * angle-bracketed, or quoted name or number, or by a plain number. Since: 2.16 + * @G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE: relative reference must not be zero. Since: 2.34 + * @G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN: the backtracing + * control verb used does not allow an argument. Since: 2.34 + * @G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB: unknown backtracing + * control verb. Since: 2.34 + * @G_REGEX_ERROR_NUMBER_TOO_BIG: number is too big in escape sequence. Since: 2.34 + * @G_REGEX_ERROR_MISSING_SUBPATTERN_NAME: Missing subpattern name. Since: 2.34 + * @G_REGEX_ERROR_MISSING_DIGIT: Missing digit. Since 2.34 + * @G_REGEX_ERROR_INVALID_DATA_CHARACTER: In JavaScript compatibility mode, + * "[" is an invalid data character. Since: 2.34 + * @G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME: different names for subpatterns of the + * same number are not allowed. Since: 2.34 + * @G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED: the backtracing control + * verb requires an argument. Since: 2.34 + * @G_REGEX_ERROR_INVALID_CONTROL_CHAR: "\\c" must be followed by an ASCII + * character. Since: 2.34 + * @G_REGEX_ERROR_MISSING_NAME: "\\k" is not followed by a braced, angle-bracketed, or + * quoted name. Since: 2.34 + * @G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS: "\\N" is not supported in a class. Since: 2.34 + * @G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES: too many forward references. Since: 2.34 + * @G_REGEX_ERROR_NAME_TOO_LONG: the name is too long in "(*MARK)", "(*PRUNE)", + * "(*SKIP)", or "(*THEN)". Since: 2.34 + * @G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE: the character value in the \\u sequence is + * too large. Since: 2.34 + * + * Error codes returned by regular expressions functions. + * + * Since: 2.14 + */ +typedef enum +{ + G_REGEX_ERROR_COMPILE, + G_REGEX_ERROR_OPTIMIZE, + G_REGEX_ERROR_REPLACE, + G_REGEX_ERROR_MATCH, + G_REGEX_ERROR_INTERNAL, + + /* These are the error codes from PCRE + 100 */ + G_REGEX_ERROR_STRAY_BACKSLASH = 101, + G_REGEX_ERROR_MISSING_CONTROL_CHAR = 102, + G_REGEX_ERROR_UNRECOGNIZED_ESCAPE = 103, + G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER = 104, + G_REGEX_ERROR_QUANTIFIER_TOO_BIG = 105, + G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS = 106, + G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS = 107, + G_REGEX_ERROR_RANGE_OUT_OF_ORDER = 108, + G_REGEX_ERROR_NOTHING_TO_REPEAT = 109, + G_REGEX_ERROR_UNRECOGNIZED_CHARACTER = 112, + G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS = 113, + G_REGEX_ERROR_UNMATCHED_PARENTHESIS = 114, + G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE = 115, + G_REGEX_ERROR_UNTERMINATED_COMMENT = 118, + G_REGEX_ERROR_EXPRESSION_TOO_LARGE = 120, + G_REGEX_ERROR_MEMORY_ERROR = 121, + G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND = 125, + G_REGEX_ERROR_MALFORMED_CONDITION = 126, + G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES = 127, + G_REGEX_ERROR_ASSERTION_EXPECTED = 128, + G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME = 130, + G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED = 131, + G_REGEX_ERROR_HEX_CODE_TOO_LARGE = 134, + G_REGEX_ERROR_INVALID_CONDITION = 135, + G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND = 136, + G_REGEX_ERROR_INFINITE_LOOP = 140, + G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR = 142, + G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME = 143, + G_REGEX_ERROR_MALFORMED_PROPERTY = 146, + G_REGEX_ERROR_UNKNOWN_PROPERTY = 147, + G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG = 148, + G_REGEX_ERROR_TOO_MANY_SUBPATTERNS = 149, + G_REGEX_ERROR_INVALID_OCTAL_VALUE = 151, + G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE = 154, + G_REGEX_ERROR_DEFINE_REPETION = 155, + G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS = 156, + G_REGEX_ERROR_MISSING_BACK_REFERENCE = 157, + G_REGEX_ERROR_INVALID_RELATIVE_REFERENCE = 158, + G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN = 159, + G_REGEX_ERROR_UNKNOWN_BACKTRACKING_CONTROL_VERB = 160, + G_REGEX_ERROR_NUMBER_TOO_BIG = 161, + G_REGEX_ERROR_MISSING_SUBPATTERN_NAME = 162, + G_REGEX_ERROR_MISSING_DIGIT = 163, + G_REGEX_ERROR_INVALID_DATA_CHARACTER = 164, + G_REGEX_ERROR_EXTRA_SUBPATTERN_NAME = 165, + G_REGEX_ERROR_BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED = 166, + G_REGEX_ERROR_INVALID_CONTROL_CHAR = 168, + G_REGEX_ERROR_MISSING_NAME = 169, + G_REGEX_ERROR_NOT_SUPPORTED_IN_CLASS = 171, + G_REGEX_ERROR_TOO_MANY_FORWARD_REFERENCES = 172, + G_REGEX_ERROR_NAME_TOO_LONG = 175, + G_REGEX_ERROR_CHARACTER_VALUE_TOO_LARGE = 176 +} GRegexError; + +/** + * G_REGEX_ERROR: + * + * Error domain for regular expressions. Errors in this domain will be + * from the #GRegexError enumeration. See #GError for information on + * error domains. + * + * Since: 2.14 + */ +#define G_REGEX_ERROR g_regex_error_quark () + +GLIB_AVAILABLE_IN_ALL +GQuark g_regex_error_quark (void); + +/** + * GRegexCompileFlags: + * @G_REGEX_DEFAULT: No special options set. Since: 2.74 + * @G_REGEX_CASELESS: Letters in the pattern match both upper- and + * lowercase letters. This option can be changed within a pattern + * by a "(?i)" option setting. + * @G_REGEX_MULTILINE: By default, GRegex treats the strings as consisting + * of a single line of characters (even if it actually contains + * newlines). The "start of line" metacharacter ("^") matches only + * at the start of the string, while the "end of line" metacharacter + * ("$") matches only at the end of the string, or before a terminating + * newline (unless %G_REGEX_DOLLAR_ENDONLY is set). When + * %G_REGEX_MULTILINE is set, the "start of line" and "end of line" + * constructs match immediately following or immediately before any + * newline in the string, respectively, as well as at the very start + * and end. This can be changed within a pattern by a "(?m)" option + * setting. + * @G_REGEX_DOTALL: A dot metacharacter (".") in the pattern matches all + * characters, including newlines. Without it, newlines are excluded. + * This option can be changed within a pattern by a ("?s") option setting. + * @G_REGEX_EXTENDED: Whitespace data characters in the pattern are + * totally ignored except when escaped or inside a character class. + * Whitespace does not include the VT character (code 11). In addition, + * characters between an unescaped "#" outside a character class and + * the next newline character, inclusive, are also ignored. This can + * be changed within a pattern by a "(?x)" option setting. + * @G_REGEX_ANCHORED: The pattern is forced to be "anchored", that is, + * it is constrained to match only at the first matching point in the + * string that is being searched. This effect can also be achieved by + * appropriate constructs in the pattern itself such as the "^" + * metacharacter. + * @G_REGEX_DOLLAR_ENDONLY: A dollar metacharacter ("$") in the pattern + * matches only at the end of the string. Without this option, a + * dollar also matches immediately before the final character if + * it is a newline (but not before any other newlines). This option + * is ignored if %G_REGEX_MULTILINE is set. + * @G_REGEX_UNGREEDY: Inverts the "greediness" of the quantifiers so that + * they are not greedy by default, but become greedy if followed by "?". + * It can also be set by a "(?U)" option setting within the pattern. + * @G_REGEX_RAW: Usually strings must be valid UTF-8 strings, using this + * flag they are considered as a raw sequence of bytes. + * @G_REGEX_NO_AUTO_CAPTURE: Disables the use of numbered capturing + * parentheses in the pattern. Any opening parenthesis that is not + * followed by "?" behaves as if it were followed by "?:" but named + * parentheses can still be used for capturing (and they acquire numbers + * in the usual way). + * @G_REGEX_OPTIMIZE: Since 2.74 and the port to pcre2, requests JIT + * compilation, which, if the just-in-time compiler is available, further + * processes a compiled pattern into machine code that executes much + * faster. However, it comes at the cost of extra processing before the + * match is performed, so it is most beneficial to use this when the same + * compiled pattern is used for matching many times. Before 2.74 this + * option used the built-in non-JIT optimizations in pcre1. + * @G_REGEX_FIRSTLINE: Limits an unanchored pattern to match before (or at) the + * first newline. Since: 2.34 + * @G_REGEX_DUPNAMES: Names used to identify capturing subpatterns need not + * be unique. This can be helpful for certain types of pattern when it + * is known that only one instance of the named subpattern can ever be + * matched. + * @G_REGEX_NEWLINE_CR: Usually any newline character or character sequence is + * recognized. If this option is set, the only recognized newline character + * is '\r'. + * @G_REGEX_NEWLINE_LF: Usually any newline character or character sequence is + * recognized. If this option is set, the only recognized newline character + * is '\n'. + * @G_REGEX_NEWLINE_CRLF: Usually any newline character or character sequence is + * recognized. If this option is set, the only recognized newline character + * sequence is '\r\n'. + * @G_REGEX_NEWLINE_ANYCRLF: Usually any newline character or character sequence + * is recognized. If this option is set, the only recognized newline character + * sequences are '\r', '\n', and '\r\n'. Since: 2.34 + * @G_REGEX_BSR_ANYCRLF: Usually any newline character or character sequence + * is recognised. If this option is set, then "\R" only recognizes the newline + * characters '\r', '\n' and '\r\n'. Since: 2.34 + * @G_REGEX_JAVASCRIPT_COMPAT: Changes behaviour so that it is compatible with + * JavaScript rather than PCRE. Since GLib 2.74 this is no longer supported, + * as libpcre2 does not support it. Since: 2.34 Deprecated: 2.74 + * + * Flags specifying compile-time options. + * + * Since: 2.14 + */ +/* Remember to update G_REGEX_COMPILE_MASK in gregex.c after + * adding a new flag. + */ +typedef enum +{ + G_REGEX_DEFAULT GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = 0, + G_REGEX_CASELESS = 1 << 0, + G_REGEX_MULTILINE = 1 << 1, + G_REGEX_DOTALL = 1 << 2, + G_REGEX_EXTENDED = 1 << 3, + G_REGEX_ANCHORED = 1 << 4, + G_REGEX_DOLLAR_ENDONLY = 1 << 5, + G_REGEX_UNGREEDY = 1 << 9, + G_REGEX_RAW = 1 << 11, + G_REGEX_NO_AUTO_CAPTURE = 1 << 12, + G_REGEX_OPTIMIZE = 1 << 13, + G_REGEX_FIRSTLINE = 1 << 18, + G_REGEX_DUPNAMES = 1 << 19, + G_REGEX_NEWLINE_CR = 1 << 20, + G_REGEX_NEWLINE_LF = 1 << 21, + G_REGEX_NEWLINE_CRLF = G_REGEX_NEWLINE_CR | G_REGEX_NEWLINE_LF, + G_REGEX_NEWLINE_ANYCRLF = G_REGEX_NEWLINE_CR | 1 << 22, + G_REGEX_BSR_ANYCRLF = 1 << 23, + G_REGEX_JAVASCRIPT_COMPAT GLIB_DEPRECATED_ENUMERATOR_IN_2_74 = 1 << 25 +} GRegexCompileFlags; + +/** + * GRegexMatchFlags: + * @G_REGEX_MATCH_DEFAULT: No special options set. Since: 2.74 + * @G_REGEX_MATCH_ANCHORED: The pattern is forced to be "anchored", that is, + * it is constrained to match only at the first matching point in the + * string that is being searched. This effect can also be achieved by + * appropriate constructs in the pattern itself such as the "^" + * metacharacter. + * @G_REGEX_MATCH_NOTBOL: Specifies that first character of the string is + * not the beginning of a line, so the circumflex metacharacter should + * not match before it. Setting this without %G_REGEX_MULTILINE (at + * compile time) causes circumflex never to match. This option affects + * only the behaviour of the circumflex metacharacter, it does not + * affect "\A". + * @G_REGEX_MATCH_NOTEOL: Specifies that the end of the subject string is + * not the end of a line, so the dollar metacharacter should not match + * it nor (except in multiline mode) a newline immediately before it. + * Setting this without %G_REGEX_MULTILINE (at compile time) causes + * dollar never to match. This option affects only the behaviour of + * the dollar metacharacter, it does not affect "\Z" or "\z". + * @G_REGEX_MATCH_NOTEMPTY: An empty string is not considered to be a valid + * match if this option is set. If there are alternatives in the pattern, + * they are tried. If all the alternatives match the empty string, the + * entire match fails. For example, if the pattern "a?b?" is applied to + * a string not beginning with "a" or "b", it matches the empty string + * at the start of the string. With this flag set, this match is not + * valid, so GRegex searches further into the string for occurrences + * of "a" or "b". + * @G_REGEX_MATCH_PARTIAL: Turns on the partial matching feature, for more + * documentation on partial matching see g_match_info_is_partial_match(). + * @G_REGEX_MATCH_NEWLINE_CR: Overrides the newline definition set when + * creating a new #GRegex, setting the '\r' character as line terminator. + * @G_REGEX_MATCH_NEWLINE_LF: Overrides the newline definition set when + * creating a new #GRegex, setting the '\n' character as line terminator. + * @G_REGEX_MATCH_NEWLINE_CRLF: Overrides the newline definition set when + * creating a new #GRegex, setting the '\r\n' characters sequence as line terminator. + * @G_REGEX_MATCH_NEWLINE_ANY: Overrides the newline definition set when + * creating a new #GRegex, any Unicode newline sequence + * is recognised as a newline. These are '\r', '\n' and '\rn', and the + * single characters U+000B LINE TABULATION, U+000C FORM FEED (FF), + * U+0085 NEXT LINE (NEL), U+2028 LINE SEPARATOR and + * U+2029 PARAGRAPH SEPARATOR. + * @G_REGEX_MATCH_NEWLINE_ANYCRLF: Overrides the newline definition set when + * creating a new #GRegex; any '\r', '\n', or '\r\n' character sequence + * is recognized as a newline. Since: 2.34 + * @G_REGEX_MATCH_BSR_ANYCRLF: Overrides the newline definition for "\R" set when + * creating a new #GRegex; only '\r', '\n', or '\r\n' character sequences + * are recognized as a newline by "\R". Since: 2.34 + * @G_REGEX_MATCH_BSR_ANY: Overrides the newline definition for "\R" set when + * creating a new #GRegex; any Unicode newline character or character sequence + * are recognized as a newline by "\R". These are '\r', '\n' and '\rn', and the + * single characters U+000B LINE TABULATION, U+000C FORM FEED (FF), + * U+0085 NEXT LINE (NEL), U+2028 LINE SEPARATOR and + * U+2029 PARAGRAPH SEPARATOR. Since: 2.34 + * @G_REGEX_MATCH_PARTIAL_SOFT: An alias for %G_REGEX_MATCH_PARTIAL. Since: 2.34 + * @G_REGEX_MATCH_PARTIAL_HARD: Turns on the partial matching feature. In contrast to + * to %G_REGEX_MATCH_PARTIAL_SOFT, this stops matching as soon as a partial match + * is found, without continuing to search for a possible complete match. See + * g_match_info_is_partial_match() for more information. Since: 2.34 + * @G_REGEX_MATCH_NOTEMPTY_ATSTART: Like %G_REGEX_MATCH_NOTEMPTY, but only applied to + * the start of the matched string. For anchored + * patterns this can only happen for pattern containing "\K". Since: 2.34 + * + * Flags specifying match-time options. + * + * Since: 2.14 + */ +/* Remember to update G_REGEX_MATCH_MASK in gregex.c after + * adding a new flag. */ +typedef enum +{ + G_REGEX_MATCH_DEFAULT GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = 0, + G_REGEX_MATCH_ANCHORED = 1 << 4, + G_REGEX_MATCH_NOTBOL = 1 << 7, + G_REGEX_MATCH_NOTEOL = 1 << 8, + G_REGEX_MATCH_NOTEMPTY = 1 << 10, + G_REGEX_MATCH_PARTIAL = 1 << 15, + G_REGEX_MATCH_NEWLINE_CR = 1 << 20, + G_REGEX_MATCH_NEWLINE_LF = 1 << 21, + G_REGEX_MATCH_NEWLINE_CRLF = G_REGEX_MATCH_NEWLINE_CR | G_REGEX_MATCH_NEWLINE_LF, + G_REGEX_MATCH_NEWLINE_ANY = 1 << 22, + G_REGEX_MATCH_NEWLINE_ANYCRLF = G_REGEX_MATCH_NEWLINE_CR | G_REGEX_MATCH_NEWLINE_ANY, + G_REGEX_MATCH_BSR_ANYCRLF = 1 << 23, + G_REGEX_MATCH_BSR_ANY = 1 << 24, + G_REGEX_MATCH_PARTIAL_SOFT = G_REGEX_MATCH_PARTIAL, + G_REGEX_MATCH_PARTIAL_HARD = 1 << 27, + G_REGEX_MATCH_NOTEMPTY_ATSTART = 1 << 28 +} GRegexMatchFlags; + +/** + * GRegex: + * + * A GRegex is the "compiled" form of a regular expression pattern. + * This structure is opaque and its fields cannot be accessed directly. + * + * Since: 2.14 + */ +typedef struct _GRegex GRegex; + + +/** + * GMatchInfo: + * + * A GMatchInfo is an opaque struct used to return information about + * matches. + */ +typedef struct _GMatchInfo GMatchInfo; + +/** + * GRegexEvalCallback: + * @match_info: the #GMatchInfo generated by the match. + * Use g_match_info_get_regex() and g_match_info_get_string() if you + * need the #GRegex or the matched string. + * @result: a #GString containing the new string + * @user_data: user data passed to g_regex_replace_eval() + * + * Specifies the type of the function passed to g_regex_replace_eval(). + * It is called for each occurrence of the pattern in the string passed + * to g_regex_replace_eval(), and it should append the replacement to + * @result. + * + * Returns: %FALSE to continue the replacement process, %TRUE to stop it + * + * Since: 2.14 + */ +typedef gboolean (*GRegexEvalCallback) (const GMatchInfo *match_info, + GString *result, + gpointer user_data); + + +GLIB_AVAILABLE_IN_ALL +GRegex *g_regex_new (const gchar *pattern, + GRegexCompileFlags compile_options, + GRegexMatchFlags match_options, + GError **error); +GLIB_AVAILABLE_IN_ALL +GRegex *g_regex_ref (GRegex *regex); +GLIB_AVAILABLE_IN_ALL +void g_regex_unref (GRegex *regex); +GLIB_AVAILABLE_IN_ALL +const gchar *g_regex_get_pattern (const GRegex *regex); +GLIB_AVAILABLE_IN_ALL +gint g_regex_get_max_backref (const GRegex *regex); +GLIB_AVAILABLE_IN_ALL +gint g_regex_get_capture_count (const GRegex *regex); +GLIB_AVAILABLE_IN_ALL +gboolean g_regex_get_has_cr_or_lf (const GRegex *regex); +GLIB_AVAILABLE_IN_2_38 +gint g_regex_get_max_lookbehind (const GRegex *regex); +GLIB_AVAILABLE_IN_ALL +gint g_regex_get_string_number (const GRegex *regex, + const gchar *name); +GLIB_AVAILABLE_IN_ALL +gchar *g_regex_escape_string (const gchar *string, + gint length); +GLIB_AVAILABLE_IN_ALL +gchar *g_regex_escape_nul (const gchar *string, + gint length); + +GLIB_AVAILABLE_IN_ALL +GRegexCompileFlags g_regex_get_compile_flags (const GRegex *regex); +GLIB_AVAILABLE_IN_ALL +GRegexMatchFlags g_regex_get_match_flags (const GRegex *regex); + +/* Matching. */ +GLIB_AVAILABLE_IN_ALL +gboolean g_regex_match_simple (const gchar *pattern, + const gchar *string, + GRegexCompileFlags compile_options, + GRegexMatchFlags match_options); +GLIB_AVAILABLE_IN_ALL +gboolean g_regex_match (const GRegex *regex, + const gchar *string, + GRegexMatchFlags match_options, + GMatchInfo **match_info); +GLIB_AVAILABLE_IN_ALL +gboolean g_regex_match_full (const GRegex *regex, + const gchar *string, + gssize string_len, + gint start_position, + GRegexMatchFlags match_options, + GMatchInfo **match_info, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_regex_match_all (const GRegex *regex, + const gchar *string, + GRegexMatchFlags match_options, + GMatchInfo **match_info); +GLIB_AVAILABLE_IN_ALL +gboolean g_regex_match_all_full (const GRegex *regex, + const gchar *string, + gssize string_len, + gint start_position, + GRegexMatchFlags match_options, + GMatchInfo **match_info, + GError **error); + +/* String splitting. */ +GLIB_AVAILABLE_IN_ALL +gchar **g_regex_split_simple (const gchar *pattern, + const gchar *string, + GRegexCompileFlags compile_options, + GRegexMatchFlags match_options); +GLIB_AVAILABLE_IN_ALL +gchar **g_regex_split (const GRegex *regex, + const gchar *string, + GRegexMatchFlags match_options); +GLIB_AVAILABLE_IN_ALL +gchar **g_regex_split_full (const GRegex *regex, + const gchar *string, + gssize string_len, + gint start_position, + GRegexMatchFlags match_options, + gint max_tokens, + GError **error); + +/* String replacement. */ +GLIB_AVAILABLE_IN_ALL +gchar *g_regex_replace (const GRegex *regex, + const gchar *string, + gssize string_len, + gint start_position, + const gchar *replacement, + GRegexMatchFlags match_options, + GError **error); +GLIB_AVAILABLE_IN_ALL +gchar *g_regex_replace_literal (const GRegex *regex, + const gchar *string, + gssize string_len, + gint start_position, + const gchar *replacement, + GRegexMatchFlags match_options, + GError **error); +GLIB_AVAILABLE_IN_ALL +gchar *g_regex_replace_eval (const GRegex *regex, + const gchar *string, + gssize string_len, + gint start_position, + GRegexMatchFlags match_options, + GRegexEvalCallback eval, + gpointer user_data, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_regex_check_replacement (const gchar *replacement, + gboolean *has_references, + GError **error); + +/* Match info */ +GLIB_AVAILABLE_IN_ALL +GRegex *g_match_info_get_regex (const GMatchInfo *match_info); +GLIB_AVAILABLE_IN_ALL +const gchar *g_match_info_get_string (const GMatchInfo *match_info); + +GLIB_AVAILABLE_IN_ALL +GMatchInfo *g_match_info_ref (GMatchInfo *match_info); +GLIB_AVAILABLE_IN_ALL +void g_match_info_unref (GMatchInfo *match_info); +GLIB_AVAILABLE_IN_ALL +void g_match_info_free (GMatchInfo *match_info); +GLIB_AVAILABLE_IN_ALL +gboolean g_match_info_next (GMatchInfo *match_info, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_match_info_matches (const GMatchInfo *match_info); +GLIB_AVAILABLE_IN_ALL +gint g_match_info_get_match_count (const GMatchInfo *match_info); +GLIB_AVAILABLE_IN_ALL +gboolean g_match_info_is_partial_match (const GMatchInfo *match_info); +GLIB_AVAILABLE_IN_ALL +gchar *g_match_info_expand_references(const GMatchInfo *match_info, + const gchar *string_to_expand, + GError **error); +GLIB_AVAILABLE_IN_ALL +gchar *g_match_info_fetch (const GMatchInfo *match_info, + gint match_num); +GLIB_AVAILABLE_IN_ALL +gboolean g_match_info_fetch_pos (const GMatchInfo *match_info, + gint match_num, + gint *start_pos, + gint *end_pos); +GLIB_AVAILABLE_IN_ALL +gchar *g_match_info_fetch_named (const GMatchInfo *match_info, + const gchar *name); +GLIB_AVAILABLE_IN_ALL +gboolean g_match_info_fetch_named_pos (const GMatchInfo *match_info, + const gchar *name, + gint *start_pos, + gint *end_pos); +GLIB_AVAILABLE_IN_ALL +gchar **g_match_info_fetch_all (const GMatchInfo *match_info); + +G_END_DECLS + +#endif /* __G_REGEX_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gscanner.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gscanner.h new file mode 100644 index 000000000..bbad353e2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gscanner.h @@ -0,0 +1,301 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_SCANNER_H__ +#define __G_SCANNER_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +typedef struct _GScanner GScanner; +typedef struct _GScannerConfig GScannerConfig; +typedef union _GTokenValue GTokenValue; + +typedef void (*GScannerMsgFunc) (GScanner *scanner, + gchar *message, + gboolean error); + +/* GScanner: Flexible lexical scanner for general purpose. + */ + +/* Character sets */ +#define G_CSET_A_2_Z "ABCDEFGHIJKLMNOPQRSTUVWXYZ" +#define G_CSET_a_2_z "abcdefghijklmnopqrstuvwxyz" +#define G_CSET_DIGITS "0123456789" +#define G_CSET_LATINC "\300\301\302\303\304\305\306"\ + "\307\310\311\312\313\314\315\316\317\320"\ + "\321\322\323\324\325\326"\ + "\330\331\332\333\334\335\336" +#define G_CSET_LATINS "\337\340\341\342\343\344\345\346"\ + "\347\350\351\352\353\354\355\356\357\360"\ + "\361\362\363\364\365\366"\ + "\370\371\372\373\374\375\376\377" + +/* Error types */ +typedef enum +{ + G_ERR_UNKNOWN, + G_ERR_UNEXP_EOF, + G_ERR_UNEXP_EOF_IN_STRING, + G_ERR_UNEXP_EOF_IN_COMMENT, + G_ERR_NON_DIGIT_IN_CONST, + G_ERR_DIGIT_RADIX, + G_ERR_FLOAT_RADIX, + G_ERR_FLOAT_MALFORMED +} GErrorType; + +/* Token types */ +typedef enum +{ + G_TOKEN_EOF = 0, + + G_TOKEN_LEFT_PAREN = '(', + G_TOKEN_RIGHT_PAREN = ')', + G_TOKEN_LEFT_CURLY = '{', + G_TOKEN_RIGHT_CURLY = '}', + G_TOKEN_LEFT_BRACE = '[', + G_TOKEN_RIGHT_BRACE = ']', + G_TOKEN_EQUAL_SIGN = '=', + G_TOKEN_COMMA = ',', + + G_TOKEN_NONE = 256, + + G_TOKEN_ERROR, + + G_TOKEN_CHAR, + G_TOKEN_BINARY, + G_TOKEN_OCTAL, + G_TOKEN_INT, + G_TOKEN_HEX, + G_TOKEN_FLOAT, + G_TOKEN_STRING, + + G_TOKEN_SYMBOL, + G_TOKEN_IDENTIFIER, + G_TOKEN_IDENTIFIER_NULL, + + G_TOKEN_COMMENT_SINGLE, + G_TOKEN_COMMENT_MULTI, + + /*< private >*/ + G_TOKEN_LAST +} GTokenType; + +union _GTokenValue +{ + gpointer v_symbol; + gchar *v_identifier; + gulong v_binary; + gulong v_octal; + gulong v_int; + guint64 v_int64; + gdouble v_float; + gulong v_hex; + gchar *v_string; + gchar *v_comment; + guchar v_char; + guint v_error; +}; + +struct _GScannerConfig +{ + /* Character sets + */ + gchar *cset_skip_characters; /* default: " \t\n" */ + gchar *cset_identifier_first; + gchar *cset_identifier_nth; + gchar *cpair_comment_single; /* default: "#\n" */ + + /* Should symbol lookup work case sensitive? + */ + guint case_sensitive : 1; + + /* Boolean values to be adjusted "on the fly" + * to configure scanning behaviour. + */ + guint skip_comment_multi : 1; /* C like comment */ + guint skip_comment_single : 1; /* single line comment */ + guint scan_comment_multi : 1; /* scan multi line comments? */ + guint scan_identifier : 1; + guint scan_identifier_1char : 1; + guint scan_identifier_NULL : 1; + guint scan_symbols : 1; + guint scan_binary : 1; + guint scan_octal : 1; + guint scan_float : 1; + guint scan_hex : 1; /* '0x0ff0' */ + guint scan_hex_dollar : 1; /* '$0ff0' */ + guint scan_string_sq : 1; /* string: 'anything' */ + guint scan_string_dq : 1; /* string: "\\-escapes!\n" */ + guint numbers_2_int : 1; /* bin, octal, hex => int */ + guint int_2_float : 1; /* int => G_TOKEN_FLOAT? */ + guint identifier_2_string : 1; + guint char_2_token : 1; /* return G_TOKEN_CHAR? */ + guint symbol_2_token : 1; + guint scope_0_fallback : 1; /* try scope 0 on lookups? */ + guint store_int64 : 1; /* use value.v_int64 rather than v_int */ + + /*< private >*/ + guint padding_dummy; +}; + +struct _GScanner +{ + /* unused fields */ + gpointer user_data; + guint max_parse_errors; + + /* g_scanner_error() increments this field */ + guint parse_errors; + + /* name of input stream, featured by the default message handler */ + const gchar *input_name; + + /* quarked data */ + GData *qdata; + + /* link into the scanner configuration */ + GScannerConfig *config; + + /* fields filled in after g_scanner_get_next_token() */ + GTokenType token; + GTokenValue value; + guint line; + guint position; + + /* fields filled in after g_scanner_peek_next_token() */ + GTokenType next_token; + GTokenValue next_value; + guint next_line; + guint next_position; + + /*< private >*/ + /* to be considered private */ + GHashTable *symbol_table; + gint input_fd; + const gchar *text; + const gchar *text_end; + gchar *buffer; + guint scope_id; + + /*< public >*/ + /* handler function for _warn and _error */ + GScannerMsgFunc msg_handler; +}; + +GLIB_AVAILABLE_IN_ALL +GScanner* g_scanner_new (const GScannerConfig *config_templ); +GLIB_AVAILABLE_IN_ALL +void g_scanner_destroy (GScanner *scanner); +GLIB_AVAILABLE_IN_ALL +void g_scanner_input_file (GScanner *scanner, + gint input_fd); +GLIB_AVAILABLE_IN_ALL +void g_scanner_sync_file_offset (GScanner *scanner); +GLIB_AVAILABLE_IN_ALL +void g_scanner_input_text (GScanner *scanner, + const gchar *text, + guint text_len); +GLIB_AVAILABLE_IN_ALL +GTokenType g_scanner_get_next_token (GScanner *scanner); +GLIB_AVAILABLE_IN_ALL +GTokenType g_scanner_peek_next_token (GScanner *scanner); +GLIB_AVAILABLE_IN_ALL +GTokenType g_scanner_cur_token (GScanner *scanner); +GLIB_AVAILABLE_IN_ALL +GTokenValue g_scanner_cur_value (GScanner *scanner); +GLIB_AVAILABLE_IN_ALL +guint g_scanner_cur_line (GScanner *scanner); +GLIB_AVAILABLE_IN_ALL +guint g_scanner_cur_position (GScanner *scanner); +GLIB_AVAILABLE_IN_ALL +gboolean g_scanner_eof (GScanner *scanner); +GLIB_AVAILABLE_IN_ALL +guint g_scanner_set_scope (GScanner *scanner, + guint scope_id); +GLIB_AVAILABLE_IN_ALL +void g_scanner_scope_add_symbol (GScanner *scanner, + guint scope_id, + const gchar *symbol, + gpointer value); +GLIB_AVAILABLE_IN_ALL +void g_scanner_scope_remove_symbol (GScanner *scanner, + guint scope_id, + const gchar *symbol); +GLIB_AVAILABLE_IN_ALL +gpointer g_scanner_scope_lookup_symbol (GScanner *scanner, + guint scope_id, + const gchar *symbol); +GLIB_AVAILABLE_IN_ALL +void g_scanner_scope_foreach_symbol (GScanner *scanner, + guint scope_id, + GHFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +gpointer g_scanner_lookup_symbol (GScanner *scanner, + const gchar *symbol); +GLIB_AVAILABLE_IN_ALL +void g_scanner_unexp_token (GScanner *scanner, + GTokenType expected_token, + const gchar *identifier_spec, + const gchar *symbol_spec, + const gchar *symbol_name, + const gchar *message, + gint is_error); +GLIB_AVAILABLE_IN_ALL +void g_scanner_error (GScanner *scanner, + const gchar *format, + ...) G_GNUC_PRINTF (2,3); +GLIB_AVAILABLE_IN_ALL +void g_scanner_warn (GScanner *scanner, + const gchar *format, + ...) G_GNUC_PRINTF (2,3); + +/* keep downward source compatibility */ +#define g_scanner_add_symbol( scanner, symbol, value ) G_STMT_START { \ + g_scanner_scope_add_symbol ((scanner), 0, (symbol), (value)); \ +} G_STMT_END GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_scanner_scope_add_symbol) +#define g_scanner_remove_symbol( scanner, symbol ) G_STMT_START { \ + g_scanner_scope_remove_symbol ((scanner), 0, (symbol)); \ +} G_STMT_END GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_scanner_scope_remove_symbol) +#define g_scanner_foreach_symbol( scanner, func, data ) G_STMT_START { \ + g_scanner_scope_foreach_symbol ((scanner), 0, (func), (data)); \ +} G_STMT_END GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_scanner_scope_foreach_symbol) + +/* The following two functions are deprecated and will be removed in + * the next major release. They do no good. */ +#define g_scanner_freeze_symbol_table(scanner) ((void)0) GLIB_DEPRECATED_MACRO_IN_2_26 +#define g_scanner_thaw_symbol_table(scanner) ((void)0) GLIB_DEPRECATED_MACRO_IN_2_26 + +G_END_DECLS + +#endif /* __G_SCANNER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gsequence.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gsequence.h new file mode 100644 index 000000000..c1b340493 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gsequence.h @@ -0,0 +1,175 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 + * Soeren Sandmann (sandmann@daimi.au.dk) + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __G_SEQUENCE_H__ +#define __G_SEQUENCE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GSequence GSequence; +typedef struct _GSequenceNode GSequenceIter; + +typedef gint (* GSequenceIterCompareFunc) (GSequenceIter *a, + GSequenceIter *b, + gpointer data); + + +/* GSequence */ +GLIB_AVAILABLE_IN_ALL +GSequence * g_sequence_new (GDestroyNotify data_destroy); +GLIB_AVAILABLE_IN_ALL +void g_sequence_free (GSequence *seq); +GLIB_AVAILABLE_IN_ALL +gint g_sequence_get_length (GSequence *seq); +GLIB_AVAILABLE_IN_ALL +void g_sequence_foreach (GSequence *seq, + GFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +void g_sequence_foreach_range (GSequenceIter *begin, + GSequenceIter *end, + GFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +void g_sequence_sort (GSequence *seq, + GCompareDataFunc cmp_func, + gpointer cmp_data); +GLIB_AVAILABLE_IN_ALL +void g_sequence_sort_iter (GSequence *seq, + GSequenceIterCompareFunc cmp_func, + gpointer cmp_data); +GLIB_AVAILABLE_IN_2_48 +gboolean g_sequence_is_empty (GSequence *seq); + + +/* Getting iters */ +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_get_begin_iter (GSequence *seq); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_get_end_iter (GSequence *seq); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_get_iter_at_pos (GSequence *seq, + gint pos); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_append (GSequence *seq, + gpointer data); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_prepend (GSequence *seq, + gpointer data); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_insert_before (GSequenceIter *iter, + gpointer data); +GLIB_AVAILABLE_IN_ALL +void g_sequence_move (GSequenceIter *src, + GSequenceIter *dest); +GLIB_AVAILABLE_IN_ALL +void g_sequence_swap (GSequenceIter *a, + GSequenceIter *b); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_insert_sorted (GSequence *seq, + gpointer data, + GCompareDataFunc cmp_func, + gpointer cmp_data); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_insert_sorted_iter (GSequence *seq, + gpointer data, + GSequenceIterCompareFunc iter_cmp, + gpointer cmp_data); +GLIB_AVAILABLE_IN_ALL +void g_sequence_sort_changed (GSequenceIter *iter, + GCompareDataFunc cmp_func, + gpointer cmp_data); +GLIB_AVAILABLE_IN_ALL +void g_sequence_sort_changed_iter (GSequenceIter *iter, + GSequenceIterCompareFunc iter_cmp, + gpointer cmp_data); +GLIB_AVAILABLE_IN_ALL +void g_sequence_remove (GSequenceIter *iter); +GLIB_AVAILABLE_IN_ALL +void g_sequence_remove_range (GSequenceIter *begin, + GSequenceIter *end); +GLIB_AVAILABLE_IN_ALL +void g_sequence_move_range (GSequenceIter *dest, + GSequenceIter *begin, + GSequenceIter *end); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_search (GSequence *seq, + gpointer data, + GCompareDataFunc cmp_func, + gpointer cmp_data); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_search_iter (GSequence *seq, + gpointer data, + GSequenceIterCompareFunc iter_cmp, + gpointer cmp_data); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_lookup (GSequence *seq, + gpointer data, + GCompareDataFunc cmp_func, + gpointer cmp_data); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_lookup_iter (GSequence *seq, + gpointer data, + GSequenceIterCompareFunc iter_cmp, + gpointer cmp_data); + + +/* Dereferencing */ +GLIB_AVAILABLE_IN_ALL +gpointer g_sequence_get (GSequenceIter *iter); +GLIB_AVAILABLE_IN_ALL +void g_sequence_set (GSequenceIter *iter, + gpointer data); + +/* Operations on GSequenceIter * */ +GLIB_AVAILABLE_IN_ALL +gboolean g_sequence_iter_is_begin (GSequenceIter *iter); +GLIB_AVAILABLE_IN_ALL +gboolean g_sequence_iter_is_end (GSequenceIter *iter); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_iter_next (GSequenceIter *iter); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_iter_prev (GSequenceIter *iter); +GLIB_AVAILABLE_IN_ALL +gint g_sequence_iter_get_position (GSequenceIter *iter); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_iter_move (GSequenceIter *iter, + gint delta); +GLIB_AVAILABLE_IN_ALL +GSequence * g_sequence_iter_get_sequence (GSequenceIter *iter); + + +/* Search */ +GLIB_AVAILABLE_IN_ALL +gint g_sequence_iter_compare (GSequenceIter *a, + GSequenceIter *b); +GLIB_AVAILABLE_IN_ALL +GSequenceIter *g_sequence_range_get_midpoint (GSequenceIter *begin, + GSequenceIter *end); + +G_END_DECLS + +#endif /* __G_SEQUENCE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gshell.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gshell.h new file mode 100644 index 000000000..4084b69cb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gshell.h @@ -0,0 +1,59 @@ +/* gshell.h - Shell-related utilities + * + * Copyright 2000 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_SHELL_H__ +#define __G_SHELL_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#define G_SHELL_ERROR g_shell_error_quark () + +typedef enum +{ + /* mismatched or otherwise mangled quoting */ + G_SHELL_ERROR_BAD_QUOTING, + /* string to be parsed was empty */ + G_SHELL_ERROR_EMPTY_STRING, + G_SHELL_ERROR_FAILED +} GShellError; + +GLIB_AVAILABLE_IN_ALL +GQuark g_shell_error_quark (void); + +GLIB_AVAILABLE_IN_ALL +gchar* g_shell_quote (const gchar *unquoted_string); +GLIB_AVAILABLE_IN_ALL +gchar* g_shell_unquote (const gchar *quoted_string, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_shell_parse_argv (const gchar *command_line, + gint *argcp, + gchar ***argvp, + GError **error); + +G_END_DECLS + +#endif /* __G_SHELL_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gslice.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gslice.h new file mode 100644 index 000000000..eb6778629 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gslice.h @@ -0,0 +1,117 @@ +/* GLIB sliced memory - fast threaded memory chunk allocator + * Copyright (C) 2005 Tim Janik + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __G_SLICE_H__ +#define __G_SLICE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +/* slices - fast allocation/release of small memory blocks + */ +GLIB_AVAILABLE_IN_ALL +gpointer g_slice_alloc (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); +GLIB_AVAILABLE_IN_ALL +gpointer g_slice_alloc0 (gsize block_size) G_GNUC_MALLOC G_GNUC_ALLOC_SIZE(1); +GLIB_AVAILABLE_IN_ALL +gpointer g_slice_copy (gsize block_size, + gconstpointer mem_block) G_GNUC_ALLOC_SIZE(1); +GLIB_AVAILABLE_IN_ALL +void g_slice_free1 (gsize block_size, + gpointer mem_block); +GLIB_AVAILABLE_IN_ALL +void g_slice_free_chain_with_offset (gsize block_size, + gpointer mem_chain, + gsize next_offset); +#define g_slice_new(type) ((type*) g_slice_alloc (sizeof (type))) + +/* Allow the compiler to inline memset(). Since the size is a constant, this + * can significantly improve performance. */ +#if defined (__GNUC__) && (__GNUC__ >= 2) && defined (__OPTIMIZE__) +# define g_slice_new0(type) \ + (type *) (G_GNUC_EXTENSION ({ \ + gsize __s = sizeof (type); \ + gpointer __p; \ + __p = g_slice_alloc (__s); \ + memset (__p, 0, __s); \ + __p; \ + })) +#else +# define g_slice_new0(type) ((type*) g_slice_alloc0 (sizeof (type))) +#endif + +/* MemoryBlockType * + * g_slice_dup (MemoryBlockType, + * MemoryBlockType *mem_block); + * g_slice_free (MemoryBlockType, + * MemoryBlockType *mem_block); + * g_slice_free_chain (MemoryBlockType, + * MemoryBlockType *first_chain_block, + * memory_block_next_field); + * pseudo prototypes for the macro + * definitions following below. + */ + +/* we go through extra hoops to ensure type safety */ +#define g_slice_dup(type, mem) \ + (1 ? (type*) g_slice_copy (sizeof (type), (mem)) \ + : ((void) ((type*) 0 == (mem)), (type*) 0)) +#define g_slice_free(type, mem) \ +G_STMT_START { \ + if (1) g_slice_free1 (sizeof (type), (mem)); \ + else (void) ((type*) 0 == (mem)); \ +} G_STMT_END +#define g_slice_free_chain(type, mem_chain, next) \ +G_STMT_START { \ + if (1) g_slice_free_chain_with_offset (sizeof (type), \ + (mem_chain), G_STRUCT_OFFSET (type, next)); \ + else (void) ((type*) 0 == (mem_chain)); \ +} G_STMT_END + +/* --- internal debugging API --- */ +typedef enum { + G_SLICE_CONFIG_ALWAYS_MALLOC = 1, + G_SLICE_CONFIG_BYPASS_MAGAZINES, + G_SLICE_CONFIG_WORKING_SET_MSECS, + G_SLICE_CONFIG_COLOR_INCREMENT, + G_SLICE_CONFIG_CHUNK_SIZES, + G_SLICE_CONFIG_CONTENTION_COUNTER +} GSliceConfig; + +GLIB_DEPRECATED_IN_2_34 +void g_slice_set_config (GSliceConfig ckey, gint64 value); +GLIB_DEPRECATED_IN_2_34 +gint64 g_slice_get_config (GSliceConfig ckey); +GLIB_DEPRECATED_IN_2_34 +gint64* g_slice_get_config_state (GSliceConfig ckey, gint64 address, guint *n_values); + +#ifdef G_ENABLE_DEBUG +GLIB_AVAILABLE_IN_ALL +void g_slice_debug_tree_statistics (void); +#endif + +G_END_DECLS + +#endif /* __G_SLICE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gslist.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gslist.h new file mode 100644 index 000000000..c8e0cf228 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gslist.h @@ -0,0 +1,166 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_SLIST_H__ +#define __G_SLIST_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +typedef struct _GSList GSList; + +struct _GSList +{ + gpointer data; + GSList *next; +}; + +/* Singly linked lists + */ +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_alloc (void) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +void g_slist_free (GSList *list); +GLIB_AVAILABLE_IN_ALL +void g_slist_free_1 (GSList *list); +#define g_slist_free1 g_slist_free_1 +GLIB_AVAILABLE_IN_ALL +void g_slist_free_full (GSList *list, + GDestroyNotify free_func); +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_append (GSList *list, + gpointer data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_prepend (GSList *list, + gpointer data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_insert (GSList *list, + gpointer data, + gint position) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_insert_sorted (GSList *list, + gpointer data, + GCompareFunc func) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_insert_sorted_with_data (GSList *list, + gpointer data, + GCompareDataFunc func, + gpointer user_data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_insert_before (GSList *slist, + GSList *sibling, + gpointer data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_concat (GSList *list1, + GSList *list2) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_remove (GSList *list, + gconstpointer data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_remove_all (GSList *list, + gconstpointer data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_remove_link (GSList *list, + GSList *link_) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_delete_link (GSList *list, + GSList *link_) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_reverse (GSList *list) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_copy (GSList *list) G_GNUC_WARN_UNUSED_RESULT; + +GLIB_AVAILABLE_IN_2_34 +GSList* g_slist_copy_deep (GSList *list, + GCopyFunc func, + gpointer user_data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_nth (GSList *list, + guint n); +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_find (GSList *list, + gconstpointer data); +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_find_custom (GSList *list, + gconstpointer data, + GCompareFunc func); +GLIB_AVAILABLE_IN_ALL +gint g_slist_position (GSList *list, + GSList *llink); +GLIB_AVAILABLE_IN_ALL +gint g_slist_index (GSList *list, + gconstpointer data); +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_last (GSList *list); +GLIB_AVAILABLE_IN_ALL +guint g_slist_length (GSList *list); +GLIB_AVAILABLE_IN_ALL +void g_slist_foreach (GSList *list, + GFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_sort (GSList *list, + GCompareFunc compare_func) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +GSList* g_slist_sort_with_data (GSList *list, + GCompareDataFunc compare_func, + gpointer user_data) G_GNUC_WARN_UNUSED_RESULT; +GLIB_AVAILABLE_IN_ALL +gpointer g_slist_nth_data (GSList *list, + guint n); + +GLIB_AVAILABLE_IN_2_64 +void g_clear_slist (GSList **slist_ptr, + GDestroyNotify destroy); + +#define g_clear_slist(slist_ptr, destroy) \ + G_STMT_START { \ + GSList *_slist; \ + \ + _slist = *(slist_ptr); \ + if (_slist) \ + { \ + *slist_ptr = NULL; \ + \ + if ((destroy) != NULL) \ + g_slist_free_full (_slist, (destroy)); \ + else \ + g_slist_free (_slist); \ + } \ + } G_STMT_END \ + GLIB_AVAILABLE_MACRO_IN_2_64 + +#define g_slist_next(slist) ((slist) ? (((GSList *)(slist))->next) : NULL) + +G_END_DECLS + +#endif /* __G_SLIST_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gspawn.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gspawn.h new file mode 100644 index 000000000..a3c4aca52 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gspawn.h @@ -0,0 +1,323 @@ +/* gspawn.h - Process launching + * + * Copyright 2000 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_SPAWN_H__ +#define __G_SPAWN_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + + +/* I'm not sure I remember our proposed naming convention here. */ +/** + * G_SPAWN_ERROR: + * + * Error domain for spawning processes. Errors in this domain will + * be from the #GSpawnError enumeration. See #GError for information on + * error domains. + */ +#define G_SPAWN_ERROR g_spawn_error_quark () + +/** + * GSpawnError: + * @G_SPAWN_ERROR_FORK: Fork failed due to lack of memory. + * @G_SPAWN_ERROR_READ: Read or select on pipes failed. + * @G_SPAWN_ERROR_CHDIR: Changing to working directory failed. + * @G_SPAWN_ERROR_ACCES: execv() returned `EACCES` + * @G_SPAWN_ERROR_PERM: execv() returned `EPERM` + * @G_SPAWN_ERROR_TOO_BIG: execv() returned `E2BIG` + * @G_SPAWN_ERROR_2BIG: deprecated alias for %G_SPAWN_ERROR_TOO_BIG (deprecated since GLib 2.32) + * @G_SPAWN_ERROR_NOEXEC: execv() returned `ENOEXEC` + * @G_SPAWN_ERROR_NAMETOOLONG: execv() returned `ENAMETOOLONG` + * @G_SPAWN_ERROR_NOENT: execv() returned `ENOENT` + * @G_SPAWN_ERROR_NOMEM: execv() returned `ENOMEM` + * @G_SPAWN_ERROR_NOTDIR: execv() returned `ENOTDIR` + * @G_SPAWN_ERROR_LOOP: execv() returned `ELOOP` + * @G_SPAWN_ERROR_TXTBUSY: execv() returned `ETXTBUSY` + * @G_SPAWN_ERROR_IO: execv() returned `EIO` + * @G_SPAWN_ERROR_NFILE: execv() returned `ENFILE` + * @G_SPAWN_ERROR_MFILE: execv() returned `EMFILE` + * @G_SPAWN_ERROR_INVAL: execv() returned `EINVAL` + * @G_SPAWN_ERROR_ISDIR: execv() returned `EISDIR` + * @G_SPAWN_ERROR_LIBBAD: execv() returned `ELIBBAD` + * @G_SPAWN_ERROR_FAILED: Some other fatal failure, + * `error->message` should explain. + * + * Error codes returned by spawning processes. + */ +typedef enum +{ + G_SPAWN_ERROR_FORK, /* fork failed due to lack of memory */ + G_SPAWN_ERROR_READ, /* read or select on pipes failed */ + G_SPAWN_ERROR_CHDIR, /* changing to working dir failed */ + G_SPAWN_ERROR_ACCES, /* execv() returned EACCES */ + G_SPAWN_ERROR_PERM, /* execv() returned EPERM */ + G_SPAWN_ERROR_TOO_BIG,/* execv() returned E2BIG */ + G_SPAWN_ERROR_2BIG GLIB_DEPRECATED_ENUMERATOR_IN_2_32_FOR(G_SPAWN_ERROR_TOO_BIG) = G_SPAWN_ERROR_TOO_BIG, + G_SPAWN_ERROR_NOEXEC, /* execv() returned ENOEXEC */ + G_SPAWN_ERROR_NAMETOOLONG, /* "" "" ENAMETOOLONG */ + G_SPAWN_ERROR_NOENT, /* "" "" ENOENT */ + G_SPAWN_ERROR_NOMEM, /* "" "" ENOMEM */ + G_SPAWN_ERROR_NOTDIR, /* "" "" ENOTDIR */ + G_SPAWN_ERROR_LOOP, /* "" "" ELOOP */ + G_SPAWN_ERROR_TXTBUSY, /* "" "" ETXTBUSY */ + G_SPAWN_ERROR_IO, /* "" "" EIO */ + G_SPAWN_ERROR_NFILE, /* "" "" ENFILE */ + G_SPAWN_ERROR_MFILE, /* "" "" EMFLE */ + G_SPAWN_ERROR_INVAL, /* "" "" EINVAL */ + G_SPAWN_ERROR_ISDIR, /* "" "" EISDIR */ + G_SPAWN_ERROR_LIBBAD, /* "" "" ELIBBAD */ + G_SPAWN_ERROR_FAILED /* other fatal failure, error->message + * should explain + */ +} GSpawnError; + +/** + * G_SPAWN_EXIT_ERROR: + * + * Error domain used by g_spawn_check_wait_status(). The code + * will be the program exit code. + */ +#define G_SPAWN_EXIT_ERROR g_spawn_exit_error_quark () + +/** + * GSpawnChildSetupFunc: + * @data: user data passed to the function. + * + * Specifies the type of the setup function passed to g_spawn_async(), + * g_spawn_sync() and g_spawn_async_with_pipes(), which can, in very + * limited ways, be used to affect the child's execution. + * + * On POSIX platforms, the function is called in the child after GLib + * has performed all the setup it plans to perform, but before calling + * exec(). Actions taken in this function will only affect the child, + * not the parent. + * + * On Windows, the function is called in the parent. Its usefulness on + * Windows is thus questionable. In many cases executing the child setup + * function in the parent can have ill effects, and you should be very + * careful when porting software to Windows that uses child setup + * functions. + * + * However, even on POSIX, you are extremely limited in what you can + * safely do from a #GSpawnChildSetupFunc, because any mutexes that were + * held by other threads in the parent process at the time of the fork() + * will still be locked in the child process, and they will never be + * unlocked (since the threads that held them don't exist in the child). + * POSIX allows only async-signal-safe functions (see signal(7)) to be + * called in the child between fork() and exec(), which drastically limits + * the usefulness of child setup functions. + * + * In particular, it is not safe to call any function which may + * call malloc(), which includes POSIX functions such as setenv(). + * If you need to set up the child environment differently from + * the parent, you should use g_get_environ(), g_environ_setenv(), + * and g_environ_unsetenv(), and then pass the complete environment + * list to the `g_spawn...` function. + */ +typedef void (* GSpawnChildSetupFunc) (gpointer data); + +/** + * GSpawnFlags: + * @G_SPAWN_DEFAULT: no flags, default behaviour + * @G_SPAWN_LEAVE_DESCRIPTORS_OPEN: the parent's open file descriptors will + * be inherited by the child; otherwise all descriptors except stdin, + * stdout and stderr will be closed before calling exec() in the child. + * @G_SPAWN_DO_NOT_REAP_CHILD: the child will not be automatically reaped; + * you must use g_child_watch_add() yourself (or call waitpid() or handle + * `SIGCHLD` yourself), or the child will become a zombie. + * @G_SPAWN_SEARCH_PATH: `argv[0]` need not be an absolute path, it will be + * looked for in the user's `PATH`. + * @G_SPAWN_STDOUT_TO_DEV_NULL: the child's standard output will be discarded, + * instead of going to the same location as the parent's standard output. + * @G_SPAWN_STDERR_TO_DEV_NULL: the child's standard error will be discarded. + * @G_SPAWN_CHILD_INHERITS_STDIN: the child will inherit the parent's standard + * input (by default, the child's standard input is attached to `/dev/null`). + * @G_SPAWN_FILE_AND_ARGV_ZERO: the first element of `argv` is the file to + * execute, while the remaining elements are the actual argument vector + * to pass to the file. Normally g_spawn_async_with_pipes() uses `argv[0]` + * as the file to execute, and passes all of `argv` to the child. + * @G_SPAWN_SEARCH_PATH_FROM_ENVP: if `argv[0]` is not an absolute path, + * it will be looked for in the `PATH` from the passed child environment. + * Since: 2.34 + * @G_SPAWN_CLOEXEC_PIPES: create all pipes with the `O_CLOEXEC` flag set. + * Since: 2.40 + * @G_SPAWN_CHILD_INHERITS_STDOUT: the child will inherit the parent's standard output. + * Since: 2.74 + * @G_SPAWN_CHILD_INHERITS_STDERR: the child will inherit the parent's standard error. + * Since: 2.74 + * @G_SPAWN_STDIN_FROM_DEV_NULL: the child's standard input is attached to `/dev/null`. + * Since: 2.74 + * + * Flags passed to g_spawn_sync(), g_spawn_async() and g_spawn_async_with_pipes(). + */ +typedef enum +{ + G_SPAWN_DEFAULT = 0, + G_SPAWN_LEAVE_DESCRIPTORS_OPEN = 1 << 0, + G_SPAWN_DO_NOT_REAP_CHILD = 1 << 1, + /* look for argv[0] in the path i.e. use execvp() */ + G_SPAWN_SEARCH_PATH = 1 << 2, + /* Dump output to /dev/null */ + G_SPAWN_STDOUT_TO_DEV_NULL = 1 << 3, + G_SPAWN_STDERR_TO_DEV_NULL = 1 << 4, + G_SPAWN_CHILD_INHERITS_STDIN = 1 << 5, + G_SPAWN_FILE_AND_ARGV_ZERO = 1 << 6, + G_SPAWN_SEARCH_PATH_FROM_ENVP = 1 << 7, + G_SPAWN_CLOEXEC_PIPES = 1 << 8, + + /** + * G_SPAWN_CHILD_INHERITS_STDOUT: + * + * The child will inherit the parent's standard output. + * + * Since: 2.74 + */ + G_SPAWN_CHILD_INHERITS_STDOUT = 1 << 9, + + /** + * G_SPAWN_CHILD_INHERITS_STDERR: + * + * The child will inherit the parent's standard error. + * + * Since: 2.74 + */ + G_SPAWN_CHILD_INHERITS_STDERR = 1 << 10, + + /** + * G_SPAWN_STDIN_FROM_DEV_NULL: + * + * The child's standard input is attached to `/dev/null`. + * + * Since: 2.74 + */ + G_SPAWN_STDIN_FROM_DEV_NULL = 1 << 11 +} GSpawnFlags; + +GLIB_AVAILABLE_IN_ALL +GQuark g_spawn_error_quark (void); +GLIB_AVAILABLE_IN_ALL +GQuark g_spawn_exit_error_quark (void); + +GLIB_AVAILABLE_IN_ALL +gboolean g_spawn_async (const gchar *working_directory, + gchar **argv, + gchar **envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + GPid *child_pid, + GError **error); + + +/* Opens pipes for non-NULL standard_output, standard_input, standard_error, + * and returns the parent's end of the pipes. + */ +GLIB_AVAILABLE_IN_ALL +gboolean g_spawn_async_with_pipes (const gchar *working_directory, + gchar **argv, + gchar **envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + GPid *child_pid, + gint *standard_input, + gint *standard_output, + gint *standard_error, + GError **error); + +GLIB_AVAILABLE_IN_2_68 +gboolean g_spawn_async_with_pipes_and_fds (const gchar *working_directory, + const gchar * const *argv, + const gchar * const *envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + gint stdin_fd, + gint stdout_fd, + gint stderr_fd, + const gint *source_fds, + const gint *target_fds, + gsize n_fds, + GPid *child_pid_out, + gint *stdin_pipe_out, + gint *stdout_pipe_out, + gint *stderr_pipe_out, + GError **error); + +/* Lets you provide fds for stdin/stdout/stderr */ +GLIB_AVAILABLE_IN_2_58 +gboolean g_spawn_async_with_fds (const gchar *working_directory, + gchar **argv, + gchar **envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + GPid *child_pid, + gint stdin_fd, + gint stdout_fd, + gint stderr_fd, + GError **error); + +/* If standard_output or standard_error are non-NULL, the full + * standard output or error of the command will be placed there. + */ + +GLIB_AVAILABLE_IN_ALL +gboolean g_spawn_sync (const gchar *working_directory, + gchar **argv, + gchar **envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + gchar **standard_output, + gchar **standard_error, + gint *wait_status, + GError **error); + +GLIB_AVAILABLE_IN_ALL +gboolean g_spawn_command_line_sync (const gchar *command_line, + gchar **standard_output, + gchar **standard_error, + gint *wait_status, + GError **error); +GLIB_AVAILABLE_IN_ALL +gboolean g_spawn_command_line_async (const gchar *command_line, + GError **error); + +GLIB_AVAILABLE_IN_2_70 +gboolean g_spawn_check_wait_status (gint wait_status, + GError **error); + +GLIB_DEPRECATED_IN_2_70_FOR(g_spawn_check_wait_status) +gboolean g_spawn_check_exit_status (gint wait_status, + GError **error); + +GLIB_AVAILABLE_IN_ALL +void g_spawn_close_pid (GPid pid); + +G_END_DECLS + +#endif /* __G_SPAWN_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstdio.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstdio.h new file mode 100644 index 000000000..7acdb9cef --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstdio.h @@ -0,0 +1,231 @@ +/* gstdio.h - GFilename wrappers for C library functions + * + * Copyright 2004 Tor Lillqvist + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_STDIO_H__ +#define __G_STDIO_H__ + +#include + +#include +#include + +G_BEGIN_DECLS + +#if (defined (__MINGW64_VERSION_MAJOR) || defined (_MSC_VER)) && !defined(_WIN64) + +/* Make it clear that we mean the struct with 32-bit st_size and + * 32-bit st_*time fields as that is how the 32-bit GLib DLL normally + * has been compiled. If you get a compiler warning when calling + * g_stat(), do take it seriously and make sure that the type of + * struct stat the code in GLib fills in matches the struct the type + * of struct stat you pass to g_stat(). To avoid hassle, to get file + * attributes just use the GIO API instead which doesn't use struct + * stat. + * + * Sure, it would be nicer to use a struct with 64-bit st_size and + * 64-bit st_*time fields, but changing that now would break ABI. And + * in MinGW, a plain "struct stat" is the one with 32-bit st_size and + * st_*time fields. + */ + +typedef struct _stat32 GStatBuf; + +#elif defined(__MINGW64_VERSION_MAJOR) && defined(_WIN64) + +typedef struct _stat64 GStatBuf; + +#else + +typedef struct stat GStatBuf; + +#endif + +#if defined(G_OS_UNIX) && !defined(G_STDIO_WRAP_ON_UNIX) + +/* Just pass on to the system functions, so there's no potential for data + * format mismatches, especially with large file interfaces. + * A few functions can't be handled in this way, since they are not defined + * in a portable system header that we could include here. + * + * G_STDIO_WRAP_ON_UNIX is not public API and its behaviour is not guaranteed + * in future. + */ + +#ifndef __GTK_DOC_IGNORE__ +#define g_chmod chmod +#define g_open open +#define g_creat creat +#define g_rename rename +#define g_mkdir mkdir +#define g_stat stat +#define g_lstat lstat +#define g_remove remove +#define g_fopen fopen +#define g_freopen freopen +#define g_fsync fsync +#define g_utime utime +#endif + +GLIB_AVAILABLE_IN_ALL +int g_access (const gchar *filename, + int mode); + +GLIB_AVAILABLE_IN_ALL +int g_chdir (const gchar *path); + +GLIB_AVAILABLE_IN_ALL +int g_unlink (const gchar *filename); + +GLIB_AVAILABLE_IN_ALL +int g_rmdir (const gchar *filename); + +#else /* ! G_OS_UNIX */ + +/* Wrappers for C library functions that take pathname arguments. On + * Unix, the pathname is a file name as it literally is in the file + * system. On well-maintained systems with consistent users who know + * what they are doing and no exchange of files with others this would + * be a well-defined encoding, preferably UTF-8. On Windows, the + * pathname is always in UTF-8, even if that is not the on-disk + * encoding, and not the encoding accepted by the C library or Win32 + * API. + */ + +GLIB_AVAILABLE_IN_ALL +int g_access (const gchar *filename, + int mode); + +GLIB_AVAILABLE_IN_ALL +int g_chmod (const gchar *filename, + int mode); + +GLIB_AVAILABLE_IN_ALL +int g_open (const gchar *filename, + int flags, + int mode); + +GLIB_AVAILABLE_IN_ALL +int g_creat (const gchar *filename, + int mode); + +GLIB_AVAILABLE_IN_ALL +int g_rename (const gchar *oldfilename, + const gchar *newfilename); + +GLIB_AVAILABLE_IN_ALL +int g_mkdir (const gchar *filename, + int mode); + +GLIB_AVAILABLE_IN_ALL +int g_chdir (const gchar *path); + +GLIB_AVAILABLE_IN_ALL +int g_stat (const gchar *filename, + GStatBuf *buf); + +GLIB_AVAILABLE_IN_ALL +int g_lstat (const gchar *filename, + GStatBuf *buf); + +GLIB_AVAILABLE_IN_ALL +int g_unlink (const gchar *filename); + +GLIB_AVAILABLE_IN_ALL +int g_remove (const gchar *filename); + +GLIB_AVAILABLE_IN_ALL +int g_rmdir (const gchar *filename); + +GLIB_AVAILABLE_IN_ALL +FILE *g_fopen (const gchar *filename, + const gchar *mode); + +GLIB_AVAILABLE_IN_ALL +FILE *g_freopen (const gchar *filename, + const gchar *mode, + FILE *stream); + +GLIB_AVAILABLE_IN_2_64 +gint g_fsync (gint fd); + +struct utimbuf; /* Don't need the real definition of struct utimbuf when just + * including this header. + */ + +GLIB_AVAILABLE_IN_ALL +int g_utime (const gchar *filename, + struct utimbuf *utb); + +#endif /* G_OS_UNIX */ + +GLIB_AVAILABLE_IN_2_36 +gboolean g_close (gint fd, + GError **error); + +GLIB_AVAILABLE_STATIC_INLINE_IN_2_76 +static inline gboolean +g_clear_fd (int *fd_ptr, + GError **error) +{ + int fd = *fd_ptr; + + *fd_ptr = -1; + + if (fd < 0) + return TRUE; + + /* Suppress "Not available before" warning */ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS + return g_close (fd, error); + G_GNUC_END_IGNORE_DEPRECATIONS +} + +/* g_autofd should be defined on the same compilers where g_autofree is + * This avoids duplicating the feature-detection here. */ +#ifdef g_autofree +#ifndef __GTK_DOC_IGNORE__ +/* Not public API */ +static inline void +_g_clear_fd_ignore_error (int *fd_ptr) +{ + /* Don't overwrite thread-local errno if closing the fd fails */ + int errsv = errno; + + /* Suppress "Not available before" warning */ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS + + if (!g_clear_fd (fd_ptr, NULL)) + { + /* Do nothing: we ignore all errors, except for EBADF which + * is a programming error, checked for by g_close(). */ + } + + G_GNUC_END_IGNORE_DEPRECATIONS + + errno = errsv; +} +#endif + +#define g_autofd _GLIB_CLEANUP(_g_clear_fd_ignore_error) GLIB_AVAILABLE_MACRO_IN_2_76 +#endif + +G_END_DECLS + +#endif /* __G_STDIO_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstrfuncs.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstrfuncs.h new file mode 100644 index 000000000..cb021b658 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstrfuncs.h @@ -0,0 +1,504 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_STRFUNCS_H__ +#define __G_STRFUNCS_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +#include +#include +#include +#include + +G_BEGIN_DECLS + +/* Functions like the ones in that are not affected by locale. */ +typedef enum { + G_ASCII_ALNUM = 1 << 0, + G_ASCII_ALPHA = 1 << 1, + G_ASCII_CNTRL = 1 << 2, + G_ASCII_DIGIT = 1 << 3, + G_ASCII_GRAPH = 1 << 4, + G_ASCII_LOWER = 1 << 5, + G_ASCII_PRINT = 1 << 6, + G_ASCII_PUNCT = 1 << 7, + G_ASCII_SPACE = 1 << 8, + G_ASCII_UPPER = 1 << 9, + G_ASCII_XDIGIT = 1 << 10 +} GAsciiType; + +GLIB_VAR const guint16 * const g_ascii_table; + +#define g_ascii_isalnum(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_ALNUM) != 0) + +#define g_ascii_isalpha(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_ALPHA) != 0) + +#define g_ascii_iscntrl(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_CNTRL) != 0) + +#define g_ascii_isdigit(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_DIGIT) != 0) + +#define g_ascii_isgraph(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_GRAPH) != 0) + +#define g_ascii_islower(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_LOWER) != 0) + +#define g_ascii_isprint(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_PRINT) != 0) + +#define g_ascii_ispunct(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_PUNCT) != 0) + +#define g_ascii_isspace(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_SPACE) != 0) + +#define g_ascii_isupper(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_UPPER) != 0) + +#define g_ascii_isxdigit(c) \ + ((g_ascii_table[(guchar) (c)] & G_ASCII_XDIGIT) != 0) + +GLIB_AVAILABLE_IN_ALL +gchar g_ascii_tolower (gchar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gchar g_ascii_toupper (gchar c) G_GNUC_CONST; + +GLIB_AVAILABLE_IN_ALL +gint g_ascii_digit_value (gchar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gint g_ascii_xdigit_value (gchar c) G_GNUC_CONST; + +/* String utility functions that modify a string argument or + * return a constant string that must not be freed. + */ +#define G_STR_DELIMITERS "_-|> <." +GLIB_AVAILABLE_IN_ALL +gchar* g_strdelimit (gchar *string, + const gchar *delimiters, + gchar new_delimiter); +GLIB_AVAILABLE_IN_ALL +gchar* g_strcanon (gchar *string, + const gchar *valid_chars, + gchar substitutor); +GLIB_AVAILABLE_IN_ALL +const gchar * g_strerror (gint errnum) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +const gchar * g_strsignal (gint signum) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gchar * g_strreverse (gchar *string); +GLIB_AVAILABLE_IN_ALL +gsize g_strlcpy (gchar *dest, + const gchar *src, + gsize dest_size); +GLIB_AVAILABLE_IN_ALL +gsize g_strlcat (gchar *dest, + const gchar *src, + gsize dest_size); +GLIB_AVAILABLE_IN_ALL +gchar * g_strstr_len (const gchar *haystack, + gssize haystack_len, + const gchar *needle); +GLIB_AVAILABLE_IN_ALL +gchar * g_strrstr (const gchar *haystack, + const gchar *needle); +GLIB_AVAILABLE_IN_ALL +gchar * g_strrstr_len (const gchar *haystack, + gssize haystack_len, + const gchar *needle); + +GLIB_AVAILABLE_IN_ALL +gboolean (g_str_has_suffix) (const gchar *str, + const gchar *suffix); +GLIB_AVAILABLE_IN_ALL +gboolean (g_str_has_prefix) (const gchar *str, + const gchar *prefix); + +#if G_GNUC_CHECK_VERSION (2, 0) +#ifndef __GTK_DOC_IGNORE__ +#ifndef __GI_SCANNER__ + +/* This macro is defeat a false -Wnonnull warning in GCC. + * Without it, it thinks strlen and memcmp may be getting passed NULL + * despite the explicit check for NULL right above the calls. + */ +#define _G_STR_NONNULL(x) ((x) + !(x)) + +#define g_str_has_prefix(STR, PREFIX) \ + (__builtin_constant_p (PREFIX)? \ + G_GNUC_EXTENSION ({ \ + const char * const __str = (STR); \ + const char * const __prefix = (PREFIX); \ + gboolean __result = FALSE; \ + \ + if G_UNLIKELY (__str == NULL || __prefix == NULL) \ + __result = (g_str_has_prefix) (__str, __prefix); \ + else \ + { \ + const size_t __str_len = strlen (_G_STR_NONNULL (__str)); \ + const size_t __prefix_len = strlen (_G_STR_NONNULL (__prefix)); \ + if (__str_len >= __prefix_len) \ + __result = memcmp (_G_STR_NONNULL (__str), \ + _G_STR_NONNULL (__prefix), \ + __prefix_len) == 0; \ + } \ + __result; \ + }) \ + : \ + (g_str_has_prefix) (STR, PREFIX) \ + ) + +#define g_str_has_suffix(STR, SUFFIX) \ + (__builtin_constant_p (SUFFIX)? \ + G_GNUC_EXTENSION ({ \ + const char * const __str = (STR); \ + const char * const __suffix = (SUFFIX); \ + gboolean __result = FALSE; \ + \ + if G_UNLIKELY (__str == NULL || __suffix == NULL) \ + __result = (g_str_has_suffix) (__str, __suffix); \ + else \ + { \ + const size_t __str_len = strlen (_G_STR_NONNULL (__str)); \ + const size_t __suffix_len = strlen (_G_STR_NONNULL (__suffix)); \ + if (__str_len >= __suffix_len) \ + __result = memcmp (__str + __str_len - __suffix_len, \ + _G_STR_NONNULL (__suffix), \ + __suffix_len) == 0; \ + } \ + __result; \ + }) \ + : \ + (g_str_has_suffix) (STR, SUFFIX) \ + ) + +#endif /* !defined (__GI_SCANNER__) */ +#endif /* !defined (__GTK_DOC_IGNORE__) */ +#endif /* G_GNUC_CHECK_VERSION (2, 0) */ + +/* String to/from double conversion functions */ + +GLIB_AVAILABLE_IN_ALL +gdouble g_strtod (const gchar *nptr, + gchar **endptr); +GLIB_AVAILABLE_IN_ALL +gdouble g_ascii_strtod (const gchar *nptr, + gchar **endptr); +GLIB_AVAILABLE_IN_ALL +guint64 g_ascii_strtoull (const gchar *nptr, + gchar **endptr, + guint base); +GLIB_AVAILABLE_IN_ALL +gint64 g_ascii_strtoll (const gchar *nptr, + gchar **endptr, + guint base); +/* 29 bytes should enough for all possible values that + * g_ascii_dtostr can produce. + * Then add 10 for good measure */ +#define G_ASCII_DTOSTR_BUF_SIZE (29 + 10) +GLIB_AVAILABLE_IN_ALL +gchar * g_ascii_dtostr (gchar *buffer, + gint buf_len, + gdouble d); +GLIB_AVAILABLE_IN_ALL +gchar * g_ascii_formatd (gchar *buffer, + gint buf_len, + const gchar *format, + gdouble d); + +/* removes leading spaces */ +GLIB_AVAILABLE_IN_ALL +gchar* g_strchug (gchar *string); +/* removes trailing spaces */ +GLIB_AVAILABLE_IN_ALL +gchar* g_strchomp (gchar *string); +/* removes leading & trailing spaces */ +#define g_strstrip( string ) g_strchomp (g_strchug (string)) + +GLIB_AVAILABLE_IN_ALL +gint g_ascii_strcasecmp (const gchar *s1, + const gchar *s2); +GLIB_AVAILABLE_IN_ALL +gint g_ascii_strncasecmp (const gchar *s1, + const gchar *s2, + gsize n); +GLIB_AVAILABLE_IN_ALL +gchar* g_ascii_strdown (const gchar *str, + gssize len) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar* g_ascii_strup (const gchar *str, + gssize len) G_GNUC_MALLOC; + +GLIB_AVAILABLE_IN_2_40 +gboolean g_str_is_ascii (const gchar *str); + +GLIB_DEPRECATED +gint g_strcasecmp (const gchar *s1, + const gchar *s2); +GLIB_DEPRECATED +gint g_strncasecmp (const gchar *s1, + const gchar *s2, + guint n); +GLIB_DEPRECATED +gchar* g_strdown (gchar *string); +GLIB_DEPRECATED +gchar* g_strup (gchar *string); + + +/* String utility functions that return a newly allocated string which + * ought to be freed with g_free from the caller at some point. + */ +GLIB_AVAILABLE_IN_ALL +gchar* (g_strdup) (const gchar *str) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar* g_strdup_printf (const gchar *format, + ...) G_GNUC_PRINTF (1, 2) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar* g_strdup_vprintf (const gchar *format, + va_list args) G_GNUC_PRINTF(1, 0) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar* g_strndup (const gchar *str, + gsize n) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar* g_strnfill (gsize length, + gchar fill_char) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar* g_strconcat (const gchar *string1, + ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; +GLIB_AVAILABLE_IN_ALL +gchar* g_strjoin (const gchar *separator, + ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED; + +#if G_GNUC_CHECK_VERSION(2, 0) +#ifndef __GTK_DOC_IGNORE__ +#ifndef __GI_SCANNER__ + +G_ALWAYS_INLINE static inline char * +g_strdup_inline (const char *str) +{ + if (__builtin_constant_p (!str) && !str) + return NULL; + + if (__builtin_constant_p (!!str) && !!str && __builtin_constant_p (strlen (str))) + { + const size_t len = strlen (str) + 1; + char *dup_str = (char *) g_malloc (len); + return (char *) memcpy (dup_str, str, len); + } + + return g_strdup (str); +} + +#define g_strdup(x) g_strdup_inline (x) + +#endif /* !defined (__GI_SCANNER__) */ +#endif /* !defined (__GTK_DOC_IGNORE__) */ +#endif /* G_GNUC_CHECK_VERSION (2, 0) */ + +/* Make a copy of a string interpreting C string -style escape + * sequences. Inverse of g_strescape. The recognized sequences are \b + * \f \n \r \t \\ \" and the octal format. + */ +GLIB_AVAILABLE_IN_ALL +gchar* g_strcompress (const gchar *source) G_GNUC_MALLOC; + +/* Copy a string escaping nonprintable characters like in C strings. + * Inverse of g_strcompress. The exceptions parameter, if non-NULL, points + * to a string containing characters that are not to be escaped. + * + * Deprecated API: gchar* g_strescape (const gchar *source); + * Luckily this function wasn't used much, using NULL as second parameter + * provides mostly identical semantics. + */ +GLIB_AVAILABLE_IN_ALL +gchar* g_strescape (const gchar *source, + const gchar *exceptions) G_GNUC_MALLOC; + +GLIB_DEPRECATED_IN_2_68_FOR (g_memdup2) +gpointer g_memdup (gconstpointer mem, + guint byte_size) G_GNUC_ALLOC_SIZE(2); + +GLIB_AVAILABLE_IN_2_68 +gpointer g_memdup2 (gconstpointer mem, + gsize byte_size) G_GNUC_ALLOC_SIZE(2); + +/* NULL terminated string arrays. + * g_strsplit(), g_strsplit_set() split up string into max_tokens tokens + * at delim and return a newly allocated string array. + * g_strjoinv() concatenates all of str_array's strings, sliding in an + * optional separator, the returned string is newly allocated. + * g_strfreev() frees the array itself and all of its strings. + * g_strdupv() copies a NULL-terminated array of strings + * g_strv_length() returns the length of a NULL-terminated array of strings + */ +typedef gchar** GStrv; +GLIB_AVAILABLE_IN_ALL +gchar** g_strsplit (const gchar *string, + const gchar *delimiter, + gint max_tokens); +GLIB_AVAILABLE_IN_ALL +gchar ** g_strsplit_set (const gchar *string, + const gchar *delimiters, + gint max_tokens); +GLIB_AVAILABLE_IN_ALL +gchar* g_strjoinv (const gchar *separator, + gchar **str_array) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +void g_strfreev (gchar **str_array); +GLIB_AVAILABLE_IN_ALL +gchar** g_strdupv (gchar **str_array); +GLIB_AVAILABLE_IN_ALL +guint g_strv_length (gchar **str_array); + +GLIB_AVAILABLE_IN_ALL +gchar* g_stpcpy (gchar *dest, + const char *src); + +GLIB_AVAILABLE_IN_2_40 +gchar * g_str_to_ascii (const gchar *str, + const gchar *from_locale); + +GLIB_AVAILABLE_IN_2_40 +gchar ** g_str_tokenize_and_fold (const gchar *string, + const gchar *translit_locale, + gchar ***ascii_alternates); + +GLIB_AVAILABLE_IN_2_40 +gboolean g_str_match_string (const gchar *search_term, + const gchar *potential_hit, + gboolean accept_alternates); + +GLIB_AVAILABLE_IN_2_44 +gboolean g_strv_contains (const gchar * const *strv, + const gchar *str); + +GLIB_AVAILABLE_IN_2_60 +gboolean g_strv_equal (const gchar * const *strv1, + const gchar * const *strv2); + +/* Convenience ASCII string to number API */ + +/** + * GNumberParserError: + * @G_NUMBER_PARSER_ERROR_INVALID: String was not a valid number. + * @G_NUMBER_PARSER_ERROR_OUT_OF_BOUNDS: String was a number, but out of bounds. + * + * Error codes returned by functions converting a string to a number. + * + * Since: 2.54 + */ +typedef enum + { + G_NUMBER_PARSER_ERROR_INVALID, + G_NUMBER_PARSER_ERROR_OUT_OF_BOUNDS, + } GNumberParserError; + +/** + * G_NUMBER_PARSER_ERROR: + * + * Domain for errors returned by functions converting a string to a + * number. + * + * Since: 2.54 + */ +#define G_NUMBER_PARSER_ERROR (g_number_parser_error_quark ()) + +GLIB_AVAILABLE_IN_2_54 +GQuark g_number_parser_error_quark (void); + +GLIB_AVAILABLE_IN_2_54 +gboolean g_ascii_string_to_signed (const gchar *str, + guint base, + gint64 min, + gint64 max, + gint64 *out_num, + GError **error); + +GLIB_AVAILABLE_IN_2_54 +gboolean g_ascii_string_to_unsigned (const gchar *str, + guint base, + guint64 min, + guint64 max, + guint64 *out_num, + GError **error); + +/** + * g_set_str: (skip) + * @str_pointer: (inout) (not optional) (nullable): a pointer to either a string or %NULL + * @new_str: (nullable): a string to assign to @str_pointer, or %NULL + * + * Updates a pointer to a string to a copy of @new_str. The previous string + * pointed to by @str_pointer will be freed with g_free(). + * + * @str_pointer must not be %NULL, but can point to a %NULL value. + * + * One convenient usage of this function is in implementing property settings: + * |[ + * void + * foo_set_bar (Foo *foo, + * const char *new_bar) + * { + * g_return_if_fail (IS_FOO (foo)); + * + * if (g_set_str (&foo->bar, new_bar)) + * g_object_notify (foo, "bar"); + * } + * ]| + * + * Returns: %TRUE if the value of @str_pointer changed, %FALSE otherwise + * + * Since: 2.76 + */ +GLIB_AVAILABLE_STATIC_INLINE_IN_2_76 +static inline gboolean +g_set_str (char **str_pointer, + const char *new_str) +{ + char *copy; + + if (*str_pointer == new_str || + (*str_pointer && new_str && strcmp (*str_pointer, new_str) == 0)) + return FALSE; + + copy = g_strdup (new_str); + g_free (*str_pointer); + *str_pointer = copy; + + return TRUE; +} + +G_END_DECLS + +#endif /* __G_STRFUNCS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstring.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstring.h new file mode 100644 index 000000000..b4ccb34a9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstring.h @@ -0,0 +1,296 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_STRING_H__ +#define __G_STRING_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include +#include +#include /* for G_CAN_INLINE */ +#include + +G_BEGIN_DECLS + +typedef struct _GString GString; + +struct _GString +{ + gchar *str; + gsize len; + gsize allocated_len; +}; + +GLIB_AVAILABLE_IN_ALL +GString* g_string_new (const gchar *init); +GLIB_AVAILABLE_IN_2_78 +GString* g_string_new_take (gchar *init); +GLIB_AVAILABLE_IN_ALL +GString* g_string_new_len (const gchar *init, + gssize len); +GLIB_AVAILABLE_IN_ALL +GString* g_string_sized_new (gsize dfl_size); +GLIB_AVAILABLE_IN_ALL +gchar* (g_string_free) (GString *string, + gboolean free_segment); +GLIB_AVAILABLE_IN_2_76 +gchar* g_string_free_and_steal (GString *string) G_GNUC_WARN_UNUSED_RESULT; + +#if G_GNUC_CHECK_VERSION (2, 0) && (GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_76) + +#define g_string_free(str, free_segment) \ + (__builtin_constant_p (free_segment) ? \ + ((free_segment) ? \ + (g_string_free) ((str), (free_segment)) : \ + g_string_free_and_steal (str)) \ + : \ + (g_string_free) ((str), (free_segment))) + +#endif /* G_GNUC_CHECK_VERSION (2, 0) && (GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_76) */ + +GLIB_AVAILABLE_IN_2_34 +GBytes* g_string_free_to_bytes (GString *string); +GLIB_AVAILABLE_IN_ALL +gboolean g_string_equal (const GString *v, + const GString *v2); +GLIB_AVAILABLE_IN_ALL +guint g_string_hash (const GString *str); +GLIB_AVAILABLE_IN_ALL +GString* g_string_assign (GString *string, + const gchar *rval); +GLIB_AVAILABLE_IN_ALL +GString* g_string_truncate (GString *string, + gsize len); +GLIB_AVAILABLE_IN_ALL +GString* g_string_set_size (GString *string, + gsize len); +GLIB_AVAILABLE_IN_ALL +GString* g_string_insert_len (GString *string, + gssize pos, + const gchar *val, + gssize len); +GLIB_AVAILABLE_IN_ALL +GString* g_string_append (GString *string, + const gchar *val); +GLIB_AVAILABLE_IN_ALL +GString* g_string_append_len (GString *string, + const gchar *val, + gssize len); +GLIB_AVAILABLE_IN_ALL +GString* g_string_append_c (GString *string, + gchar c); +GLIB_AVAILABLE_IN_ALL +GString* g_string_append_unichar (GString *string, + gunichar wc); +GLIB_AVAILABLE_IN_ALL +GString* g_string_prepend (GString *string, + const gchar *val); +GLIB_AVAILABLE_IN_ALL +GString* g_string_prepend_c (GString *string, + gchar c); +GLIB_AVAILABLE_IN_ALL +GString* g_string_prepend_unichar (GString *string, + gunichar wc); +GLIB_AVAILABLE_IN_ALL +GString* g_string_prepend_len (GString *string, + const gchar *val, + gssize len); +GLIB_AVAILABLE_IN_ALL +GString* g_string_insert (GString *string, + gssize pos, + const gchar *val); +GLIB_AVAILABLE_IN_ALL +GString* g_string_insert_c (GString *string, + gssize pos, + gchar c); +GLIB_AVAILABLE_IN_ALL +GString* g_string_insert_unichar (GString *string, + gssize pos, + gunichar wc); +GLIB_AVAILABLE_IN_ALL +GString* g_string_overwrite (GString *string, + gsize pos, + const gchar *val); +GLIB_AVAILABLE_IN_ALL +GString* g_string_overwrite_len (GString *string, + gsize pos, + const gchar *val, + gssize len); +GLIB_AVAILABLE_IN_ALL +GString* g_string_erase (GString *string, + gssize pos, + gssize len); +GLIB_AVAILABLE_IN_2_68 +guint g_string_replace (GString *string, + const gchar *find, + const gchar *replace, + guint limit); +GLIB_AVAILABLE_IN_ALL +GString* g_string_ascii_down (GString *string); +GLIB_AVAILABLE_IN_ALL +GString* g_string_ascii_up (GString *string); +GLIB_AVAILABLE_IN_ALL +void g_string_vprintf (GString *string, + const gchar *format, + va_list args) + G_GNUC_PRINTF(2, 0); +GLIB_AVAILABLE_IN_ALL +void g_string_printf (GString *string, + const gchar *format, + ...) G_GNUC_PRINTF (2, 3); +GLIB_AVAILABLE_IN_ALL +void g_string_append_vprintf (GString *string, + const gchar *format, + va_list args) + G_GNUC_PRINTF(2, 0); +GLIB_AVAILABLE_IN_ALL +void g_string_append_printf (GString *string, + const gchar *format, + ...) G_GNUC_PRINTF (2, 3); +GLIB_AVAILABLE_IN_ALL +GString* g_string_append_uri_escaped (GString *string, + const gchar *unescaped, + const gchar *reserved_chars_allowed, + gboolean allow_utf8); + +#ifdef G_CAN_INLINE + +#if defined (_MSC_VER) && !defined (__clang__) +#pragma warning (push) +#pragma warning (disable : 4141) /* silence "warning C4141: 'inline' used more than once" */ +#endif + +#ifndef __GTK_DOC_IGNORE__ + +G_ALWAYS_INLINE +static inline GString* +g_string_append_c_inline (GString *gstring, + gchar c) +{ + if (G_LIKELY (gstring != NULL && + gstring->len + 1 < gstring->allocated_len)) + { + gstring->str[gstring->len++] = c; + gstring->str[gstring->len] = 0; + } + else + g_string_insert_c (gstring, -1, c); + return gstring; +} + +#define g_string_append_c(gstr,c) \ + g_string_append_c_inline (gstr, c) + +G_ALWAYS_INLINE +static inline GString * +g_string_append_len_inline (GString *gstring, + const char *val, + gssize len) +{ + gsize len_unsigned; + + if G_UNLIKELY (gstring == NULL) + return g_string_append_len (gstring, val, len); + + if G_UNLIKELY (val == NULL) + return (len != 0) ? g_string_append_len (gstring, val, len) : gstring; + + if (len < 0) + len_unsigned = strlen (val); + else + len_unsigned = (gsize) len; + + if (G_LIKELY (gstring->len + len_unsigned < gstring->allocated_len)) + { + char *end = gstring->str + gstring->len; + if (G_LIKELY (val + len_unsigned <= end || val > end + len_unsigned)) + memcpy (end, val, len_unsigned); + else + memmove (end, val, len_unsigned); + gstring->len += len_unsigned; + gstring->str[gstring->len] = 0; + return gstring; + } + else + return g_string_insert_len (gstring, -1, val, len); +} + +#define g_string_append_len(gstr, val, len) \ + g_string_append_len_inline (gstr, val, len) + +G_ALWAYS_INLINE +static inline GString * +g_string_truncate_inline (GString *gstring, + gsize len) +{ + gstring->len = MIN (len, gstring->len); + gstring->str[gstring->len] = '\0'; + return gstring; +} + +#define g_string_truncate(gstr, len) \ + g_string_truncate_inline (gstr, len) + +#if G_GNUC_CHECK_VERSION (2, 0) + +#define g_string_append(gstr, val) \ + (__builtin_constant_p (val) ? \ + G_GNUC_EXTENSION ({ \ + const char * const __val = (val); \ + g_string_append_len (gstr, __val, \ + G_LIKELY (__val != NULL) ? \ + (gssize) strlen (_G_STR_NONNULL (__val)) \ + : (gssize) -1); \ + }) \ + : \ + g_string_append_len (gstr, val, (gssize) -1)) + +#endif /* G_GNUC_CHECK_VERSION (2, 0) */ + +#endif /* __GTK_DOC_IGNORE__ */ + +#if defined (_MSC_VER) && !defined (__clang__) +#pragma warning (pop) /* #pragma warning (disable : 4141) */ +#endif + +#endif /* G_CAN_INLINE */ + +GLIB_DEPRECATED +GString *g_string_down (GString *string); +GLIB_DEPRECATED +GString *g_string_up (GString *string); + +#define g_string_sprintf g_string_printf GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_string_printf) +#define g_string_sprintfa g_string_append_printf GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_string_append_printf) + +G_END_DECLS + +#endif /* __G_STRING_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstringchunk.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstringchunk.h new file mode 100644 index 000000000..a79a4cb0b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstringchunk.h @@ -0,0 +1,59 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_STRINGCHUNK_H__ +#define __G_STRINGCHUNK_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GStringChunk GStringChunk; + +GLIB_AVAILABLE_IN_ALL +GStringChunk* g_string_chunk_new (gsize size); +GLIB_AVAILABLE_IN_ALL +void g_string_chunk_free (GStringChunk *chunk); +GLIB_AVAILABLE_IN_ALL +void g_string_chunk_clear (GStringChunk *chunk); +GLIB_AVAILABLE_IN_ALL +gchar* g_string_chunk_insert (GStringChunk *chunk, + const gchar *string); +GLIB_AVAILABLE_IN_ALL +gchar* g_string_chunk_insert_len (GStringChunk *chunk, + const gchar *string, + gssize len); +GLIB_AVAILABLE_IN_ALL +gchar* g_string_chunk_insert_const (GStringChunk *chunk, + const gchar *string); + +G_END_DECLS + +#endif /* __G_STRING_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstrvbuilder.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstrvbuilder.h new file mode 100644 index 000000000..c8acbaadd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gstrvbuilder.h @@ -0,0 +1,69 @@ +/* + * Copyright © 2020 Canonical Ltd. + * Copyright © 2021 Alexandros Theodotou + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __G_STRVBUILDER_H__ +#define __G_STRVBUILDER_H__ + +#if !defined(__GLIB_H_INSIDE__) && !defined(GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +/** + * GStrvBuilder: + * + * A helper object to build a %NULL-terminated string array + * by appending. See g_strv_builder_new(). + * + * Since: 2.68 + */ +typedef struct _GStrvBuilder GStrvBuilder; + +GLIB_AVAILABLE_IN_2_68 +GStrvBuilder *g_strv_builder_new (void); + +GLIB_AVAILABLE_IN_2_68 +void g_strv_builder_unref (GStrvBuilder *builder); + +GLIB_AVAILABLE_IN_2_68 +GStrvBuilder *g_strv_builder_ref (GStrvBuilder *builder); + +GLIB_AVAILABLE_IN_2_68 +void g_strv_builder_add (GStrvBuilder *builder, + const char *value); + +GLIB_AVAILABLE_IN_2_70 +void g_strv_builder_addv (GStrvBuilder *builder, + const char **value); + +GLIB_AVAILABLE_IN_2_70 +void g_strv_builder_add_many (GStrvBuilder *builder, + ...) G_GNUC_NULL_TERMINATED; + +GLIB_AVAILABLE_IN_2_68 +GStrv g_strv_builder_end (GStrvBuilder *builder); + +G_END_DECLS + +#endif /* __G_STRVBUILDER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtestutils.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtestutils.h new file mode 100644 index 000000000..688f2eae7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtestutils.h @@ -0,0 +1,763 @@ +/* GLib testing utilities + * Copyright (C) 2007 Imendio AB + * Authors: Tim Janik + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +#ifndef __G_TEST_UTILS_H__ +#define __G_TEST_UTILS_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include +#include +#include +#include +#include + +G_BEGIN_DECLS + +typedef struct GTestCase GTestCase; +typedef struct GTestSuite GTestSuite; +typedef void (*GTestFunc) (void); +typedef void (*GTestDataFunc) (gconstpointer user_data); +typedef void (*GTestFixtureFunc) (gpointer fixture, + gconstpointer user_data); + +/* assertion API */ +#define g_assert_cmpstr(s1, cmp, s2) G_STMT_START { \ + const char *__s1 = (s1), *__s2 = (s2); \ + if (g_strcmp0 (__s1, __s2) cmp 0) ; else \ + g_assertion_message_cmpstr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #s1 " " #cmp " " #s2, __s1, #cmp, __s2); \ + } G_STMT_END +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_78 +#define g_assert_cmpint(n1, cmp, n2) G_STMT_START { \ + gint64 __n1 = (n1), __n2 = (n2); \ + if (__n1 cmp __n2) ; else \ + g_assertion_message_cmpint (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'i'); \ + } G_STMT_END +#define g_assert_cmpuint(n1, cmp, n2) G_STMT_START { \ + guint64 __n1 = (n1), __n2 = (n2); \ + if (__n1 cmp __n2) ; else \ + g_assertion_message_cmpint (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'u'); \ + } G_STMT_END +#define g_assert_cmphex(n1, cmp, n2) G_STMT_START { \ + guint64 __n1 = (n1), __n2 = (n2); \ + if (__n1 cmp __n2) ; else \ + g_assertion_message_cmpint (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #n1 " " #cmp " " #n2, __n1, #cmp, __n2, 'x'); \ + } G_STMT_END +#else /* GLIB_VERSION_MIN_REQUIRED < GLIB_VERSION_2_78 */ +#define g_assert_cmpint(n1, cmp, n2) G_STMT_START { \ + gint64 __n1 = (n1), __n2 = (n2); \ + if (__n1 cmp __n2) ; else \ + g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #n1 " " #cmp " " #n2, (long double) __n1, #cmp, (long double) __n2, 'i'); \ + } G_STMT_END +#define g_assert_cmpuint(n1, cmp, n2) G_STMT_START { \ + guint64 __n1 = (n1), __n2 = (n2); \ + if (__n1 cmp __n2) ; else \ + g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #n1 " " #cmp " " #n2, (long double) __n1, #cmp, (long double) __n2, 'i'); \ + } G_STMT_END +#define g_assert_cmphex(n1, cmp, n2) G_STMT_START {\ + guint64 __n1 = (n1), __n2 = (n2); \ + if (__n1 cmp __n2) ; else \ + g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #n1 " " #cmp " " #n2, (long double) __n1, #cmp, (long double) __n2, 'x'); \ + } G_STMT_END +#endif /* GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_78 */ +#define g_assert_cmpfloat(n1,cmp,n2) G_STMT_START { \ + long double __n1 = (long double) (n1), __n2 = (long double) (n2); \ + if (__n1 cmp __n2) ; else \ + g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #n1 " " #cmp " " #n2, (long double) __n1, #cmp, (long double) __n2, 'f'); \ + } G_STMT_END +#define g_assert_cmpfloat_with_epsilon(n1,n2,epsilon) \ + G_STMT_START { \ + double __n1 = (n1), __n2 = (n2), __epsilon = (epsilon); \ + if (G_APPROX_VALUE (__n1, __n2, __epsilon)) ; else \ + g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #n1 " == " #n2 " (+/- " #epsilon ")", __n1, "==", __n2, 'f'); \ + } G_STMT_END +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_78 +#define g_assert_cmpmem(m1, l1, m2, l2) G_STMT_START {\ + gconstpointer __m1 = m1, __m2 = m2; \ + size_t __l1 = (size_t) l1, __l2 = (size_t) l2; \ + if (__l1 != 0 && __m1 == NULL) \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "assertion failed (" #l1 " == 0 || " #m1 " != NULL)"); \ + else if (__l2 != 0 && __m2 == NULL) \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "assertion failed (" #l2 " == 0 || " #m2 " != NULL)"); \ + else if (__l1 != __l2) \ + g_assertion_message_cmpint (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #l1 " (len(" #m1 ")) == " #l2 " (len(" #m2 "))", \ + __l1, "==", __l2, 'u'); \ + else if (__l1 != 0 && __m2 != NULL && memcmp (__m1, __m2, __l1) != 0) \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "assertion failed (" #m1 " == " #m2 ")"); \ + } G_STMT_END +#else /* GLIB_VERSION_MIN_REQUIRED < GLIB_VERSION_2_78 */ +#define g_assert_cmpmem(m1, l1, m2, l2) G_STMT_START {\ + gconstpointer __m1 = m1, __m2 = m2; \ + size_t __l1 = (size_t) l1, __l2 = (size_t) l2; \ + if (__l1 != 0 && __m1 == NULL) \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "assertion failed (" #l1 " == 0 || " #m1 " != NULL)"); \ + else if (__l2 != 0 && __m2 == NULL) \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "assertion failed (" #l2 " == 0 || " #m2 " != NULL)"); \ + else if (__l1 != __l2) \ + g_assertion_message_cmpnum (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #l1 " (len(" #m1 ")) == " #l2 " (len(" #m2 "))", \ + (long double) __l1, "==", (long double) __l2, 'i'); \ + else if (__l1 != 0 && __m2 != NULL && memcmp (__m1, __m2, __l1) != 0) \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "assertion failed (" #m1 " == " #m2 ")"); \ + } G_STMT_END +#endif /* GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_78 */ +#define g_assert_cmpvariant(v1, v2) \ + G_STMT_START \ + { \ + GVariant *__v1 = (v1), *__v2 = (v2); \ + if (!g_variant_equal (__v1, __v2)) \ + { \ + gchar *__s1, *__s2, *__msg; \ + __s1 = g_variant_print (__v1, TRUE); \ + __s2 = g_variant_print (__v2, TRUE); \ + __msg = g_strdup_printf ("assertion failed (" #v1 " == " #v2 "): %s does not equal %s", __s1, __s2); \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, __msg); \ + g_free (__s1); \ + g_free (__s2); \ + g_free (__msg); \ + } \ + } \ + G_STMT_END +#define g_assert_cmpstrv(strv1, strv2) \ + G_STMT_START \ + { \ + const char * const *__strv1 = (const char * const *) (strv1); \ + const char * const *__strv2 = (const char * const *) (strv2); \ + if (!__strv1 || !__strv2) \ + { \ + if (__strv1) \ + { \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "assertion failed (" #strv1 " == " #strv2 "): " #strv2 " is NULL, but " #strv1 " is not"); \ + } \ + else if (__strv2) \ + { \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "assertion failed (" #strv1 " == " #strv2 "): " #strv1 " is NULL, but " #strv2 " is not"); \ + } \ + } \ + else \ + { \ + guint __l1 = g_strv_length ((char **) __strv1); \ + guint __l2 = g_strv_length ((char **) __strv2); \ + if (__l1 != __l2) \ + { \ + char *__msg; \ + __msg = g_strdup_printf ("assertion failed (" #strv1 " == " #strv2 "): length %u does not equal length %u", __l1, __l2); \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, __msg); \ + g_free (__msg); \ + } \ + else \ + { \ + guint __i; \ + for (__i = 0; __i < __l1; __i++) \ + { \ + if (g_strcmp0 (__strv1[__i], __strv2[__i]) != 0) \ + { \ + g_assertion_message_cmpstrv (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #strv1 " == " #strv2, \ + __strv1, __strv2, __i); \ + } \ + } \ + } \ + } \ + } \ + G_STMT_END +#define g_assert_no_errno(expr) G_STMT_START { \ + int __ret, __errsv; \ + errno = 0; \ + __ret = expr; \ + __errsv = errno; \ + if (__ret < 0) \ + { \ + gchar *__msg; \ + __msg = g_strdup_printf ("assertion failed (" #expr " >= 0): errno %i: %s", __errsv, g_strerror (__errsv)); \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, __msg); \ + g_free (__msg); \ + } \ + } G_STMT_END \ + GLIB_AVAILABLE_MACRO_IN_2_66 +#define g_assert_no_error(err) G_STMT_START { \ + if (err) \ + g_assertion_message_error (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #err, err, 0, 0); \ + } G_STMT_END +#define g_assert_error(err, dom, c) G_STMT_START { \ + if (!err || (err)->domain != dom || (err)->code != c) \ + g_assertion_message_error (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #err, err, dom, c); \ + } G_STMT_END +#define g_assert_true(expr) G_STMT_START { \ + if G_LIKELY (expr) ; else \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "'" #expr "' should be TRUE"); \ + } G_STMT_END +#define g_assert_false(expr) G_STMT_START { \ + if G_LIKELY (!(expr)) ; else \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "'" #expr "' should be FALSE"); \ + } G_STMT_END + +/* Use nullptr in C++ to catch misuse of these macros. */ +#if G_CXX_STD_CHECK_VERSION (11) +#define g_assert_null(expr) G_STMT_START { if G_LIKELY ((expr) == nullptr) ; else \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "'" #expr "' should be nullptr"); \ + } G_STMT_END +#define g_assert_nonnull(expr) G_STMT_START { \ + if G_LIKELY ((expr) != nullptr) ; else \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "'" #expr "' should not be nullptr"); \ + } G_STMT_END +#else /* not C++ */ +#define g_assert_null(expr) G_STMT_START { if G_LIKELY ((expr) == NULL) ; else \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "'" #expr "' should be NULL"); \ + } G_STMT_END +#define g_assert_nonnull(expr) G_STMT_START { \ + if G_LIKELY ((expr) != NULL) ; else \ + g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + "'" #expr "' should not be NULL"); \ + } G_STMT_END +#endif + +#ifdef G_DISABLE_ASSERT +/* https://gcc.gnu.org/onlinedocs/gcc-8.3.0/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005funreachable + * GCC 5 is not a strict lower bound for versions of GCC which provide __builtin_unreachable(). */ +#if __GNUC__ >= 5 || g_macro__has_builtin(__builtin_unreachable) +#define g_assert_not_reached() G_STMT_START { (void) 0; __builtin_unreachable (); } G_STMT_END +#elif defined (_MSC_VER) +#define g_assert_not_reached() G_STMT_START { (void) 0; __assume (0); } G_STMT_END +#else /* if __builtin_unreachable() is not supported: */ +#define g_assert_not_reached() G_STMT_START { (void) 0; } G_STMT_END +#endif + +#define g_assert(expr) G_STMT_START { (void) 0; } G_STMT_END +#else /* !G_DISABLE_ASSERT */ +#define g_assert_not_reached() G_STMT_START { g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, NULL); } G_STMT_END +#define g_assert(expr) G_STMT_START { \ + if G_LIKELY (expr) ; else \ + g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \ + #expr); \ + } G_STMT_END +#endif /* !G_DISABLE_ASSERT */ + +GLIB_AVAILABLE_IN_ALL +int g_strcmp0 (const char *str1, + const char *str2); + +/* report performance results */ +GLIB_AVAILABLE_IN_ALL +void g_test_minimized_result (double minimized_quantity, + const char *format, + ...) G_GNUC_PRINTF (2, 3); +GLIB_AVAILABLE_IN_ALL +void g_test_maximized_result (double maximized_quantity, + const char *format, + ...) G_GNUC_PRINTF (2, 3); + +/* initialize testing framework */ +GLIB_AVAILABLE_IN_ALL +void g_test_init (int *argc, + char ***argv, + ...) G_GNUC_NULL_TERMINATED; + +/** + * G_TEST_OPTION_ISOLATE_DIRS: + * + * Creates a unique temporary directory for each unit test and uses + * g_set_user_dirs() to set XDG directories to point into subdirectories of it + * for the duration of the unit test. The directory tree is cleaned up after the + * test finishes successfully. Note that this doesn’t take effect until + * g_test_run() is called, so calls to (for example) g_get_user_home_dir() will + * return the system-wide value when made in a test program’s main() function. + * + * The following functions will return subdirectories of the temporary directory + * when this option is used. The specific subdirectory paths in use are not + * guaranteed to be stable API — always use a getter function to retrieve them. + * + * - g_get_home_dir() + * - g_get_user_cache_dir() + * - g_get_system_config_dirs() + * - g_get_user_config_dir() + * - g_get_system_data_dirs() + * - g_get_user_data_dir() + * - g_get_user_state_dir() + * - g_get_user_runtime_dir() + * + * The subdirectories may not be created by the test harness; as with normal + * calls to functions like g_get_user_cache_dir(), the caller must be prepared + * to create the directory if it doesn’t exist. + * + * Since: 2.60 + */ +#define G_TEST_OPTION_ISOLATE_DIRS "isolate_dirs" + +/* While we discourage its use, g_assert() is often used in unit tests + * (especially in legacy code). g_assert_*() should really be used instead. + * g_assert() can be disabled at client program compile time, which can render + * tests useless. Highlight that to the user. */ +#ifdef G_DISABLE_ASSERT +#if defined(G_HAVE_ISO_VARARGS) +#define g_test_init(argc, argv, ...) \ + G_STMT_START { \ + g_printerr ("Tests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\n"); \ + exit (1); \ + } G_STMT_END +#elif defined(G_HAVE_GNUC_VARARGS) +#define g_test_init(argc, argv...) \ + G_STMT_START { \ + g_printerr ("Tests were compiled with G_DISABLE_ASSERT and are likely no-ops. Aborting.\n"); \ + exit (1); \ + } G_STMT_END +#else /* no varargs */ + /* do nothing */ +#endif /* varargs support */ +#endif /* G_DISABLE_ASSERT */ + +/* query testing framework config */ +#define g_test_initialized() (g_test_config_vars->test_initialized) +#define g_test_quick() (g_test_config_vars->test_quick) +#define g_test_slow() (!g_test_config_vars->test_quick) +#define g_test_thorough() (!g_test_config_vars->test_quick) +#define g_test_perf() (g_test_config_vars->test_perf) +#define g_test_verbose() (g_test_config_vars->test_verbose) +#define g_test_quiet() (g_test_config_vars->test_quiet) +#define g_test_undefined() (g_test_config_vars->test_undefined) +GLIB_AVAILABLE_IN_2_38 +gboolean g_test_subprocess (void); + +/* run all tests under toplevel suite (path: /) */ +GLIB_AVAILABLE_IN_ALL +int g_test_run (void); +/* hook up a test functions under test path */ +GLIB_AVAILABLE_IN_ALL +void g_test_add_func (const char *testpath, + GTestFunc test_func); + +GLIB_AVAILABLE_IN_ALL +void g_test_add_data_func (const char *testpath, + gconstpointer test_data, + GTestDataFunc test_func); + +GLIB_AVAILABLE_IN_2_34 +void g_test_add_data_func_full (const char *testpath, + gpointer test_data, + GTestDataFunc test_func, + GDestroyNotify data_free_func); + +/* tell about currently run test */ +GLIB_AVAILABLE_IN_2_68 +const char * g_test_get_path (void); + +/* tell about failure */ +GLIB_AVAILABLE_IN_2_30 +void g_test_fail (void); +GLIB_AVAILABLE_IN_2_70 +void g_test_fail_printf (const char *format, + ...) G_GNUC_PRINTF (1, 2); +GLIB_AVAILABLE_IN_2_38 +void g_test_incomplete (const gchar *msg); +GLIB_AVAILABLE_IN_2_70 +void g_test_incomplete_printf (const char *format, + ...) G_GNUC_PRINTF (1, 2); +GLIB_AVAILABLE_IN_2_38 +void g_test_skip (const gchar *msg); +GLIB_AVAILABLE_IN_2_70 +void g_test_skip_printf (const char *format, + ...) G_GNUC_PRINTF (1, 2); +GLIB_AVAILABLE_IN_2_38 +gboolean g_test_failed (void); +GLIB_AVAILABLE_IN_2_38 +void g_test_set_nonfatal_assertions (void); +GLIB_AVAILABLE_IN_2_78 +void g_test_disable_crash_reporting (void); + +/** + * g_test_add: + * @testpath: The test path for a new test case. + * @Fixture: The type of a fixture data structure. + * @tdata: Data argument for the test functions. + * @fsetup: The function to set up the fixture data. + * @ftest: The actual test function. + * @fteardown: The function to tear down the fixture data. + * + * Hook up a new test case at @testpath, similar to g_test_add_func(). + * A fixture data structure with setup and teardown functions may be provided, + * similar to g_test_create_case(). + * + * g_test_add() is implemented as a macro, so that the fsetup(), ftest() and + * fteardown() callbacks can expect a @Fixture pointer as their first argument + * in a type safe manner. They otherwise have type #GTestFixtureFunc. + * + * Since: 2.16 + */ +#define g_test_add(testpath, Fixture, tdata, fsetup, ftest, fteardown) \ + G_STMT_START { \ + void (*add_vtable) (const char*, \ + gsize, \ + gconstpointer, \ + void (*) (Fixture*, gconstpointer), \ + void (*) (Fixture*, gconstpointer), \ + void (*) (Fixture*, gconstpointer)) = (void (*) (const gchar *, gsize, gconstpointer, void (*) (Fixture*, gconstpointer), void (*) (Fixture*, gconstpointer), void (*) (Fixture*, gconstpointer))) g_test_add_vtable; \ + add_vtable \ + (testpath, sizeof (Fixture), tdata, fsetup, ftest, fteardown); \ + } G_STMT_END + +/* add test messages to the test report */ +GLIB_AVAILABLE_IN_ALL +void g_test_message (const char *format, + ...) G_GNUC_PRINTF (1, 2); +GLIB_AVAILABLE_IN_ALL +void g_test_bug_base (const char *uri_pattern); +GLIB_AVAILABLE_IN_ALL +void g_test_bug (const char *bug_uri_snippet); +GLIB_AVAILABLE_IN_2_62 +void g_test_summary (const char *summary); +/* measure test timings */ +GLIB_AVAILABLE_IN_ALL +void g_test_timer_start (void); +GLIB_AVAILABLE_IN_ALL +double g_test_timer_elapsed (void); /* elapsed seconds */ +GLIB_AVAILABLE_IN_ALL +double g_test_timer_last (void); /* repeat last elapsed() result */ + +/* automatically g_free or g_object_unref upon teardown */ +GLIB_AVAILABLE_IN_ALL +void g_test_queue_free (gpointer gfree_pointer); +GLIB_AVAILABLE_IN_ALL +void g_test_queue_destroy (GDestroyNotify destroy_func, + gpointer destroy_data); +#define g_test_queue_unref(gobject) g_test_queue_destroy (g_object_unref, gobject) + +/** + * GTestTrapFlags: + * @G_TEST_TRAP_DEFAULT: Default behaviour. Since: 2.74 + * @G_TEST_TRAP_SILENCE_STDOUT: Redirect stdout of the test child to + * `/dev/null` so it cannot be observed on the console during test + * runs. The actual output is still captured though to allow later + * tests with g_test_trap_assert_stdout(). + * @G_TEST_TRAP_SILENCE_STDERR: Redirect stderr of the test child to + * `/dev/null` so it cannot be observed on the console during test + * runs. The actual output is still captured though to allow later + * tests with g_test_trap_assert_stderr(). + * @G_TEST_TRAP_INHERIT_STDIN: If this flag is given, stdin of the + * child process is shared with stdin of its parent process. + * It is redirected to `/dev/null` otherwise. + * + * Test traps are guards around forked tests. + * These flags determine what traps to set. + * + * Deprecated: 2.38: #GTestTrapFlags is used only with g_test_trap_fork(), + * which is deprecated. g_test_trap_subprocess() uses + * #GTestSubprocessFlags. + */ +typedef enum { + G_TEST_TRAP_DEFAULT GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = 0, + G_TEST_TRAP_SILENCE_STDOUT = 1 << 7, + G_TEST_TRAP_SILENCE_STDERR = 1 << 8, + G_TEST_TRAP_INHERIT_STDIN = 1 << 9 +} GTestTrapFlags GLIB_DEPRECATED_TYPE_IN_2_38_FOR(GTestSubprocessFlags); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + +GLIB_DEPRECATED_IN_2_38_FOR (g_test_trap_subprocess) +gboolean g_test_trap_fork (guint64 usec_timeout, + GTestTrapFlags test_trap_flags); + +G_GNUC_END_IGNORE_DEPRECATIONS + +typedef enum { + G_TEST_SUBPROCESS_DEFAULT GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = 0, + G_TEST_SUBPROCESS_INHERIT_STDIN = 1 << 0, + G_TEST_SUBPROCESS_INHERIT_STDOUT = 1 << 1, + G_TEST_SUBPROCESS_INHERIT_STDERR = 1 << 2 +} GTestSubprocessFlags; + +GLIB_AVAILABLE_IN_2_38 +void g_test_trap_subprocess (const char *test_path, + guint64 usec_timeout, + GTestSubprocessFlags test_flags); + +GLIB_AVAILABLE_IN_ALL +gboolean g_test_trap_has_passed (void); +GLIB_AVAILABLE_IN_ALL +gboolean g_test_trap_reached_timeout (void); +#define g_test_trap_assert_passed() g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 0, 0) +#define g_test_trap_assert_failed() g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 1, 0) +#define g_test_trap_assert_stdout(soutpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 2, soutpattern) +#define g_test_trap_assert_stdout_unmatched(soutpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 3, soutpattern) +#define g_test_trap_assert_stderr(serrpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 4, serrpattern) +#define g_test_trap_assert_stderr_unmatched(serrpattern) g_test_trap_assertions (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 5, serrpattern) + +/* provide seed-able random numbers for tests */ +#define g_test_rand_bit() (0 != (g_test_rand_int() & (1 << 15))) +GLIB_AVAILABLE_IN_ALL +gint32 g_test_rand_int (void); +GLIB_AVAILABLE_IN_ALL +gint32 g_test_rand_int_range (gint32 begin, + gint32 end); +GLIB_AVAILABLE_IN_ALL +double g_test_rand_double (void); +GLIB_AVAILABLE_IN_ALL +double g_test_rand_double_range (double range_start, + double range_end); + +/* + * semi-internal API: non-documented symbols with stable ABI. You + * should use the non-internal helper macros instead. However, for + * compatibility reason, you may use this semi-internal API. + */ +GLIB_AVAILABLE_IN_ALL +GTestCase* g_test_create_case (const char *test_name, + gsize data_size, + gconstpointer test_data, + GTestFixtureFunc data_setup, + GTestFixtureFunc data_test, + GTestFixtureFunc data_teardown); +GLIB_AVAILABLE_IN_ALL +GTestSuite* g_test_create_suite (const char *suite_name); +GLIB_AVAILABLE_IN_ALL +GTestSuite* g_test_get_root (void); +GLIB_AVAILABLE_IN_ALL +void g_test_suite_add (GTestSuite *suite, + GTestCase *test_case); +GLIB_AVAILABLE_IN_ALL +void g_test_suite_add_suite (GTestSuite *suite, + GTestSuite *nestedsuite); +GLIB_AVAILABLE_IN_ALL +int g_test_run_suite (GTestSuite *suite); + +GLIB_AVAILABLE_IN_2_70 +void g_test_case_free (GTestCase *test_case); + +GLIB_AVAILABLE_IN_2_70 +void g_test_suite_free (GTestSuite *suite); + +GLIB_AVAILABLE_IN_ALL +void g_test_trap_assertions (const char *domain, + const char *file, + int line, + const char *func, + guint64 assertion_flags, /* 0-pass, 1-fail, 2-outpattern, 4-errpattern */ + const char *pattern); +GLIB_AVAILABLE_IN_ALL +void g_assertion_message (const char *domain, + const char *file, + int line, + const char *func, + const char *message) G_ANALYZER_NORETURN; +G_NORETURN +GLIB_AVAILABLE_IN_ALL +void g_assertion_message_expr (const char *domain, + const char *file, + int line, + const char *func, + const char *expr); +GLIB_AVAILABLE_IN_ALL +void g_assertion_message_cmpstr (const char *domain, + const char *file, + int line, + const char *func, + const char *expr, + const char *arg1, + const char *cmp, + const char *arg2) G_ANALYZER_NORETURN; + +GLIB_AVAILABLE_IN_2_68 +void g_assertion_message_cmpstrv (const char *domain, + const char *file, + int line, + const char *func, + const char *expr, + const char * const *arg1, + const char * const *arg2, + gsize first_wrong_idx) G_ANALYZER_NORETURN; +GLIB_AVAILABLE_IN_2_78 +void g_assertion_message_cmpint (const char *domain, + const char *file, + int line, + const char *func, + const char *expr, + guint64 arg1, + const char *cmp, + guint64 arg2, + char numtype) G_ANALYZER_NORETURN; +GLIB_AVAILABLE_IN_ALL +void g_assertion_message_cmpnum (const char *domain, + const char *file, + int line, + const char *func, + const char *expr, + long double arg1, + const char *cmp, + long double arg2, + char numtype) G_ANALYZER_NORETURN; +GLIB_AVAILABLE_IN_ALL +void g_assertion_message_error (const char *domain, + const char *file, + int line, + const char *func, + const char *expr, + const GError *error, + GQuark error_domain, + int error_code) G_ANALYZER_NORETURN; +GLIB_AVAILABLE_IN_ALL +void g_test_add_vtable (const char *testpath, + gsize data_size, + gconstpointer test_data, + GTestFixtureFunc data_setup, + GTestFixtureFunc data_test, + GTestFixtureFunc data_teardown); +typedef struct { + gboolean test_initialized; + gboolean test_quick; /* disable thorough tests */ + gboolean test_perf; /* run performance tests */ + gboolean test_verbose; /* extra info */ + gboolean test_quiet; /* reduce output */ + gboolean test_undefined; /* run tests that are meant to assert */ +} GTestConfig; +GLIB_VAR const GTestConfig * const g_test_config_vars; + +/* internal logging API */ +typedef enum { + G_TEST_RUN_SUCCESS, + G_TEST_RUN_SKIPPED, + G_TEST_RUN_FAILURE, + G_TEST_RUN_INCOMPLETE +} GTestResult; + +typedef enum { + G_TEST_LOG_NONE, + G_TEST_LOG_ERROR, /* s:msg */ + G_TEST_LOG_START_BINARY, /* s:binaryname s:seed */ + G_TEST_LOG_LIST_CASE, /* s:testpath */ + G_TEST_LOG_SKIP_CASE, /* s:testpath */ + G_TEST_LOG_START_CASE, /* s:testpath */ + G_TEST_LOG_STOP_CASE, /* d:status d:nforks d:elapsed */ + G_TEST_LOG_MIN_RESULT, /* s:blurb d:result */ + G_TEST_LOG_MAX_RESULT, /* s:blurb d:result */ + G_TEST_LOG_MESSAGE, /* s:blurb */ + G_TEST_LOG_START_SUITE, + G_TEST_LOG_STOP_SUITE +} GTestLogType; + +typedef struct { + GTestLogType log_type; + guint n_strings; + gchar **strings; /* NULL terminated */ + guint n_nums; + long double *nums; +} GTestLogMsg; +typedef struct { + /*< private >*/ + GString *data; + GSList *msgs; +} GTestLogBuffer; + +GLIB_AVAILABLE_IN_ALL +const char* g_test_log_type_name (GTestLogType log_type); +GLIB_AVAILABLE_IN_ALL +GTestLogBuffer* g_test_log_buffer_new (void); +GLIB_AVAILABLE_IN_ALL +void g_test_log_buffer_free (GTestLogBuffer *tbuffer); +GLIB_AVAILABLE_IN_ALL +void g_test_log_buffer_push (GTestLogBuffer *tbuffer, + guint n_bytes, + const guint8 *bytes); +GLIB_AVAILABLE_IN_ALL +GTestLogMsg* g_test_log_buffer_pop (GTestLogBuffer *tbuffer); +GLIB_AVAILABLE_IN_ALL +void g_test_log_msg_free (GTestLogMsg *tmsg); + +/** + * GTestLogFatalFunc: + * @log_domain: the log domain of the message + * @log_level: the log level of the message (including the fatal and recursion flags) + * @message: the message to process + * @user_data: user data, set in g_test_log_set_fatal_handler() + * + * Specifies the prototype of fatal log handler functions. + * + * Returns: %TRUE if the program should abort, %FALSE otherwise + * + * Since: 2.22 + */ +typedef gboolean (*GTestLogFatalFunc) (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer user_data); +GLIB_AVAILABLE_IN_ALL +void +g_test_log_set_fatal_handler (GTestLogFatalFunc log_func, + gpointer user_data); + +GLIB_AVAILABLE_IN_2_34 +void g_test_expect_message (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *pattern); +GLIB_AVAILABLE_IN_2_34 +void g_test_assert_expected_messages_internal (const char *domain, + const char *file, + int line, + const char *func); + +typedef enum +{ + G_TEST_DIST, + G_TEST_BUILT +} GTestFileType; + +GLIB_AVAILABLE_IN_2_38 +gchar * g_test_build_filename (GTestFileType file_type, + const gchar *first_path, + ...) G_GNUC_NULL_TERMINATED; +GLIB_AVAILABLE_IN_2_38 +const gchar *g_test_get_dir (GTestFileType file_type); +GLIB_AVAILABLE_IN_2_38 +const gchar *g_test_get_filename (GTestFileType file_type, + const gchar *first_path, + ...) G_GNUC_NULL_TERMINATED; + +#define g_test_assert_expected_messages() g_test_assert_expected_messages_internal (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC) + +G_END_DECLS + +#endif /* __G_TEST_UTILS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gthread.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gthread.h new file mode 100644 index 000000000..e96632b91 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gthread.h @@ -0,0 +1,603 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_THREAD_H__ +#define __G_THREAD_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include + +G_BEGIN_DECLS + +#define G_THREAD_ERROR g_thread_error_quark () +GLIB_AVAILABLE_IN_ALL +GQuark g_thread_error_quark (void); + +typedef enum +{ + G_THREAD_ERROR_AGAIN /* Resource temporarily unavailable */ +} GThreadError; + +typedef gpointer (*GThreadFunc) (gpointer data); + +typedef struct _GThread GThread; + +typedef union _GMutex GMutex; +typedef struct _GRecMutex GRecMutex; +typedef struct _GRWLock GRWLock; +typedef struct _GCond GCond; +typedef struct _GPrivate GPrivate; +typedef struct _GOnce GOnce; + +union _GMutex +{ + /*< private >*/ + gpointer p; + guint i[2]; +}; + +struct _GRWLock +{ + /*< private >*/ + gpointer p; + guint i[2]; +}; + +struct _GCond +{ + /*< private >*/ + gpointer p; + guint i[2]; +}; + +struct _GRecMutex +{ + /*< private >*/ + gpointer p; + guint i[2]; +}; + +#define G_PRIVATE_INIT(notify) { NULL, (notify), { NULL, NULL } } +struct _GPrivate +{ + /*< private >*/ + gpointer p; + GDestroyNotify notify; + gpointer future[2]; +}; + +typedef enum +{ + G_ONCE_STATUS_NOTCALLED, + G_ONCE_STATUS_PROGRESS, + G_ONCE_STATUS_READY +} GOnceStatus; + +#define G_ONCE_INIT { G_ONCE_STATUS_NOTCALLED, NULL } +struct _GOnce +{ + volatile GOnceStatus status; + volatile gpointer retval; +}; + +#define G_LOCK_NAME(name) g__ ## name ## _lock +#define G_LOCK_DEFINE_STATIC(name) static G_LOCK_DEFINE (name) +#define G_LOCK_DEFINE(name) GMutex G_LOCK_NAME (name) +#define G_LOCK_EXTERN(name) extern GMutex G_LOCK_NAME (name) + +#ifdef G_DEBUG_LOCKS +# define G_LOCK(name) G_STMT_START{ \ + g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \ + "file %s: line %d (%s): locking: %s ", \ + __FILE__, __LINE__, G_STRFUNC, \ + #name); \ + g_mutex_lock (&G_LOCK_NAME (name)); \ + }G_STMT_END +# define G_UNLOCK(name) G_STMT_START{ \ + g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \ + "file %s: line %d (%s): unlocking: %s ", \ + __FILE__, __LINE__, G_STRFUNC, \ + #name); \ + g_mutex_unlock (&G_LOCK_NAME (name)); \ + }G_STMT_END +# define G_TRYLOCK(name) \ + (g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, \ + "file %s: line %d (%s): try locking: %s ", \ + __FILE__, __LINE__, G_STRFUNC, \ + #name), g_mutex_trylock (&G_LOCK_NAME (name))) +#else /* !G_DEBUG_LOCKS */ +# define G_LOCK(name) g_mutex_lock (&G_LOCK_NAME (name)) +# define G_UNLOCK(name) g_mutex_unlock (&G_LOCK_NAME (name)) +# define G_TRYLOCK(name) g_mutex_trylock (&G_LOCK_NAME (name)) +#endif /* !G_DEBUG_LOCKS */ + +GLIB_AVAILABLE_IN_2_32 +GThread * g_thread_ref (GThread *thread); +GLIB_AVAILABLE_IN_2_32 +void g_thread_unref (GThread *thread); +GLIB_AVAILABLE_IN_2_32 +GThread * g_thread_new (const gchar *name, + GThreadFunc func, + gpointer data); +GLIB_AVAILABLE_IN_2_32 +GThread * g_thread_try_new (const gchar *name, + GThreadFunc func, + gpointer data, + GError **error); +GLIB_AVAILABLE_IN_ALL +GThread * g_thread_self (void); +GLIB_AVAILABLE_IN_ALL +void g_thread_exit (gpointer retval); +GLIB_AVAILABLE_IN_ALL +gpointer g_thread_join (GThread *thread); +GLIB_AVAILABLE_IN_ALL +void g_thread_yield (void); + + +GLIB_AVAILABLE_IN_2_32 +void g_mutex_init (GMutex *mutex); +GLIB_AVAILABLE_IN_2_32 +void g_mutex_clear (GMutex *mutex); +GLIB_AVAILABLE_IN_ALL +void g_mutex_lock (GMutex *mutex); +GLIB_AVAILABLE_IN_ALL +gboolean g_mutex_trylock (GMutex *mutex); +GLIB_AVAILABLE_IN_ALL +void g_mutex_unlock (GMutex *mutex); + +GLIB_AVAILABLE_IN_2_32 +void g_rw_lock_init (GRWLock *rw_lock); +GLIB_AVAILABLE_IN_2_32 +void g_rw_lock_clear (GRWLock *rw_lock); +GLIB_AVAILABLE_IN_2_32 +void g_rw_lock_writer_lock (GRWLock *rw_lock); +GLIB_AVAILABLE_IN_2_32 +gboolean g_rw_lock_writer_trylock (GRWLock *rw_lock); +GLIB_AVAILABLE_IN_2_32 +void g_rw_lock_writer_unlock (GRWLock *rw_lock); +GLIB_AVAILABLE_IN_2_32 +void g_rw_lock_reader_lock (GRWLock *rw_lock); +GLIB_AVAILABLE_IN_2_32 +gboolean g_rw_lock_reader_trylock (GRWLock *rw_lock); +GLIB_AVAILABLE_IN_2_32 +void g_rw_lock_reader_unlock (GRWLock *rw_lock); + +GLIB_AVAILABLE_IN_2_32 +void g_rec_mutex_init (GRecMutex *rec_mutex); +GLIB_AVAILABLE_IN_2_32 +void g_rec_mutex_clear (GRecMutex *rec_mutex); +GLIB_AVAILABLE_IN_2_32 +void g_rec_mutex_lock (GRecMutex *rec_mutex); +GLIB_AVAILABLE_IN_2_32 +gboolean g_rec_mutex_trylock (GRecMutex *rec_mutex); +GLIB_AVAILABLE_IN_2_32 +void g_rec_mutex_unlock (GRecMutex *rec_mutex); + +GLIB_AVAILABLE_IN_2_32 +void g_cond_init (GCond *cond); +GLIB_AVAILABLE_IN_2_32 +void g_cond_clear (GCond *cond); +GLIB_AVAILABLE_IN_ALL +void g_cond_wait (GCond *cond, + GMutex *mutex); +GLIB_AVAILABLE_IN_ALL +void g_cond_signal (GCond *cond); +GLIB_AVAILABLE_IN_ALL +void g_cond_broadcast (GCond *cond); +GLIB_AVAILABLE_IN_2_32 +gboolean g_cond_wait_until (GCond *cond, + GMutex *mutex, + gint64 end_time); + +GLIB_AVAILABLE_IN_ALL +gpointer g_private_get (GPrivate *key); +GLIB_AVAILABLE_IN_ALL +void g_private_set (GPrivate *key, + gpointer value); +GLIB_AVAILABLE_IN_2_32 +void g_private_replace (GPrivate *key, + gpointer value); + +GLIB_AVAILABLE_IN_ALL +gpointer g_once_impl (GOnce *once, + GThreadFunc func, + gpointer arg); +GLIB_AVAILABLE_IN_ALL +gboolean g_once_init_enter (volatile void *location); +GLIB_AVAILABLE_IN_ALL +void g_once_init_leave (volatile void *location, + gsize result); + +/* Use C11-style atomic extensions to check the fast path for status=ready. If + * they are not available, fall back to using a mutex and condition variable in + * g_once_impl(). + * + * On the C11-style codepath, only the load of once->status needs to be atomic, + * as the writes to it and once->retval in g_once_impl() are related by a + * happens-before relation. Release-acquire semantics are defined such that any + * atomic/non-atomic write which happens-before a store/release is guaranteed to + * be seen by the load/acquire of the same atomic variable. */ +#if defined(G_ATOMIC_LOCK_FREE) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) && defined(__ATOMIC_SEQ_CST) +# define g_once(once, func, arg) \ + ((__atomic_load_n (&(once)->status, __ATOMIC_ACQUIRE) == G_ONCE_STATUS_READY) ? \ + (once)->retval : \ + g_once_impl ((once), (func), (arg))) +#else +# define g_once(once, func, arg) g_once_impl ((once), (func), (arg)) +#endif + +#ifdef __GNUC__ +# define g_once_init_enter(location) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer)); \ + (void) (0 ? (gpointer) *(location) : NULL); \ + (!g_atomic_pointer_get (location) && \ + g_once_init_enter (location)); \ + })) +# define g_once_init_leave(location, result) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(location) == sizeof (gpointer)); \ + 0 ? (void) (*(location) = (result)) : (void) 0; \ + g_once_init_leave ((location), (gsize) (result)); \ + })) +#else +# define g_once_init_enter(location) \ + (g_once_init_enter((location))) +# define g_once_init_leave(location, result) \ + (g_once_init_leave((location), (gsize) (result))) +#endif + +GLIB_AVAILABLE_IN_2_36 +guint g_get_num_processors (void); + +/** + * GMutexLocker: + * + * Opaque type. See g_mutex_locker_new() for details. + * Since: 2.44 + */ +typedef void GMutexLocker; + +/** + * g_mutex_locker_new: + * @mutex: a mutex to lock + * + * Lock @mutex and return a new #GMutexLocker. Unlock with + * g_mutex_locker_free(). Using g_mutex_unlock() on @mutex + * while a #GMutexLocker exists can lead to undefined behaviour. + * + * No allocation is performed, it is equivalent to a g_mutex_lock() call. + * + * This is intended to be used with g_autoptr(). Note that g_autoptr() + * is only available when using GCC or clang, so the following example + * will only work with those compilers: + * |[ + * typedef struct + * { + * ... + * GMutex mutex; + * ... + * } MyObject; + * + * static void + * my_object_do_stuff (MyObject *self) + * { + * g_autoptr(GMutexLocker) locker = g_mutex_locker_new (&self->mutex); + * + * // Code with mutex locked here + * + * if (cond) + * // No need to unlock + * return; + * + * // Optionally early unlock + * g_clear_pointer (&locker, g_mutex_locker_free); + * + * // Code with mutex unlocked here + * } + * ]| + * + * Returns: a #GMutexLocker + * Since: 2.44 + */ +GLIB_AVAILABLE_STATIC_INLINE_IN_2_44 +static inline GMutexLocker * +g_mutex_locker_new (GMutex *mutex) +{ + g_mutex_lock (mutex); + return (GMutexLocker *) mutex; +} + +/** + * g_mutex_locker_free: + * @locker: a GMutexLocker + * + * Unlock @locker's mutex. See g_mutex_locker_new() for details. + * + * No memory is freed, it is equivalent to a g_mutex_unlock() call. + * + * Since: 2.44 + */ +GLIB_AVAILABLE_STATIC_INLINE_IN_2_44 +static inline void +g_mutex_locker_free (GMutexLocker *locker) +{ + g_mutex_unlock ((GMutex *) locker); +} + +/** + * GRecMutexLocker: + * + * Opaque type. See g_rec_mutex_locker_new() for details. + * Since: 2.60 + */ +typedef void GRecMutexLocker; + +/** + * g_rec_mutex_locker_new: + * @rec_mutex: a recursive mutex to lock + * + * Lock @rec_mutex and return a new #GRecMutexLocker. Unlock with + * g_rec_mutex_locker_free(). Using g_rec_mutex_unlock() on @rec_mutex + * while a #GRecMutexLocker exists can lead to undefined behaviour. + * + * No allocation is performed, it is equivalent to a g_rec_mutex_lock() call. + * + * This is intended to be used with g_autoptr(). Note that g_autoptr() + * is only available when using GCC or clang, so the following example + * will only work with those compilers: + * |[ + * typedef struct + * { + * ... + * GRecMutex rec_mutex; + * ... + * } MyObject; + * + * static void + * my_object_do_stuff (MyObject *self) + * { + * g_autoptr(GRecMutexLocker) locker = g_rec_mutex_locker_new (&self->rec_mutex); + * + * // Code with rec_mutex locked here + * + * if (cond) + * // No need to unlock + * return; + * + * // Optionally early unlock + * g_clear_pointer (&locker, g_rec_mutex_locker_free); + * + * // Code with rec_mutex unlocked here + * } + * ]| + * + * Returns: a #GRecMutexLocker + * Since: 2.60 + */ +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_60 +static inline GRecMutexLocker * +g_rec_mutex_locker_new (GRecMutex *rec_mutex) +{ + g_rec_mutex_lock (rec_mutex); + return (GRecMutexLocker *) rec_mutex; +} +G_GNUC_END_IGNORE_DEPRECATIONS + +/** + * g_rec_mutex_locker_free: + * @locker: a GRecMutexLocker + * + * Unlock @locker's recursive mutex. See g_rec_mutex_locker_new() for details. + * + * No memory is freed, it is equivalent to a g_rec_mutex_unlock() call. + * + * Since: 2.60 + */ +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_60 +static inline void +g_rec_mutex_locker_free (GRecMutexLocker *locker) +{ + g_rec_mutex_unlock ((GRecMutex *) locker); +} +G_GNUC_END_IGNORE_DEPRECATIONS + +/** + * GRWLockWriterLocker: + * + * Opaque type. See g_rw_lock_writer_locker_new() for details. + * Since: 2.62 + */ +typedef void GRWLockWriterLocker; + +/** + * g_rw_lock_writer_locker_new: + * @rw_lock: a #GRWLock + * + * Obtain a write lock on @rw_lock and return a new #GRWLockWriterLocker. + * Unlock with g_rw_lock_writer_locker_free(). Using g_rw_lock_writer_unlock() + * on @rw_lock while a #GRWLockWriterLocker exists can lead to undefined + * behaviour. + * + * No allocation is performed, it is equivalent to a g_rw_lock_writer_lock() call. + * + * This is intended to be used with g_autoptr(). Note that g_autoptr() + * is only available when using GCC or clang, so the following example + * will only work with those compilers: + * |[ + * typedef struct + * { + * ... + * GRWLock rw_lock; + * GPtrArray *array; + * ... + * } MyObject; + * + * static gchar * + * my_object_get_data (MyObject *self, guint index) + * { + * g_autoptr(GRWLockReaderLocker) locker = g_rw_lock_reader_locker_new (&self->rw_lock); + * + * // Code with a read lock obtained on rw_lock here + * + * if (self->array == NULL) + * // No need to unlock + * return NULL; + * + * if (index < self->array->len) + * // No need to unlock + * return g_ptr_array_index (self->array, index); + * + * // Optionally early unlock + * g_clear_pointer (&locker, g_rw_lock_reader_locker_free); + * + * // Code with rw_lock unlocked here + * return NULL; + * } + * + * static void + * my_object_set_data (MyObject *self, guint index, gpointer data) + * { + * g_autoptr(GRWLockWriterLocker) locker = g_rw_lock_writer_locker_new (&self->rw_lock); + * + * // Code with a write lock obtained on rw_lock here + * + * if (self->array == NULL) + * self->array = g_ptr_array_new (); + * + * if (cond) + * // No need to unlock + * return; + * + * if (index >= self->array->len) + * g_ptr_array_set_size (self->array, index+1); + * g_ptr_array_index (self->array, index) = data; + * + * // Optionally early unlock + * g_clear_pointer (&locker, g_rw_lock_writer_locker_free); + * + * // Code with rw_lock unlocked here + * } + * ]| + * + * Returns: a #GRWLockWriterLocker + * Since: 2.62 + */ +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 +static inline GRWLockWriterLocker * +g_rw_lock_writer_locker_new (GRWLock *rw_lock) +{ + g_rw_lock_writer_lock (rw_lock); + return (GRWLockWriterLocker *) rw_lock; +} +G_GNUC_END_IGNORE_DEPRECATIONS + +/** + * g_rw_lock_writer_locker_free: + * @locker: a GRWLockWriterLocker + * + * Release a write lock on @locker's read-write lock. See + * g_rw_lock_writer_locker_new() for details. + * + * No memory is freed, it is equivalent to a g_rw_lock_writer_unlock() call. + * + * Since: 2.62 + */ +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 +static inline void +g_rw_lock_writer_locker_free (GRWLockWriterLocker *locker) +{ + g_rw_lock_writer_unlock ((GRWLock *) locker); +} +G_GNUC_END_IGNORE_DEPRECATIONS + +/** + * GRWLockReaderLocker: + * + * Opaque type. See g_rw_lock_reader_locker_new() for details. + * Since: 2.62 + */ +typedef void GRWLockReaderLocker; + +/** + * g_rw_lock_reader_locker_new: + * @rw_lock: a #GRWLock + * + * Obtain a read lock on @rw_lock and return a new #GRWLockReaderLocker. + * Unlock with g_rw_lock_reader_locker_free(). Using g_rw_lock_reader_unlock() + * on @rw_lock while a #GRWLockReaderLocker exists can lead to undefined + * behaviour. + * + * No allocation is performed, it is equivalent to a g_rw_lock_reader_lock() call. + * + * This is intended to be used with g_autoptr(). For a code sample, see + * g_rw_lock_writer_locker_new(). + * + * Returns: a #GRWLockReaderLocker + * Since: 2.62 + */ +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 +static inline GRWLockReaderLocker * +g_rw_lock_reader_locker_new (GRWLock *rw_lock) +{ + g_rw_lock_reader_lock (rw_lock); + return (GRWLockReaderLocker *) rw_lock; +} +G_GNUC_END_IGNORE_DEPRECATIONS + +/** + * g_rw_lock_reader_locker_free: + * @locker: a GRWLockReaderLocker + * + * Release a read lock on @locker's read-write lock. See + * g_rw_lock_reader_locker_new() for details. + * + * No memory is freed, it is equivalent to a g_rw_lock_reader_unlock() call. + * + * Since: 2.62 + */ +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_AVAILABLE_STATIC_INLINE_IN_2_62 +static inline void +g_rw_lock_reader_locker_free (GRWLockReaderLocker *locker) +{ + g_rw_lock_reader_unlock ((GRWLock *) locker); +} +G_GNUC_END_IGNORE_DEPRECATIONS + +G_END_DECLS + +#endif /* __G_THREAD_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gthreadpool.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gthreadpool.h new file mode 100644 index 000000000..921bee448 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gthreadpool.h @@ -0,0 +1,105 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_THREADPOOL_H__ +#define __G_THREADPOOL_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +typedef struct _GThreadPool GThreadPool; + +/* Thread Pools + */ + +struct _GThreadPool +{ + GFunc func; + gpointer user_data; + gboolean exclusive; +}; + +GLIB_AVAILABLE_IN_ALL +GThreadPool * g_thread_pool_new (GFunc func, + gpointer user_data, + gint max_threads, + gboolean exclusive, + GError **error); +GLIB_AVAILABLE_IN_2_70 +GThreadPool * g_thread_pool_new_full (GFunc func, + gpointer user_data, + GDestroyNotify item_free_func, + gint max_threads, + gboolean exclusive, + GError **error); +GLIB_AVAILABLE_IN_ALL +void g_thread_pool_free (GThreadPool *pool, + gboolean immediate, + gboolean wait_); +GLIB_AVAILABLE_IN_ALL +gboolean g_thread_pool_push (GThreadPool *pool, + gpointer data, + GError **error); +GLIB_AVAILABLE_IN_ALL +guint g_thread_pool_unprocessed (GThreadPool *pool); +GLIB_AVAILABLE_IN_ALL +void g_thread_pool_set_sort_function (GThreadPool *pool, + GCompareDataFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_2_46 +gboolean g_thread_pool_move_to_front (GThreadPool *pool, + gpointer data); + +GLIB_AVAILABLE_IN_ALL +gboolean g_thread_pool_set_max_threads (GThreadPool *pool, + gint max_threads, + GError **error); +GLIB_AVAILABLE_IN_ALL +gint g_thread_pool_get_max_threads (GThreadPool *pool); +GLIB_AVAILABLE_IN_ALL +guint g_thread_pool_get_num_threads (GThreadPool *pool); + +GLIB_AVAILABLE_IN_ALL +void g_thread_pool_set_max_unused_threads (gint max_threads); +GLIB_AVAILABLE_IN_ALL +gint g_thread_pool_get_max_unused_threads (void); +GLIB_AVAILABLE_IN_ALL +guint g_thread_pool_get_num_unused_threads (void); +GLIB_AVAILABLE_IN_ALL +void g_thread_pool_stop_unused_threads (void); +GLIB_AVAILABLE_IN_ALL +void g_thread_pool_set_max_idle_time (guint interval); +GLIB_AVAILABLE_IN_ALL +guint g_thread_pool_get_max_idle_time (void); + +G_END_DECLS + +#endif /* __G_THREADPOOL_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtimer.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtimer.h new file mode 100644 index 000000000..439ffad98 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtimer.h @@ -0,0 +1,80 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_TIMER_H__ +#define __G_TIMER_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/* Timer + */ + +/* microseconds per second */ +typedef struct _GTimer GTimer; + +#define G_USEC_PER_SEC 1000000 + +GLIB_AVAILABLE_IN_ALL +GTimer* g_timer_new (void); +GLIB_AVAILABLE_IN_ALL +void g_timer_destroy (GTimer *timer); +GLIB_AVAILABLE_IN_ALL +void g_timer_start (GTimer *timer); +GLIB_AVAILABLE_IN_ALL +void g_timer_stop (GTimer *timer); +GLIB_AVAILABLE_IN_ALL +void g_timer_reset (GTimer *timer); +GLIB_AVAILABLE_IN_ALL +void g_timer_continue (GTimer *timer); +GLIB_AVAILABLE_IN_ALL +gdouble g_timer_elapsed (GTimer *timer, + gulong *microseconds); +GLIB_AVAILABLE_IN_2_62 +gboolean g_timer_is_active (GTimer *timer); + +GLIB_AVAILABLE_IN_ALL +void g_usleep (gulong microseconds); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_DEPRECATED_IN_2_62 +void g_time_val_add (GTimeVal *time_, + glong microseconds); +GLIB_DEPRECATED_IN_2_62_FOR(g_date_time_new_from_iso8601) +gboolean g_time_val_from_iso8601 (const gchar *iso_date, + GTimeVal *time_); +GLIB_DEPRECATED_IN_2_62_FOR(g_date_time_format) +gchar* g_time_val_to_iso8601 (GTimeVal *time_) G_GNUC_MALLOC; +G_GNUC_END_IGNORE_DEPRECATIONS + +G_END_DECLS + +#endif /* __G_TIMER_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtimezone.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtimezone.h new file mode 100644 index 000000000..679ed4e95 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtimezone.h @@ -0,0 +1,98 @@ +/* + * Copyright © 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#ifndef __G_TIME_ZONE_H__ +#define __G_TIME_ZONE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +typedef struct _GTimeZone GTimeZone; + +/** + * GTimeType: + * @G_TIME_TYPE_STANDARD: the time is in local standard time + * @G_TIME_TYPE_DAYLIGHT: the time is in local daylight time + * @G_TIME_TYPE_UNIVERSAL: the time is in UTC + * + * Disambiguates a given time in two ways. + * + * First, specifies if the given time is in universal or local time. + * + * Second, if the time is in local time, specifies if it is local + * standard time or local daylight time. This is important for the case + * where the same local time occurs twice (during daylight savings time + * transitions, for example). + */ +typedef enum +{ + G_TIME_TYPE_STANDARD, + G_TIME_TYPE_DAYLIGHT, + G_TIME_TYPE_UNIVERSAL +} GTimeType; + +GLIB_DEPRECATED_IN_2_68_FOR (g_time_zone_new_identifier) +GTimeZone * g_time_zone_new (const gchar *identifier); +GLIB_AVAILABLE_IN_2_68 +GTimeZone * g_time_zone_new_identifier (const gchar *identifier); +GLIB_AVAILABLE_IN_ALL +GTimeZone * g_time_zone_new_utc (void); +GLIB_AVAILABLE_IN_ALL +GTimeZone * g_time_zone_new_local (void); +GLIB_AVAILABLE_IN_2_58 +GTimeZone * g_time_zone_new_offset (gint32 seconds); + +GLIB_AVAILABLE_IN_ALL +GTimeZone * g_time_zone_ref (GTimeZone *tz); +GLIB_AVAILABLE_IN_ALL +void g_time_zone_unref (GTimeZone *tz); + +GLIB_AVAILABLE_IN_ALL +gint g_time_zone_find_interval (GTimeZone *tz, + GTimeType type, + gint64 time_); + +GLIB_AVAILABLE_IN_ALL +gint g_time_zone_adjust_time (GTimeZone *tz, + GTimeType type, + gint64 *time_); + +GLIB_AVAILABLE_IN_ALL +const gchar * g_time_zone_get_abbreviation (GTimeZone *tz, + gint interval); +GLIB_AVAILABLE_IN_ALL +gint32 g_time_zone_get_offset (GTimeZone *tz, + gint interval); +GLIB_AVAILABLE_IN_ALL +gboolean g_time_zone_is_dst (GTimeZone *tz, + gint interval); +GLIB_AVAILABLE_IN_2_58 +const gchar * g_time_zone_get_identifier (GTimeZone *tz); + +G_END_DECLS + +#endif /* __G_TIME_ZONE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtrashstack.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtrashstack.h new file mode 100644 index 000000000..81456d397 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtrashstack.h @@ -0,0 +1,60 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_TRASH_STACK_H__ +#define __G_TRASH_STACK_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + +typedef struct _GTrashStack GTrashStack GLIB_DEPRECATED_TYPE_IN_2_48; +struct _GTrashStack +{ + GTrashStack *next; +} GLIB_DEPRECATED_TYPE_IN_2_48; + +GLIB_DEPRECATED_IN_2_48 +void g_trash_stack_push (GTrashStack **stack_p, + gpointer data_p); +GLIB_DEPRECATED_IN_2_48 +gpointer g_trash_stack_pop (GTrashStack **stack_p); +GLIB_DEPRECATED_IN_2_48 +gpointer g_trash_stack_peek (GTrashStack **stack_p); +GLIB_DEPRECATED_IN_2_48 +guint g_trash_stack_height (GTrashStack **stack_p); + +G_GNUC_END_IGNORE_DEPRECATIONS + +G_END_DECLS + +#endif /* __G_TRASH_STACK_H_ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtree.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtree.h new file mode 100644 index 000000000..74ab9ce95 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtree.h @@ -0,0 +1,181 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_TREE_H__ +#define __G_TREE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +#undef G_TREE_DEBUG + +typedef struct _GTree GTree; + +/** + * GTreeNode: + * + * An opaque type which identifies a specific node in a #GTree. + * + * Since: 2.68 + */ +typedef struct _GTreeNode GTreeNode; + +typedef gboolean (*GTraverseFunc) (gpointer key, + gpointer value, + gpointer data); + +/** + * GTraverseNodeFunc: + * @node: a #GTreeNode + * @data: user data passed to g_tree_foreach_node() + * + * Specifies the type of function passed to g_tree_foreach_node(). It is + * passed each node, together with the @user_data parameter passed to + * g_tree_foreach_node(). If the function returns %TRUE, the traversal is + * stopped. + * + * Returns: %TRUE to stop the traversal + * Since: 2.68 + */ +typedef gboolean (*GTraverseNodeFunc) (GTreeNode *node, + gpointer data); + +/* Balanced binary trees + */ +GLIB_AVAILABLE_IN_ALL +GTree* g_tree_new (GCompareFunc key_compare_func); +GLIB_AVAILABLE_IN_ALL +GTree* g_tree_new_with_data (GCompareDataFunc key_compare_func, + gpointer key_compare_data); +GLIB_AVAILABLE_IN_ALL +GTree* g_tree_new_full (GCompareDataFunc key_compare_func, + gpointer key_compare_data, + GDestroyNotify key_destroy_func, + GDestroyNotify value_destroy_func); +GLIB_AVAILABLE_IN_2_68 +GTreeNode *g_tree_node_first (GTree *tree); +GLIB_AVAILABLE_IN_2_68 +GTreeNode *g_tree_node_last (GTree *tree); +GLIB_AVAILABLE_IN_2_68 +GTreeNode *g_tree_node_previous (GTreeNode *node); +GLIB_AVAILABLE_IN_2_68 +GTreeNode *g_tree_node_next (GTreeNode *node); +GLIB_AVAILABLE_IN_ALL +GTree* g_tree_ref (GTree *tree); +GLIB_AVAILABLE_IN_ALL +void g_tree_unref (GTree *tree); +GLIB_AVAILABLE_IN_ALL +void g_tree_destroy (GTree *tree); +GLIB_AVAILABLE_IN_2_68 +GTreeNode *g_tree_insert_node (GTree *tree, + gpointer key, + gpointer value); +GLIB_AVAILABLE_IN_ALL +void g_tree_insert (GTree *tree, + gpointer key, + gpointer value); +GLIB_AVAILABLE_IN_2_68 +GTreeNode *g_tree_replace_node (GTree *tree, + gpointer key, + gpointer value); +GLIB_AVAILABLE_IN_ALL +void g_tree_replace (GTree *tree, + gpointer key, + gpointer value); +GLIB_AVAILABLE_IN_ALL +gboolean g_tree_remove (GTree *tree, + gconstpointer key); + +GLIB_AVAILABLE_IN_2_70 +void g_tree_remove_all (GTree *tree); + +GLIB_AVAILABLE_IN_ALL +gboolean g_tree_steal (GTree *tree, + gconstpointer key); +GLIB_AVAILABLE_IN_2_68 +gpointer g_tree_node_key (GTreeNode *node); +GLIB_AVAILABLE_IN_2_68 +gpointer g_tree_node_value (GTreeNode *node); +GLIB_AVAILABLE_IN_2_68 +GTreeNode *g_tree_lookup_node (GTree *tree, + gconstpointer key); +GLIB_AVAILABLE_IN_ALL +gpointer g_tree_lookup (GTree *tree, + gconstpointer key); +GLIB_AVAILABLE_IN_ALL +gboolean g_tree_lookup_extended (GTree *tree, + gconstpointer lookup_key, + gpointer *orig_key, + gpointer *value); +GLIB_AVAILABLE_IN_ALL +void g_tree_foreach (GTree *tree, + GTraverseFunc func, + gpointer user_data); +GLIB_AVAILABLE_IN_2_68 +void g_tree_foreach_node (GTree *tree, + GTraverseNodeFunc func, + gpointer user_data); + +GLIB_DEPRECATED +void g_tree_traverse (GTree *tree, + GTraverseFunc traverse_func, + GTraverseType traverse_type, + gpointer user_data); + +GLIB_AVAILABLE_IN_2_68 +GTreeNode *g_tree_search_node (GTree *tree, + GCompareFunc search_func, + gconstpointer user_data); +GLIB_AVAILABLE_IN_ALL +gpointer g_tree_search (GTree *tree, + GCompareFunc search_func, + gconstpointer user_data); +GLIB_AVAILABLE_IN_2_68 +GTreeNode *g_tree_lower_bound (GTree *tree, + gconstpointer key); +GLIB_AVAILABLE_IN_2_68 +GTreeNode *g_tree_upper_bound (GTree *tree, + gconstpointer key); +GLIB_AVAILABLE_IN_ALL +gint g_tree_height (GTree *tree); +GLIB_AVAILABLE_IN_ALL +gint g_tree_nnodes (GTree *tree); + +#ifdef G_TREE_DEBUG +/*< private >*/ +#ifndef __GTK_DOC_IGNORE__ +void g_tree_dump (GTree *tree); +#endif /* !__GTK_DOC_IGNORE__ */ +#endif /* G_TREE_DEBUG */ + +G_END_DECLS + +#endif /* __G_TREE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtypes.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtypes.h new file mode 100644 index 000000000..9d912d523 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gtypes.h @@ -0,0 +1,591 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_TYPES_H__ +#define __G_TYPES_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include + +/* Must be included after the 3 headers above */ +#include + +#include + +G_BEGIN_DECLS + +/* Provide type definitions for commonly used types. + * These are useful because a "gint8" can be adjusted + * to be 1 byte (8 bits) on all platforms. Similarly and + * more importantly, "gint32" can be adjusted to be + * 4 bytes (32 bits) on all platforms. + */ + +typedef char gchar; +typedef short gshort; +typedef long glong; +typedef int gint; +typedef gint gboolean; + +typedef unsigned char guchar; +typedef unsigned short gushort; +typedef unsigned long gulong; +typedef unsigned int guint; + +typedef float gfloat; +typedef double gdouble; + +/* Define min and max constants for the fixed size numerical types */ +/** + * G_MININT8: (value -128) + * + * The minimum value which can be held in a #gint8. + * + * Since: 2.4 + */ +#define G_MININT8 ((gint8) (-G_MAXINT8 - 1)) +#define G_MAXINT8 ((gint8) 0x7f) +#define G_MAXUINT8 ((guint8) 0xff) + +/** + * G_MININT16: (value -32768) + * + * The minimum value which can be held in a #gint16. + * + * Since: 2.4 + */ +#define G_MININT16 ((gint16) (-G_MAXINT16 - 1)) +#define G_MAXINT16 ((gint16) 0x7fff) +#define G_MAXUINT16 ((guint16) 0xffff) + +/** + * G_MININT32: (value -2147483648) + * + * The minimum value which can be held in a #gint32. + * + * Since: 2.4 + */ +#define G_MININT32 ((gint32) (-G_MAXINT32 - 1)) +#define G_MAXINT32 ((gint32) 0x7fffffff) +#define G_MAXUINT32 ((guint32) 0xffffffff) + +/** + * G_MININT64: (value -9223372036854775808) + * + * The minimum value which can be held in a #gint64. + */ +#define G_MININT64 ((gint64) (-G_MAXINT64 - G_GINT64_CONSTANT(1))) +#define G_MAXINT64 G_GINT64_CONSTANT(0x7fffffffffffffff) +#define G_MAXUINT64 G_GUINT64_CONSTANT(0xffffffffffffffff) + +typedef void* gpointer; +typedef const void *gconstpointer; + +typedef gint (*GCompareFunc) (gconstpointer a, + gconstpointer b); +typedef gint (*GCompareDataFunc) (gconstpointer a, + gconstpointer b, + gpointer user_data); +typedef gboolean (*GEqualFunc) (gconstpointer a, + gconstpointer b); + +/** + * GEqualFuncFull: + * @a: a value + * @b: a value to compare with + * @user_data: user data provided by the caller + * + * Specifies the type of a function used to test two values for + * equality. The function should return %TRUE if both values are equal + * and %FALSE otherwise. + * + * This is a version of #GEqualFunc which provides a @user_data closure from + * the caller. + * + * Returns: %TRUE if @a = @b; %FALSE otherwise + * Since: 2.74 + */ +typedef gboolean (*GEqualFuncFull) (gconstpointer a, + gconstpointer b, + gpointer user_data); + +typedef void (*GDestroyNotify) (gpointer data); +typedef void (*GFunc) (gpointer data, + gpointer user_data); +typedef guint (*GHashFunc) (gconstpointer key); +typedef void (*GHFunc) (gpointer key, + gpointer value, + gpointer user_data); + +/** + * GCopyFunc: + * @src: (not nullable): A pointer to the data which should be copied + * @data: Additional data + * + * A function of this signature is used to copy the node data + * when doing a deep-copy of a tree. + * + * Returns: (not nullable): A pointer to the copy + * + * Since: 2.4 + */ +typedef gpointer (*GCopyFunc) (gconstpointer src, + gpointer data); +/** + * GFreeFunc: + * @data: a data pointer + * + * Declares a type of function which takes an arbitrary + * data pointer argument and has no return value. It is + * not currently used in GLib or GTK. + */ +typedef void (*GFreeFunc) (gpointer data); + +/** + * GTranslateFunc: + * @str: the untranslated string + * @data: user data specified when installing the function, e.g. + * in g_option_group_set_translate_func() + * + * The type of functions which are used to translate user-visible + * strings, for output. + * + * Returns: a translation of the string for the current locale. + * The returned string is owned by GLib and must not be freed. + */ +typedef const gchar * (*GTranslateFunc) (const gchar *str, + gpointer data); + + +/* Define some mathematical constants that aren't available + * symbolically in some strict ISO C implementations. + * + * Note that the large number of digits used in these definitions + * doesn't imply that GLib or current computers in general would be + * able to handle floating point numbers with an accuracy like this. + * It's mostly an exercise in futility and future proofing. For + * extended precision floating point support, look somewhere else + * than GLib. + */ +#define G_E 2.7182818284590452353602874713526624977572470937000 +#define G_LN2 0.69314718055994530941723212145817656807550013436026 +#define G_LN10 2.3025850929940456840179914546843642076011014886288 +#define G_PI 3.1415926535897932384626433832795028841971693993751 +#define G_PI_2 1.5707963267948966192313216916397514420985846996876 +#define G_PI_4 0.78539816339744830961566084581987572104929234984378 +#define G_SQRT2 1.4142135623730950488016887242096980785696718753769 + +/* Portable endian checks and conversions + * + * glibconfig.h defines G_BYTE_ORDER which expands to one of + * the below macros. + */ +#define G_LITTLE_ENDIAN 1234 +#define G_BIG_ENDIAN 4321 +#define G_PDP_ENDIAN 3412 /* unused, need specific PDP check */ + + +/* Basic bit swapping functions + */ +#define GUINT16_SWAP_LE_BE_CONSTANT(val) ((guint16) ( \ + (guint16) ((guint16) (val) >> 8) | \ + (guint16) ((guint16) (val) << 8))) + +#define GUINT32_SWAP_LE_BE_CONSTANT(val) ((guint32) ( \ + (((guint32) (val) & (guint32) 0x000000ffU) << 24) | \ + (((guint32) (val) & (guint32) 0x0000ff00U) << 8) | \ + (((guint32) (val) & (guint32) 0x00ff0000U) >> 8) | \ + (((guint32) (val) & (guint32) 0xff000000U) >> 24))) + +#define GUINT64_SWAP_LE_BE_CONSTANT(val) ((guint64) ( \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT (0x00000000000000ffU)) << 56) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT (0x000000000000ff00U)) << 40) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT (0x0000000000ff0000U)) << 24) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT (0x00000000ff000000U)) << 8) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT (0x000000ff00000000U)) >> 8) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT (0x0000ff0000000000U)) >> 24) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT (0x00ff000000000000U)) >> 40) | \ + (((guint64) (val) & \ + (guint64) G_GINT64_CONSTANT (0xff00000000000000U)) >> 56))) + +/* Arch specific stuff for speed + */ +#if defined (__GNUC__) && (__GNUC__ >= 2) && defined (__OPTIMIZE__) + +# if __GNUC__ >= 4 && defined (__GNUC_MINOR__) && __GNUC_MINOR__ >= 3 +# define GUINT32_SWAP_LE_BE(val) ((guint32) __builtin_bswap32 ((guint32) (val))) +# define GUINT64_SWAP_LE_BE(val) ((guint64) __builtin_bswap64 ((guint64) (val))) +# endif + +# if defined (__i386__) +# define GUINT16_SWAP_LE_BE_IA32(val) \ + (G_GNUC_EXTENSION \ + ({ guint16 __v, __x = ((guint16) (val)); \ + if (__builtin_constant_p (__x)) \ + __v = GUINT16_SWAP_LE_BE_CONSTANT (__x); \ + else \ + __asm__ ("rorw $8, %w0" \ + : "=r" (__v) \ + : "0" (__x) \ + : "cc"); \ + __v; })) +# if !defined (__i486__) && !defined (__i586__) \ + && !defined (__pentium__) && !defined (__i686__) \ + && !defined (__pentiumpro__) && !defined (__pentium4__) +# define GUINT32_SWAP_LE_BE_IA32(val) \ + (G_GNUC_EXTENSION \ + ({ guint32 __v, __x = ((guint32) (val)); \ + if (__builtin_constant_p (__x)) \ + __v = GUINT32_SWAP_LE_BE_CONSTANT (__x); \ + else \ + __asm__ ("rorw $8, %w0\n\t" \ + "rorl $16, %0\n\t" \ + "rorw $8, %w0" \ + : "=r" (__v) \ + : "0" (__x) \ + : "cc"); \ + __v; })) +# else /* 486 and higher has bswap */ +# define GUINT32_SWAP_LE_BE_IA32(val) \ + (G_GNUC_EXTENSION \ + ({ guint32 __v, __x = ((guint32) (val)); \ + if (__builtin_constant_p (__x)) \ + __v = GUINT32_SWAP_LE_BE_CONSTANT (__x); \ + else \ + __asm__ ("bswap %0" \ + : "=r" (__v) \ + : "0" (__x)); \ + __v; })) +# endif /* processor specific 32-bit stuff */ +# define GUINT64_SWAP_LE_BE_IA32(val) \ + (G_GNUC_EXTENSION \ + ({ union { guint64 __ll; \ + guint32 __l[2]; } __w, __r; \ + __w.__ll = ((guint64) (val)); \ + if (__builtin_constant_p (__w.__ll)) \ + __r.__ll = GUINT64_SWAP_LE_BE_CONSTANT (__w.__ll); \ + else \ + { \ + __r.__l[0] = GUINT32_SWAP_LE_BE (__w.__l[1]); \ + __r.__l[1] = GUINT32_SWAP_LE_BE (__w.__l[0]); \ + } \ + __r.__ll; })) + /* Possibly just use the constant version and let gcc figure it out? */ +# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_IA32 (val)) +# ifndef GUINT32_SWAP_LE_BE +# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_IA32 (val)) +# endif +# ifndef GUINT64_SWAP_LE_BE +# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_IA32 (val)) +# endif +# elif defined (__ia64__) +# define GUINT16_SWAP_LE_BE_IA64(val) \ + (G_GNUC_EXTENSION \ + ({ guint16 __v, __x = ((guint16) (val)); \ + if (__builtin_constant_p (__x)) \ + __v = GUINT16_SWAP_LE_BE_CONSTANT (__x); \ + else \ + __asm__ __volatile__ ("shl %0 = %1, 48 ;;" \ + "mux1 %0 = %0, @rev ;;" \ + : "=r" (__v) \ + : "r" (__x)); \ + __v; })) +# define GUINT32_SWAP_LE_BE_IA64(val) \ + (G_GNUC_EXTENSION \ + ({ guint32 __v, __x = ((guint32) (val)); \ + if (__builtin_constant_p (__x)) \ + __v = GUINT32_SWAP_LE_BE_CONSTANT (__x); \ + else \ + __asm__ __volatile__ ("shl %0 = %1, 32 ;;" \ + "mux1 %0 = %0, @rev ;;" \ + : "=r" (__v) \ + : "r" (__x)); \ + __v; })) +# define GUINT64_SWAP_LE_BE_IA64(val) \ + (G_GNUC_EXTENSION \ + ({ guint64 __v, __x = ((guint64) (val)); \ + if (__builtin_constant_p (__x)) \ + __v = GUINT64_SWAP_LE_BE_CONSTANT (__x); \ + else \ + __asm__ __volatile__ ("mux1 %0 = %1, @rev ;;" \ + : "=r" (__v) \ + : "r" (__x)); \ + __v; })) +# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_IA64 (val)) +# ifndef GUINT32_SWAP_LE_BE +# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_IA64 (val)) +# endif +# ifndef GUINT64_SWAP_LE_BE +# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_IA64 (val)) +# endif +# elif defined (__x86_64__) +# define GUINT32_SWAP_LE_BE_X86_64(val) \ + (G_GNUC_EXTENSION \ + ({ guint32 __v, __x = ((guint32) (val)); \ + if (__builtin_constant_p (__x)) \ + __v = GUINT32_SWAP_LE_BE_CONSTANT (__x); \ + else \ + __asm__ ("bswapl %0" \ + : "=r" (__v) \ + : "0" (__x)); \ + __v; })) +# define GUINT64_SWAP_LE_BE_X86_64(val) \ + (G_GNUC_EXTENSION \ + ({ guint64 __v, __x = ((guint64) (val)); \ + if (__builtin_constant_p (__x)) \ + __v = GUINT64_SWAP_LE_BE_CONSTANT (__x); \ + else \ + __asm__ ("bswapq %0" \ + : "=r" (__v) \ + : "0" (__x)); \ + __v; })) + /* gcc seems to figure out optimal code for this on its own */ +# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val)) +# ifndef GUINT32_SWAP_LE_BE +# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_X86_64 (val)) +# endif +# ifndef GUINT64_SWAP_LE_BE +# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_X86_64 (val)) +# endif +# else /* generic gcc */ +# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val)) +# ifndef GUINT32_SWAP_LE_BE +# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_CONSTANT (val)) +# endif +# ifndef GUINT64_SWAP_LE_BE +# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_CONSTANT (val)) +# endif +# endif +#else /* generic */ +# define GUINT16_SWAP_LE_BE(val) (GUINT16_SWAP_LE_BE_CONSTANT (val)) +# define GUINT32_SWAP_LE_BE(val) (GUINT32_SWAP_LE_BE_CONSTANT (val)) +# define GUINT64_SWAP_LE_BE(val) (GUINT64_SWAP_LE_BE_CONSTANT (val)) +#endif /* generic */ + +#define GUINT16_SWAP_LE_PDP(val) ((guint16) (val)) +#define GUINT16_SWAP_BE_PDP(val) (GUINT16_SWAP_LE_BE (val)) +#define GUINT32_SWAP_LE_PDP(val) ((guint32) ( \ + (((guint32) (val) & (guint32) 0x0000ffffU) << 16) | \ + (((guint32) (val) & (guint32) 0xffff0000U) >> 16))) +#define GUINT32_SWAP_BE_PDP(val) ((guint32) ( \ + (((guint32) (val) & (guint32) 0x00ff00ffU) << 8) | \ + (((guint32) (val) & (guint32) 0xff00ff00U) >> 8))) + +/* The G*_TO_?E() macros are defined in glibconfig.h. + * The transformation is symmetric, so the FROM just maps to the TO. + */ +#define GINT16_FROM_LE(val) (GINT16_TO_LE (val)) +#define GUINT16_FROM_LE(val) (GUINT16_TO_LE (val)) +#define GINT16_FROM_BE(val) (GINT16_TO_BE (val)) +#define GUINT16_FROM_BE(val) (GUINT16_TO_BE (val)) +#define GINT32_FROM_LE(val) (GINT32_TO_LE (val)) +#define GUINT32_FROM_LE(val) (GUINT32_TO_LE (val)) +#define GINT32_FROM_BE(val) (GINT32_TO_BE (val)) +#define GUINT32_FROM_BE(val) (GUINT32_TO_BE (val)) + +#define GINT64_FROM_LE(val) (GINT64_TO_LE (val)) +#define GUINT64_FROM_LE(val) (GUINT64_TO_LE (val)) +#define GINT64_FROM_BE(val) (GINT64_TO_BE (val)) +#define GUINT64_FROM_BE(val) (GUINT64_TO_BE (val)) + +#define GLONG_FROM_LE(val) (GLONG_TO_LE (val)) +#define GULONG_FROM_LE(val) (GULONG_TO_LE (val)) +#define GLONG_FROM_BE(val) (GLONG_TO_BE (val)) +#define GULONG_FROM_BE(val) (GULONG_TO_BE (val)) + +#define GINT_FROM_LE(val) (GINT_TO_LE (val)) +#define GUINT_FROM_LE(val) (GUINT_TO_LE (val)) +#define GINT_FROM_BE(val) (GINT_TO_BE (val)) +#define GUINT_FROM_BE(val) (GUINT_TO_BE (val)) + +#define GSIZE_FROM_LE(val) (GSIZE_TO_LE (val)) +#define GSSIZE_FROM_LE(val) (GSSIZE_TO_LE (val)) +#define GSIZE_FROM_BE(val) (GSIZE_TO_BE (val)) +#define GSSIZE_FROM_BE(val) (GSSIZE_TO_BE (val)) + +/* Portable versions of host-network order stuff + */ +#define g_ntohl(val) (GUINT32_FROM_BE (val)) +#define g_ntohs(val) (GUINT16_FROM_BE (val)) +#define g_htonl(val) (GUINT32_TO_BE (val)) +#define g_htons(val) (GUINT16_TO_BE (val)) + +/* Overflow-checked unsigned integer arithmetic + */ +#ifndef _GLIB_TEST_OVERFLOW_FALLBACK +/* https://bugzilla.gnome.org/show_bug.cgi?id=769104 */ +#if __GNUC__ >= 5 && !defined(__INTEL_COMPILER) +#define _GLIB_HAVE_BUILTIN_OVERFLOW_CHECKS +#elif g_macro__has_builtin(__builtin_add_overflow) +#define _GLIB_HAVE_BUILTIN_OVERFLOW_CHECKS +#endif +#endif + +#ifdef _GLIB_HAVE_BUILTIN_OVERFLOW_CHECKS + +#define g_uint_checked_add(dest, a, b) \ + (!__builtin_add_overflow(a, b, dest)) +#define g_uint_checked_mul(dest, a, b) \ + (!__builtin_mul_overflow(a, b, dest)) + +#define g_uint64_checked_add(dest, a, b) \ + (!__builtin_add_overflow(a, b, dest)) +#define g_uint64_checked_mul(dest, a, b) \ + (!__builtin_mul_overflow(a, b, dest)) + +#define g_size_checked_add(dest, a, b) \ + (!__builtin_add_overflow(a, b, dest)) +#define g_size_checked_mul(dest, a, b) \ + (!__builtin_mul_overflow(a, b, dest)) + +#else /* !_GLIB_HAVE_BUILTIN_OVERFLOW_CHECKS */ + +/* The names of the following inlines are private. Use the macro + * definitions above. + */ +static inline gboolean _GLIB_CHECKED_ADD_UINT (guint *dest, guint a, guint b) { + *dest = a + b; return *dest >= a; } +static inline gboolean _GLIB_CHECKED_MUL_UINT (guint *dest, guint a, guint b) { + *dest = a * b; return !a || *dest / a == b; } +static inline gboolean _GLIB_CHECKED_ADD_UINT64 (guint64 *dest, guint64 a, guint64 b) { + *dest = a + b; return *dest >= a; } +static inline gboolean _GLIB_CHECKED_MUL_UINT64 (guint64 *dest, guint64 a, guint64 b) { + *dest = a * b; return !a || *dest / a == b; } +static inline gboolean _GLIB_CHECKED_ADD_SIZE (gsize *dest, gsize a, gsize b) { + *dest = a + b; return *dest >= a; } +static inline gboolean _GLIB_CHECKED_MUL_SIZE (gsize *dest, gsize a, gsize b) { + *dest = a * b; return !a || *dest / a == b; } + +#define g_uint_checked_add(dest, a, b) \ + _GLIB_CHECKED_ADD_UINT(dest, a, b) +#define g_uint_checked_mul(dest, a, b) \ + _GLIB_CHECKED_MUL_UINT(dest, a, b) + +#define g_uint64_checked_add(dest, a, b) \ + _GLIB_CHECKED_ADD_UINT64(dest, a, b) +#define g_uint64_checked_mul(dest, a, b) \ + _GLIB_CHECKED_MUL_UINT64(dest, a, b) + +#define g_size_checked_add(dest, a, b) \ + _GLIB_CHECKED_ADD_SIZE(dest, a, b) +#define g_size_checked_mul(dest, a, b) \ + _GLIB_CHECKED_MUL_SIZE(dest, a, b) + +#endif /* !_GLIB_HAVE_BUILTIN_OVERFLOW_CHECKS */ + +/* IEEE Standard 754 Single Precision Storage Format (gfloat): + * + * 31 30 23 22 0 + * +--------+---------------+---------------+ + * | s 1bit | e[30:23] 8bit | f[22:0] 23bit | + * +--------+---------------+---------------+ + * B0------------------->B1------->B2-->B3--> + * + * IEEE Standard 754 Double Precision Storage Format (gdouble): + * + * 63 62 52 51 32 31 0 + * +--------+----------------+----------------+ +---------------+ + * | s 1bit | e[62:52] 11bit | f[51:32] 20bit | | f[31:0] 32bit | + * +--------+----------------+----------------+ +---------------+ + * B0--------------->B1---------->B2--->B3----> B4->B5->B6->B7-> + */ +/* subtract from biased_exponent to form base2 exponent (normal numbers) */ +typedef union _GDoubleIEEE754 GDoubleIEEE754; +typedef union _GFloatIEEE754 GFloatIEEE754; +#define G_IEEE754_FLOAT_BIAS (127) +#define G_IEEE754_DOUBLE_BIAS (1023) +/* multiply with base2 exponent to get base10 exponent (normal numbers) */ +#define G_LOG_2_BASE_10 (0.30102999566398119521) +#if G_BYTE_ORDER == G_LITTLE_ENDIAN +union _GFloatIEEE754 +{ + gfloat v_float; + struct { + guint mantissa : 23; + guint biased_exponent : 8; + guint sign : 1; + } mpn; +}; +union _GDoubleIEEE754 +{ + gdouble v_double; + struct { + guint mantissa_low : 32; + guint mantissa_high : 20; + guint biased_exponent : 11; + guint sign : 1; + } mpn; +}; +#elif G_BYTE_ORDER == G_BIG_ENDIAN +union _GFloatIEEE754 +{ + gfloat v_float; + struct { + guint sign : 1; + guint biased_exponent : 8; + guint mantissa : 23; + } mpn; +}; +union _GDoubleIEEE754 +{ + gdouble v_double; + struct { + guint sign : 1; + guint biased_exponent : 11; + guint mantissa_high : 20; + guint mantissa_low : 32; + } mpn; +}; +#else /* !G_LITTLE_ENDIAN && !G_BIG_ENDIAN */ +#error unknown ENDIAN type +#endif /* !G_LITTLE_ENDIAN && !G_BIG_ENDIAN */ + +typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime); + +struct _GTimeVal +{ + glong tv_sec; + glong tv_usec; +} GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime); + +typedef gint grefcount; +typedef gint gatomicrefcount; /* should be accessed only using atomics */ + +G_END_DECLS + +#endif /* __G_TYPES_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gunicode.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gunicode.h new file mode 100644 index 000000000..85b3e0907 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gunicode.h @@ -0,0 +1,974 @@ +/* gunicode.h - Unicode manipulation functions + * + * Copyright (C) 1999, 2000 Tom Tromey + * Copyright 2000, 2005 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this library; if not, see . + */ + +#ifndef __G_UNICODE_H__ +#define __G_UNICODE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +/** + * gunichar: + * + * A type which can hold any UTF-32 or UCS-4 character code, + * also known as a Unicode code point. + * + * If you want to produce the UTF-8 representation of a #gunichar, + * use g_ucs4_to_utf8(). See also g_utf8_to_ucs4() for the reverse + * process. + * + * To print/scan values of this type as integer, use + * %G_GINT32_MODIFIER and/or %G_GUINT32_FORMAT. + * + * The notation to express a Unicode code point in running text is + * as a hexadecimal number with four to six digits and uppercase + * letters, prefixed by the string "U+". Leading zeros are omitted, + * unless the code point would have fewer than four hexadecimal digits. + * For example, "U+0041 LATIN CAPITAL LETTER A". To print a code point + * in the U+-notation, use the format string "U+\%04"G_GINT32_FORMAT"X". + * To scan, use the format string "U+\%06"G_GINT32_FORMAT"X". + * + * |[ + * gunichar c; + * sscanf ("U+0041", "U+%06"G_GINT32_FORMAT"X", &c) + * g_print ("Read U+%04"G_GINT32_FORMAT"X", c); + * ]| + */ +typedef guint32 gunichar; + +/** + * gunichar2: + * + * A type which can hold any UTF-16 code + * pointUTF-16 also has so called + * surrogate pairs to encode characters beyond + * the BMP as pairs of 16bit numbers. Surrogate pairs cannot be stored + * in a single gunichar2 field, but all GLib functions accepting gunichar2 + * arrays will correctly interpret surrogate pairs.. + * + * To print/scan values of this type to/from text you need to convert + * to/from UTF-8, using g_utf16_to_utf8()/g_utf8_to_utf16(). + * + * To print/scan values of this type as integer, use + * %G_GINT16_MODIFIER and/or %G_GUINT16_FORMAT. + */ +typedef guint16 gunichar2; + +/** + * GUnicodeType: + * @G_UNICODE_CONTROL: General category "Other, Control" (Cc) + * @G_UNICODE_FORMAT: General category "Other, Format" (Cf) + * @G_UNICODE_UNASSIGNED: General category "Other, Not Assigned" (Cn) + * @G_UNICODE_PRIVATE_USE: General category "Other, Private Use" (Co) + * @G_UNICODE_SURROGATE: General category "Other, Surrogate" (Cs) + * @G_UNICODE_LOWERCASE_LETTER: General category "Letter, Lowercase" (Ll) + * @G_UNICODE_MODIFIER_LETTER: General category "Letter, Modifier" (Lm) + * @G_UNICODE_OTHER_LETTER: General category "Letter, Other" (Lo) + * @G_UNICODE_TITLECASE_LETTER: General category "Letter, Titlecase" (Lt) + * @G_UNICODE_UPPERCASE_LETTER: General category "Letter, Uppercase" (Lu) + * @G_UNICODE_SPACING_MARK: General category "Mark, Spacing" (Mc) + * @G_UNICODE_ENCLOSING_MARK: General category "Mark, Enclosing" (Me) + * @G_UNICODE_NON_SPACING_MARK: General category "Mark, Nonspacing" (Mn) + * @G_UNICODE_DECIMAL_NUMBER: General category "Number, Decimal Digit" (Nd) + * @G_UNICODE_LETTER_NUMBER: General category "Number, Letter" (Nl) + * @G_UNICODE_OTHER_NUMBER: General category "Number, Other" (No) + * @G_UNICODE_CONNECT_PUNCTUATION: General category "Punctuation, Connector" (Pc) + * @G_UNICODE_DASH_PUNCTUATION: General category "Punctuation, Dash" (Pd) + * @G_UNICODE_CLOSE_PUNCTUATION: General category "Punctuation, Close" (Pe) + * @G_UNICODE_FINAL_PUNCTUATION: General category "Punctuation, Final quote" (Pf) + * @G_UNICODE_INITIAL_PUNCTUATION: General category "Punctuation, Initial quote" (Pi) + * @G_UNICODE_OTHER_PUNCTUATION: General category "Punctuation, Other" (Po) + * @G_UNICODE_OPEN_PUNCTUATION: General category "Punctuation, Open" (Ps) + * @G_UNICODE_CURRENCY_SYMBOL: General category "Symbol, Currency" (Sc) + * @G_UNICODE_MODIFIER_SYMBOL: General category "Symbol, Modifier" (Sk) + * @G_UNICODE_MATH_SYMBOL: General category "Symbol, Math" (Sm) + * @G_UNICODE_OTHER_SYMBOL: General category "Symbol, Other" (So) + * @G_UNICODE_LINE_SEPARATOR: General category "Separator, Line" (Zl) + * @G_UNICODE_PARAGRAPH_SEPARATOR: General category "Separator, Paragraph" (Zp) + * @G_UNICODE_SPACE_SEPARATOR: General category "Separator, Space" (Zs) + * + * These are the possible character classifications from the + * Unicode specification. + * See [Unicode Character Database](http://www.unicode.org/reports/tr44/#General_Category_Values). + */ +typedef enum +{ + G_UNICODE_CONTROL, + G_UNICODE_FORMAT, + G_UNICODE_UNASSIGNED, + G_UNICODE_PRIVATE_USE, + G_UNICODE_SURROGATE, + G_UNICODE_LOWERCASE_LETTER, + G_UNICODE_MODIFIER_LETTER, + G_UNICODE_OTHER_LETTER, + G_UNICODE_TITLECASE_LETTER, + G_UNICODE_UPPERCASE_LETTER, + G_UNICODE_SPACING_MARK, + G_UNICODE_ENCLOSING_MARK, + G_UNICODE_NON_SPACING_MARK, + G_UNICODE_DECIMAL_NUMBER, + G_UNICODE_LETTER_NUMBER, + G_UNICODE_OTHER_NUMBER, + G_UNICODE_CONNECT_PUNCTUATION, + G_UNICODE_DASH_PUNCTUATION, + G_UNICODE_CLOSE_PUNCTUATION, + G_UNICODE_FINAL_PUNCTUATION, + G_UNICODE_INITIAL_PUNCTUATION, + G_UNICODE_OTHER_PUNCTUATION, + G_UNICODE_OPEN_PUNCTUATION, + G_UNICODE_CURRENCY_SYMBOL, + G_UNICODE_MODIFIER_SYMBOL, + G_UNICODE_MATH_SYMBOL, + G_UNICODE_OTHER_SYMBOL, + G_UNICODE_LINE_SEPARATOR, + G_UNICODE_PARAGRAPH_SEPARATOR, + G_UNICODE_SPACE_SEPARATOR +} GUnicodeType; + +/** + * G_UNICODE_COMBINING_MARK: + * + * Older name for %G_UNICODE_SPACING_MARK. + * + * Deprecated: 2.30: Use %G_UNICODE_SPACING_MARK. + */ +#define G_UNICODE_COMBINING_MARK G_UNICODE_SPACING_MARK GLIB_DEPRECATED_MACRO_IN_2_30_FOR(G_UNICODE_SPACING_MARK) + +/** + * GUnicodeBreakType: + * @G_UNICODE_BREAK_MANDATORY: Mandatory Break (BK) + * @G_UNICODE_BREAK_CARRIAGE_RETURN: Carriage Return (CR) + * @G_UNICODE_BREAK_LINE_FEED: Line Feed (LF) + * @G_UNICODE_BREAK_COMBINING_MARK: Attached Characters and Combining Marks (CM) + * @G_UNICODE_BREAK_SURROGATE: Surrogates (SG) + * @G_UNICODE_BREAK_ZERO_WIDTH_SPACE: Zero Width Space (ZW) + * @G_UNICODE_BREAK_INSEPARABLE: Inseparable (IN) + * @G_UNICODE_BREAK_NON_BREAKING_GLUE: Non-breaking ("Glue") (GL) + * @G_UNICODE_BREAK_CONTINGENT: Contingent Break Opportunity (CB) + * @G_UNICODE_BREAK_SPACE: Space (SP) + * @G_UNICODE_BREAK_AFTER: Break Opportunity After (BA) + * @G_UNICODE_BREAK_BEFORE: Break Opportunity Before (BB) + * @G_UNICODE_BREAK_BEFORE_AND_AFTER: Break Opportunity Before and After (B2) + * @G_UNICODE_BREAK_HYPHEN: Hyphen (HY) + * @G_UNICODE_BREAK_NON_STARTER: Nonstarter (NS) + * @G_UNICODE_BREAK_OPEN_PUNCTUATION: Opening Punctuation (OP) + * @G_UNICODE_BREAK_CLOSE_PUNCTUATION: Closing Punctuation (CL) + * @G_UNICODE_BREAK_QUOTATION: Ambiguous Quotation (QU) + * @G_UNICODE_BREAK_EXCLAMATION: Exclamation/Interrogation (EX) + * @G_UNICODE_BREAK_IDEOGRAPHIC: Ideographic (ID) + * @G_UNICODE_BREAK_NUMERIC: Numeric (NU) + * @G_UNICODE_BREAK_INFIX_SEPARATOR: Infix Separator (Numeric) (IS) + * @G_UNICODE_BREAK_SYMBOL: Symbols Allowing Break After (SY) + * @G_UNICODE_BREAK_ALPHABETIC: Ordinary Alphabetic and Symbol Characters (AL) + * @G_UNICODE_BREAK_PREFIX: Prefix (Numeric) (PR) + * @G_UNICODE_BREAK_POSTFIX: Postfix (Numeric) (PO) + * @G_UNICODE_BREAK_COMPLEX_CONTEXT: Complex Content Dependent (South East Asian) (SA) + * @G_UNICODE_BREAK_AMBIGUOUS: Ambiguous (Alphabetic or Ideographic) (AI) + * @G_UNICODE_BREAK_UNKNOWN: Unknown (XX) + * @G_UNICODE_BREAK_NEXT_LINE: Next Line (NL) + * @G_UNICODE_BREAK_WORD_JOINER: Word Joiner (WJ) + * @G_UNICODE_BREAK_HANGUL_L_JAMO: Hangul L Jamo (JL) + * @G_UNICODE_BREAK_HANGUL_V_JAMO: Hangul V Jamo (JV) + * @G_UNICODE_BREAK_HANGUL_T_JAMO: Hangul T Jamo (JT) + * @G_UNICODE_BREAK_HANGUL_LV_SYLLABLE: Hangul LV Syllable (H2) + * @G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE: Hangul LVT Syllable (H3) + * @G_UNICODE_BREAK_CLOSE_PARANTHESIS: Closing Parenthesis (CP). Since 2.28. Deprecated: 2.70: Use %G_UNICODE_BREAK_CLOSE_PARENTHESIS instead. + * @G_UNICODE_BREAK_CLOSE_PARENTHESIS: Closing Parenthesis (CP). Since 2.70 + * @G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER: Conditional Japanese Starter (CJ). Since: 2.32 + * @G_UNICODE_BREAK_HEBREW_LETTER: Hebrew Letter (HL). Since: 2.32 + * @G_UNICODE_BREAK_REGIONAL_INDICATOR: Regional Indicator (RI). Since: 2.36 + * @G_UNICODE_BREAK_EMOJI_BASE: Emoji Base (EB). Since: 2.50 + * @G_UNICODE_BREAK_EMOJI_MODIFIER: Emoji Modifier (EM). Since: 2.50 + * @G_UNICODE_BREAK_ZERO_WIDTH_JOINER: Zero Width Joiner (ZWJ). Since: 2.50 + * + * These are the possible line break classifications. + * + * Since new unicode versions may add new types here, applications should be ready + * to handle unknown values. They may be regarded as %G_UNICODE_BREAK_UNKNOWN. + * + * See [Unicode Line Breaking Algorithm](https://www.unicode.org/reports/tr14/). + */ +typedef enum +{ + G_UNICODE_BREAK_MANDATORY, + G_UNICODE_BREAK_CARRIAGE_RETURN, + G_UNICODE_BREAK_LINE_FEED, + G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_SURROGATE, + G_UNICODE_BREAK_ZERO_WIDTH_SPACE, + G_UNICODE_BREAK_INSEPARABLE, + G_UNICODE_BREAK_NON_BREAKING_GLUE, + G_UNICODE_BREAK_CONTINGENT, + G_UNICODE_BREAK_SPACE, + G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_BEFORE, + G_UNICODE_BREAK_BEFORE_AND_AFTER, + G_UNICODE_BREAK_HYPHEN, + G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_QUOTATION, + G_UNICODE_BREAK_EXCLAMATION, + G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_INFIX_SEPARATOR, + G_UNICODE_BREAK_SYMBOL, + G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NEXT_LINE, + G_UNICODE_BREAK_WORD_JOINER, + G_UNICODE_BREAK_HANGUL_L_JAMO, + G_UNICODE_BREAK_HANGUL_V_JAMO, + G_UNICODE_BREAK_HANGUL_T_JAMO, + G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, + G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, + G_UNICODE_BREAK_CLOSE_PARANTHESIS, + G_UNICODE_BREAK_CLOSE_PARENTHESIS GLIB_AVAILABLE_ENUMERATOR_IN_2_70 = G_UNICODE_BREAK_CLOSE_PARANTHESIS, + G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER, + G_UNICODE_BREAK_HEBREW_LETTER, + G_UNICODE_BREAK_REGIONAL_INDICATOR, + G_UNICODE_BREAK_EMOJI_BASE, + G_UNICODE_BREAK_EMOJI_MODIFIER, + G_UNICODE_BREAK_ZERO_WIDTH_JOINER +} GUnicodeBreakType; + +/** + * GUnicodeScript: + * @G_UNICODE_SCRIPT_INVALID_CODE: + * a value never returned from g_unichar_get_script() + * @G_UNICODE_SCRIPT_COMMON: a character used by multiple different scripts + * @G_UNICODE_SCRIPT_INHERITED: a mark glyph that takes its script from the + * base glyph to which it is attached + * @G_UNICODE_SCRIPT_ARABIC: Arabic + * @G_UNICODE_SCRIPT_ARMENIAN: Armenian + * @G_UNICODE_SCRIPT_BENGALI: Bengali + * @G_UNICODE_SCRIPT_BOPOMOFO: Bopomofo + * @G_UNICODE_SCRIPT_CHEROKEE: Cherokee + * @G_UNICODE_SCRIPT_COPTIC: Coptic + * @G_UNICODE_SCRIPT_CYRILLIC: Cyrillic + * @G_UNICODE_SCRIPT_DESERET: Deseret + * @G_UNICODE_SCRIPT_DEVANAGARI: Devanagari + * @G_UNICODE_SCRIPT_ETHIOPIC: Ethiopic + * @G_UNICODE_SCRIPT_GEORGIAN: Georgian + * @G_UNICODE_SCRIPT_GOTHIC: Gothic + * @G_UNICODE_SCRIPT_GREEK: Greek + * @G_UNICODE_SCRIPT_GUJARATI: Gujarati + * @G_UNICODE_SCRIPT_GURMUKHI: Gurmukhi + * @G_UNICODE_SCRIPT_HAN: Han + * @G_UNICODE_SCRIPT_HANGUL: Hangul + * @G_UNICODE_SCRIPT_HEBREW: Hebrew + * @G_UNICODE_SCRIPT_HIRAGANA: Hiragana + * @G_UNICODE_SCRIPT_KANNADA: Kannada + * @G_UNICODE_SCRIPT_KATAKANA: Katakana + * @G_UNICODE_SCRIPT_KHMER: Khmer + * @G_UNICODE_SCRIPT_LAO: Lao + * @G_UNICODE_SCRIPT_LATIN: Latin + * @G_UNICODE_SCRIPT_MALAYALAM: Malayalam + * @G_UNICODE_SCRIPT_MONGOLIAN: Mongolian + * @G_UNICODE_SCRIPT_MYANMAR: Myanmar + * @G_UNICODE_SCRIPT_OGHAM: Ogham + * @G_UNICODE_SCRIPT_OLD_ITALIC: Old Italic + * @G_UNICODE_SCRIPT_ORIYA: Oriya + * @G_UNICODE_SCRIPT_RUNIC: Runic + * @G_UNICODE_SCRIPT_SINHALA: Sinhala + * @G_UNICODE_SCRIPT_SYRIAC: Syriac + * @G_UNICODE_SCRIPT_TAMIL: Tamil + * @G_UNICODE_SCRIPT_TELUGU: Telugu + * @G_UNICODE_SCRIPT_THAANA: Thaana + * @G_UNICODE_SCRIPT_THAI: Thai + * @G_UNICODE_SCRIPT_TIBETAN: Tibetan + * @G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL: + * Canadian Aboriginal + * @G_UNICODE_SCRIPT_YI: Yi + * @G_UNICODE_SCRIPT_TAGALOG: Tagalog + * @G_UNICODE_SCRIPT_HANUNOO: Hanunoo + * @G_UNICODE_SCRIPT_BUHID: Buhid + * @G_UNICODE_SCRIPT_TAGBANWA: Tagbanwa + * @G_UNICODE_SCRIPT_BRAILLE: Braille + * @G_UNICODE_SCRIPT_CYPRIOT: Cypriot + * @G_UNICODE_SCRIPT_LIMBU: Limbu + * @G_UNICODE_SCRIPT_OSMANYA: Osmanya + * @G_UNICODE_SCRIPT_SHAVIAN: Shavian + * @G_UNICODE_SCRIPT_LINEAR_B: Linear B + * @G_UNICODE_SCRIPT_TAI_LE: Tai Le + * @G_UNICODE_SCRIPT_UGARITIC: Ugaritic + * @G_UNICODE_SCRIPT_NEW_TAI_LUE: + * New Tai Lue + * @G_UNICODE_SCRIPT_BUGINESE: Buginese + * @G_UNICODE_SCRIPT_GLAGOLITIC: Glagolitic + * @G_UNICODE_SCRIPT_TIFINAGH: Tifinagh + * @G_UNICODE_SCRIPT_SYLOTI_NAGRI: + * Syloti Nagri + * @G_UNICODE_SCRIPT_OLD_PERSIAN: + * Old Persian + * @G_UNICODE_SCRIPT_KHAROSHTHI: Kharoshthi + * @G_UNICODE_SCRIPT_UNKNOWN: an unassigned code point + * @G_UNICODE_SCRIPT_BALINESE: Balinese + * @G_UNICODE_SCRIPT_CUNEIFORM: Cuneiform + * @G_UNICODE_SCRIPT_PHOENICIAN: Phoenician + * @G_UNICODE_SCRIPT_PHAGS_PA: Phags-pa + * @G_UNICODE_SCRIPT_NKO: N'Ko + * @G_UNICODE_SCRIPT_KAYAH_LI: Kayah Li. Since 2.16.3 + * @G_UNICODE_SCRIPT_LEPCHA: Lepcha. Since 2.16.3 + * @G_UNICODE_SCRIPT_REJANG: Rejang. Since 2.16.3 + * @G_UNICODE_SCRIPT_SUNDANESE: Sundanese. Since 2.16.3 + * @G_UNICODE_SCRIPT_SAURASHTRA: Saurashtra. Since 2.16.3 + * @G_UNICODE_SCRIPT_CHAM: Cham. Since 2.16.3 + * @G_UNICODE_SCRIPT_OL_CHIKI: Ol Chiki. Since 2.16.3 + * @G_UNICODE_SCRIPT_VAI: Vai. Since 2.16.3 + * @G_UNICODE_SCRIPT_CARIAN: Carian. Since 2.16.3 + * @G_UNICODE_SCRIPT_LYCIAN: Lycian. Since 2.16.3 + * @G_UNICODE_SCRIPT_LYDIAN: Lydian. Since 2.16.3 + * @G_UNICODE_SCRIPT_AVESTAN: Avestan. Since 2.26 + * @G_UNICODE_SCRIPT_BAMUM: Bamum. Since 2.26 + * @G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS: + * Egyptian Hieroglpyhs. Since 2.26 + * @G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC: + * Imperial Aramaic. Since 2.26 + * @G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI: + * Inscriptional Pahlavi. Since 2.26 + * @G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN: + * Inscriptional Parthian. Since 2.26 + * @G_UNICODE_SCRIPT_JAVANESE: Javanese. Since 2.26 + * @G_UNICODE_SCRIPT_KAITHI: Kaithi. Since 2.26 + * @G_UNICODE_SCRIPT_LISU: Lisu. Since 2.26 + * @G_UNICODE_SCRIPT_MEETEI_MAYEK: + * Meetei Mayek. Since 2.26 + * @G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN: + * Old South Arabian. Since 2.26 + * @G_UNICODE_SCRIPT_OLD_TURKIC: Old Turkic. Since 2.28 + * @G_UNICODE_SCRIPT_SAMARITAN: Samaritan. Since 2.26 + * @G_UNICODE_SCRIPT_TAI_THAM: Tai Tham. Since 2.26 + * @G_UNICODE_SCRIPT_TAI_VIET: Tai Viet. Since 2.26 + * @G_UNICODE_SCRIPT_BATAK: Batak. Since 2.28 + * @G_UNICODE_SCRIPT_BRAHMI: Brahmi. Since 2.28 + * @G_UNICODE_SCRIPT_MANDAIC: Mandaic. Since 2.28 + * @G_UNICODE_SCRIPT_CHAKMA: Chakma. Since: 2.32 + * @G_UNICODE_SCRIPT_MEROITIC_CURSIVE: Meroitic Cursive. Since: 2.32 + * @G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS: Meroitic Hieroglyphs. Since: 2.32 + * @G_UNICODE_SCRIPT_MIAO: Miao. Since: 2.32 + * @G_UNICODE_SCRIPT_SHARADA: Sharada. Since: 2.32 + * @G_UNICODE_SCRIPT_SORA_SOMPENG: Sora Sompeng. Since: 2.32 + * @G_UNICODE_SCRIPT_TAKRI: Takri. Since: 2.32 + * @G_UNICODE_SCRIPT_BASSA_VAH: Bassa. Since: 2.42 + * @G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN: Caucasian Albanian. Since: 2.42 + * @G_UNICODE_SCRIPT_DUPLOYAN: Duployan. Since: 2.42 + * @G_UNICODE_SCRIPT_ELBASAN: Elbasan. Since: 2.42 + * @G_UNICODE_SCRIPT_GRANTHA: Grantha. Since: 2.42 + * @G_UNICODE_SCRIPT_KHOJKI: Kjohki. Since: 2.42 + * @G_UNICODE_SCRIPT_KHUDAWADI: Khudawadi, Sindhi. Since: 2.42 + * @G_UNICODE_SCRIPT_LINEAR_A: Linear A. Since: 2.42 + * @G_UNICODE_SCRIPT_MAHAJANI: Mahajani. Since: 2.42 + * @G_UNICODE_SCRIPT_MANICHAEAN: Manichaean. Since: 2.42 + * @G_UNICODE_SCRIPT_MENDE_KIKAKUI: Mende Kikakui. Since: 2.42 + * @G_UNICODE_SCRIPT_MODI: Modi. Since: 2.42 + * @G_UNICODE_SCRIPT_MRO: Mro. Since: 2.42 + * @G_UNICODE_SCRIPT_NABATAEAN: Nabataean. Since: 2.42 + * @G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN: Old North Arabian. Since: 2.42 + * @G_UNICODE_SCRIPT_OLD_PERMIC: Old Permic. Since: 2.42 + * @G_UNICODE_SCRIPT_PAHAWH_HMONG: Pahawh Hmong. Since: 2.42 + * @G_UNICODE_SCRIPT_PALMYRENE: Palmyrene. Since: 2.42 + * @G_UNICODE_SCRIPT_PAU_CIN_HAU: Pau Cin Hau. Since: 2.42 + * @G_UNICODE_SCRIPT_PSALTER_PAHLAVI: Psalter Pahlavi. Since: 2.42 + * @G_UNICODE_SCRIPT_SIDDHAM: Siddham. Since: 2.42 + * @G_UNICODE_SCRIPT_TIRHUTA: Tirhuta. Since: 2.42 + * @G_UNICODE_SCRIPT_WARANG_CITI: Warang Citi. Since: 2.42 + * @G_UNICODE_SCRIPT_AHOM: Ahom. Since: 2.48 + * @G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS: Anatolian Hieroglyphs. Since: 2.48 + * @G_UNICODE_SCRIPT_HATRAN: Hatran. Since: 2.48 + * @G_UNICODE_SCRIPT_MULTANI: Multani. Since: 2.48 + * @G_UNICODE_SCRIPT_OLD_HUNGARIAN: Old Hungarian. Since: 2.48 + * @G_UNICODE_SCRIPT_SIGNWRITING: Signwriting. Since: 2.48 + * @G_UNICODE_SCRIPT_ADLAM: Adlam. Since: 2.50 + * @G_UNICODE_SCRIPT_BHAIKSUKI: Bhaiksuki. Since: 2.50 + * @G_UNICODE_SCRIPT_MARCHEN: Marchen. Since: 2.50 + * @G_UNICODE_SCRIPT_NEWA: Newa. Since: 2.50 + * @G_UNICODE_SCRIPT_OSAGE: Osage. Since: 2.50 + * @G_UNICODE_SCRIPT_TANGUT: Tangut. Since: 2.50 + * @G_UNICODE_SCRIPT_MASARAM_GONDI: Masaram Gondi. Since: 2.54 + * @G_UNICODE_SCRIPT_NUSHU: Nushu. Since: 2.54 + * @G_UNICODE_SCRIPT_SOYOMBO: Soyombo. Since: 2.54 + * @G_UNICODE_SCRIPT_ZANABAZAR_SQUARE: Zanabazar Square. Since: 2.54 + * @G_UNICODE_SCRIPT_DOGRA: Dogra. Since: 2.58 + * @G_UNICODE_SCRIPT_GUNJALA_GONDI: Gunjala Gondi. Since: 2.58 + * @G_UNICODE_SCRIPT_HANIFI_ROHINGYA: Hanifi Rohingya. Since: 2.58 + * @G_UNICODE_SCRIPT_MAKASAR: Makasar. Since: 2.58 + * @G_UNICODE_SCRIPT_MEDEFAIDRIN: Medefaidrin. Since: 2.58 + * @G_UNICODE_SCRIPT_OLD_SOGDIAN: Old Sogdian. Since: 2.58 + * @G_UNICODE_SCRIPT_SOGDIAN: Sogdian. Since: 2.58 + * @G_UNICODE_SCRIPT_ELYMAIC: Elym. Since: 2.62 + * @G_UNICODE_SCRIPT_NANDINAGARI: Nand. Since: 2.62 + * @G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG: Rohg. Since: 2.62 + * @G_UNICODE_SCRIPT_WANCHO: Wcho. Since: 2.62 + * @G_UNICODE_SCRIPT_CHORASMIAN: Chorasmian. Since: 2.66 + * @G_UNICODE_SCRIPT_DIVES_AKURU: Dives Akuru. Since: 2.66 + * @G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT: Khitan small script. Since: 2.66 + * @G_UNICODE_SCRIPT_YEZIDI: Yezidi. Since: 2.66 + * @G_UNICODE_SCRIPT_CYPRO_MINOAN: Cypro-Minoan. Since: 2.72 + * @G_UNICODE_SCRIPT_OLD_UYGHUR: Old Uyghur. Since: 2.72 + * @G_UNICODE_SCRIPT_TANGSA: Tangsa. Since: 2.72 + * @G_UNICODE_SCRIPT_TOTO: Toto. Since: 2.72 + * @G_UNICODE_SCRIPT_VITHKUQI: Vithkuqi. Since: 2.72 + * @G_UNICODE_SCRIPT_MATH: Mathematical notation. Since: 2.72 + * @G_UNICODE_SCRIPT_KAWI: Kawi. Since 2.74 + * @G_UNICODE_SCRIPT_NAG_MUNDARI: Nag Mundari. Since 2.74 + * + * The #GUnicodeScript enumeration identifies different writing + * systems. The values correspond to the names as defined in the + * Unicode standard. The enumeration has been added in GLib 2.14, + * and is interchangeable with #PangoScript. + * + * Note that new types may be added in the future. Applications + * should be ready to handle unknown values. + * See [Unicode Standard Annex #24: Script names](http://www.unicode.org/reports/tr24/). + */ +typedef enum +{ /* ISO 15924 code */ + G_UNICODE_SCRIPT_INVALID_CODE = -1, + G_UNICODE_SCRIPT_COMMON = 0, /* Zyyy */ + G_UNICODE_SCRIPT_INHERITED, /* Zinh (Qaai) */ + G_UNICODE_SCRIPT_ARABIC, /* Arab */ + G_UNICODE_SCRIPT_ARMENIAN, /* Armn */ + G_UNICODE_SCRIPT_BENGALI, /* Beng */ + G_UNICODE_SCRIPT_BOPOMOFO, /* Bopo */ + G_UNICODE_SCRIPT_CHEROKEE, /* Cher */ + G_UNICODE_SCRIPT_COPTIC, /* Copt (Qaac) */ + G_UNICODE_SCRIPT_CYRILLIC, /* Cyrl (Cyrs) */ + G_UNICODE_SCRIPT_DESERET, /* Dsrt */ + G_UNICODE_SCRIPT_DEVANAGARI, /* Deva */ + G_UNICODE_SCRIPT_ETHIOPIC, /* Ethi */ + G_UNICODE_SCRIPT_GEORGIAN, /* Geor (Geon, Geoa) */ + G_UNICODE_SCRIPT_GOTHIC, /* Goth */ + G_UNICODE_SCRIPT_GREEK, /* Grek */ + G_UNICODE_SCRIPT_GUJARATI, /* Gujr */ + G_UNICODE_SCRIPT_GURMUKHI, /* Guru */ + G_UNICODE_SCRIPT_HAN, /* Hani */ + G_UNICODE_SCRIPT_HANGUL, /* Hang */ + G_UNICODE_SCRIPT_HEBREW, /* Hebr */ + G_UNICODE_SCRIPT_HIRAGANA, /* Hira */ + G_UNICODE_SCRIPT_KANNADA, /* Knda */ + G_UNICODE_SCRIPT_KATAKANA, /* Kana */ + G_UNICODE_SCRIPT_KHMER, /* Khmr */ + G_UNICODE_SCRIPT_LAO, /* Laoo */ + G_UNICODE_SCRIPT_LATIN, /* Latn (Latf, Latg) */ + G_UNICODE_SCRIPT_MALAYALAM, /* Mlym */ + G_UNICODE_SCRIPT_MONGOLIAN, /* Mong */ + G_UNICODE_SCRIPT_MYANMAR, /* Mymr */ + G_UNICODE_SCRIPT_OGHAM, /* Ogam */ + G_UNICODE_SCRIPT_OLD_ITALIC, /* Ital */ + G_UNICODE_SCRIPT_ORIYA, /* Orya */ + G_UNICODE_SCRIPT_RUNIC, /* Runr */ + G_UNICODE_SCRIPT_SINHALA, /* Sinh */ + G_UNICODE_SCRIPT_SYRIAC, /* Syrc (Syrj, Syrn, Syre) */ + G_UNICODE_SCRIPT_TAMIL, /* Taml */ + G_UNICODE_SCRIPT_TELUGU, /* Telu */ + G_UNICODE_SCRIPT_THAANA, /* Thaa */ + G_UNICODE_SCRIPT_THAI, /* Thai */ + G_UNICODE_SCRIPT_TIBETAN, /* Tibt */ + G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, /* Cans */ + G_UNICODE_SCRIPT_YI, /* Yiii */ + G_UNICODE_SCRIPT_TAGALOG, /* Tglg */ + G_UNICODE_SCRIPT_HANUNOO, /* Hano */ + G_UNICODE_SCRIPT_BUHID, /* Buhd */ + G_UNICODE_SCRIPT_TAGBANWA, /* Tagb */ + + /* Unicode-4.0 additions */ + G_UNICODE_SCRIPT_BRAILLE, /* Brai */ + G_UNICODE_SCRIPT_CYPRIOT, /* Cprt */ + G_UNICODE_SCRIPT_LIMBU, /* Limb */ + G_UNICODE_SCRIPT_OSMANYA, /* Osma */ + G_UNICODE_SCRIPT_SHAVIAN, /* Shaw */ + G_UNICODE_SCRIPT_LINEAR_B, /* Linb */ + G_UNICODE_SCRIPT_TAI_LE, /* Tale */ + G_UNICODE_SCRIPT_UGARITIC, /* Ugar */ + + /* Unicode-4.1 additions */ + G_UNICODE_SCRIPT_NEW_TAI_LUE, /* Talu */ + G_UNICODE_SCRIPT_BUGINESE, /* Bugi */ + G_UNICODE_SCRIPT_GLAGOLITIC, /* Glag */ + G_UNICODE_SCRIPT_TIFINAGH, /* Tfng */ + G_UNICODE_SCRIPT_SYLOTI_NAGRI, /* Sylo */ + G_UNICODE_SCRIPT_OLD_PERSIAN, /* Xpeo */ + G_UNICODE_SCRIPT_KHAROSHTHI, /* Khar */ + + /* Unicode-5.0 additions */ + G_UNICODE_SCRIPT_UNKNOWN, /* Zzzz */ + G_UNICODE_SCRIPT_BALINESE, /* Bali */ + G_UNICODE_SCRIPT_CUNEIFORM, /* Xsux */ + G_UNICODE_SCRIPT_PHOENICIAN, /* Phnx */ + G_UNICODE_SCRIPT_PHAGS_PA, /* Phag */ + G_UNICODE_SCRIPT_NKO, /* Nkoo */ + + /* Unicode-5.1 additions */ + G_UNICODE_SCRIPT_KAYAH_LI, /* Kali */ + G_UNICODE_SCRIPT_LEPCHA, /* Lepc */ + G_UNICODE_SCRIPT_REJANG, /* Rjng */ + G_UNICODE_SCRIPT_SUNDANESE, /* Sund */ + G_UNICODE_SCRIPT_SAURASHTRA, /* Saur */ + G_UNICODE_SCRIPT_CHAM, /* Cham */ + G_UNICODE_SCRIPT_OL_CHIKI, /* Olck */ + G_UNICODE_SCRIPT_VAI, /* Vaii */ + G_UNICODE_SCRIPT_CARIAN, /* Cari */ + G_UNICODE_SCRIPT_LYCIAN, /* Lyci */ + G_UNICODE_SCRIPT_LYDIAN, /* Lydi */ + + /* Unicode-5.2 additions */ + G_UNICODE_SCRIPT_AVESTAN, /* Avst */ + G_UNICODE_SCRIPT_BAMUM, /* Bamu */ + G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS, /* Egyp */ + G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC, /* Armi */ + G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI, /* Phli */ + G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN, /* Prti */ + G_UNICODE_SCRIPT_JAVANESE, /* Java */ + G_UNICODE_SCRIPT_KAITHI, /* Kthi */ + G_UNICODE_SCRIPT_LISU, /* Lisu */ + G_UNICODE_SCRIPT_MEETEI_MAYEK, /* Mtei */ + G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN, /* Sarb */ + G_UNICODE_SCRIPT_OLD_TURKIC, /* Orkh */ + G_UNICODE_SCRIPT_SAMARITAN, /* Samr */ + G_UNICODE_SCRIPT_TAI_THAM, /* Lana */ + G_UNICODE_SCRIPT_TAI_VIET, /* Tavt */ + + /* Unicode-6.0 additions */ + G_UNICODE_SCRIPT_BATAK, /* Batk */ + G_UNICODE_SCRIPT_BRAHMI, /* Brah */ + G_UNICODE_SCRIPT_MANDAIC, /* Mand */ + + /* Unicode-6.1 additions */ + G_UNICODE_SCRIPT_CHAKMA, /* Cakm */ + G_UNICODE_SCRIPT_MEROITIC_CURSIVE, /* Merc */ + G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS, /* Mero */ + G_UNICODE_SCRIPT_MIAO, /* Plrd */ + G_UNICODE_SCRIPT_SHARADA, /* Shrd */ + G_UNICODE_SCRIPT_SORA_SOMPENG, /* Sora */ + G_UNICODE_SCRIPT_TAKRI, /* Takr */ + + /* Unicode 7.0 additions */ + G_UNICODE_SCRIPT_BASSA_VAH, /* Bass */ + G_UNICODE_SCRIPT_CAUCASIAN_ALBANIAN, /* Aghb */ + G_UNICODE_SCRIPT_DUPLOYAN, /* Dupl */ + G_UNICODE_SCRIPT_ELBASAN, /* Elba */ + G_UNICODE_SCRIPT_GRANTHA, /* Gran */ + G_UNICODE_SCRIPT_KHOJKI, /* Khoj */ + G_UNICODE_SCRIPT_KHUDAWADI, /* Sind */ + G_UNICODE_SCRIPT_LINEAR_A, /* Lina */ + G_UNICODE_SCRIPT_MAHAJANI, /* Mahj */ + G_UNICODE_SCRIPT_MANICHAEAN, /* Mani */ + G_UNICODE_SCRIPT_MENDE_KIKAKUI, /* Mend */ + G_UNICODE_SCRIPT_MODI, /* Modi */ + G_UNICODE_SCRIPT_MRO, /* Mroo */ + G_UNICODE_SCRIPT_NABATAEAN, /* Nbat */ + G_UNICODE_SCRIPT_OLD_NORTH_ARABIAN, /* Narb */ + G_UNICODE_SCRIPT_OLD_PERMIC, /* Perm */ + G_UNICODE_SCRIPT_PAHAWH_HMONG, /* Hmng */ + G_UNICODE_SCRIPT_PALMYRENE, /* Palm */ + G_UNICODE_SCRIPT_PAU_CIN_HAU, /* Pauc */ + G_UNICODE_SCRIPT_PSALTER_PAHLAVI, /* Phlp */ + G_UNICODE_SCRIPT_SIDDHAM, /* Sidd */ + G_UNICODE_SCRIPT_TIRHUTA, /* Tirh */ + G_UNICODE_SCRIPT_WARANG_CITI, /* Wara */ + + /* Unicode 8.0 additions */ + G_UNICODE_SCRIPT_AHOM, /* Ahom */ + G_UNICODE_SCRIPT_ANATOLIAN_HIEROGLYPHS, /* Hluw */ + G_UNICODE_SCRIPT_HATRAN, /* Hatr */ + G_UNICODE_SCRIPT_MULTANI, /* Mult */ + G_UNICODE_SCRIPT_OLD_HUNGARIAN, /* Hung */ + G_UNICODE_SCRIPT_SIGNWRITING, /* Sgnw */ + + /* Unicode 9.0 additions */ + G_UNICODE_SCRIPT_ADLAM, /* Adlm */ + G_UNICODE_SCRIPT_BHAIKSUKI, /* Bhks */ + G_UNICODE_SCRIPT_MARCHEN, /* Marc */ + G_UNICODE_SCRIPT_NEWA, /* Newa */ + G_UNICODE_SCRIPT_OSAGE, /* Osge */ + G_UNICODE_SCRIPT_TANGUT, /* Tang */ + + /* Unicode 10.0 additions */ + G_UNICODE_SCRIPT_MASARAM_GONDI, /* Gonm */ + G_UNICODE_SCRIPT_NUSHU, /* Nshu */ + G_UNICODE_SCRIPT_SOYOMBO, /* Soyo */ + G_UNICODE_SCRIPT_ZANABAZAR_SQUARE, /* Zanb */ + + /* Unicode 11.0 additions */ + G_UNICODE_SCRIPT_DOGRA, /* Dogr */ + G_UNICODE_SCRIPT_GUNJALA_GONDI, /* Gong */ + G_UNICODE_SCRIPT_HANIFI_ROHINGYA, /* Rohg */ + G_UNICODE_SCRIPT_MAKASAR, /* Maka */ + G_UNICODE_SCRIPT_MEDEFAIDRIN, /* Medf */ + G_UNICODE_SCRIPT_OLD_SOGDIAN, /* Sogo */ + G_UNICODE_SCRIPT_SOGDIAN, /* Sogd */ + + /* Unicode 12.0 additions */ + G_UNICODE_SCRIPT_ELYMAIC, /* Elym */ + G_UNICODE_SCRIPT_NANDINAGARI, /* Nand */ + G_UNICODE_SCRIPT_NYIAKENG_PUACHUE_HMONG, /* Rohg */ + G_UNICODE_SCRIPT_WANCHO, /* Wcho */ + + /* Unicode 13.0 additions */ + G_UNICODE_SCRIPT_CHORASMIAN, /* Chrs */ + G_UNICODE_SCRIPT_DIVES_AKURU, /* Diak */ + G_UNICODE_SCRIPT_KHITAN_SMALL_SCRIPT, /* Kits */ + G_UNICODE_SCRIPT_YEZIDI, /* Yezi */ + + /* Unicode 14.0 additions */ + G_UNICODE_SCRIPT_CYPRO_MINOAN, /* Cpmn */ + G_UNICODE_SCRIPT_OLD_UYGHUR, /* Ougr */ + G_UNICODE_SCRIPT_TANGSA, /* Tnsa */ + G_UNICODE_SCRIPT_TOTO, /* Toto */ + G_UNICODE_SCRIPT_VITHKUQI, /* Vith */ + + /* not really a Unicode script, but part of ISO 15924 */ + G_UNICODE_SCRIPT_MATH, /* Zmth */ + + /* Unicode 15.0 additions */ + G_UNICODE_SCRIPT_KAWI GLIB_AVAILABLE_ENUMERATOR_IN_2_74, /* Kawi */ + G_UNICODE_SCRIPT_NAG_MUNDARI GLIB_AVAILABLE_ENUMERATOR_IN_2_74, /* Nag Mundari */ +} GUnicodeScript; + +GLIB_AVAILABLE_IN_ALL +guint32 g_unicode_script_to_iso15924 (GUnicodeScript script); +GLIB_AVAILABLE_IN_ALL +GUnicodeScript g_unicode_script_from_iso15924 (guint32 iso15924); + +/* These are all analogs of the functions. + */ +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_isalnum (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_isalpha (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_iscntrl (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_isdigit (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_isgraph (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_islower (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_isprint (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_ispunct (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_isspace (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_isupper (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_isxdigit (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_istitle (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_isdefined (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_iswide (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_iswide_cjk(gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_iszerowidth(gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_ismark (gunichar c) G_GNUC_CONST; + +/* More functions. These convert between the three cases. + * See the Unicode book to understand title case. */ +GLIB_AVAILABLE_IN_ALL +gunichar g_unichar_toupper (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gunichar g_unichar_tolower (gunichar c) G_GNUC_CONST; +GLIB_AVAILABLE_IN_ALL +gunichar g_unichar_totitle (gunichar c) G_GNUC_CONST; + +/* If C is a digit (according to 'g_unichar_isdigit'), then return its + numeric value. Otherwise return -1. */ +GLIB_AVAILABLE_IN_ALL +gint g_unichar_digit_value (gunichar c) G_GNUC_CONST; + +GLIB_AVAILABLE_IN_ALL +gint g_unichar_xdigit_value (gunichar c) G_GNUC_CONST; + +/* Return the Unicode character type of a given character. */ +GLIB_AVAILABLE_IN_ALL +GUnicodeType g_unichar_type (gunichar c) G_GNUC_CONST; + +/* Return the line break property for a given character */ +GLIB_AVAILABLE_IN_ALL +GUnicodeBreakType g_unichar_break_type (gunichar c) G_GNUC_CONST; + +/* Returns the combining class for a given character */ +GLIB_AVAILABLE_IN_ALL +gint g_unichar_combining_class (gunichar uc) G_GNUC_CONST; + +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_get_mirror_char (gunichar ch, + gunichar *mirrored_ch); + +GLIB_AVAILABLE_IN_ALL +GUnicodeScript g_unichar_get_script (gunichar ch) G_GNUC_CONST; + +/* Validate a Unicode character */ +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_validate (gunichar ch) G_GNUC_CONST; + +/* Pairwise canonical compose/decompose */ +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_compose (gunichar a, + gunichar b, + gunichar *ch); +GLIB_AVAILABLE_IN_ALL +gboolean g_unichar_decompose (gunichar ch, + gunichar *a, + gunichar *b); + +GLIB_AVAILABLE_IN_ALL +gsize g_unichar_fully_decompose (gunichar ch, + gboolean compat, + gunichar *result, + gsize result_len); + +/** + * G_UNICHAR_MAX_DECOMPOSITION_LENGTH: + * + * The maximum length (in codepoints) of a compatibility or canonical + * decomposition of a single Unicode character. + * + * This is as defined by Unicode 6.1. + * + * Since: 2.32 + */ +#define G_UNICHAR_MAX_DECOMPOSITION_LENGTH 18 /* codepoints */ + +/* Compute canonical ordering of a string in-place. This rearranges + decomposed characters in the string according to their combining + classes. See the Unicode manual for more information. */ +GLIB_AVAILABLE_IN_ALL +void g_unicode_canonical_ordering (gunichar *string, + gsize len); + + +GLIB_DEPRECATED_IN_2_30 +gunichar *g_unicode_canonical_decomposition (gunichar ch, + gsize *result_len) G_GNUC_MALLOC; + +/* Array of skip-bytes-per-initial character. + */ +GLIB_VAR const gchar * const g_utf8_skip; + +/** + * g_utf8_next_char: + * @p: Pointer to the start of a valid UTF-8 character + * + * Skips to the next character in a UTF-8 string. + * + * The string must be valid; this macro is as fast as possible, and has + * no error-checking. + * + * You would use this macro to iterate over a string character by character. + * + * The macro returns the start of the next UTF-8 character. + * + * Before using this macro, use g_utf8_validate() to validate strings + * that may contain invalid UTF-8. + */ +#define g_utf8_next_char(p) (char *)((p) + g_utf8_skip[*(const guchar *)(p)]) + +GLIB_AVAILABLE_IN_ALL +gunichar g_utf8_get_char (const gchar *p) G_GNUC_PURE; +GLIB_AVAILABLE_IN_ALL +gunichar g_utf8_get_char_validated (const gchar *p, + gssize max_len) G_GNUC_PURE; + +GLIB_AVAILABLE_IN_ALL +gchar* g_utf8_offset_to_pointer (const gchar *str, + glong offset) G_GNUC_PURE; +GLIB_AVAILABLE_IN_ALL +glong g_utf8_pointer_to_offset (const gchar *str, + const gchar *pos) G_GNUC_PURE; +GLIB_AVAILABLE_IN_ALL +gchar* g_utf8_prev_char (const gchar *p) G_GNUC_PURE; +GLIB_AVAILABLE_IN_ALL +gchar* g_utf8_find_next_char (const gchar *p, + const gchar *end) G_GNUC_PURE; +GLIB_AVAILABLE_IN_ALL +gchar* g_utf8_find_prev_char (const gchar *str, + const gchar *p) G_GNUC_PURE; + +GLIB_AVAILABLE_IN_ALL +glong g_utf8_strlen (const gchar *p, + gssize max) G_GNUC_PURE; + +GLIB_AVAILABLE_IN_2_30 +gchar *g_utf8_substring (const gchar *str, + glong start_pos, + glong end_pos) G_GNUC_MALLOC; + +GLIB_AVAILABLE_IN_ALL +gchar *g_utf8_strncpy (gchar *dest, + const gchar *src, + gsize n); + +GLIB_AVAILABLE_IN_2_78 +gchar *g_utf8_truncate_middle (const gchar *string, + gsize truncate_length); + +/* Find the UTF-8 character corresponding to ch, in string p. These + functions are equivalants to strchr and strrchr */ +GLIB_AVAILABLE_IN_ALL +gchar* g_utf8_strchr (const gchar *p, + gssize len, + gunichar c); +GLIB_AVAILABLE_IN_ALL +gchar* g_utf8_strrchr (const gchar *p, + gssize len, + gunichar c); +GLIB_AVAILABLE_IN_ALL +gchar* g_utf8_strreverse (const gchar *str, + gssize len); + +GLIB_AVAILABLE_IN_ALL +gunichar2 *g_utf8_to_utf16 (const gchar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gunichar * g_utf8_to_ucs4 (const gchar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gunichar * g_utf8_to_ucs4_fast (const gchar *str, + glong len, + glong *items_written) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gunichar * g_utf16_to_ucs4 (const gunichar2 *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar* g_utf16_to_utf8 (const gunichar2 *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gunichar2 *g_ucs4_to_utf16 (const gunichar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar* g_ucs4_to_utf8 (const gunichar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) G_GNUC_MALLOC; + +GLIB_AVAILABLE_IN_ALL +gint g_unichar_to_utf8 (gunichar c, + gchar *outbuf); + +GLIB_AVAILABLE_IN_ALL +gboolean g_utf8_validate (const gchar *str, + gssize max_len, + const gchar **end); +GLIB_AVAILABLE_IN_2_60 +gboolean g_utf8_validate_len (const gchar *str, + gsize max_len, + const gchar **end); + +GLIB_AVAILABLE_IN_ALL +gchar *g_utf8_strup (const gchar *str, + gssize len) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar *g_utf8_strdown (const gchar *str, + gssize len) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar *g_utf8_casefold (const gchar *str, + gssize len) G_GNUC_MALLOC; + +/** + * GNormalizeMode: + * @G_NORMALIZE_DEFAULT: standardize differences that do not affect the + * text content, such as the above-mentioned accent representation + * @G_NORMALIZE_NFD: another name for %G_NORMALIZE_DEFAULT + * @G_NORMALIZE_DEFAULT_COMPOSE: like %G_NORMALIZE_DEFAULT, but with + * composed forms rather than a maximally decomposed form + * @G_NORMALIZE_NFC: another name for %G_NORMALIZE_DEFAULT_COMPOSE + * @G_NORMALIZE_ALL: beyond %G_NORMALIZE_DEFAULT also standardize the + * "compatibility" characters in Unicode, such as SUPERSCRIPT THREE + * to the standard forms (in this case DIGIT THREE). Formatting + * information may be lost but for most text operations such + * characters should be considered the same + * @G_NORMALIZE_NFKD: another name for %G_NORMALIZE_ALL + * @G_NORMALIZE_ALL_COMPOSE: like %G_NORMALIZE_ALL, but with composed + * forms rather than a maximally decomposed form + * @G_NORMALIZE_NFKC: another name for %G_NORMALIZE_ALL_COMPOSE + * + * Defines how a Unicode string is transformed in a canonical + * form, standardizing such issues as whether a character with + * an accent is represented as a base character and combining + * accent or as a single precomposed character. Unicode strings + * should generally be normalized before comparing them. + */ +typedef enum { + G_NORMALIZE_DEFAULT, + G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT, + G_NORMALIZE_DEFAULT_COMPOSE, + G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE, + G_NORMALIZE_ALL, + G_NORMALIZE_NFKD = G_NORMALIZE_ALL, + G_NORMALIZE_ALL_COMPOSE, + G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE +} GNormalizeMode; + +GLIB_AVAILABLE_IN_ALL +gchar *g_utf8_normalize (const gchar *str, + gssize len, + GNormalizeMode mode) G_GNUC_MALLOC; + +GLIB_AVAILABLE_IN_ALL +gint g_utf8_collate (const gchar *str1, + const gchar *str2) G_GNUC_PURE; +GLIB_AVAILABLE_IN_ALL +gchar *g_utf8_collate_key (const gchar *str, + gssize len) G_GNUC_MALLOC; +GLIB_AVAILABLE_IN_ALL +gchar *g_utf8_collate_key_for_filename (const gchar *str, + gssize len) G_GNUC_MALLOC; + +GLIB_AVAILABLE_IN_2_52 +gchar *g_utf8_make_valid (const gchar *str, + gssize len) G_GNUC_MALLOC; + +G_END_DECLS + +#endif /* __G_UNICODE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/guri.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/guri.h new file mode 100644 index 000000000..5989eabc4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/guri.h @@ -0,0 +1,420 @@ +/* GLIB - Library of useful routines for C programming + * Copyright © 2020 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see + * . + */ + +#pragma once + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + +typedef struct _GUri GUri; + +GLIB_AVAILABLE_IN_2_66 +GUri * g_uri_ref (GUri *uri); +GLIB_AVAILABLE_IN_2_66 +void g_uri_unref (GUri *uri); + +/** + * GUriFlags: + * @G_URI_FLAGS_NONE: No flags set. + * @G_URI_FLAGS_PARSE_RELAXED: Parse the URI more relaxedly than the + * [RFC 3986](https://tools.ietf.org/html/rfc3986) grammar specifies, + * fixing up or ignoring common mistakes in URIs coming from external + * sources. This is also needed for some obscure URI schemes where `;` + * separates the host from the path. Don’t use this flag unless you need to. + * @G_URI_FLAGS_HAS_PASSWORD: The userinfo field may contain a password, + * which will be separated from the username by `:`. + * @G_URI_FLAGS_HAS_AUTH_PARAMS: The userinfo may contain additional + * authentication-related parameters, which will be separated from + * the username and/or password by `;`. + * @G_URI_FLAGS_NON_DNS: The host component should not be assumed to be a + * DNS hostname or IP address (for example, for `smb` URIs with NetBIOS + * hostnames). + * @G_URI_FLAGS_ENCODED: When parsing a URI, this indicates that `%`-encoded + * characters in the userinfo, path, query, and fragment fields + * should not be decoded. (And likewise the host field if + * %G_URI_FLAGS_NON_DNS is also set.) When building a URI, it indicates + * that you have already `%`-encoded the components, and so #GUri + * should not do any encoding itself. + * @G_URI_FLAGS_ENCODED_QUERY: Same as %G_URI_FLAGS_ENCODED, for the query + * field only. + * @G_URI_FLAGS_ENCODED_PATH: Same as %G_URI_FLAGS_ENCODED, for the path only. + * @G_URI_FLAGS_ENCODED_FRAGMENT: Same as %G_URI_FLAGS_ENCODED, for the + * fragment only. + * @G_URI_FLAGS_SCHEME_NORMALIZE: A scheme-based normalization will be applied. + * For example, when parsing an HTTP URI changing omitted path to `/` and + * omitted port to `80`; and when building a URI, changing empty path to `/` + * and default port `80`). This only supports a subset of known schemes. (Since: 2.68) + * + * Flags that describe a URI. + * + * When parsing a URI, if you need to choose different flags based on + * the type of URI, you can use g_uri_peek_scheme() on the URI string + * to check the scheme first, and use that to decide what flags to + * parse it with. + * + * Since: 2.66 + */ +GLIB_AVAILABLE_TYPE_IN_2_66 +typedef enum { + G_URI_FLAGS_NONE = 0, + G_URI_FLAGS_PARSE_RELAXED = 1 << 0, + G_URI_FLAGS_HAS_PASSWORD = 1 << 1, + G_URI_FLAGS_HAS_AUTH_PARAMS = 1 << 2, + G_URI_FLAGS_ENCODED = 1 << 3, + G_URI_FLAGS_NON_DNS = 1 << 4, + G_URI_FLAGS_ENCODED_QUERY = 1 << 5, + G_URI_FLAGS_ENCODED_PATH = 1 << 6, + G_URI_FLAGS_ENCODED_FRAGMENT = 1 << 7, + G_URI_FLAGS_SCHEME_NORMALIZE GLIB_AVAILABLE_ENUMERATOR_IN_2_68 = 1 << 8, +} GUriFlags; + +GLIB_AVAILABLE_IN_2_66 +gboolean g_uri_split (const gchar *uri_ref, + GUriFlags flags, + gchar **scheme, + gchar **userinfo, + gchar **host, + gint *port, + gchar **path, + gchar **query, + gchar **fragment, + GError **error); +GLIB_AVAILABLE_IN_2_66 +gboolean g_uri_split_with_user (const gchar *uri_ref, + GUriFlags flags, + gchar **scheme, + gchar **user, + gchar **password, + gchar **auth_params, + gchar **host, + gint *port, + gchar **path, + gchar **query, + gchar **fragment, + GError **error); +GLIB_AVAILABLE_IN_2_66 +gboolean g_uri_split_network (const gchar *uri_string, + GUriFlags flags, + gchar **scheme, + gchar **host, + gint *port, + GError **error); + +GLIB_AVAILABLE_IN_2_66 +gboolean g_uri_is_valid (const gchar *uri_string, + GUriFlags flags, + GError **error); + +GLIB_AVAILABLE_IN_2_66 +gchar * g_uri_join (GUriFlags flags, + const gchar *scheme, + const gchar *userinfo, + const gchar *host, + gint port, + const gchar *path, + const gchar *query, + const gchar *fragment); +GLIB_AVAILABLE_IN_2_66 +gchar * g_uri_join_with_user (GUriFlags flags, + const gchar *scheme, + const gchar *user, + const gchar *password, + const gchar *auth_params, + const gchar *host, + gint port, + const gchar *path, + const gchar *query, + const gchar *fragment); + +GLIB_AVAILABLE_IN_2_66 +GUri * g_uri_parse (const gchar *uri_string, + GUriFlags flags, + GError **error); +GLIB_AVAILABLE_IN_2_66 +GUri * g_uri_parse_relative (GUri *base_uri, + const gchar *uri_ref, + GUriFlags flags, + GError **error); + +GLIB_AVAILABLE_IN_2_66 +gchar * g_uri_resolve_relative (const gchar *base_uri_string, + const gchar *uri_ref, + GUriFlags flags, + GError **error); + +GLIB_AVAILABLE_IN_2_66 +GUri * g_uri_build (GUriFlags flags, + const gchar *scheme, + const gchar *userinfo, + const gchar *host, + gint port, + const gchar *path, + const gchar *query, + const gchar *fragment); +GLIB_AVAILABLE_IN_2_66 +GUri * g_uri_build_with_user (GUriFlags flags, + const gchar *scheme, + const gchar *user, + const gchar *password, + const gchar *auth_params, + const gchar *host, + gint port, + const gchar *path, + const gchar *query, + const gchar *fragment); + +/** + * GUriHideFlags: + * @G_URI_HIDE_NONE: No flags set. + * @G_URI_HIDE_USERINFO: Hide the userinfo. + * @G_URI_HIDE_PASSWORD: Hide the password. + * @G_URI_HIDE_AUTH_PARAMS: Hide the auth_params. + * @G_URI_HIDE_QUERY: Hide the query. + * @G_URI_HIDE_FRAGMENT: Hide the fragment. + * + * Flags describing what parts of the URI to hide in + * g_uri_to_string_partial(). Note that %G_URI_HIDE_PASSWORD and + * %G_URI_HIDE_AUTH_PARAMS will only work if the #GUri was parsed with + * the corresponding flags. + * + * Since: 2.66 + */ +GLIB_AVAILABLE_TYPE_IN_2_66 +typedef enum { + G_URI_HIDE_NONE = 0, + G_URI_HIDE_USERINFO = 1 << 0, + G_URI_HIDE_PASSWORD = 1 << 1, + G_URI_HIDE_AUTH_PARAMS = 1 << 2, + G_URI_HIDE_QUERY = 1 << 3, + G_URI_HIDE_FRAGMENT = 1 << 4, +} GUriHideFlags; + +GLIB_AVAILABLE_IN_2_66 +char * g_uri_to_string (GUri *uri); +GLIB_AVAILABLE_IN_2_66 +char * g_uri_to_string_partial (GUri *uri, + GUriHideFlags flags); + +GLIB_AVAILABLE_IN_2_66 +const gchar *g_uri_get_scheme (GUri *uri); +GLIB_AVAILABLE_IN_2_66 +const gchar *g_uri_get_userinfo (GUri *uri); +GLIB_AVAILABLE_IN_2_66 +const gchar *g_uri_get_user (GUri *uri); +GLIB_AVAILABLE_IN_2_66 +const gchar *g_uri_get_password (GUri *uri); +GLIB_AVAILABLE_IN_2_66 +const gchar *g_uri_get_auth_params (GUri *uri); +GLIB_AVAILABLE_IN_2_66 +const gchar *g_uri_get_host (GUri *uri); +GLIB_AVAILABLE_IN_2_66 +gint g_uri_get_port (GUri *uri); +GLIB_AVAILABLE_IN_2_66 +const gchar *g_uri_get_path (GUri *uri); +GLIB_AVAILABLE_IN_2_66 +const gchar *g_uri_get_query (GUri *uri); +GLIB_AVAILABLE_IN_2_66 +const gchar *g_uri_get_fragment (GUri *uri); +GLIB_AVAILABLE_IN_2_66 +GUriFlags g_uri_get_flags (GUri *uri); + +/** + * GUriParamsFlags: + * @G_URI_PARAMS_NONE: No flags set. + * @G_URI_PARAMS_CASE_INSENSITIVE: Parameter names are case insensitive. + * @G_URI_PARAMS_WWW_FORM: Replace `+` with space character. Only useful for + * URLs on the web, using the `https` or `http` schemas. + * @G_URI_PARAMS_PARSE_RELAXED: See %G_URI_FLAGS_PARSE_RELAXED. + * + * Flags modifying the way parameters are handled by g_uri_parse_params() and + * #GUriParamsIter. + * + * Since: 2.66 + */ +GLIB_AVAILABLE_TYPE_IN_2_66 +typedef enum { + G_URI_PARAMS_NONE = 0, + G_URI_PARAMS_CASE_INSENSITIVE = 1 << 0, + G_URI_PARAMS_WWW_FORM = 1 << 1, + G_URI_PARAMS_PARSE_RELAXED = 1 << 2, +} GUriParamsFlags; + +GLIB_AVAILABLE_IN_2_66 +GHashTable *g_uri_parse_params (const gchar *params, + gssize length, + const gchar *separators, + GUriParamsFlags flags, + GError **error); + +typedef struct _GUriParamsIter GUriParamsIter; + +struct _GUriParamsIter +{ + /*< private >*/ + gint dummy0; + gpointer dummy1; + gpointer dummy2; + guint8 dummy3[256]; +}; + +GLIB_AVAILABLE_IN_2_66 +void g_uri_params_iter_init (GUriParamsIter *iter, + const gchar *params, + gssize length, + const gchar *separators, + GUriParamsFlags flags); + +GLIB_AVAILABLE_IN_2_66 +gboolean g_uri_params_iter_next (GUriParamsIter *iter, + gchar **attribute, + gchar **value, + GError **error); + +/** + * G_URI_ERROR: + * + * Error domain for URI methods. Errors in this domain will be from + * the #GUriError enumeration. See #GError for information on error + * domains. + * + * Since: 2.66 + */ +#define G_URI_ERROR (g_uri_error_quark ()) GLIB_AVAILABLE_MACRO_IN_2_66 +GLIB_AVAILABLE_IN_2_66 +GQuark g_uri_error_quark (void); + +/** + * GUriError: + * @G_URI_ERROR_FAILED: Generic error if no more specific error is available. + * See the error message for details. + * @G_URI_ERROR_BAD_SCHEME: The scheme of a URI could not be parsed. + * @G_URI_ERROR_BAD_USER: The user/userinfo of a URI could not be parsed. + * @G_URI_ERROR_BAD_PASSWORD: The password of a URI could not be parsed. + * @G_URI_ERROR_BAD_AUTH_PARAMS: The authentication parameters of a URI could not be parsed. + * @G_URI_ERROR_BAD_HOST: The host of a URI could not be parsed. + * @G_URI_ERROR_BAD_PORT: The port of a URI could not be parsed. + * @G_URI_ERROR_BAD_PATH: The path of a URI could not be parsed. + * @G_URI_ERROR_BAD_QUERY: The query of a URI could not be parsed. + * @G_URI_ERROR_BAD_FRAGMENT: The fragment of a URI could not be parsed. + * + * Error codes returned by #GUri methods. + * + * Since: 2.66 + */ +typedef enum { + G_URI_ERROR_FAILED, + G_URI_ERROR_BAD_SCHEME, + G_URI_ERROR_BAD_USER, + G_URI_ERROR_BAD_PASSWORD, + G_URI_ERROR_BAD_AUTH_PARAMS, + G_URI_ERROR_BAD_HOST, + G_URI_ERROR_BAD_PORT, + G_URI_ERROR_BAD_PATH, + G_URI_ERROR_BAD_QUERY, + G_URI_ERROR_BAD_FRAGMENT, +} GUriError; + +/** + * G_URI_RESERVED_CHARS_GENERIC_DELIMITERS: + * + * Generic delimiters characters as defined in + * [RFC 3986](https://tools.ietf.org/html/rfc3986). Includes `:/?#[]@`. + * + * Since: 2.16 + **/ +#define G_URI_RESERVED_CHARS_GENERIC_DELIMITERS ":/?#[]@" + +/** + * G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS: + * + * Subcomponent delimiter characters as defined in + * [RFC 3986](https://tools.ietf.org/html/rfc3986). Includes `!$&'()*+,;=`. + * + * Since: 2.16 + **/ +#define G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS "!$&'()*+,;=" + +/** + * G_URI_RESERVED_CHARS_ALLOWED_IN_PATH_ELEMENT: + * + * Allowed characters in path elements. Includes `!$&'()*+,;=:@`. + * + * Since: 2.16 + **/ +#define G_URI_RESERVED_CHARS_ALLOWED_IN_PATH_ELEMENT G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS ":@" + +/** + * G_URI_RESERVED_CHARS_ALLOWED_IN_PATH: + * + * Allowed characters in a path. Includes `!$&'()*+,;=:@/`. + * + * Since: 2.16 + **/ +#define G_URI_RESERVED_CHARS_ALLOWED_IN_PATH G_URI_RESERVED_CHARS_ALLOWED_IN_PATH_ELEMENT "/" + +/** + * G_URI_RESERVED_CHARS_ALLOWED_IN_USERINFO: + * + * Allowed characters in userinfo as defined in + * [RFC 3986](https://tools.ietf.org/html/rfc3986). Includes `!$&'()*+,;=:`. + * + * Since: 2.16 + **/ +#define G_URI_RESERVED_CHARS_ALLOWED_IN_USERINFO G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS ":" + +GLIB_AVAILABLE_IN_ALL +char * g_uri_unescape_string (const char *escaped_string, + const char *illegal_characters); +GLIB_AVAILABLE_IN_ALL +char * g_uri_unescape_segment (const char *escaped_string, + const char *escaped_string_end, + const char *illegal_characters); + +GLIB_AVAILABLE_IN_ALL +char * g_uri_parse_scheme (const char *uri); +GLIB_AVAILABLE_IN_2_66 +const char *g_uri_peek_scheme (const char *uri); + +GLIB_AVAILABLE_IN_ALL +char * g_uri_escape_string (const char *unescaped, + const char *reserved_chars_allowed, + gboolean allow_utf8); + +GLIB_AVAILABLE_IN_2_66 +GBytes * g_uri_unescape_bytes (const char *escaped_string, + gssize length, + const char *illegal_characters, + GError **error); + +GLIB_AVAILABLE_IN_2_66 +char * g_uri_escape_bytes (const guint8 *unescaped, + gsize length, + const char *reserved_chars_allowed); + +G_GNUC_END_IGNORE_DEPRECATIONS + +G_END_DECLS diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gutils.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gutils.h new file mode 100644 index 000000000..efc691449 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gutils.h @@ -0,0 +1,479 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_UTILS_H__ +#define __G_UTILS_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_ALL +const gchar * g_get_user_name (void); +GLIB_AVAILABLE_IN_ALL +const gchar * g_get_real_name (void); +GLIB_AVAILABLE_IN_ALL +const gchar * g_get_home_dir (void); +GLIB_AVAILABLE_IN_ALL +const gchar * g_get_tmp_dir (void); +GLIB_AVAILABLE_IN_ALL +const gchar * g_get_host_name (void); +GLIB_AVAILABLE_IN_ALL +const gchar * g_get_prgname (void); +GLIB_AVAILABLE_IN_ALL +void g_set_prgname (const gchar *prgname); +GLIB_AVAILABLE_IN_ALL +const gchar * g_get_application_name (void); +GLIB_AVAILABLE_IN_ALL +void g_set_application_name (const gchar *application_name); +GLIB_AVAILABLE_IN_2_64 +gchar * g_get_os_info (const gchar *key_name); + +/** + * G_OS_INFO_KEY_NAME: + * + * A key to get the name of the operating system excluding version information suitable for presentation to the user, e.g. "YoYoOS" + * + * Since: 2.64 + */ +#define G_OS_INFO_KEY_NAME \ + GLIB_AVAILABLE_MACRO_IN_2_64 \ + "NAME" + +/** + * G_OS_INFO_KEY_PRETTY_NAME: + * + * A key to get the name of the operating system in a format suitable for presentation to the user, e.g. "YoYoOS Foo" + * + * Since: 2.64 + */ +#define G_OS_INFO_KEY_PRETTY_NAME \ + GLIB_AVAILABLE_MACRO_IN_2_64 \ + "PRETTY_NAME" + +/** + * G_OS_INFO_KEY_VERSION: + * + * A key to get the operating system version suitable for presentation to the user, e.g. "42 (Foo)" + * + * Since: 2.64 + */ +#define G_OS_INFO_KEY_VERSION \ + GLIB_AVAILABLE_MACRO_IN_2_64 \ + "VERSION" + +/** + * G_OS_INFO_KEY_VERSION_CODENAME: + * + * A key to get a codename identifying the operating system release suitable for processing by scripts or usage in generated filenames, e.g. "foo" + * + * Since: 2.64 + */ +#define G_OS_INFO_KEY_VERSION_CODENAME \ + GLIB_AVAILABLE_MACRO_IN_2_64 \ + "VERSION_CODENAME" + +/** + * G_OS_INFO_KEY_VERSION_ID: + * + * A key to get the version of the operating system suitable for processing by scripts or usage in generated filenames, e.g. "42" + * + * Since: 2.64 + */ +#define G_OS_INFO_KEY_VERSION_ID \ + GLIB_AVAILABLE_MACRO_IN_2_64 \ + "VERSION_ID" + +/** + * G_OS_INFO_KEY_ID: + * + * A key to get an ID identifying the operating system suitable for processing by scripts or usage in generated filenames, e.g. "yoyoos" + * + * Since: 2.64 + */ +#define G_OS_INFO_KEY_ID \ + GLIB_AVAILABLE_MACRO_IN_2_64 \ + "ID" + +/** + * G_OS_INFO_KEY_HOME_URL: + * + * A key to get the homepage for the operating system, e.g. "https://www.yoyo-os.com/" + * + * Since: 2.64 + */ +#define G_OS_INFO_KEY_HOME_URL \ + GLIB_AVAILABLE_MACRO_IN_2_64 \ + "HOME_URL" + +/** + * G_OS_INFO_KEY_DOCUMENTATION_URL: + * + * A key to get the documentation page for the operating system, e.g. "https://docs.yoyo-os.com/" + * + * Since: 2.64 + */ +#define G_OS_INFO_KEY_DOCUMENTATION_URL \ + GLIB_AVAILABLE_MACRO_IN_2_64 \ + "DOCUMENTATION_URL" + +/** + * G_OS_INFO_KEY_SUPPORT_URL: + * + * A key to get the support page for the operating system, e.g. "https://support.yoyo-os.com/" + * + * Since: 2.64 + */ +#define G_OS_INFO_KEY_SUPPORT_URL \ + GLIB_AVAILABLE_MACRO_IN_2_64 \ + "SUPPORT_URL" + +/** + * G_OS_INFO_KEY_BUG_REPORT_URL: + * + * A key to get the bug reporting page for the operating system, e.g. "https://bugs.yoyo-os.com/" + * + * Since: 2.64 + */ +#define G_OS_INFO_KEY_BUG_REPORT_URL \ + GLIB_AVAILABLE_MACRO_IN_2_64 \ + "BUG_REPORT_URL" + +/** + * G_OS_INFO_KEY_PRIVACY_POLICY_URL: + * + * A key to get the privacy policy for the operating system, e.g. "https://privacy.yoyo-os.com/" + * + * Since: 2.64 + */ +#define G_OS_INFO_KEY_PRIVACY_POLICY_URL \ + GLIB_AVAILABLE_MACRO_IN_2_64 \ + "PRIVACY_POLICY_URL" + +GLIB_AVAILABLE_IN_ALL +void g_reload_user_special_dirs_cache (void); +GLIB_AVAILABLE_IN_ALL +const gchar * g_get_user_data_dir (void); +GLIB_AVAILABLE_IN_ALL +const gchar * g_get_user_config_dir (void); +GLIB_AVAILABLE_IN_ALL +const gchar * g_get_user_cache_dir (void); +GLIB_AVAILABLE_IN_2_72 +const gchar * g_get_user_state_dir (void); +GLIB_AVAILABLE_IN_ALL +const gchar * const * g_get_system_data_dirs (void); + +#ifdef G_OS_WIN32 +/* This function is not part of the public GLib API */ +GLIB_AVAILABLE_IN_ALL +const gchar * const * g_win32_get_system_data_dirs_for_module (void (*address_of_function)(void)); +#endif + +#if defined (G_OS_WIN32) && defined (G_CAN_INLINE) +/* This function is not part of the public GLib API either. Just call + * g_get_system_data_dirs() in your code, never mind that that is + * actually a macro and you will in fact call this inline function. + */ +static inline const gchar * const * +_g_win32_get_system_data_dirs (void) +{ + return g_win32_get_system_data_dirs_for_module ((void (*)(void)) &_g_win32_get_system_data_dirs); +} +#define g_get_system_data_dirs _g_win32_get_system_data_dirs +#endif + +GLIB_AVAILABLE_IN_ALL +const gchar * const * g_get_system_config_dirs (void); + +GLIB_AVAILABLE_IN_ALL +const gchar * g_get_user_runtime_dir (void); + +/** + * GUserDirectory: + * @G_USER_DIRECTORY_DESKTOP: the user's Desktop directory + * @G_USER_DIRECTORY_DOCUMENTS: the user's Documents directory + * @G_USER_DIRECTORY_DOWNLOAD: the user's Downloads directory + * @G_USER_DIRECTORY_MUSIC: the user's Music directory + * @G_USER_DIRECTORY_PICTURES: the user's Pictures directory + * @G_USER_DIRECTORY_PUBLIC_SHARE: the user's shared directory + * @G_USER_DIRECTORY_TEMPLATES: the user's Templates directory + * @G_USER_DIRECTORY_VIDEOS: the user's Movies directory + * @G_USER_N_DIRECTORIES: the number of enum values + * + * These are logical ids for special directories which are defined + * depending on the platform used. You should use g_get_user_special_dir() + * to retrieve the full path associated to the logical id. + * + * The #GUserDirectory enumeration can be extended at later date. Not + * every platform has a directory for every logical id in this + * enumeration. + * + * Since: 2.14 + */ +typedef enum { + G_USER_DIRECTORY_DESKTOP, + G_USER_DIRECTORY_DOCUMENTS, + G_USER_DIRECTORY_DOWNLOAD, + G_USER_DIRECTORY_MUSIC, + G_USER_DIRECTORY_PICTURES, + G_USER_DIRECTORY_PUBLIC_SHARE, + G_USER_DIRECTORY_TEMPLATES, + G_USER_DIRECTORY_VIDEOS, + + G_USER_N_DIRECTORIES +} GUserDirectory; + +GLIB_AVAILABLE_IN_ALL +const gchar * g_get_user_special_dir (GUserDirectory directory); + +/** + * GDebugKey: + * @key: the string + * @value: the flag + * + * Associates a string with a bit flag. + * Used in g_parse_debug_string(). + */ +typedef struct _GDebugKey GDebugKey; +struct _GDebugKey +{ + const gchar *key; + guint value; +}; + +/* Miscellaneous utility functions + */ +GLIB_AVAILABLE_IN_ALL +guint g_parse_debug_string (const gchar *string, + const GDebugKey *keys, + guint nkeys); + +GLIB_AVAILABLE_IN_ALL +gint g_snprintf (gchar *string, + gulong n, + gchar const *format, + ...) G_GNUC_PRINTF (3, 4); +GLIB_AVAILABLE_IN_ALL +gint g_vsnprintf (gchar *string, + gulong n, + gchar const *format, + va_list args) + G_GNUC_PRINTF(3, 0); + +GLIB_AVAILABLE_IN_ALL +void g_nullify_pointer (gpointer *nullify_location); + +typedef enum +{ + G_FORMAT_SIZE_DEFAULT = 0, + G_FORMAT_SIZE_LONG_FORMAT = 1 << 0, + G_FORMAT_SIZE_IEC_UNITS = 1 << 1, + G_FORMAT_SIZE_BITS = 1 << 2, + G_FORMAT_SIZE_ONLY_VALUE GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = 1 << 3, + G_FORMAT_SIZE_ONLY_UNIT GLIB_AVAILABLE_ENUMERATOR_IN_2_74 = 1 << 4 +} GFormatSizeFlags; + +GLIB_AVAILABLE_IN_2_30 +gchar *g_format_size_full (guint64 size, + GFormatSizeFlags flags); +GLIB_AVAILABLE_IN_2_30 +gchar *g_format_size (guint64 size); + +GLIB_DEPRECATED_IN_2_30_FOR(g_format_size) +gchar *g_format_size_for_display (goffset size); + +#define g_ATEXIT(proc) (atexit (proc)) GLIB_DEPRECATED_MACRO_IN_2_32 +#define g_memmove(dest,src,len) \ + G_STMT_START { memmove ((dest), (src), (len)); } G_STMT_END GLIB_DEPRECATED_MACRO_IN_2_40_FOR(memmove) + +/** + * GVoidFunc: + * + * Declares a type of function which takes no arguments + * and has no return value. It is used to specify the type + * function passed to g_atexit(). + */ +typedef void (*GVoidFunc) (void) GLIB_DEPRECATED_TYPE_IN_2_32; +#define ATEXIT(proc) g_ATEXIT(proc) GLIB_DEPRECATED_MACRO_IN_2_32 + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GLIB_DEPRECATED +void g_atexit (GVoidFunc func); +G_GNUC_END_IGNORE_DEPRECATIONS + +#ifdef G_OS_WIN32 +/* It's a bad idea to wrap atexit() on Windows. If the GLib DLL calls + * atexit(), the function will be called when the GLib DLL is detached + * from the program, which is not what the caller wants. The caller + * wants the function to be called when it *itself* exits (or is + * detached, in case the caller, too, is a DLL). + */ +#if (defined(__MINGW_H) && !defined(_STDLIB_H_)) || (defined(_MSC_VER) && !defined(_INC_STDLIB)) +int atexit (void (*)(void)); +#endif +#define g_atexit(func) atexit(func) GLIB_DEPRECATED_MACRO_IN_2_32 +#endif + + +/* Look for an executable in PATH, following execvp() rules */ +GLIB_AVAILABLE_IN_ALL +gchar* g_find_program_in_path (const gchar *program); + +/* Bit tests + * + * These are defined in a convoluted way because we want the compiler to + * be able to inline the code for performance reasons, but for + * historical reasons, we must continue to provide non-inline versions + * on our ABI. + * + * We define these as functions in gutils.c which are just implemented + * as calls to the _impl() versions in order to preserve the ABI. + */ + +#define g_bit_nth_lsf(mask, nth_bit) g_bit_nth_lsf_impl(mask, nth_bit) +#define g_bit_nth_msf(mask, nth_bit) g_bit_nth_msf_impl(mask, nth_bit) +#define g_bit_storage(number) g_bit_storage_impl(number) + +GLIB_AVAILABLE_IN_ALL +gint (g_bit_nth_lsf) (gulong mask, + gint nth_bit); +GLIB_AVAILABLE_IN_ALL +gint (g_bit_nth_msf) (gulong mask, + gint nth_bit); +GLIB_AVAILABLE_IN_ALL +guint (g_bit_storage) (gulong number); + +static inline gint +g_bit_nth_lsf_impl (gulong mask, + gint nth_bit) +{ + if (G_UNLIKELY (nth_bit < -1)) + nth_bit = -1; + while (nth_bit < ((GLIB_SIZEOF_LONG * 8) - 1)) + { + nth_bit++; + if (mask & (1UL << nth_bit)) + return nth_bit; + } + return -1; +} + +static inline gint +g_bit_nth_msf_impl (gulong mask, + gint nth_bit) +{ + if (nth_bit < 0 || G_UNLIKELY (nth_bit > GLIB_SIZEOF_LONG * 8)) + nth_bit = GLIB_SIZEOF_LONG * 8; + while (nth_bit > 0) + { + nth_bit--; + if (mask & (1UL << nth_bit)) + return nth_bit; + } + return -1; +} + +static inline guint +g_bit_storage_impl (gulong number) +{ +#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__) + return G_LIKELY (number) ? + ((GLIB_SIZEOF_LONG * 8U - 1) ^ (guint) __builtin_clzl(number)) + 1 : 1; +#else + guint n_bits = 0; + + do + { + n_bits++; + number >>= 1; + } + while (number); + return n_bits; +#endif +} + +/* Crashes the program. */ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_50 +#ifndef G_OS_WIN32 +# include +# define g_abort() abort () +#else +G_NORETURN GLIB_AVAILABLE_IN_2_50 void g_abort (void) G_ANALYZER_NORETURN; +#endif +#endif + +/* + * This macro is deprecated. This DllMain() is too complex. It is + * recommended to write an explicit minimal DLlMain() that just saves + * the handle to the DLL and then use that handle instead, for + * instance passing it to + * g_win32_get_package_installation_directory_of_module(). + * + * On Windows, this macro defines a DllMain function that stores the + * actual DLL name that the code being compiled will be included in. + * STATIC should be empty or 'static'. DLL_NAME is the name of the + * (pointer to the) char array where the DLL name will be stored. If + * this is used, you must also include . If you need a more complex + * DLL entry point function, you cannot use this. + * + * On non-Windows platforms, expands to nothing. + */ + +#ifndef G_PLATFORM_WIN32 +# define G_WIN32_DLLMAIN_FOR_DLL_NAME(static, dll_name) GLIB_DEPRECATED_MACRO_IN_2_26 +#else +# define G_WIN32_DLLMAIN_FOR_DLL_NAME(static, dll_name) \ +static char *dll_name; \ + \ +BOOL WINAPI \ +DllMain (HINSTANCE hinstDLL, \ + DWORD fdwReason, \ + LPVOID lpvReserved) \ +{ \ + wchar_t wcbfr[1000]; \ + char *tem; \ + switch (fdwReason) \ + { \ + case DLL_PROCESS_ATTACH: \ + GetModuleFileNameW ((HMODULE) hinstDLL, wcbfr, G_N_ELEMENTS (wcbfr)); \ + tem = g_utf16_to_utf8 (wcbfr, -1, NULL, NULL, NULL); \ + dll_name = g_path_get_basename (tem); \ + g_free (tem); \ + break; \ + } \ + \ + return TRUE; \ +} GLIB_DEPRECATED_MACRO_IN_2_26 +#endif /* G_PLATFORM_WIN32 */ + +G_END_DECLS + +#endif /* __G_UTILS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/guuid.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/guuid.h new file mode 100644 index 000000000..c653188a0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/guuid.h @@ -0,0 +1,42 @@ +/* guuid.h - UUID functions + * + * Copyright (C) 2013-2015, 2017 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of the + * licence, or (at your option) any later version. + * + * This is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + * License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 + * USA. + * + * Authors: Marc-André Lureau + */ + +#ifndef __G_UUID_H__ +#define __G_UUID_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GLIB_AVAILABLE_IN_2_52 +gboolean g_uuid_string_is_valid (const gchar *str); + +GLIB_AVAILABLE_IN_2_52 +gchar * g_uuid_string_random (void); + +G_END_DECLS + +#endif /* __G_UUID_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gvariant.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gvariant.h new file mode 100644 index 000000000..bdc37951d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gvariant.h @@ -0,0 +1,541 @@ +/* + * Copyright © 2007, 2008 Ryan Lortie + * Copyright © 2009, 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#ifndef __G_VARIANT_H__ +#define __G_VARIANT_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include + +G_BEGIN_DECLS + +typedef struct _GVariant GVariant; + +typedef enum +{ + G_VARIANT_CLASS_BOOLEAN = 'b', + G_VARIANT_CLASS_BYTE = 'y', + G_VARIANT_CLASS_INT16 = 'n', + G_VARIANT_CLASS_UINT16 = 'q', + G_VARIANT_CLASS_INT32 = 'i', + G_VARIANT_CLASS_UINT32 = 'u', + G_VARIANT_CLASS_INT64 = 'x', + G_VARIANT_CLASS_UINT64 = 't', + G_VARIANT_CLASS_HANDLE = 'h', + G_VARIANT_CLASS_DOUBLE = 'd', + G_VARIANT_CLASS_STRING = 's', + G_VARIANT_CLASS_OBJECT_PATH = 'o', + G_VARIANT_CLASS_SIGNATURE = 'g', + G_VARIANT_CLASS_VARIANT = 'v', + G_VARIANT_CLASS_MAYBE = 'm', + G_VARIANT_CLASS_ARRAY = 'a', + G_VARIANT_CLASS_TUPLE = '(', + G_VARIANT_CLASS_DICT_ENTRY = '{' +} GVariantClass; + +GLIB_AVAILABLE_IN_ALL +void g_variant_unref (GVariant *value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_ref (GVariant *value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_ref_sink (GVariant *value); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_is_floating (GVariant *value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_take_ref (GVariant *value); + +GLIB_AVAILABLE_IN_ALL +const GVariantType * g_variant_get_type (GVariant *value); +GLIB_AVAILABLE_IN_ALL +const gchar * g_variant_get_type_string (GVariant *value); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_is_of_type (GVariant *value, + const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_is_container (GVariant *value); +GLIB_AVAILABLE_IN_ALL +GVariantClass g_variant_classify (GVariant *value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_boolean (gboolean value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_byte (guint8 value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_int16 (gint16 value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_uint16 (guint16 value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_int32 (gint32 value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_uint32 (guint32 value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_int64 (gint64 value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_uint64 (guint64 value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_handle (gint32 value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_double (gdouble value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_string (const gchar *string); +GLIB_AVAILABLE_IN_2_38 +GVariant * g_variant_new_take_string (gchar *string); +GLIB_AVAILABLE_IN_2_38 +GVariant * g_variant_new_printf (const gchar *format_string, + ...) G_GNUC_PRINTF (1, 2); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_object_path (const gchar *object_path); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_is_object_path (const gchar *string); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_signature (const gchar *signature); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_is_signature (const gchar *string); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_variant (GVariant *value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_strv (const gchar * const *strv, + gssize length); +GLIB_AVAILABLE_IN_2_30 +GVariant * g_variant_new_objv (const gchar * const *strv, + gssize length); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_bytestring (const gchar *string); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_bytestring_array (const gchar * const *strv, + gssize length); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_fixed_array (const GVariantType *element_type, + gconstpointer elements, + gsize n_elements, + gsize element_size); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_get_boolean (GVariant *value); +GLIB_AVAILABLE_IN_ALL +guint8 g_variant_get_byte (GVariant *value); +GLIB_AVAILABLE_IN_ALL +gint16 g_variant_get_int16 (GVariant *value); +GLIB_AVAILABLE_IN_ALL +guint16 g_variant_get_uint16 (GVariant *value); +GLIB_AVAILABLE_IN_ALL +gint32 g_variant_get_int32 (GVariant *value); +GLIB_AVAILABLE_IN_ALL +guint32 g_variant_get_uint32 (GVariant *value); +GLIB_AVAILABLE_IN_ALL +gint64 g_variant_get_int64 (GVariant *value); +GLIB_AVAILABLE_IN_ALL +guint64 g_variant_get_uint64 (GVariant *value); +GLIB_AVAILABLE_IN_ALL +gint32 g_variant_get_handle (GVariant *value); +GLIB_AVAILABLE_IN_ALL +gdouble g_variant_get_double (GVariant *value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_get_variant (GVariant *value); +GLIB_AVAILABLE_IN_ALL +const gchar * g_variant_get_string (GVariant *value, + gsize *length); +GLIB_AVAILABLE_IN_ALL +gchar * g_variant_dup_string (GVariant *value, + gsize *length); +GLIB_AVAILABLE_IN_ALL +const gchar ** g_variant_get_strv (GVariant *value, + gsize *length); +GLIB_AVAILABLE_IN_ALL +gchar ** g_variant_dup_strv (GVariant *value, + gsize *length); +GLIB_AVAILABLE_IN_2_30 +const gchar ** g_variant_get_objv (GVariant *value, + gsize *length); +GLIB_AVAILABLE_IN_ALL +gchar ** g_variant_dup_objv (GVariant *value, + gsize *length); +GLIB_AVAILABLE_IN_ALL +const gchar * g_variant_get_bytestring (GVariant *value); +GLIB_AVAILABLE_IN_ALL +gchar * g_variant_dup_bytestring (GVariant *value, + gsize *length); +GLIB_AVAILABLE_IN_ALL +const gchar ** g_variant_get_bytestring_array (GVariant *value, + gsize *length); +GLIB_AVAILABLE_IN_ALL +gchar ** g_variant_dup_bytestring_array (GVariant *value, + gsize *length); + +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_maybe (const GVariantType *child_type, + GVariant *child); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_array (const GVariantType *child_type, + GVariant * const *children, + gsize n_children); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_tuple (GVariant * const *children, + gsize n_children); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_dict_entry (GVariant *key, + GVariant *value); + +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_get_maybe (GVariant *value); +GLIB_AVAILABLE_IN_ALL +gsize g_variant_n_children (GVariant *value); +GLIB_AVAILABLE_IN_ALL +void g_variant_get_child (GVariant *value, + gsize index_, + const gchar *format_string, + ...); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_get_child_value (GVariant *value, + gsize index_); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_lookup (GVariant *dictionary, + const gchar *key, + const gchar *format_string, + ...); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_lookup_value (GVariant *dictionary, + const gchar *key, + const GVariantType *expected_type); +GLIB_AVAILABLE_IN_ALL +gconstpointer g_variant_get_fixed_array (GVariant *value, + gsize *n_elements, + gsize element_size); + +GLIB_AVAILABLE_IN_ALL +gsize g_variant_get_size (GVariant *value); +GLIB_AVAILABLE_IN_ALL +gconstpointer g_variant_get_data (GVariant *value); +GLIB_AVAILABLE_IN_2_36 +GBytes * g_variant_get_data_as_bytes (GVariant *value); +GLIB_AVAILABLE_IN_ALL +void g_variant_store (GVariant *value, + gpointer data); + +GLIB_AVAILABLE_IN_ALL +gchar * g_variant_print (GVariant *value, + gboolean type_annotate); +GLIB_AVAILABLE_IN_ALL +GString * g_variant_print_string (GVariant *value, + GString *string, + gboolean type_annotate); + +GLIB_AVAILABLE_IN_ALL +guint g_variant_hash (gconstpointer value); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_equal (gconstpointer one, + gconstpointer two); + +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_get_normal_form (GVariant *value); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_is_normal_form (GVariant *value); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_byteswap (GVariant *value); + +GLIB_AVAILABLE_IN_2_36 +GVariant * g_variant_new_from_bytes (const GVariantType *type, + GBytes *bytes, + gboolean trusted); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_from_data (const GVariantType *type, + gconstpointer data, + gsize size, + gboolean trusted, + GDestroyNotify notify, + gpointer user_data); + +typedef struct _GVariantIter GVariantIter; +struct _GVariantIter { + /*< private >*/ + guintptr x[16]; +}; + +GLIB_AVAILABLE_IN_ALL +GVariantIter * g_variant_iter_new (GVariant *value); +GLIB_AVAILABLE_IN_ALL +gsize g_variant_iter_init (GVariantIter *iter, + GVariant *value); +GLIB_AVAILABLE_IN_ALL +GVariantIter * g_variant_iter_copy (GVariantIter *iter); +GLIB_AVAILABLE_IN_ALL +gsize g_variant_iter_n_children (GVariantIter *iter); +GLIB_AVAILABLE_IN_ALL +void g_variant_iter_free (GVariantIter *iter); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_iter_next_value (GVariantIter *iter); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_iter_next (GVariantIter *iter, + const gchar *format_string, + ...); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_iter_loop (GVariantIter *iter, + const gchar *format_string, + ...); + + +typedef struct _GVariantBuilder GVariantBuilder; +struct _GVariantBuilder { + /*< private >*/ + union + { + struct { + gsize partial_magic; + const GVariantType *type; + guintptr y[14]; + } s; + guintptr x[16]; + } u; +}; + +typedef enum +{ + G_VARIANT_PARSE_ERROR_FAILED, + G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED, + G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE, + G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED, + G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END, + G_VARIANT_PARSE_ERROR_INVALID_CHARACTER, + G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING, + G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH, + G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE, + G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING, + G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE, + G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE, + G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG, + G_VARIANT_PARSE_ERROR_TYPE_ERROR, + G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN, + G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD, + G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT, + G_VARIANT_PARSE_ERROR_VALUE_EXPECTED, + G_VARIANT_PARSE_ERROR_RECURSION +} GVariantParseError; +#define G_VARIANT_PARSE_ERROR (g_variant_parse_error_quark ()) + +GLIB_DEPRECATED_IN_2_38_FOR(g_variant_parse_error_quark) +GQuark g_variant_parser_get_error_quark (void); + +GLIB_AVAILABLE_IN_ALL +GQuark g_variant_parse_error_quark (void); + +/** + * G_VARIANT_BUILDER_INIT: + * @variant_type: a const GVariantType* + * + * A stack-allocated #GVariantBuilder must be initialized if it is + * used together with g_auto() to avoid warnings or crashes if + * function returns before g_variant_builder_init() is called on the + * builder. + * + * This macro can be used as initializer instead of an + * explicit zeroing a variable when declaring it and a following + * g_variant_builder_init(), but it cannot be assigned to a variable. + * + * The passed @variant_type should be a static GVariantType to avoid + * lifetime issues, as copying the @variant_type does not happen in + * the G_VARIANT_BUILDER_INIT() call, but rather in functions that + * make sure that #GVariantBuilder is valid. + * + * |[ + * g_auto(GVariantBuilder) builder = G_VARIANT_BUILDER_INIT (G_VARIANT_TYPE_BYTESTRING); + * ]| + * + * Since: 2.50 + */ +#define G_VARIANT_BUILDER_INIT(variant_type) \ + { \ + { \ + { \ + 2942751021u /* == GVSB_MAGIC_PARTIAL, see gvariant.c */, variant_type, { 0, } \ + } \ + } \ + } + +GLIB_AVAILABLE_IN_ALL +GVariantBuilder * g_variant_builder_new (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +void g_variant_builder_unref (GVariantBuilder *builder); +GLIB_AVAILABLE_IN_ALL +GVariantBuilder * g_variant_builder_ref (GVariantBuilder *builder); +GLIB_AVAILABLE_IN_ALL +void g_variant_builder_init (GVariantBuilder *builder, + const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_builder_end (GVariantBuilder *builder); +GLIB_AVAILABLE_IN_ALL +void g_variant_builder_clear (GVariantBuilder *builder); +GLIB_AVAILABLE_IN_ALL +void g_variant_builder_open (GVariantBuilder *builder, + const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +void g_variant_builder_close (GVariantBuilder *builder); +GLIB_AVAILABLE_IN_ALL +void g_variant_builder_add_value (GVariantBuilder *builder, + GVariant *value); +GLIB_AVAILABLE_IN_ALL +void g_variant_builder_add (GVariantBuilder *builder, + const gchar *format_string, + ...); +GLIB_AVAILABLE_IN_ALL +void g_variant_builder_add_parsed (GVariantBuilder *builder, + const gchar *format, + ...); + +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new (const gchar *format_string, + ...); +GLIB_AVAILABLE_IN_ALL +void g_variant_get (GVariant *value, + const gchar *format_string, + ...); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_va (const gchar *format_string, + const gchar **endptr, + va_list *app); +GLIB_AVAILABLE_IN_ALL +void g_variant_get_va (GVariant *value, + const gchar *format_string, + const gchar **endptr, + va_list *app); +GLIB_AVAILABLE_IN_2_34 +gboolean g_variant_check_format_string (GVariant *value, + const gchar *format_string, + gboolean copy_only); + +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_parse (const GVariantType *type, + const gchar *text, + const gchar *limit, + const gchar **endptr, + GError **error); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_parsed (const gchar *format, + ...); +GLIB_AVAILABLE_IN_ALL +GVariant * g_variant_new_parsed_va (const gchar *format, + va_list *app); + +GLIB_AVAILABLE_IN_2_40 +gchar * g_variant_parse_error_print_context (GError *error, + const gchar *source_str); + +GLIB_AVAILABLE_IN_ALL +gint g_variant_compare (gconstpointer one, + gconstpointer two); + +typedef struct _GVariantDict GVariantDict; +struct _GVariantDict { + /*< private >*/ + union + { + struct { + GVariant *asv; + gsize partial_magic; + guintptr y[14]; + } s; + guintptr x[16]; + } u; +}; + +/** + * G_VARIANT_DICT_INIT: + * @asv: (nullable): a GVariant* + * + * A stack-allocated #GVariantDict must be initialized if it is used + * together with g_auto() to avoid warnings or crashes if function + * returns before g_variant_dict_init() is called on the builder. + * + * This macro can be used as initializer instead of an explicit + * zeroing a variable when declaring it and a following + * g_variant_dict_init(), but it cannot be assigned to a variable. + * + * The passed @asv has to live long enough for #GVariantDict to gather + * the entries from, as the gathering does not happen in the + * G_VARIANT_DICT_INIT() call, but rather in functions that make sure + * that #GVariantDict is valid. In context where the initialization + * value has to be a constant expression, the only possible value of + * @asv is %NULL. It is still possible to call g_variant_dict_init() + * safely with a different @asv right after the variable was + * initialized with G_VARIANT_DICT_INIT(). + * + * |[ + * g_autoptr(GVariant) variant = get_asv_variant (); + * g_auto(GVariantDict) dict = G_VARIANT_DICT_INIT (variant); + * ]| + * + * Since: 2.50 + */ +#define G_VARIANT_DICT_INIT(asv) \ + { \ + { \ + { \ + asv, 3488698669u /* == GVSD_MAGIC_PARTIAL, see gvariant.c */, { 0, } \ + } \ + } \ + } + +GLIB_AVAILABLE_IN_2_40 +GVariantDict * g_variant_dict_new (GVariant *from_asv); + +GLIB_AVAILABLE_IN_2_40 +void g_variant_dict_init (GVariantDict *dict, + GVariant *from_asv); + +GLIB_AVAILABLE_IN_2_40 +gboolean g_variant_dict_lookup (GVariantDict *dict, + const gchar *key, + const gchar *format_string, + ...); +GLIB_AVAILABLE_IN_2_40 +GVariant * g_variant_dict_lookup_value (GVariantDict *dict, + const gchar *key, + const GVariantType *expected_type); +GLIB_AVAILABLE_IN_2_40 +gboolean g_variant_dict_contains (GVariantDict *dict, + const gchar *key); +GLIB_AVAILABLE_IN_2_40 +void g_variant_dict_insert (GVariantDict *dict, + const gchar *key, + const gchar *format_string, + ...); +GLIB_AVAILABLE_IN_2_40 +void g_variant_dict_insert_value (GVariantDict *dict, + const gchar *key, + GVariant *value); +GLIB_AVAILABLE_IN_2_40 +gboolean g_variant_dict_remove (GVariantDict *dict, + const gchar *key); +GLIB_AVAILABLE_IN_2_40 +void g_variant_dict_clear (GVariantDict *dict); +GLIB_AVAILABLE_IN_2_40 +GVariant * g_variant_dict_end (GVariantDict *dict); +GLIB_AVAILABLE_IN_2_40 +GVariantDict * g_variant_dict_ref (GVariantDict *dict); +GLIB_AVAILABLE_IN_2_40 +void g_variant_dict_unref (GVariantDict *dict); + +G_END_DECLS + +#endif /* __G_VARIANT_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gvarianttype.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gvarianttype.h new file mode 100644 index 000000000..6374957f5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gvarianttype.h @@ -0,0 +1,384 @@ +/* + * Copyright © 2007, 2008 Ryan Lortie + * Copyright © 2009, 2010 Codethink Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#ifndef __G_VARIANT_TYPE_H__ +#define __G_VARIANT_TYPE_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * GVariantType: + * + * A type in the GVariant type system. + * + * Two types may not be compared by value; use g_variant_type_equal() or + * g_variant_type_is_subtype_of(). May be copied using + * g_variant_type_copy() and freed using g_variant_type_free(). + **/ +typedef struct _GVariantType GVariantType; + +/** + * G_VARIANT_TYPE_BOOLEAN: + * + * The type of a value that can be either %TRUE or %FALSE. + **/ +#define G_VARIANT_TYPE_BOOLEAN ((const GVariantType *) "b") + +/** + * G_VARIANT_TYPE_BYTE: + * + * The type of an integer value that can range from 0 to 255. + **/ +#define G_VARIANT_TYPE_BYTE ((const GVariantType *) "y") + +/** + * G_VARIANT_TYPE_INT16: + * + * The type of an integer value that can range from -32768 to 32767. + **/ +#define G_VARIANT_TYPE_INT16 ((const GVariantType *) "n") + +/** + * G_VARIANT_TYPE_UINT16: + * + * The type of an integer value that can range from 0 to 65535. + * There were about this many people living in Toronto in the 1870s. + **/ +#define G_VARIANT_TYPE_UINT16 ((const GVariantType *) "q") + +/** + * G_VARIANT_TYPE_INT32: + * + * The type of an integer value that can range from -2147483648 to + * 2147483647. + **/ +#define G_VARIANT_TYPE_INT32 ((const GVariantType *) "i") + +/** + * G_VARIANT_TYPE_UINT32: + * + * The type of an integer value that can range from 0 to 4294967295. + * That's one number for everyone who was around in the late 1970s. + **/ +#define G_VARIANT_TYPE_UINT32 ((const GVariantType *) "u") + +/** + * G_VARIANT_TYPE_INT64: + * + * The type of an integer value that can range from + * -9223372036854775808 to 9223372036854775807. + **/ +#define G_VARIANT_TYPE_INT64 ((const GVariantType *) "x") + +/** + * G_VARIANT_TYPE_UINT64: + * + * The type of an integer value that can range from 0 + * to 18446744073709551615 (inclusive). That's a really big number, + * but a Rubik's cube can have a bit more than twice as many possible + * positions. + **/ +#define G_VARIANT_TYPE_UINT64 ((const GVariantType *) "t") + +/** + * G_VARIANT_TYPE_DOUBLE: + * + * The type of a double precision IEEE754 floating point number. + * These guys go up to about 1.80e308 (plus and minus) but miss out on + * some numbers in between. In any case, that's far greater than the + * estimated number of fundamental particles in the observable + * universe. + **/ +#define G_VARIANT_TYPE_DOUBLE ((const GVariantType *) "d") + +/** + * G_VARIANT_TYPE_STRING: + * + * The type of a string. "" is a string. %NULL is not a string. + **/ +#define G_VARIANT_TYPE_STRING ((const GVariantType *) "s") + +/** + * G_VARIANT_TYPE_OBJECT_PATH: + * + * The type of a D-Bus object reference. These are strings of a + * specific format used to identify objects at a given destination on + * the bus. + * + * If you are not interacting with D-Bus, then there is no reason to make + * use of this type. If you are, then the D-Bus specification contains a + * precise description of valid object paths. + **/ +#define G_VARIANT_TYPE_OBJECT_PATH ((const GVariantType *) "o") + +/** + * G_VARIANT_TYPE_SIGNATURE: + * + * The type of a D-Bus type signature. These are strings of a specific + * format used as type signatures for D-Bus methods and messages. + * + * If you are not interacting with D-Bus, then there is no reason to make + * use of this type. If you are, then the D-Bus specification contains a + * precise description of valid signature strings. + **/ +#define G_VARIANT_TYPE_SIGNATURE ((const GVariantType *) "g") + +/** + * G_VARIANT_TYPE_VARIANT: + * + * The type of a box that contains any other value (including another + * variant). + **/ +#define G_VARIANT_TYPE_VARIANT ((const GVariantType *) "v") + +/** + * G_VARIANT_TYPE_HANDLE: + * + * The type of a 32bit signed integer value, that by convention, is used + * as an index into an array of file descriptors that are sent alongside + * a D-Bus message. + * + * If you are not interacting with D-Bus, then there is no reason to make + * use of this type. + **/ +#define G_VARIANT_TYPE_HANDLE ((const GVariantType *) "h") + +/** + * G_VARIANT_TYPE_UNIT: + * + * The empty tuple type. Has only one instance. Known also as "triv" + * or "void". + **/ +#define G_VARIANT_TYPE_UNIT ((const GVariantType *) "()") + +/** + * G_VARIANT_TYPE_ANY: + * + * An indefinite type that is a supertype of every type (including + * itself). + **/ +#define G_VARIANT_TYPE_ANY ((const GVariantType *) "*") + +/** + * G_VARIANT_TYPE_BASIC: + * + * An indefinite type that is a supertype of every basic (ie: + * non-container) type. + **/ +#define G_VARIANT_TYPE_BASIC ((const GVariantType *) "?") + +/** + * G_VARIANT_TYPE_MAYBE: + * + * An indefinite type that is a supertype of every maybe type. + **/ +#define G_VARIANT_TYPE_MAYBE ((const GVariantType *) "m*") + +/** + * G_VARIANT_TYPE_ARRAY: + * + * An indefinite type that is a supertype of every array type. + **/ +#define G_VARIANT_TYPE_ARRAY ((const GVariantType *) "a*") + +/** + * G_VARIANT_TYPE_TUPLE: + * + * An indefinite type that is a supertype of every tuple type, + * regardless of the number of items in the tuple. + **/ +#define G_VARIANT_TYPE_TUPLE ((const GVariantType *) "r") + +/** + * G_VARIANT_TYPE_DICT_ENTRY: + * + * An indefinite type that is a supertype of every dictionary entry + * type. + **/ +#define G_VARIANT_TYPE_DICT_ENTRY ((const GVariantType *) "{?*}") + +/** + * G_VARIANT_TYPE_DICTIONARY: + * + * An indefinite type that is a supertype of every dictionary type -- + * that is, any array type that has an element type equal to any + * dictionary entry type. + **/ +#define G_VARIANT_TYPE_DICTIONARY ((const GVariantType *) "a{?*}") + +/** + * G_VARIANT_TYPE_STRING_ARRAY: + * + * The type of an array of strings. + **/ +#define G_VARIANT_TYPE_STRING_ARRAY ((const GVariantType *) "as") + +/** + * G_VARIANT_TYPE_OBJECT_PATH_ARRAY: + * + * The type of an array of object paths. + **/ +#define G_VARIANT_TYPE_OBJECT_PATH_ARRAY ((const GVariantType *) "ao") + +/** + * G_VARIANT_TYPE_BYTESTRING: + * + * The type of an array of bytes. This type is commonly used to pass + * around strings that may not be valid utf8. In that case, the + * convention is that the nul terminator character should be included as + * the last character in the array. + **/ +#define G_VARIANT_TYPE_BYTESTRING ((const GVariantType *) "ay") + +/** + * G_VARIANT_TYPE_BYTESTRING_ARRAY: + * + * The type of an array of byte strings (an array of arrays of bytes). + **/ +#define G_VARIANT_TYPE_BYTESTRING_ARRAY ((const GVariantType *) "aay") + +/** + * G_VARIANT_TYPE_VARDICT: + * + * The type of a dictionary mapping strings to variants (the ubiquitous + * "a{sv}" type). + * + * Since: 2.30 + **/ +#define G_VARIANT_TYPE_VARDICT ((const GVariantType *) "a{sv}") + + +/** + * G_VARIANT_TYPE: + * @type_string: a well-formed #GVariantType type string + * + * Converts a string to a const #GVariantType. Depending on the + * current debugging level, this function may perform a runtime check + * to ensure that @string is a valid GVariant type string. + * + * It is always a programmer error to use this macro with an invalid + * type string. If in doubt, use g_variant_type_string_is_valid() to + * check if the string is valid. + * + * Since 2.24 + **/ +#ifndef G_DISABLE_CHECKS +# define G_VARIANT_TYPE(type_string) (g_variant_type_checked_ ((type_string))) +#else +# define G_VARIANT_TYPE(type_string) ((const GVariantType *) (type_string)) +#endif + +/* type string checking */ +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_type_string_is_valid (const gchar *type_string); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_type_string_scan (const gchar *string, + const gchar *limit, + const gchar **endptr); + +/* create/destroy */ +GLIB_AVAILABLE_IN_ALL +void g_variant_type_free (GVariantType *type); +GLIB_AVAILABLE_IN_ALL +GVariantType * g_variant_type_copy (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +GVariantType * g_variant_type_new (const gchar *type_string); + +/* getters */ +GLIB_AVAILABLE_IN_ALL +gsize g_variant_type_get_string_length (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +const gchar * g_variant_type_peek_string (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +gchar * g_variant_type_dup_string (const GVariantType *type); + +/* classification */ +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_type_is_definite (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_type_is_container (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_type_is_basic (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_type_is_maybe (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_type_is_array (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_type_is_tuple (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_type_is_dict_entry (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_type_is_variant (const GVariantType *type); + +/* for hash tables */ +GLIB_AVAILABLE_IN_ALL +guint g_variant_type_hash (gconstpointer type); +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_type_equal (gconstpointer type1, + gconstpointer type2); + +/* subtypes */ +GLIB_AVAILABLE_IN_ALL +gboolean g_variant_type_is_subtype_of (const GVariantType *type, + const GVariantType *supertype); + +/* type iterator interface */ +GLIB_AVAILABLE_IN_ALL +const GVariantType * g_variant_type_element (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +const GVariantType * g_variant_type_first (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +const GVariantType * g_variant_type_next (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +gsize g_variant_type_n_items (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +const GVariantType * g_variant_type_key (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL +const GVariantType * g_variant_type_value (const GVariantType *type); + +/* constructors */ +GLIB_AVAILABLE_IN_ALL +GVariantType * g_variant_type_new_array (const GVariantType *element); +GLIB_AVAILABLE_IN_ALL +GVariantType * g_variant_type_new_maybe (const GVariantType *element); +GLIB_AVAILABLE_IN_ALL +GVariantType * g_variant_type_new_tuple (const GVariantType * const *items, + gint length); +GLIB_AVAILABLE_IN_ALL +GVariantType * g_variant_type_new_dict_entry (const GVariantType *key, + const GVariantType *value); + +/*< private >*/ +GLIB_AVAILABLE_IN_ALL +const GVariantType * g_variant_type_checked_ (const gchar *); +GLIB_AVAILABLE_IN_2_60 +gsize g_variant_type_string_get_depth_ (const gchar *type_string); + +G_END_DECLS + +#endif /* __G_VARIANT_TYPE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gversion.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gversion.h new file mode 100644 index 000000000..d15f54819 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gversion.h @@ -0,0 +1,57 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_VERSION_H__ +#define __G_VERSION_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +GLIB_VAR const guint glib_major_version; +GLIB_VAR const guint glib_minor_version; +GLIB_VAR const guint glib_micro_version; +GLIB_VAR const guint glib_interface_age; +GLIB_VAR const guint glib_binary_age; + +GLIB_AVAILABLE_IN_ALL +const gchar * glib_check_version (guint required_major, + guint required_minor, + guint required_micro); + +#define GLIB_CHECK_VERSION(major,minor,micro) \ + (GLIB_MAJOR_VERSION > (major) || \ + (GLIB_MAJOR_VERSION == (major) && GLIB_MINOR_VERSION > (minor)) || \ + (GLIB_MAJOR_VERSION == (major) && GLIB_MINOR_VERSION == (minor) && \ + GLIB_MICRO_VERSION >= (micro))) + +G_END_DECLS + +#endif /* __G_VERSION_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gversionmacros.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gversionmacros.h new file mode 100644 index 000000000..290017885 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gversionmacros.h @@ -0,0 +1,490 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_VERSION_MACROS_H__ +#define __G_VERSION_MACROS_H__ + +#if !defined(__GLIB_H_INSIDE__) && !defined(GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +/* Version boundaries checks */ + +#define G_ENCODE_VERSION(major, minor) ((major) << 16 | (minor) << 8) + +/** +* GLIB_VERSION_2_2: +* +* A macro that evaluates to the 2.2 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_2 (G_ENCODE_VERSION (2, 2)) +/** +* GLIB_VERSION_2_4: +* +* A macro that evaluates to the 2.4 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_4 (G_ENCODE_VERSION (2, 4)) +/** +* GLIB_VERSION_2_6: +* +* A macro that evaluates to the 2.6 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_6 (G_ENCODE_VERSION (2, 6)) +/** +* GLIB_VERSION_2_8: +* +* A macro that evaluates to the 2.8 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_8 (G_ENCODE_VERSION (2, 8)) +/** +* GLIB_VERSION_2_10: +* +* A macro that evaluates to the 2.10 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_10 (G_ENCODE_VERSION (2, 10)) +/** +* GLIB_VERSION_2_12: +* +* A macro that evaluates to the 2.12 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_12 (G_ENCODE_VERSION (2, 12)) +/** +* GLIB_VERSION_2_14: +* +* A macro that evaluates to the 2.14 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_14 (G_ENCODE_VERSION (2, 14)) +/** +* GLIB_VERSION_2_16: +* +* A macro that evaluates to the 2.16 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_16 (G_ENCODE_VERSION (2, 16)) +/** +* GLIB_VERSION_2_18: +* +* A macro that evaluates to the 2.18 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_18 (G_ENCODE_VERSION (2, 18)) +/** +* GLIB_VERSION_2_20: +* +* A macro that evaluates to the 2.20 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_20 (G_ENCODE_VERSION (2, 20)) +/** +* GLIB_VERSION_2_22: +* +* A macro that evaluates to the 2.22 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_22 (G_ENCODE_VERSION (2, 22)) +/** +* GLIB_VERSION_2_24: +* +* A macro that evaluates to the 2.24 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_24 (G_ENCODE_VERSION (2, 24)) +/** +* GLIB_VERSION_2_26: +* +* A macro that evaluates to the 2.26 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_26 (G_ENCODE_VERSION (2, 26)) +/** +* GLIB_VERSION_2_28: +* +* A macro that evaluates to the 2.28 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_28 (G_ENCODE_VERSION (2, 28)) +/** +* GLIB_VERSION_2_30: +* +* A macro that evaluates to the 2.30 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_30 (G_ENCODE_VERSION (2, 30)) +/** +* GLIB_VERSION_2_32: +* +* A macro that evaluates to the 2.32 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.32 +*/ +#define GLIB_VERSION_2_32 (G_ENCODE_VERSION (2, 32)) +/** +* GLIB_VERSION_2_34: +* +* A macro that evaluates to the 2.34 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.34 +*/ +#define GLIB_VERSION_2_34 (G_ENCODE_VERSION (2, 34)) +/** +* GLIB_VERSION_2_36: +* +* A macro that evaluates to the 2.36 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.36 +*/ +#define GLIB_VERSION_2_36 (G_ENCODE_VERSION (2, 36)) +/** +* GLIB_VERSION_2_38: +* +* A macro that evaluates to the 2.38 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.38 +*/ +#define GLIB_VERSION_2_38 (G_ENCODE_VERSION (2, 38)) +/** +* GLIB_VERSION_2_40: +* +* A macro that evaluates to the 2.40 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.40 +*/ +#define GLIB_VERSION_2_40 (G_ENCODE_VERSION (2, 40)) +/** +* GLIB_VERSION_2_42: +* +* A macro that evaluates to the 2.42 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.42 +*/ +#define GLIB_VERSION_2_42 (G_ENCODE_VERSION (2, 42)) +/** +* GLIB_VERSION_2_44: +* +* A macro that evaluates to the 2.44 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.44 +*/ +#define GLIB_VERSION_2_44 (G_ENCODE_VERSION (2, 44)) +/** +* GLIB_VERSION_2_46: +* +* A macro that evaluates to the 2.46 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.46 +*/ +#define GLIB_VERSION_2_46 (G_ENCODE_VERSION (2, 46)) +/** +* GLIB_VERSION_2_48: +* +* A macro that evaluates to the 2.48 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.48 +*/ +#define GLIB_VERSION_2_48 (G_ENCODE_VERSION (2, 48)) +/** +* GLIB_VERSION_2_50: +* +* A macro that evaluates to the 2.50 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.50 +*/ +#define GLIB_VERSION_2_50 (G_ENCODE_VERSION (2, 50)) +/** +* GLIB_VERSION_2_52: +* +* A macro that evaluates to the 2.52 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.52 +*/ +#define GLIB_VERSION_2_52 (G_ENCODE_VERSION (2, 52)) +/** +* GLIB_VERSION_2_54: +* +* A macro that evaluates to the 2.54 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.54 +*/ +#define GLIB_VERSION_2_54 (G_ENCODE_VERSION (2, 54)) +/** +* GLIB_VERSION_2_56: +* +* A macro that evaluates to the 2.56 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.56 +*/ +#define GLIB_VERSION_2_56 (G_ENCODE_VERSION (2, 56)) +/** +* GLIB_VERSION_2_58: +* +* A macro that evaluates to the 2.58 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.58 +*/ +#define GLIB_VERSION_2_58 (G_ENCODE_VERSION (2, 58)) +/** +* GLIB_VERSION_2_60: +* +* A macro that evaluates to the 2.60 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.60 +*/ +#define GLIB_VERSION_2_60 (G_ENCODE_VERSION (2, 60)) +/** +* GLIB_VERSION_2_62: +* +* A macro that evaluates to the 2.62 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.62 +*/ +#define GLIB_VERSION_2_62 (G_ENCODE_VERSION (2, 62)) +/** +* GLIB_VERSION_2_64: +* +* A macro that evaluates to the 2.64 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.64 +*/ +#define GLIB_VERSION_2_64 (G_ENCODE_VERSION (2, 64)) +/** +* GLIB_VERSION_2_66: +* +* A macro that evaluates to the 2.66 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.66 +*/ +#define GLIB_VERSION_2_66 (G_ENCODE_VERSION (2, 66)) +/** +* GLIB_VERSION_2_68: +* +* A macro that evaluates to the 2.68 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.68 +*/ +#define GLIB_VERSION_2_68 (G_ENCODE_VERSION (2, 68)) +/** +* GLIB_VERSION_2_70: +* +* A macro that evaluates to the 2.70 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.70 +*/ +#define GLIB_VERSION_2_70 (G_ENCODE_VERSION (2, 70)) +/** +* GLIB_VERSION_2_72: +* +* A macro that evaluates to the 2.72 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.72 +*/ +#define GLIB_VERSION_2_72 (G_ENCODE_VERSION (2, 72)) +/** +* GLIB_VERSION_2_74: +* +* A macro that evaluates to the 2.74 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.74 +*/ +#define GLIB_VERSION_2_74 (G_ENCODE_VERSION (2, 74)) +/** +* GLIB_VERSION_2_76: +* +* A macro that evaluates to the 2.76 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.76 +*/ +#define GLIB_VERSION_2_76 (G_ENCODE_VERSION (2, 76)) +/** +* GLIB_VERSION_2_78: +* +* A macro that evaluates to the 2.78 version of GLib, in a format +* that can be used by the C pre-processor. +* +* Since: 2.78 +*/ +#define GLIB_VERSION_2_78 (G_ENCODE_VERSION (2, 78)) + +/** + * GLIB_VERSION_CUR_STABLE: + * + * A macro that evaluates to the current stable version of GLib, in a format + * that can be used by the C pre-processor. + * + * During an unstable development cycle, this evaluates to the next stable + * (unreleased) version which will be the result of the development cycle. + * + * Since: 2.32 + */ +#if (GLIB_MINOR_VERSION % 2) +#define GLIB_VERSION_CUR_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION + 1)) +#else +#define GLIB_VERSION_CUR_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION)) +#endif + +/** + * GLIB_VERSION_PREV_STABLE: + * + * A macro that evaluates to the previous stable version of GLib, in a format + * that can be used by the C pre-processor. + * + * During an unstable development cycle, this evaluates to the most recent + * released stable release, which preceded this development cycle. + * + * Since: 2.32 + */ +#if (GLIB_MINOR_VERSION % 2) +#define GLIB_VERSION_PREV_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION - 1)) +#else +#define GLIB_VERSION_PREV_STABLE (G_ENCODE_VERSION (GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION - 2)) +#endif + +/** + * GLIB_VERSION_MIN_REQUIRED: + * + * A macro that should be defined by the user prior to including + * the glib.h header. + * The definition should be one of the predefined GLib version + * macros: %GLIB_VERSION_2_26, %GLIB_VERSION_2_28,... + * + * This macro defines the earliest version of GLib that the package is + * required to be able to compile against. + * + * If the compiler is configured to warn about the use of deprecated + * functions, then using functions that were deprecated in version + * %GLIB_VERSION_MIN_REQUIRED or earlier will cause warnings (but + * using functions deprecated in later releases will not). + * + * Since: 2.32 + */ +/* If the package sets GLIB_VERSION_MIN_REQUIRED to some future + * GLIB_VERSION_X_Y value that we don't know about, it will compare as + * 0 in preprocessor tests. + */ +#ifndef GLIB_VERSION_MIN_REQUIRED +#define GLIB_VERSION_MIN_REQUIRED (GLIB_VERSION_CUR_STABLE) +#elif GLIB_VERSION_MIN_REQUIRED == 0 +#undef GLIB_VERSION_MIN_REQUIRED +#define GLIB_VERSION_MIN_REQUIRED (GLIB_VERSION_CUR_STABLE + 2) +#endif + +/** + * GLIB_VERSION_MAX_ALLOWED: + * + * A macro that should be defined by the user prior to including + * the glib.h header. + * The definition should be one of the predefined GLib version + * macros: %GLIB_VERSION_2_26, %GLIB_VERSION_2_28,... + * + * This macro defines the latest version of the GLib API that the + * package is allowed to make use of. + * + * If the compiler is configured to warn about the use of deprecated + * functions, then using functions added after version + * %GLIB_VERSION_MAX_ALLOWED will cause warnings. + * + * Unless you are using GLIB_CHECK_VERSION() or the like to compile + * different code depending on the GLib version, then this should be + * set to the same value as %GLIB_VERSION_MIN_REQUIRED. + * + * Since: 2.32 + */ +#if !defined(GLIB_VERSION_MAX_ALLOWED) || (GLIB_VERSION_MAX_ALLOWED == 0) +#undef GLIB_VERSION_MAX_ALLOWED +#define GLIB_VERSION_MAX_ALLOWED (GLIB_VERSION_CUR_STABLE) +#endif + +/* sanity checks */ +#if GLIB_VERSION_MIN_REQUIRED > GLIB_VERSION_CUR_STABLE +#error "GLIB_VERSION_MIN_REQUIRED must be <= GLIB_VERSION_CUR_STABLE" +#endif +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_MIN_REQUIRED +#error "GLIB_VERSION_MAX_ALLOWED must be >= GLIB_VERSION_MIN_REQUIRED" +#endif +#if GLIB_VERSION_MIN_REQUIRED < GLIB_VERSION_2_26 +#error "GLIB_VERSION_MIN_REQUIRED must be >= GLIB_VERSION_2_26" +#endif + +#endif /* __G_VERSION_MACROS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gwin32.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gwin32.h new file mode 100644 index 000000000..e38a7f90a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/glib/gwin32.h @@ -0,0 +1,142 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __G_WIN32_H__ +#define __G_WIN32_H__ + +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +#ifdef G_PLATFORM_WIN32 + +G_BEGIN_DECLS + +#ifndef MAXPATHLEN +#define MAXPATHLEN 1024 +#endif + +#ifdef G_OS_WIN32 + +/* + * To get prototypes for the following POSIXish functions, you have to + * include the indicated non-POSIX headers. The functions are defined + * in OLDNAMES.LIB (MSVC) or -lmoldname-msvc (mingw32). But note that + * for POSIX functions that take or return file names in the system + * codepage, in many cases you would want to use the GLib wrappers in + * gstdio.h and UTF-8 instead. + * + * getcwd: (MSVC), (mingw32) + * getpid: + * access: + * unlink: or + * open, read, write, lseek, close: + * rmdir: + * pipe: (actually, _pipe()) + */ + +/* For some POSIX functions that are not provided by the MS runtime, + * we provide emulation functions in glib, which are prefixed with + * g_win32_. Or that was the idea at some time, but there is just one + * of those: + */ +GLIB_AVAILABLE_IN_ALL +gint g_win32_ftruncate (gint f, + guint size); +#endif /* G_OS_WIN32 */ + +/* The MS setlocale uses locale names of the form "English_United + * States.1252" etc. We want the Unixish standard form "en", "zh_TW" + * etc. This function gets the current thread locale from Windows and + * returns it as a string of the above form for use in forming file + * names etc. The returned string should be deallocated with g_free(). + */ +GLIB_AVAILABLE_IN_ALL +gchar* g_win32_getlocale (void); + +/* Translate a Win32 error code (as returned by GetLastError()) into + * the corresponding message. The returned string should be deallocated + * with g_free(). + */ +GLIB_AVAILABLE_IN_ALL +gchar* g_win32_error_message (gint error); + +GLIB_DEPRECATED +gchar* g_win32_get_package_installation_directory (const gchar *package, + const gchar *dll_name); + +GLIB_DEPRECATED +gchar* g_win32_get_package_installation_subdirectory (const gchar *package, + const gchar *dll_name, + const gchar *subdir); + +GLIB_AVAILABLE_IN_ALL +gchar* g_win32_get_package_installation_directory_of_module (gpointer hmodule); + +GLIB_DEPRECATED_IN_2_44_FOR(g_win32_check_windows_version) +guint g_win32_get_windows_version (void); + +GLIB_AVAILABLE_IN_ALL +gchar* g_win32_locale_filename_from_utf8 (const gchar *utf8filename); + +GLIB_AVAILABLE_IN_2_40 +gchar ** g_win32_get_command_line (void); + +/* As of GLib 2.14 we only support NT-based Windows */ +#define G_WIN32_IS_NT_BASED() TRUE +#define G_WIN32_HAVE_WIDECHAR_API() TRUE + +/** + * GWin32OSType: + * @G_WIN32_OS_ANY: The running system can be a workstation or a server edition of + * Windows. The type of the running system is therefore not checked. + * @G_WIN32_OS_WORKSTATION: The running system is a workstation edition of Windows, + * such as Windows 7 Professional. + * @G_WIN32_OS_SERVER: The running system is a server edition of Windows, such as + * Windows Server 2008 R2. + * + * Type of Windows edition to check for at run-time. + **/ +typedef enum +{ + G_WIN32_OS_ANY, + G_WIN32_OS_WORKSTATION, + G_WIN32_OS_SERVER, +} GWin32OSType; + +GLIB_AVAILABLE_IN_2_44 +gboolean g_win32_check_windows_version (const gint major, + const gint minor, + const gint spver, + const GWin32OSType os_type); + +G_END_DECLS + +#endif /* G_PLATFORM_WIN32 */ + +#endif /* __G_WIN32_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gmodule.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gmodule.h new file mode 100644 index 000000000..5330a08e7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gmodule.h @@ -0,0 +1,147 @@ +/* GMODULE - GLIB wrapper code for dynamic module loading + * Copyright (C) 1998 Tim Janik + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#ifndef __GMODULE_H__ +#define __GMODULE_H__ + +#include +#include + +G_BEGIN_DECLS + +/* exporting and importing functions, this is special cased + * to feature Windows dll stubs. + */ +#if defined(_WIN32) || defined(__CYGWIN__) +# define G_MODULE_EXPORT __declspec(dllexport) +# define G_MODULE_IMPORT __declspec(dllimport) extern +#elif __GNUC__ >= 4 +# define G_MODULE_EXPORT __attribute__((visibility("default"))) +# define G_MODULE_IMPORT extern +#else /* !defined(_WIN32) && !defined(__CYGWIN__) && __GNUC__ < 4 */ +# define G_MODULE_EXPORT +# define G_MODULE_IMPORT extern +#endif + +/** + * GModuleFlags: + * @G_MODULE_BIND_LAZY: specifies that symbols are only resolved when + * needed. The default action is to bind all symbols when the module + * is loaded. + * @G_MODULE_BIND_LOCAL: specifies that symbols in the module should + * not be added to the global name space. The default action on most + * platforms is to place symbols in the module in the global name space, + * which may cause conflicts with existing symbols. + * @G_MODULE_BIND_MASK: mask for all flags. + * + * Flags passed to g_module_open(). + * Note that these flags are not supported on all platforms. + */ +typedef enum +{ + G_MODULE_BIND_LAZY = 1 << 0, + G_MODULE_BIND_LOCAL = 1 << 1, + G_MODULE_BIND_MASK = 0x03 +} GModuleFlags; + +typedef struct _GModule GModule; +typedef const gchar* (*GModuleCheckInit) (GModule *module); +typedef void (*GModuleUnload) (GModule *module); + +#define G_MODULE_ERROR g_module_error_quark () GMODULE_AVAILABLE_MACRO_IN_2_70 +GMODULE_AVAILABLE_IN_2_70 +GQuark g_module_error_quark (void); + +/** + * GModuleError: + * @G_MODULE_ERROR_FAILED: there was an error loading or opening a module file + * @G_MODULE_ERROR_CHECK_FAILED: a module returned an error from its `g_module_check_init()` function + * + * Errors returned by g_module_open_full(). + * + * Since: 2.70 + */ +typedef enum +{ + G_MODULE_ERROR_FAILED, + G_MODULE_ERROR_CHECK_FAILED, +} GModuleError +GMODULE_AVAILABLE_ENUMERATOR_IN_2_70; + +/* return TRUE if dynamic module loading is supported */ +GMODULE_AVAILABLE_IN_ALL +gboolean g_module_supported (void) G_GNUC_CONST; + +/* open a module 'file_name' and return handle, which is NULL on error */ +GMODULE_AVAILABLE_IN_ALL +GModule* g_module_open (const gchar *file_name, + GModuleFlags flags); + +GMODULE_AVAILABLE_IN_2_70 +GModule *g_module_open_full (const gchar *file_name, + GModuleFlags flags, + GError **error); + +/* close a previously opened module, returns TRUE on success */ +GMODULE_AVAILABLE_IN_ALL +gboolean g_module_close (GModule *module); + +/* make a module resident so g_module_close on it will be ignored */ +GMODULE_AVAILABLE_IN_ALL +void g_module_make_resident (GModule *module); + +/* query the last module error as a string */ +GMODULE_AVAILABLE_IN_ALL +const gchar * g_module_error (void); + +/* retrieve a symbol pointer from 'module', returns TRUE on success */ +GMODULE_AVAILABLE_IN_ALL +gboolean g_module_symbol (GModule *module, + const gchar *symbol_name, + gpointer *symbol); + +/* retrieve the file name from an existing module */ +GMODULE_AVAILABLE_IN_ALL +const gchar * g_module_name (GModule *module); + +/* Build the actual file name containing a module. 'directory' is the + * directory where the module file is supposed to be, or NULL or empty + * in which case it should either be in the current directory or, on + * some operating systems, in some standard place, for instance on the + * PATH. Hence, to be absolutely sure to get the correct module, + * always pass in a directory. The file name consists of the directory, + * if supplied, and 'module_name' suitably decorated according to + * the operating system's conventions (for instance lib*.so or *.dll). + * + * No checks are made that the file exists, or is of correct type. + */ +GMODULE_DEPRECATED_IN_2_76 +gchar* g_module_build_path (const gchar *directory, + const gchar *module_name); + +G_END_DECLS + +#endif /* __GMODULE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gmodule/gmodule-visibility.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gmodule/gmodule-visibility.h new file mode 100644 index 000000000..796d1eedf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gmodule/gmodule-visibility.h @@ -0,0 +1,952 @@ +#pragma once + +#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(GMODULE_STATIC_COMPILATION) +# define _GMODULE_EXPORT __declspec(dllexport) +# define _GMODULE_IMPORT __declspec(dllimport) +#elif __GNUC__ >= 4 +# define _GMODULE_EXPORT __attribute__((visibility("default"))) +# define _GMODULE_IMPORT +#else +# define _GMODULE_EXPORT +# define _GMODULE_IMPORT +#endif +#ifdef GMODULE_COMPILATION +# define _GMODULE_API _GMODULE_EXPORT +#else +# define _GMODULE_API _GMODULE_IMPORT +#endif + +#define _GMODULE_EXTERN _GMODULE_API extern + +#define GMODULE_VAR _GMODULE_EXTERN +#define GMODULE_AVAILABLE_IN_ALL _GMODULE_EXTERN + +#ifdef GLIB_DISABLE_DEPRECATION_WARNINGS +#define GMODULE_DEPRECATED _GMODULE_EXTERN +#define GMODULE_DEPRECATED_FOR(f) _GMODULE_EXTERN +#define GMODULE_UNAVAILABLE(maj,min) _GMODULE_EXTERN +#define GMODULE_UNAVAILABLE_STATIC_INLINE(maj,min) +#else +#define GMODULE_DEPRECATED G_DEPRECATED _GMODULE_EXTERN +#define GMODULE_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GMODULE_EXTERN +#define GMODULE_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _GMODULE_EXTERN +#define GMODULE_UNAVAILABLE_STATIC_INLINE(maj,min) G_UNAVAILABLE(maj,min) +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_26 +#define GMODULE_DEPRECATED_IN_2_26 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_26_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_26 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_26_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_26 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_26_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_26 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_26_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_26 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_26_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_26 +#define GMODULE_DEPRECATED_MACRO_IN_2_26_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_26 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_26_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_26 +#define GMODULE_DEPRECATED_TYPE_IN_2_26_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_26 +#define GMODULE_AVAILABLE_IN_2_26 GMODULE_UNAVAILABLE (2, 26) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_26 GLIB_UNAVAILABLE_STATIC_INLINE (2, 26) +#define GMODULE_AVAILABLE_MACRO_IN_2_26 GLIB_UNAVAILABLE_MACRO (2, 26) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_26 GLIB_UNAVAILABLE_ENUMERATOR (2, 26) +#define GMODULE_AVAILABLE_TYPE_IN_2_26 GLIB_UNAVAILABLE_TYPE (2, 26) +#else +#define GMODULE_AVAILABLE_IN_2_26 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_26 +#define GMODULE_AVAILABLE_MACRO_IN_2_26 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_26 +#define GMODULE_AVAILABLE_TYPE_IN_2_26 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_28 +#define GMODULE_DEPRECATED_IN_2_28 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_28_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_28 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_28_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_28 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_28_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_28 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_28_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_28 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_28_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_28 +#define GMODULE_DEPRECATED_MACRO_IN_2_28_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_28 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_28_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_28 +#define GMODULE_DEPRECATED_TYPE_IN_2_28_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_28 +#define GMODULE_AVAILABLE_IN_2_28 GMODULE_UNAVAILABLE (2, 28) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_28 GLIB_UNAVAILABLE_STATIC_INLINE (2, 28) +#define GMODULE_AVAILABLE_MACRO_IN_2_28 GLIB_UNAVAILABLE_MACRO (2, 28) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_28 GLIB_UNAVAILABLE_ENUMERATOR (2, 28) +#define GMODULE_AVAILABLE_TYPE_IN_2_28 GLIB_UNAVAILABLE_TYPE (2, 28) +#else +#define GMODULE_AVAILABLE_IN_2_28 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_28 +#define GMODULE_AVAILABLE_MACRO_IN_2_28 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_28 +#define GMODULE_AVAILABLE_TYPE_IN_2_28 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_30 +#define GMODULE_DEPRECATED_IN_2_30 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_30_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_30 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_30_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_30 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_30_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_30 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_30_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_30 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_30_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_30 +#define GMODULE_DEPRECATED_MACRO_IN_2_30_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_30 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_30_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_30 +#define GMODULE_DEPRECATED_TYPE_IN_2_30_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_30 +#define GMODULE_AVAILABLE_IN_2_30 GMODULE_UNAVAILABLE (2, 30) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_30 GLIB_UNAVAILABLE_STATIC_INLINE (2, 30) +#define GMODULE_AVAILABLE_MACRO_IN_2_30 GLIB_UNAVAILABLE_MACRO (2, 30) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_30 GLIB_UNAVAILABLE_ENUMERATOR (2, 30) +#define GMODULE_AVAILABLE_TYPE_IN_2_30 GLIB_UNAVAILABLE_TYPE (2, 30) +#else +#define GMODULE_AVAILABLE_IN_2_30 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_30 +#define GMODULE_AVAILABLE_MACRO_IN_2_30 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_30 +#define GMODULE_AVAILABLE_TYPE_IN_2_30 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_32 +#define GMODULE_DEPRECATED_IN_2_32 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_32_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_32 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_32_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_32 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_32_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_32 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_32_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_32 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_32_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_32 +#define GMODULE_DEPRECATED_MACRO_IN_2_32_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_32 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_32_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_32 +#define GMODULE_DEPRECATED_TYPE_IN_2_32_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_32 +#define GMODULE_AVAILABLE_IN_2_32 GMODULE_UNAVAILABLE (2, 32) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_32 GLIB_UNAVAILABLE_STATIC_INLINE (2, 32) +#define GMODULE_AVAILABLE_MACRO_IN_2_32 GLIB_UNAVAILABLE_MACRO (2, 32) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_32 GLIB_UNAVAILABLE_ENUMERATOR (2, 32) +#define GMODULE_AVAILABLE_TYPE_IN_2_32 GLIB_UNAVAILABLE_TYPE (2, 32) +#else +#define GMODULE_AVAILABLE_IN_2_32 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_32 +#define GMODULE_AVAILABLE_MACRO_IN_2_32 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_32 +#define GMODULE_AVAILABLE_TYPE_IN_2_32 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_34 +#define GMODULE_DEPRECATED_IN_2_34 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_34_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_34 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_34_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_34 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_34_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_34 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_34_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_34 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_34_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_34 +#define GMODULE_DEPRECATED_MACRO_IN_2_34_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_34 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_34_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_34 +#define GMODULE_DEPRECATED_TYPE_IN_2_34_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_34 +#define GMODULE_AVAILABLE_IN_2_34 GMODULE_UNAVAILABLE (2, 34) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_34 GLIB_UNAVAILABLE_STATIC_INLINE (2, 34) +#define GMODULE_AVAILABLE_MACRO_IN_2_34 GLIB_UNAVAILABLE_MACRO (2, 34) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_34 GLIB_UNAVAILABLE_ENUMERATOR (2, 34) +#define GMODULE_AVAILABLE_TYPE_IN_2_34 GLIB_UNAVAILABLE_TYPE (2, 34) +#else +#define GMODULE_AVAILABLE_IN_2_34 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_34 +#define GMODULE_AVAILABLE_MACRO_IN_2_34 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_34 +#define GMODULE_AVAILABLE_TYPE_IN_2_34 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_36 +#define GMODULE_DEPRECATED_IN_2_36 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_36_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_36 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_36_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_36 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_36_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_36 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_36_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_36 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_36_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_36 +#define GMODULE_DEPRECATED_MACRO_IN_2_36_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_36 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_36_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_36 +#define GMODULE_DEPRECATED_TYPE_IN_2_36_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_36 +#define GMODULE_AVAILABLE_IN_2_36 GMODULE_UNAVAILABLE (2, 36) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_36 GLIB_UNAVAILABLE_STATIC_INLINE (2, 36) +#define GMODULE_AVAILABLE_MACRO_IN_2_36 GLIB_UNAVAILABLE_MACRO (2, 36) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_36 GLIB_UNAVAILABLE_ENUMERATOR (2, 36) +#define GMODULE_AVAILABLE_TYPE_IN_2_36 GLIB_UNAVAILABLE_TYPE (2, 36) +#else +#define GMODULE_AVAILABLE_IN_2_36 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_36 +#define GMODULE_AVAILABLE_MACRO_IN_2_36 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_36 +#define GMODULE_AVAILABLE_TYPE_IN_2_36 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_38 +#define GMODULE_DEPRECATED_IN_2_38 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_38_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_38 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_38_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_38 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_38_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_38 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_38_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_38 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_38_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_38 +#define GMODULE_DEPRECATED_MACRO_IN_2_38_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_38 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_38_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_38 +#define GMODULE_DEPRECATED_TYPE_IN_2_38_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 +#define GMODULE_AVAILABLE_IN_2_38 GMODULE_UNAVAILABLE (2, 38) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_38 GLIB_UNAVAILABLE_STATIC_INLINE (2, 38) +#define GMODULE_AVAILABLE_MACRO_IN_2_38 GLIB_UNAVAILABLE_MACRO (2, 38) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_38 GLIB_UNAVAILABLE_ENUMERATOR (2, 38) +#define GMODULE_AVAILABLE_TYPE_IN_2_38 GLIB_UNAVAILABLE_TYPE (2, 38) +#else +#define GMODULE_AVAILABLE_IN_2_38 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_38 +#define GMODULE_AVAILABLE_MACRO_IN_2_38 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_38 +#define GMODULE_AVAILABLE_TYPE_IN_2_38 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_40 +#define GMODULE_DEPRECATED_IN_2_40 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_40_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_40 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_40_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_40 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_40_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_40 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_40_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_40 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_40_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_40 +#define GMODULE_DEPRECATED_MACRO_IN_2_40_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_40 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_40_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_40 +#define GMODULE_DEPRECATED_TYPE_IN_2_40_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_40 +#define GMODULE_AVAILABLE_IN_2_40 GMODULE_UNAVAILABLE (2, 40) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_40 GLIB_UNAVAILABLE_STATIC_INLINE (2, 40) +#define GMODULE_AVAILABLE_MACRO_IN_2_40 GLIB_UNAVAILABLE_MACRO (2, 40) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_40 GLIB_UNAVAILABLE_ENUMERATOR (2, 40) +#define GMODULE_AVAILABLE_TYPE_IN_2_40 GLIB_UNAVAILABLE_TYPE (2, 40) +#else +#define GMODULE_AVAILABLE_IN_2_40 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_40 +#define GMODULE_AVAILABLE_MACRO_IN_2_40 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_40 +#define GMODULE_AVAILABLE_TYPE_IN_2_40 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_42 +#define GMODULE_DEPRECATED_IN_2_42 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_42_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_42 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_42_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_42 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_42_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_42 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_42_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_42 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_42_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_42 +#define GMODULE_DEPRECATED_MACRO_IN_2_42_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_42 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_42_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_42 +#define GMODULE_DEPRECATED_TYPE_IN_2_42_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_42 +#define GMODULE_AVAILABLE_IN_2_42 GMODULE_UNAVAILABLE (2, 42) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_42 GLIB_UNAVAILABLE_STATIC_INLINE (2, 42) +#define GMODULE_AVAILABLE_MACRO_IN_2_42 GLIB_UNAVAILABLE_MACRO (2, 42) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_42 GLIB_UNAVAILABLE_ENUMERATOR (2, 42) +#define GMODULE_AVAILABLE_TYPE_IN_2_42 GLIB_UNAVAILABLE_TYPE (2, 42) +#else +#define GMODULE_AVAILABLE_IN_2_42 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_42 +#define GMODULE_AVAILABLE_MACRO_IN_2_42 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_42 +#define GMODULE_AVAILABLE_TYPE_IN_2_42 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_44 +#define GMODULE_DEPRECATED_IN_2_44 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_44_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_44 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_44_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_44 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_44_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_44 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_44_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_44 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_44_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_44 +#define GMODULE_DEPRECATED_MACRO_IN_2_44_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_44 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_44_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_44 +#define GMODULE_DEPRECATED_TYPE_IN_2_44_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_44 +#define GMODULE_AVAILABLE_IN_2_44 GMODULE_UNAVAILABLE (2, 44) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_44 GLIB_UNAVAILABLE_STATIC_INLINE (2, 44) +#define GMODULE_AVAILABLE_MACRO_IN_2_44 GLIB_UNAVAILABLE_MACRO (2, 44) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_44 GLIB_UNAVAILABLE_ENUMERATOR (2, 44) +#define GMODULE_AVAILABLE_TYPE_IN_2_44 GLIB_UNAVAILABLE_TYPE (2, 44) +#else +#define GMODULE_AVAILABLE_IN_2_44 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_44 +#define GMODULE_AVAILABLE_MACRO_IN_2_44 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_44 +#define GMODULE_AVAILABLE_TYPE_IN_2_44 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_46 +#define GMODULE_DEPRECATED_IN_2_46 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_46_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_46 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_46_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_46 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_46_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_46 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_46_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_46 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_46_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_46 +#define GMODULE_DEPRECATED_MACRO_IN_2_46_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_46 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_46_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_46 +#define GMODULE_DEPRECATED_TYPE_IN_2_46_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_46 +#define GMODULE_AVAILABLE_IN_2_46 GMODULE_UNAVAILABLE (2, 46) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_46 GLIB_UNAVAILABLE_STATIC_INLINE (2, 46) +#define GMODULE_AVAILABLE_MACRO_IN_2_46 GLIB_UNAVAILABLE_MACRO (2, 46) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_46 GLIB_UNAVAILABLE_ENUMERATOR (2, 46) +#define GMODULE_AVAILABLE_TYPE_IN_2_46 GLIB_UNAVAILABLE_TYPE (2, 46) +#else +#define GMODULE_AVAILABLE_IN_2_46 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_46 +#define GMODULE_AVAILABLE_MACRO_IN_2_46 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_46 +#define GMODULE_AVAILABLE_TYPE_IN_2_46 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_48 +#define GMODULE_DEPRECATED_IN_2_48 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_48_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_48 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_48_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_48 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_48_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_48 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_48_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_48 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_48_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_48 +#define GMODULE_DEPRECATED_MACRO_IN_2_48_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_48 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_48_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_48 +#define GMODULE_DEPRECATED_TYPE_IN_2_48_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_48 +#define GMODULE_AVAILABLE_IN_2_48 GMODULE_UNAVAILABLE (2, 48) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_48 GLIB_UNAVAILABLE_STATIC_INLINE (2, 48) +#define GMODULE_AVAILABLE_MACRO_IN_2_48 GLIB_UNAVAILABLE_MACRO (2, 48) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_48 GLIB_UNAVAILABLE_ENUMERATOR (2, 48) +#define GMODULE_AVAILABLE_TYPE_IN_2_48 GLIB_UNAVAILABLE_TYPE (2, 48) +#else +#define GMODULE_AVAILABLE_IN_2_48 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_48 +#define GMODULE_AVAILABLE_MACRO_IN_2_48 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_48 +#define GMODULE_AVAILABLE_TYPE_IN_2_48 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_50 +#define GMODULE_DEPRECATED_IN_2_50 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_50_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_50 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_50_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_50 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_50_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_50 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_50_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_50 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_50_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_50 +#define GMODULE_DEPRECATED_MACRO_IN_2_50_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_50 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_50_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_50 +#define GMODULE_DEPRECATED_TYPE_IN_2_50_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_50 +#define GMODULE_AVAILABLE_IN_2_50 GMODULE_UNAVAILABLE (2, 50) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_50 GLIB_UNAVAILABLE_STATIC_INLINE (2, 50) +#define GMODULE_AVAILABLE_MACRO_IN_2_50 GLIB_UNAVAILABLE_MACRO (2, 50) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_50 GLIB_UNAVAILABLE_ENUMERATOR (2, 50) +#define GMODULE_AVAILABLE_TYPE_IN_2_50 GLIB_UNAVAILABLE_TYPE (2, 50) +#else +#define GMODULE_AVAILABLE_IN_2_50 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_50 +#define GMODULE_AVAILABLE_MACRO_IN_2_50 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_50 +#define GMODULE_AVAILABLE_TYPE_IN_2_50 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_52 +#define GMODULE_DEPRECATED_IN_2_52 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_52_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_52 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_52_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_52 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_52_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_52 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_52_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_52 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_52_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_52 +#define GMODULE_DEPRECATED_MACRO_IN_2_52_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_52 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_52_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_52 +#define GMODULE_DEPRECATED_TYPE_IN_2_52_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_52 +#define GMODULE_AVAILABLE_IN_2_52 GMODULE_UNAVAILABLE (2, 52) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_52 GLIB_UNAVAILABLE_STATIC_INLINE (2, 52) +#define GMODULE_AVAILABLE_MACRO_IN_2_52 GLIB_UNAVAILABLE_MACRO (2, 52) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_52 GLIB_UNAVAILABLE_ENUMERATOR (2, 52) +#define GMODULE_AVAILABLE_TYPE_IN_2_52 GLIB_UNAVAILABLE_TYPE (2, 52) +#else +#define GMODULE_AVAILABLE_IN_2_52 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_52 +#define GMODULE_AVAILABLE_MACRO_IN_2_52 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_52 +#define GMODULE_AVAILABLE_TYPE_IN_2_52 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_54 +#define GMODULE_DEPRECATED_IN_2_54 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_54_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_54 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_54_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_54 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_54_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_54 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_54_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_54 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_54_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_54 +#define GMODULE_DEPRECATED_MACRO_IN_2_54_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_54 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_54_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_54 +#define GMODULE_DEPRECATED_TYPE_IN_2_54_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_54 +#define GMODULE_AVAILABLE_IN_2_54 GMODULE_UNAVAILABLE (2, 54) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_54 GLIB_UNAVAILABLE_STATIC_INLINE (2, 54) +#define GMODULE_AVAILABLE_MACRO_IN_2_54 GLIB_UNAVAILABLE_MACRO (2, 54) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_54 GLIB_UNAVAILABLE_ENUMERATOR (2, 54) +#define GMODULE_AVAILABLE_TYPE_IN_2_54 GLIB_UNAVAILABLE_TYPE (2, 54) +#else +#define GMODULE_AVAILABLE_IN_2_54 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_54 +#define GMODULE_AVAILABLE_MACRO_IN_2_54 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_54 +#define GMODULE_AVAILABLE_TYPE_IN_2_54 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_56 +#define GMODULE_DEPRECATED_IN_2_56 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_56_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_56 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_56_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_56 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_56_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_56 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_56_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_56 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_56_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_56 +#define GMODULE_DEPRECATED_MACRO_IN_2_56_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_56 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_56_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_56 +#define GMODULE_DEPRECATED_TYPE_IN_2_56_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_56 +#define GMODULE_AVAILABLE_IN_2_56 GMODULE_UNAVAILABLE (2, 56) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_56 GLIB_UNAVAILABLE_STATIC_INLINE (2, 56) +#define GMODULE_AVAILABLE_MACRO_IN_2_56 GLIB_UNAVAILABLE_MACRO (2, 56) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_56 GLIB_UNAVAILABLE_ENUMERATOR (2, 56) +#define GMODULE_AVAILABLE_TYPE_IN_2_56 GLIB_UNAVAILABLE_TYPE (2, 56) +#else +#define GMODULE_AVAILABLE_IN_2_56 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_56 +#define GMODULE_AVAILABLE_MACRO_IN_2_56 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_56 +#define GMODULE_AVAILABLE_TYPE_IN_2_56 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_58 +#define GMODULE_DEPRECATED_IN_2_58 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_58_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_58 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_58_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_58 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_58_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_58 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_58_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_58 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_58_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_58 +#define GMODULE_DEPRECATED_MACRO_IN_2_58_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_58 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_58_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_58 +#define GMODULE_DEPRECATED_TYPE_IN_2_58_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_58 +#define GMODULE_AVAILABLE_IN_2_58 GMODULE_UNAVAILABLE (2, 58) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_58 GLIB_UNAVAILABLE_STATIC_INLINE (2, 58) +#define GMODULE_AVAILABLE_MACRO_IN_2_58 GLIB_UNAVAILABLE_MACRO (2, 58) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_58 GLIB_UNAVAILABLE_ENUMERATOR (2, 58) +#define GMODULE_AVAILABLE_TYPE_IN_2_58 GLIB_UNAVAILABLE_TYPE (2, 58) +#else +#define GMODULE_AVAILABLE_IN_2_58 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_58 +#define GMODULE_AVAILABLE_MACRO_IN_2_58 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_58 +#define GMODULE_AVAILABLE_TYPE_IN_2_58 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_60 +#define GMODULE_DEPRECATED_IN_2_60 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_60_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_60 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_60_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_60 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_60_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_60 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_60_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_60 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_60_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_60 +#define GMODULE_DEPRECATED_MACRO_IN_2_60_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_60 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_60_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_60 +#define GMODULE_DEPRECATED_TYPE_IN_2_60_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_60 +#define GMODULE_AVAILABLE_IN_2_60 GMODULE_UNAVAILABLE (2, 60) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_60 GLIB_UNAVAILABLE_STATIC_INLINE (2, 60) +#define GMODULE_AVAILABLE_MACRO_IN_2_60 GLIB_UNAVAILABLE_MACRO (2, 60) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_60 GLIB_UNAVAILABLE_ENUMERATOR (2, 60) +#define GMODULE_AVAILABLE_TYPE_IN_2_60 GLIB_UNAVAILABLE_TYPE (2, 60) +#else +#define GMODULE_AVAILABLE_IN_2_60 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_60 +#define GMODULE_AVAILABLE_MACRO_IN_2_60 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_60 +#define GMODULE_AVAILABLE_TYPE_IN_2_60 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_62 +#define GMODULE_DEPRECATED_IN_2_62 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_62_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_62 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_62_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_62 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_62_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_62 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_62_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_62 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_62_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_62 +#define GMODULE_DEPRECATED_MACRO_IN_2_62_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_62 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_62_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_62 +#define GMODULE_DEPRECATED_TYPE_IN_2_62_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_62 +#define GMODULE_AVAILABLE_IN_2_62 GMODULE_UNAVAILABLE (2, 62) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_62 GLIB_UNAVAILABLE_STATIC_INLINE (2, 62) +#define GMODULE_AVAILABLE_MACRO_IN_2_62 GLIB_UNAVAILABLE_MACRO (2, 62) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_62 GLIB_UNAVAILABLE_ENUMERATOR (2, 62) +#define GMODULE_AVAILABLE_TYPE_IN_2_62 GLIB_UNAVAILABLE_TYPE (2, 62) +#else +#define GMODULE_AVAILABLE_IN_2_62 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_62 +#define GMODULE_AVAILABLE_MACRO_IN_2_62 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_62 +#define GMODULE_AVAILABLE_TYPE_IN_2_62 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_64 +#define GMODULE_DEPRECATED_IN_2_64 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_64_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_64 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_64_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_64 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_64_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_64 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_64_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_64 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_64_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_64 +#define GMODULE_DEPRECATED_MACRO_IN_2_64_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_64 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_64_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_64 +#define GMODULE_DEPRECATED_TYPE_IN_2_64_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_64 +#define GMODULE_AVAILABLE_IN_2_64 GMODULE_UNAVAILABLE (2, 64) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_64 GLIB_UNAVAILABLE_STATIC_INLINE (2, 64) +#define GMODULE_AVAILABLE_MACRO_IN_2_64 GLIB_UNAVAILABLE_MACRO (2, 64) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_64 GLIB_UNAVAILABLE_ENUMERATOR (2, 64) +#define GMODULE_AVAILABLE_TYPE_IN_2_64 GLIB_UNAVAILABLE_TYPE (2, 64) +#else +#define GMODULE_AVAILABLE_IN_2_64 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_64 +#define GMODULE_AVAILABLE_MACRO_IN_2_64 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_64 +#define GMODULE_AVAILABLE_TYPE_IN_2_64 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_66 +#define GMODULE_DEPRECATED_IN_2_66 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_66_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_66 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_66_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_66 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_66_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_66 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_66_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_66 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_66_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_66 +#define GMODULE_DEPRECATED_MACRO_IN_2_66_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_66 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_66_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_66 +#define GMODULE_DEPRECATED_TYPE_IN_2_66_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_66 +#define GMODULE_AVAILABLE_IN_2_66 GMODULE_UNAVAILABLE (2, 66) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_66 GLIB_UNAVAILABLE_STATIC_INLINE (2, 66) +#define GMODULE_AVAILABLE_MACRO_IN_2_66 GLIB_UNAVAILABLE_MACRO (2, 66) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_66 GLIB_UNAVAILABLE_ENUMERATOR (2, 66) +#define GMODULE_AVAILABLE_TYPE_IN_2_66 GLIB_UNAVAILABLE_TYPE (2, 66) +#else +#define GMODULE_AVAILABLE_IN_2_66 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_66 +#define GMODULE_AVAILABLE_MACRO_IN_2_66 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_66 +#define GMODULE_AVAILABLE_TYPE_IN_2_66 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_68 +#define GMODULE_DEPRECATED_IN_2_68 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_68_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_68 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_68_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_68 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_68_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_68 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_68_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_68 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_68_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_68 +#define GMODULE_DEPRECATED_MACRO_IN_2_68_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_68 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_68_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_68 +#define GMODULE_DEPRECATED_TYPE_IN_2_68_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_68 +#define GMODULE_AVAILABLE_IN_2_68 GMODULE_UNAVAILABLE (2, 68) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_68 GLIB_UNAVAILABLE_STATIC_INLINE (2, 68) +#define GMODULE_AVAILABLE_MACRO_IN_2_68 GLIB_UNAVAILABLE_MACRO (2, 68) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_68 GLIB_UNAVAILABLE_ENUMERATOR (2, 68) +#define GMODULE_AVAILABLE_TYPE_IN_2_68 GLIB_UNAVAILABLE_TYPE (2, 68) +#else +#define GMODULE_AVAILABLE_IN_2_68 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_68 +#define GMODULE_AVAILABLE_MACRO_IN_2_68 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_68 +#define GMODULE_AVAILABLE_TYPE_IN_2_68 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_70 +#define GMODULE_DEPRECATED_IN_2_70 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_70_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_70 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_70_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_70 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_70_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_70 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_70_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_70 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_70_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_70 +#define GMODULE_DEPRECATED_MACRO_IN_2_70_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_70 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_70_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_70 +#define GMODULE_DEPRECATED_TYPE_IN_2_70_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_70 +#define GMODULE_AVAILABLE_IN_2_70 GMODULE_UNAVAILABLE (2, 70) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_70 GLIB_UNAVAILABLE_STATIC_INLINE (2, 70) +#define GMODULE_AVAILABLE_MACRO_IN_2_70 GLIB_UNAVAILABLE_MACRO (2, 70) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_70 GLIB_UNAVAILABLE_ENUMERATOR (2, 70) +#define GMODULE_AVAILABLE_TYPE_IN_2_70 GLIB_UNAVAILABLE_TYPE (2, 70) +#else +#define GMODULE_AVAILABLE_IN_2_70 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_70 +#define GMODULE_AVAILABLE_MACRO_IN_2_70 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_70 +#define GMODULE_AVAILABLE_TYPE_IN_2_70 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_72 +#define GMODULE_DEPRECATED_IN_2_72 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_72_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_72 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_72_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_72 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_72_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_72 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_72_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_72 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_72_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_72 +#define GMODULE_DEPRECATED_MACRO_IN_2_72_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_72 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_72_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_72 +#define GMODULE_DEPRECATED_TYPE_IN_2_72_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_72 +#define GMODULE_AVAILABLE_IN_2_72 GMODULE_UNAVAILABLE (2, 72) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_72 GLIB_UNAVAILABLE_STATIC_INLINE (2, 72) +#define GMODULE_AVAILABLE_MACRO_IN_2_72 GLIB_UNAVAILABLE_MACRO (2, 72) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_72 GLIB_UNAVAILABLE_ENUMERATOR (2, 72) +#define GMODULE_AVAILABLE_TYPE_IN_2_72 GLIB_UNAVAILABLE_TYPE (2, 72) +#else +#define GMODULE_AVAILABLE_IN_2_72 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_72 +#define GMODULE_AVAILABLE_MACRO_IN_2_72 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_72 +#define GMODULE_AVAILABLE_TYPE_IN_2_72 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_74 +#define GMODULE_DEPRECATED_IN_2_74 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_74_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_74 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_74_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_74 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_74_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_74 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_74_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_74 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_74_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_74 +#define GMODULE_DEPRECATED_MACRO_IN_2_74_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_74 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_74_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_74 +#define GMODULE_DEPRECATED_TYPE_IN_2_74_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_74 +#define GMODULE_AVAILABLE_IN_2_74 GMODULE_UNAVAILABLE (2, 74) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_74 GLIB_UNAVAILABLE_STATIC_INLINE (2, 74) +#define GMODULE_AVAILABLE_MACRO_IN_2_74 GLIB_UNAVAILABLE_MACRO (2, 74) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_74 GLIB_UNAVAILABLE_ENUMERATOR (2, 74) +#define GMODULE_AVAILABLE_TYPE_IN_2_74 GLIB_UNAVAILABLE_TYPE (2, 74) +#else +#define GMODULE_AVAILABLE_IN_2_74 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_74 +#define GMODULE_AVAILABLE_MACRO_IN_2_74 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_74 +#define GMODULE_AVAILABLE_TYPE_IN_2_74 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_76 +#define GMODULE_DEPRECATED_IN_2_76 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_76_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_76 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_76_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_76 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_76_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_76 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_76_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_76 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_76_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_76 +#define GMODULE_DEPRECATED_MACRO_IN_2_76_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_76 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_76_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_76 +#define GMODULE_DEPRECATED_TYPE_IN_2_76_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_76 +#define GMODULE_AVAILABLE_IN_2_76 GMODULE_UNAVAILABLE (2, 76) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_76 GLIB_UNAVAILABLE_STATIC_INLINE (2, 76) +#define GMODULE_AVAILABLE_MACRO_IN_2_76 GLIB_UNAVAILABLE_MACRO (2, 76) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_76 GLIB_UNAVAILABLE_ENUMERATOR (2, 76) +#define GMODULE_AVAILABLE_TYPE_IN_2_76 GLIB_UNAVAILABLE_TYPE (2, 76) +#else +#define GMODULE_AVAILABLE_IN_2_76 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_76 +#define GMODULE_AVAILABLE_MACRO_IN_2_76 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_76 +#define GMODULE_AVAILABLE_TYPE_IN_2_76 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_78 +#define GMODULE_DEPRECATED_IN_2_78 GMODULE_DEPRECATED +#define GMODULE_DEPRECATED_IN_2_78_FOR(f) GMODULE_DEPRECATED_FOR (f) +#define GMODULE_DEPRECATED_MACRO_IN_2_78 GLIB_DEPRECATED_MACRO +#define GMODULE_DEPRECATED_MACRO_IN_2_78_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_78 GLIB_DEPRECATED_ENUMERATOR +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_78_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GMODULE_DEPRECATED_TYPE_IN_2_78 GLIB_DEPRECATED_TYPE +#define GMODULE_DEPRECATED_TYPE_IN_2_78_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GMODULE_DEPRECATED_IN_2_78 _GMODULE_EXTERN +#define GMODULE_DEPRECATED_IN_2_78_FOR(f) _GMODULE_EXTERN +#define GMODULE_DEPRECATED_MACRO_IN_2_78 +#define GMODULE_DEPRECATED_MACRO_IN_2_78_FOR(f) +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_78 +#define GMODULE_DEPRECATED_ENUMERATOR_IN_2_78_FOR(f) +#define GMODULE_DEPRECATED_TYPE_IN_2_78 +#define GMODULE_DEPRECATED_TYPE_IN_2_78_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_78 +#define GMODULE_AVAILABLE_IN_2_78 GMODULE_UNAVAILABLE (2, 78) +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_78 GLIB_UNAVAILABLE_STATIC_INLINE (2, 78) +#define GMODULE_AVAILABLE_MACRO_IN_2_78 GLIB_UNAVAILABLE_MACRO (2, 78) +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_78 GLIB_UNAVAILABLE_ENUMERATOR (2, 78) +#define GMODULE_AVAILABLE_TYPE_IN_2_78 GLIB_UNAVAILABLE_TYPE (2, 78) +#else +#define GMODULE_AVAILABLE_IN_2_78 _GMODULE_EXTERN +#define GMODULE_AVAILABLE_STATIC_INLINE_IN_2_78 +#define GMODULE_AVAILABLE_MACRO_IN_2_78 +#define GMODULE_AVAILABLE_ENUMERATOR_IN_2_78 +#define GMODULE_AVAILABLE_TYPE_IN_2_78 +#endif diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gbinding.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gbinding.h new file mode 100644 index 000000000..8504de21d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gbinding.h @@ -0,0 +1,156 @@ +/* gbinding.h: Binding for object properties + * + * Copyright (C) 2010 Intel Corp. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * Author: Emmanuele Bassi + */ + +#ifndef __G_BINDING_H__ +#define __G_BINDING_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +#define G_TYPE_BINDING_FLAGS (g_binding_flags_get_type ()) + +#define G_TYPE_BINDING (g_binding_get_type ()) +#define G_BINDING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_BINDING, GBinding)) +#define G_IS_BINDING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_BINDING)) + +/** + * GBinding: + * + * GBinding is an opaque structure whose members + * cannot be accessed directly. + * + * Since: 2.26 + */ +typedef struct _GBinding GBinding; + +/** + * GBindingTransformFunc: + * @binding: a #GBinding + * @from_value: the #GValue containing the value to transform + * @to_value: the #GValue in which to store the transformed value + * @user_data: data passed to the transform function + * + * A function to be called to transform @from_value to @to_value. + * + * If this is the @transform_to function of a binding, then @from_value + * is the @source_property on the @source object, and @to_value is the + * @target_property on the @target object. If this is the + * @transform_from function of a %G_BINDING_BIDIRECTIONAL binding, + * then those roles are reversed. + * + * Returns: %TRUE if the transformation was successful, and %FALSE + * otherwise + * + * Since: 2.26 + */ +typedef gboolean (* GBindingTransformFunc) (GBinding *binding, + const GValue *from_value, + GValue *to_value, + gpointer user_data); + +/** + * GBindingFlags: + * @G_BINDING_DEFAULT: The default binding; if the source property + * changes, the target property is updated with its value. + * @G_BINDING_BIDIRECTIONAL: Bidirectional binding; if either the + * property of the source or the property of the target changes, + * the other is updated. + * @G_BINDING_SYNC_CREATE: Synchronize the values of the source and + * target properties when creating the binding; the direction of + * the synchronization is always from the source to the target. + * @G_BINDING_INVERT_BOOLEAN: If the two properties being bound are + * booleans, setting one to %TRUE will result in the other being + * set to %FALSE and vice versa. This flag will only work for + * boolean properties, and cannot be used when passing custom + * transformation functions to g_object_bind_property_full(). + * + * Flags to be passed to g_object_bind_property() or + * g_object_bind_property_full(). + * + * This enumeration can be extended at later date. + * + * Since: 2.26 + */ +typedef enum { /*< prefix=G_BINDING >*/ + G_BINDING_DEFAULT = 0, + + G_BINDING_BIDIRECTIONAL = 1 << 0, + G_BINDING_SYNC_CREATE = 1 << 1, + G_BINDING_INVERT_BOOLEAN = 1 << 2 +} GBindingFlags; + +GOBJECT_AVAILABLE_IN_ALL +GType g_binding_flags_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_binding_get_type (void) G_GNUC_CONST; + +GOBJECT_AVAILABLE_IN_ALL +GBindingFlags g_binding_get_flags (GBinding *binding); +GOBJECT_DEPRECATED_IN_2_68_FOR(g_binding_dup_source) +GObject * g_binding_get_source (GBinding *binding); +GOBJECT_AVAILABLE_IN_2_68 +GObject * g_binding_dup_source (GBinding *binding); +GOBJECT_DEPRECATED_IN_2_68_FOR(g_binding_dup_target) +GObject * g_binding_get_target (GBinding *binding); +GOBJECT_AVAILABLE_IN_2_68 +GObject * g_binding_dup_target (GBinding *binding); +GOBJECT_AVAILABLE_IN_ALL +const gchar * g_binding_get_source_property (GBinding *binding); +GOBJECT_AVAILABLE_IN_ALL +const gchar * g_binding_get_target_property (GBinding *binding); +GOBJECT_AVAILABLE_IN_2_38 +void g_binding_unbind (GBinding *binding); + +GOBJECT_AVAILABLE_IN_ALL +GBinding *g_object_bind_property (gpointer source, + const gchar *source_property, + gpointer target, + const gchar *target_property, + GBindingFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GBinding *g_object_bind_property_full (gpointer source, + const gchar *source_property, + gpointer target, + const gchar *target_property, + GBindingFlags flags, + GBindingTransformFunc transform_to, + GBindingTransformFunc transform_from, + gpointer user_data, + GDestroyNotify notify); +GOBJECT_AVAILABLE_IN_ALL +GBinding *g_object_bind_property_with_closures (gpointer source, + const gchar *source_property, + gpointer target, + const gchar *target_property, + GBindingFlags flags, + GClosure *transform_to, + GClosure *transform_from); + +G_END_DECLS + +#endif /* __G_BINDING_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gbindinggroup.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gbindinggroup.h new file mode 100644 index 000000000..4cbdfe480 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gbindinggroup.h @@ -0,0 +1,85 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * + * Copyright (C) 2015-2022 Christian Hergert + * Copyright (C) 2015 Garrett Regier + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef __G_BINDING_GROUP_H__ +#define __G_BINDING_GROUP_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include + +G_BEGIN_DECLS + +#define G_BINDING_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_BINDING_GROUP, GBindingGroup)) +#define G_IS_BINDING_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_BINDING_GROUP)) +#define G_TYPE_BINDING_GROUP (g_binding_group_get_type()) + +/** + * GBindingGroup: + * + * GBindingGroup is an opaque structure whose members + * cannot be accessed directly. + * + * Since: 2.72 + */ +typedef struct _GBindingGroup GBindingGroup; + +GOBJECT_AVAILABLE_IN_2_72 +GType g_binding_group_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_72 +GBindingGroup *g_binding_group_new (void); +GOBJECT_AVAILABLE_IN_2_72 +gpointer g_binding_group_dup_source (GBindingGroup *self); +GOBJECT_AVAILABLE_IN_2_72 +void g_binding_group_set_source (GBindingGroup *self, + gpointer source); +GOBJECT_AVAILABLE_IN_2_72 +void g_binding_group_bind (GBindingGroup *self, + const gchar *source_property, + gpointer target, + const gchar *target_property, + GBindingFlags flags); +GOBJECT_AVAILABLE_IN_2_72 +void g_binding_group_bind_full (GBindingGroup *self, + const gchar *source_property, + gpointer target, + const gchar *target_property, + GBindingFlags flags, + GBindingTransformFunc transform_to, + GBindingTransformFunc transform_from, + gpointer user_data, + GDestroyNotify user_data_destroy); +GOBJECT_AVAILABLE_IN_2_72 +void g_binding_group_bind_with_closures (GBindingGroup *self, + const gchar *source_property, + gpointer target, + const gchar *target_property, + GBindingFlags flags, + GClosure *transform_to, + GClosure *transform_from); + +G_END_DECLS + +#endif /* __G_BINDING_GROUP_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gboxed.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gboxed.h new file mode 100644 index 000000000..d7b3d4e91 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gboxed.h @@ -0,0 +1,124 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 2000-2001 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ +#ifndef __G_BOXED_H__ +#define __G_BOXED_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +#ifndef __GI_SCANNER__ +#include +#endif + +G_BEGIN_DECLS + +/* --- type macros --- */ +#define G_TYPE_IS_BOXED(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_BOXED) +/** + * G_VALUE_HOLDS_BOXED: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values derived + * from type %G_TYPE_BOXED. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_BOXED(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_BOXED)) + + +/* --- typedefs --- */ +/** + * GBoxedCopyFunc: + * @boxed: (not nullable): The boxed structure to be copied. + * + * This function is provided by the user and should produce a copy + * of the passed in boxed structure. + * + * Returns: (not nullable): The newly created copy of the boxed structure. + */ +typedef gpointer (*GBoxedCopyFunc) (gpointer boxed); + +/** + * GBoxedFreeFunc: + * @boxed: (not nullable): The boxed structure to be freed. + * + * This function is provided by the user and should free the boxed + * structure passed. + */ +typedef void (*GBoxedFreeFunc) (gpointer boxed); + + +/* --- prototypes --- */ +GOBJECT_AVAILABLE_IN_ALL +gpointer g_boxed_copy (GType boxed_type, + gconstpointer src_boxed); +GOBJECT_AVAILABLE_IN_ALL +void g_boxed_free (GType boxed_type, + gpointer boxed); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_boxed (GValue *value, + gconstpointer v_boxed); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_static_boxed (GValue *value, + gconstpointer v_boxed); +GOBJECT_AVAILABLE_IN_ALL +void g_value_take_boxed (GValue *value, + gconstpointer v_boxed); +GOBJECT_DEPRECATED_FOR(g_value_take_boxed) +void g_value_set_boxed_take_ownership (GValue *value, + gconstpointer v_boxed); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_value_get_boxed (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_value_dup_boxed (const GValue *value); + + +/* --- convenience --- */ +GOBJECT_AVAILABLE_IN_ALL +GType g_boxed_type_register_static (const gchar *name, + GBoxedCopyFunc boxed_copy, + GBoxedFreeFunc boxed_free); + +/* --- GObject boxed types --- */ +/** + * G_TYPE_CLOSURE: + * + * The #GType for #GClosure. + */ +#define G_TYPE_CLOSURE (g_closure_get_type ()) + +/** + * G_TYPE_VALUE: + * + * The type ID of the "GValue" type which is a boxed type, + * used to pass around pointers to GValues. + */ +#define G_TYPE_VALUE (g_value_get_type ()) + +GOBJECT_AVAILABLE_IN_ALL +GType g_closure_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_value_get_type (void) G_GNUC_CONST; + +G_END_DECLS + +#endif /* __G_BOXED_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gclosure.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gclosure.h new file mode 100644 index 000000000..3b139b062 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gclosure.h @@ -0,0 +1,323 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 2000-2001 Red Hat, Inc. + * Copyright (C) 2005 Imendio AB + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ +#ifndef __G_CLOSURE_H__ +#define __G_CLOSURE_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/* --- defines --- */ +/** + * G_CLOSURE_NEEDS_MARSHAL: + * @closure: a #GClosure + * + * Check if the closure still needs a marshaller. See g_closure_set_marshal(). + * + * Returns: %TRUE if a #GClosureMarshal marshaller has not yet been set on + * @closure. + */ +#define G_CLOSURE_NEEDS_MARSHAL(closure) (((GClosure*) (closure))->marshal == NULL) +/** + * G_CLOSURE_N_NOTIFIERS: + * @cl: a #GClosure + * + * Get the total number of notifiers connected with the closure @cl. + * + * The count includes the meta marshaller, the finalize and invalidate notifiers + * and the marshal guards. Note that each guard counts as two notifiers. + * See g_closure_set_meta_marshal(), g_closure_add_finalize_notifier(), + * g_closure_add_invalidate_notifier() and g_closure_add_marshal_guards(). + * + * Returns: number of notifiers + */ +#define G_CLOSURE_N_NOTIFIERS(cl) (((cl)->n_guards << 1L) + \ + (cl)->n_fnotifiers + (cl)->n_inotifiers) +/** + * G_CCLOSURE_SWAP_DATA: + * @cclosure: a #GCClosure + * + * Checks whether the user data of the #GCClosure should be passed as the + * first parameter to the callback. See g_cclosure_new_swap(). + * + * Returns: %TRUE if data has to be swapped. + */ +#define G_CCLOSURE_SWAP_DATA(cclosure) (((GClosure*) (cclosure))->derivative_flag) +/** + * G_CALLBACK: + * @f: a function pointer. + * + * Cast a function pointer to a #GCallback. + */ +#define G_CALLBACK(f) ((GCallback) (f)) + + +/* -- typedefs --- */ +typedef struct _GClosure GClosure; +typedef struct _GClosureNotifyData GClosureNotifyData; + +/** + * GCallback: + * + * The type used for callback functions in structure definitions and function + * signatures. + * + * This doesn't mean that all callback functions must take no parameters and + * return void. The required signature of a callback function is determined by + * the context in which is used (e.g. the signal to which it is connected). + * + * Use G_CALLBACK() to cast the callback function to a #GCallback. + */ +typedef void (*GCallback) (void); +/** + * GClosureNotify: + * @data: data specified when registering the notification callback + * @closure: the #GClosure on which the notification is emitted + * + * The type used for the various notification callbacks which can be registered + * on closures. + */ +typedef void (*GClosureNotify) (gpointer data, + GClosure *closure); +/** + * GClosureMarshal: + * @closure: the #GClosure to which the marshaller belongs + * @return_value: (nullable): a #GValue to store the return + * value. May be %NULL if the callback of @closure doesn't return a + * value. + * @n_param_values: the length of the @param_values array + * @param_values: (array length=n_param_values): an array of + * #GValues holding the arguments on which to invoke the + * callback of @closure + * @invocation_hint: (nullable): the invocation hint given as the + * last argument to g_closure_invoke() + * @marshal_data: (nullable): additional data specified when + * registering the marshaller, see g_closure_set_marshal() and + * g_closure_set_meta_marshal() + * + * The type used for marshaller functions. + */ +typedef void (*GClosureMarshal) (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); + +/** + * GVaClosureMarshal: + * @closure: the #GClosure to which the marshaller belongs + * @return_value: (nullable): a #GValue to store the return + * value. May be %NULL if the callback of @closure doesn't return a + * value. + * @instance: (type GObject.TypeInstance): the instance on which the closure is + * invoked. + * @args: va_list of arguments to be passed to the closure. + * @marshal_data: (nullable): additional data specified when + * registering the marshaller, see g_closure_set_marshal() and + * g_closure_set_meta_marshal() + * @n_params: the length of the @param_types array + * @param_types: (array length=n_params): the #GType of each argument from + * @args. + * + * This is the signature of va_list marshaller functions, an optional + * marshaller that can be used in some situations to avoid + * marshalling the signal argument into GValues. + */ +typedef void (* GVaClosureMarshal) (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/** + * GCClosure: + * @closure: the #GClosure + * @callback: the callback function + * + * A #GCClosure is a specialization of #GClosure for C function callbacks. + */ +typedef struct _GCClosure GCClosure; + + +/* --- structures --- */ +struct _GClosureNotifyData +{ + gpointer data; + GClosureNotify notify; +}; +/** + * GClosure: + * @in_marshal: Indicates whether the closure is currently being invoked with + * g_closure_invoke() + * @is_invalid: Indicates whether the closure has been invalidated by + * g_closure_invalidate() + * + * A #GClosure represents a callback supplied by the programmer. + */ +struct _GClosure +{ + /*< private >*/ + guint ref_count : 15; /* (atomic) */ + /* meta_marshal is not used anymore but must be zero for historical reasons + as it was exposed in the G_CLOSURE_N_NOTIFIERS macro */ + guint meta_marshal_nouse : 1; /* (atomic) */ + guint n_guards : 1; /* (atomic) */ + guint n_fnotifiers : 2; /* finalization notifiers (atomic) */ + guint n_inotifiers : 8; /* invalidation notifiers (atomic) */ + guint in_inotify : 1; /* (atomic) */ + guint floating : 1; /* (atomic) */ + /*< protected >*/ + guint derivative_flag : 1; /* (atomic) */ + /*< public >*/ + guint in_marshal : 1; /* (atomic) */ + guint is_invalid : 1; /* (atomic) */ + + /*< private >*/ void (*marshal) (GClosure *closure, + GValue /*out*/ *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); + /*< protected >*/ gpointer data; + + /*< private >*/ GClosureNotifyData *notifiers; + + /* invariants/constraints: + * - ->marshal and ->data are _invalid_ as soon as ->is_invalid==TRUE + * - invocation of all inotifiers occurs prior to fnotifiers + * - order of inotifiers is random + * inotifiers may _not_ free/invalidate parameter values (e.g. ->data) + * - order of fnotifiers is random + * - each notifier may only be removed before or during its invocation + * - reference counting may only happen prior to fnotify invocation + * (in that sense, fnotifiers are really finalization handlers) + */ +}; +/* closure for C function calls, callback() is the user function + */ +struct _GCClosure +{ + GClosure closure; + gpointer callback; +}; + + +/* --- prototypes --- */ +GOBJECT_AVAILABLE_IN_ALL +GClosure* g_cclosure_new (GCallback callback_func, + gpointer user_data, + GClosureNotify destroy_data); +GOBJECT_AVAILABLE_IN_ALL +GClosure* g_cclosure_new_swap (GCallback callback_func, + gpointer user_data, + GClosureNotify destroy_data); +GOBJECT_AVAILABLE_IN_ALL +GClosure* g_signal_type_cclosure_new (GType itype, + guint struct_offset); + + +/* --- prototypes --- */ +GOBJECT_AVAILABLE_IN_ALL +GClosure* g_closure_ref (GClosure *closure); +GOBJECT_AVAILABLE_IN_ALL +void g_closure_sink (GClosure *closure); +GOBJECT_AVAILABLE_IN_ALL +void g_closure_unref (GClosure *closure); +/* intimidating */ +GOBJECT_AVAILABLE_IN_ALL +GClosure* g_closure_new_simple (guint sizeof_closure, + gpointer data); +GOBJECT_AVAILABLE_IN_ALL +void g_closure_add_finalize_notifier (GClosure *closure, + gpointer notify_data, + GClosureNotify notify_func); +GOBJECT_AVAILABLE_IN_ALL +void g_closure_remove_finalize_notifier (GClosure *closure, + gpointer notify_data, + GClosureNotify notify_func); +GOBJECT_AVAILABLE_IN_ALL +void g_closure_add_invalidate_notifier (GClosure *closure, + gpointer notify_data, + GClosureNotify notify_func); +GOBJECT_AVAILABLE_IN_ALL +void g_closure_remove_invalidate_notifier (GClosure *closure, + gpointer notify_data, + GClosureNotify notify_func); +GOBJECT_AVAILABLE_IN_ALL +void g_closure_add_marshal_guards (GClosure *closure, + gpointer pre_marshal_data, + GClosureNotify pre_marshal_notify, + gpointer post_marshal_data, + GClosureNotify post_marshal_notify); +GOBJECT_AVAILABLE_IN_ALL +void g_closure_set_marshal (GClosure *closure, + GClosureMarshal marshal); +GOBJECT_AVAILABLE_IN_ALL +void g_closure_set_meta_marshal (GClosure *closure, + gpointer marshal_data, + GClosureMarshal meta_marshal); +GOBJECT_AVAILABLE_IN_ALL +void g_closure_invalidate (GClosure *closure); +GOBJECT_AVAILABLE_IN_ALL +void g_closure_invoke (GClosure *closure, + GValue /*out*/ *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint); + +/* FIXME: + OK: data_object::destroy -> closure_invalidate(); + MIS: closure_invalidate() -> disconnect(closure); + MIS: disconnect(closure) -> (unlink) closure_unref(); + OK: closure_finalize() -> g_free (data_string); + + random remarks: + - need marshaller repo with decent aliasing to base types + - provide marshaller collection, virtually covering anything out there +*/ + +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_generic (GClosure *closure, + GValue *return_gvalue, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); + +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_generic_va (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args_list, + gpointer marshal_data, + int n_params, + GType *param_types); + + +G_END_DECLS + +#endif /* __G_CLOSURE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/genums.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/genums.h new file mode 100644 index 000000000..d253b15b1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/genums.h @@ -0,0 +1,381 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 1998-1999, 2000-2001 Tim Janik and Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ +#ifndef __G_ENUMS_H__ +#define __G_ENUMS_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/* --- type macros --- */ +/** + * G_TYPE_IS_ENUM: + * @type: a #GType ID. + * + * Checks whether @type "is a" %G_TYPE_ENUM. + * + * Returns: %TRUE if @type "is a" %G_TYPE_ENUM. + */ +#define G_TYPE_IS_ENUM(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_ENUM) +/** + * G_ENUM_CLASS: + * @class: a valid #GEnumClass + * + * Casts a derived #GEnumClass structure into a #GEnumClass structure. + */ +#define G_ENUM_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_ENUM, GEnumClass)) +/** + * G_IS_ENUM_CLASS: + * @class: a #GEnumClass + * + * Checks whether @class "is a" valid #GEnumClass structure of type %G_TYPE_ENUM + * or derived. + */ +#define G_IS_ENUM_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_ENUM)) +/** + * G_ENUM_CLASS_TYPE: + * @class: a #GEnumClass + * + * Get the type identifier from a given #GEnumClass structure. + * + * Returns: the #GType + */ +#define G_ENUM_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class)) +/** + * G_ENUM_CLASS_TYPE_NAME: + * @class: a #GEnumClass + * + * Get the static type name from a given #GEnumClass structure. + * + * Returns: the type name. + */ +#define G_ENUM_CLASS_TYPE_NAME(class) (g_type_name (G_ENUM_CLASS_TYPE (class))) + + +/** + * G_TYPE_IS_FLAGS: + * @type: a #GType ID. + * + * Checks whether @type "is a" %G_TYPE_FLAGS. + * + * Returns: %TRUE if @type "is a" %G_TYPE_FLAGS. + */ +#define G_TYPE_IS_FLAGS(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_FLAGS) +/** + * G_FLAGS_CLASS: + * @class: a valid #GFlagsClass + * + * Casts a derived #GFlagsClass structure into a #GFlagsClass structure. + */ +#define G_FLAGS_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_FLAGS, GFlagsClass)) +/** + * G_IS_FLAGS_CLASS: + * @class: a #GFlagsClass + * + * Checks whether @class "is a" valid #GFlagsClass structure of type %G_TYPE_FLAGS + * or derived. + */ +#define G_IS_FLAGS_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_FLAGS)) +/** + * G_FLAGS_CLASS_TYPE: + * @class: a #GFlagsClass + * + * Get the type identifier from a given #GFlagsClass structure. + * + * Returns: the #GType + */ +#define G_FLAGS_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class)) +/** + * G_FLAGS_CLASS_TYPE_NAME: + * @class: a #GFlagsClass + * + * Get the static type name from a given #GFlagsClass structure. + * + * Returns: the type name. + */ +#define G_FLAGS_CLASS_TYPE_NAME(class) (g_type_name (G_FLAGS_CLASS_TYPE (class))) + + +/** + * G_VALUE_HOLDS_ENUM: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values derived from type %G_TYPE_ENUM. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_ENUM(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_ENUM)) +/** + * G_VALUE_HOLDS_FLAGS: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values derived from type %G_TYPE_FLAGS. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_FLAGS(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_FLAGS)) + + +/* --- enum/flag values & classes --- */ +typedef struct _GEnumClass GEnumClass; +typedef struct _GFlagsClass GFlagsClass; +typedef struct _GEnumValue GEnumValue; +typedef struct _GFlagsValue GFlagsValue; + +/** + * GEnumClass: + * @g_type_class: the parent class + * @minimum: the smallest possible value. + * @maximum: the largest possible value. + * @n_values: the number of possible values. + * @values: an array of #GEnumValue structs describing the + * individual values. + * + * The class of an enumeration type holds information about its + * possible values. + */ +struct _GEnumClass +{ + GTypeClass g_type_class; + + /*< public >*/ + gint minimum; + gint maximum; + guint n_values; + GEnumValue *values; +}; +/** + * GFlagsClass: + * @g_type_class: the parent class + * @mask: a mask covering all possible values. + * @n_values: the number of possible values. + * @values: an array of #GFlagsValue structs describing the + * individual values. + * + * The class of a flags type holds information about its + * possible values. + */ +struct _GFlagsClass +{ + GTypeClass g_type_class; + + /*< public >*/ + guint mask; + guint n_values; + GFlagsValue *values; +}; +/** + * GEnumValue: + * @value: the enum value + * @value_name: the name of the value + * @value_nick: the nickname of the value + * + * A structure which contains a single enum value, its name, and its + * nickname. + */ +struct _GEnumValue +{ + gint value; + const gchar *value_name; + const gchar *value_nick; +}; +/** + * GFlagsValue: + * @value: the flags value + * @value_name: the name of the value + * @value_nick: the nickname of the value + * + * A structure which contains a single flags value, its name, and its + * nickname. + */ +struct _GFlagsValue +{ + guint value; + const gchar *value_name; + const gchar *value_nick; +}; + + +/* --- prototypes --- */ +GOBJECT_AVAILABLE_IN_ALL +GEnumValue* g_enum_get_value (GEnumClass *enum_class, + gint value); +GOBJECT_AVAILABLE_IN_ALL +GEnumValue* g_enum_get_value_by_name (GEnumClass *enum_class, + const gchar *name); +GOBJECT_AVAILABLE_IN_ALL +GEnumValue* g_enum_get_value_by_nick (GEnumClass *enum_class, + const gchar *nick); +GOBJECT_AVAILABLE_IN_ALL +GFlagsValue* g_flags_get_first_value (GFlagsClass *flags_class, + guint value); +GOBJECT_AVAILABLE_IN_ALL +GFlagsValue* g_flags_get_value_by_name (GFlagsClass *flags_class, + const gchar *name); +GOBJECT_AVAILABLE_IN_ALL +GFlagsValue* g_flags_get_value_by_nick (GFlagsClass *flags_class, + const gchar *nick); +GOBJECT_AVAILABLE_IN_2_54 +gchar *g_enum_to_string (GType g_enum_type, + gint value); +GOBJECT_AVAILABLE_IN_2_54 +gchar *g_flags_to_string (GType flags_type, + guint value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_enum (GValue *value, + gint v_enum); +GOBJECT_AVAILABLE_IN_ALL +gint g_value_get_enum (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_flags (GValue *value, + guint v_flags); +GOBJECT_AVAILABLE_IN_ALL +guint g_value_get_flags (const GValue *value); + + + +/* --- registration functions --- */ +/* const_static_values is a NULL terminated array of enum/flags + * values that is taken over! + */ +GOBJECT_AVAILABLE_IN_ALL +GType g_enum_register_static (const gchar *name, + const GEnumValue *const_static_values); +GOBJECT_AVAILABLE_IN_ALL +GType g_flags_register_static (const gchar *name, + const GFlagsValue *const_static_values); +/* functions to complete the type information + * for enums/flags implemented by plugins + */ +GOBJECT_AVAILABLE_IN_ALL +void g_enum_complete_type_info (GType g_enum_type, + GTypeInfo *info, + const GEnumValue *const_values); +GOBJECT_AVAILABLE_IN_ALL +void g_flags_complete_type_info (GType g_flags_type, + GTypeInfo *info, + const GFlagsValue *const_values); + +/* {{{ Macros */ + +/** + * G_DEFINE_ENUM_VALUE: + * @EnumValue: an enumeration value + * @EnumNick: a short string representing the enumeration value + * + * Defines an enumeration value, and maps it to a "nickname". + * + * This macro can only be used with G_DEFINE_ENUM_TYPE() and + * G_DEFINE_FLAGS_TYPE(). + * + * Since: 2.74 + */ +#define G_DEFINE_ENUM_VALUE(EnumValue, EnumNick) \ + { EnumValue, #EnumValue, EnumNick } \ + GOBJECT_AVAILABLE_MACRO_IN_2_74 + +/** + * G_DEFINE_ENUM_TYPE: + * @TypeName: the enumeration type, in `CamelCase` + * @type_name: the enumeration type prefixed, in `snake_case` + * @...: a list of enumeration values, defined using G_DEFINE_ENUM_VALUE() + * + * A convenience macro for defining enumeration types. + * + * This macro will generate a `*_get_type()` function for the + * given @TypeName, using @type_name as the function prefix. + * + * |[ + * G_DEFINE_ENUM_TYPE (GtkOrientation, gtk_orientation, + * G_DEFINE_ENUM_VALUE (GTK_ORIENTATION_HORIZONTAL, "horizontal"), + * G_DEFINE_ENUM_VALUE (GTK_ORIENTATION_VERTICAL, "vertical")) + * ]| + * + * For projects that have multiple enumeration types, or enumeration + * types with many values, you should consider using glib-mkenums to + * generate the type function. + * + * Since: 2.74 + */ +#define G_DEFINE_ENUM_TYPE(TypeName, type_name, ...) \ +GType \ +type_name ## _get_type (void) { \ + static gsize g_define_type__static = 0; \ + if (g_once_init_enter (&g_define_type__static)) { \ + static const GEnumValue enum_values[] = { \ + __VA_ARGS__ , \ + { 0, NULL, NULL }, \ + }; \ + GType g_define_type = g_enum_register_static (g_intern_static_string (#TypeName), enum_values); \ + g_once_init_leave (&g_define_type__static, g_define_type); \ + } \ + return g_define_type__static; \ +} \ + GOBJECT_AVAILABLE_MACRO_IN_2_74 + +/** + * G_DEFINE_FLAGS_TYPE: + * @TypeName: the enumeration type, in `CamelCase` + * @type_name: the enumeration type prefixed, in `snake_case` + * @...: a list of enumeration values, defined using G_DEFINE_ENUM_VALUE() + * + * A convenience macro for defining flag types. + * + * This macro will generate a `*_get_type()` function for the + * given @TypeName, using @type_name as the function prefix. + * + * |[ + * G_DEFINE_FLAGS_TYPE (GSettingsBindFlags, g_settings_bind_flags, + * G_DEFINE_ENUM_VALUE (G_SETTINGS_BIND_DEFAULT, "default"), + * G_DEFINE_ENUM_VALUE (G_SETTINGS_BIND_GET, "get"), + * G_DEFINE_ENUM_VALUE (G_SETTINGS_BIND_SET, "set"), + * G_DEFINE_ENUM_VALUE (G_SETTINGS_BIND_NO_SENSITIVITY, "no-sensitivity"), + * G_DEFINE_ENUM_VALUE (G_SETTINGS_BIND_GET_NO_CHANGES, "get-no-changes"), + * G_DEFINE_ENUM_VALUE (G_SETTINGS_BIND_INVERT_BOOLEAN, "invert-boolean")) + * ]| + * + * For projects that have multiple enumeration types, or enumeration + * types with many values, you should consider using glib-mkenums to + * generate the type function. + * + * Since: 2.74 + */ +#define G_DEFINE_FLAGS_TYPE(TypeName, type_name, ...) \ +GType \ +type_name ## _get_type (void) { \ + static gsize g_define_type__static = 0; \ + if (g_once_init_enter (&g_define_type__static)) { \ + static const GFlagsValue flags_values[] = { \ + __VA_ARGS__ , \ + { 0, NULL, NULL }, \ + }; \ + GType g_define_type = g_flags_register_static (g_intern_static_string (#TypeName), flags_values); \ + g_once_init_leave (&g_define_type__static, g_define_type); \ + } \ + return g_define_type__static; \ +} \ + GOBJECT_AVAILABLE_MACRO_IN_2_74 + +G_END_DECLS + +#endif /* __G_ENUMS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/glib-enumtypes.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/glib-enumtypes.h new file mode 100644 index 000000000..d9e8ef405 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/glib-enumtypes.h @@ -0,0 +1,25 @@ + +/* This file is generated by glib-mkenums, do not modify it. This code is licensed under the same license as the containing project. Note that it links to GLib, so must comply with the LGPL linking clauses. */ + +#ifndef __GOBJECT_ENUM_TYPES_H__ +#define __GOBJECT_ENUM_TYPES_H__ + +#include + +G_BEGIN_DECLS + +/* enumerations from "../gobject/../glib/gunicode.h" */ +GOBJECT_AVAILABLE_IN_2_60 GType g_unicode_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_UNICODE_TYPE (g_unicode_type_get_type ()) +GOBJECT_AVAILABLE_IN_2_60 GType g_unicode_break_type_get_type (void) G_GNUC_CONST; +#define G_TYPE_UNICODE_BREAK_TYPE (g_unicode_break_type_get_type ()) +GOBJECT_AVAILABLE_IN_2_60 GType g_unicode_script_get_type (void) G_GNUC_CONST; +#define G_TYPE_UNICODE_SCRIPT (g_unicode_script_get_type ()) +GOBJECT_AVAILABLE_IN_2_60 GType g_normalize_mode_get_type (void) G_GNUC_CONST; +#define G_TYPE_NORMALIZE_MODE (g_normalize_mode_get_type ()) +G_END_DECLS + +#endif /* __GOBJECT_ENUM_TYPES_H__ */ + +/* Generated data ends here */ + diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/glib-types.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/glib-types.h new file mode 100644 index 000000000..87065b980 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/glib-types.h @@ -0,0 +1,409 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 2000-2001 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ +#ifndef __GLIB_TYPES_H__ +#define __GLIB_TYPES_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) && !defined(GLIB_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +/* A hack necesssary to preprocess this file with g-ir-scanner */ +#ifdef __GI_SCANNER__ +typedef gsize GType; +#endif + +/* --- GLib boxed types --- */ +/** + * G_TYPE_DATE: + * + * The #GType for #GDate. + */ +#define G_TYPE_DATE (g_date_get_type ()) + +/** + * G_TYPE_STRV: + * + * The #GType for a boxed type holding a %NULL-terminated array of strings. + * + * The code fragments in the following example show the use of a property of + * type %G_TYPE_STRV with g_object_class_install_property(), g_object_set() + * and g_object_get(). + * + * |[ + * g_object_class_install_property (object_class, + * PROP_AUTHORS, + * g_param_spec_boxed ("authors", + * _("Authors"), + * _("List of authors"), + * G_TYPE_STRV, + * G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + * + * gchar *authors[] = { "Owen", "Tim", NULL }; + * g_object_set (obj, "authors", authors, NULL); + * + * gchar *writers[]; + * g_object_get (obj, "authors", &writers, NULL); + * /* do something with writers */ + * g_strfreev (writers); + * ]| + * + * Since: 2.4 + */ +#define G_TYPE_STRV (g_strv_get_type ()) + +/** + * G_TYPE_GSTRING: + * + * The #GType for #GString. + */ +#define G_TYPE_GSTRING (g_gstring_get_type ()) + +/** + * G_TYPE_HASH_TABLE: + * + * The #GType for a boxed type holding a #GHashTable reference. + * + * Since: 2.10 + */ +#define G_TYPE_HASH_TABLE (g_hash_table_get_type ()) + +/** + * G_TYPE_REGEX: + * + * The #GType for a boxed type holding a #GRegex reference. + * + * Since: 2.14 + */ +#define G_TYPE_REGEX (g_regex_get_type ()) + +/** + * G_TYPE_MATCH_INFO: + * + * The #GType for a boxed type holding a #GMatchInfo reference. + * + * Since: 2.30 + */ +#define G_TYPE_MATCH_INFO (g_match_info_get_type ()) + +/** + * G_TYPE_ARRAY: + * + * The #GType for a boxed type holding a #GArray reference. + * + * Since: 2.22 + */ +#define G_TYPE_ARRAY (g_array_get_type ()) + +/** + * G_TYPE_BYTE_ARRAY: + * + * The #GType for a boxed type holding a #GByteArray reference. + * + * Since: 2.22 + */ +#define G_TYPE_BYTE_ARRAY (g_byte_array_get_type ()) + +/** + * G_TYPE_PTR_ARRAY: + * + * The #GType for a boxed type holding a #GPtrArray reference. + * + * Since: 2.22 + */ +#define G_TYPE_PTR_ARRAY (g_ptr_array_get_type ()) + +/** + * G_TYPE_BYTES: + * + * The #GType for #GBytes. + * + * Since: 2.32 + */ +#define G_TYPE_BYTES (g_bytes_get_type ()) + +/** + * G_TYPE_VARIANT_TYPE: + * + * The #GType for a boxed type holding a #GVariantType. + * + * Since: 2.24 + */ +#define G_TYPE_VARIANT_TYPE (g_variant_type_get_gtype ()) + +/** + * G_TYPE_ERROR: + * + * The #GType for a boxed type holding a #GError. + * + * Since: 2.26 + */ +#define G_TYPE_ERROR (g_error_get_type ()) + +/** + * G_TYPE_DATE_TIME: + * + * The #GType for a boxed type holding a #GDateTime. + * + * Since: 2.26 + */ +#define G_TYPE_DATE_TIME (g_date_time_get_type ()) + +/** + * G_TYPE_TIME_ZONE: + * + * The #GType for a boxed type holding a #GTimeZone. + * + * Since: 2.34 + */ +#define G_TYPE_TIME_ZONE (g_time_zone_get_type ()) + +/** + * G_TYPE_IO_CHANNEL: + * + * The #GType for #GIOChannel. + */ +#define G_TYPE_IO_CHANNEL (g_io_channel_get_type ()) + +/** + * G_TYPE_IO_CONDITION: + * + * The #GType for #GIOCondition. + */ +#define G_TYPE_IO_CONDITION (g_io_condition_get_type ()) + +/** + * G_TYPE_VARIANT_BUILDER: + * + * The #GType for a boxed type holding a #GVariantBuilder. + * + * Since: 2.30 + */ +#define G_TYPE_VARIANT_BUILDER (g_variant_builder_get_type ()) + +/** + * G_TYPE_VARIANT_DICT: + * + * The #GType for a boxed type holding a #GVariantDict. + * + * Since: 2.40 + */ +#define G_TYPE_VARIANT_DICT (g_variant_dict_get_type ()) + +/** + * G_TYPE_MAIN_LOOP: + * + * The #GType for a boxed type holding a #GMainLoop. + * + * Since: 2.30 + */ +#define G_TYPE_MAIN_LOOP (g_main_loop_get_type ()) + +/** + * G_TYPE_MAIN_CONTEXT: + * + * The #GType for a boxed type holding a #GMainContext. + * + * Since: 2.30 + */ +#define G_TYPE_MAIN_CONTEXT (g_main_context_get_type ()) + +/** + * G_TYPE_SOURCE: + * + * The #GType for a boxed type holding a #GSource. + * + * Since: 2.30 + */ +#define G_TYPE_SOURCE (g_source_get_type ()) + +/** + * G_TYPE_POLLFD: + * + * The #GType for a boxed type holding a #GPollFD. + * + * Since: 2.36 + */ +#define G_TYPE_POLLFD (g_pollfd_get_type ()) + +/** + * G_TYPE_MARKUP_PARSE_CONTEXT: + * + * The #GType for a boxed type holding a #GMarkupParseContext. + * + * Since: 2.36 + */ +#define G_TYPE_MARKUP_PARSE_CONTEXT (g_markup_parse_context_get_type ()) + +/** + * G_TYPE_KEY_FILE: + * + * The #GType for a boxed type holding a #GKeyFile. + * + * Since: 2.32 + */ +#define G_TYPE_KEY_FILE (g_key_file_get_type ()) + +/** + * G_TYPE_MAPPED_FILE: + * + * The #GType for a boxed type holding a #GMappedFile. + * + * Since: 2.40 + */ +#define G_TYPE_MAPPED_FILE (g_mapped_file_get_type ()) + +/** + * G_TYPE_THREAD: + * + * The #GType for a boxed type holding a #GThread. + * + * Since: 2.36 + */ +#define G_TYPE_THREAD (g_thread_get_type ()) + +/** + * G_TYPE_CHECKSUM: + * + * The #GType for a boxed type holding a #GChecksum. + * + * Since: 2.36 + */ +#define G_TYPE_CHECKSUM (g_checksum_get_type ()) + +/** + * G_TYPE_OPTION_GROUP: + * + * The #GType for a boxed type holding a #GOptionGroup. + * + * Since: 2.44 + */ +#define G_TYPE_OPTION_GROUP (g_option_group_get_type ()) + +/** + * G_TYPE_URI: + * + * The #GType for a boxed type holding a #GUri. + * + * Since: 2.66 + */ +#define G_TYPE_URI (g_uri_get_type ()) + +/** + * G_TYPE_TREE: + * + * The #GType for #GTree. + * + * Since: 2.68 + */ +#define G_TYPE_TREE (g_tree_get_type ()) + +/** + * G_TYPE_PATTERN_SPEC: + * + * The #GType for #GPatternSpec. + * + * Since: 2.70 + */ +#define G_TYPE_PATTERN_SPEC (g_pattern_spec_get_type ()) + +/** + * G_TYPE_BOOKMARK_FILE: + * + * The #GType for a boxed type holding a #GBookmarkFile. + * + * Since: 2.76 + */ +#define G_TYPE_BOOKMARK_FILE (g_bookmark_file_get_type ()) + +GOBJECT_AVAILABLE_IN_ALL +GType g_date_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_strv_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_gstring_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_hash_table_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_array_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_byte_array_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_ptr_array_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_bytes_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_variant_type_get_gtype (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_regex_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_30 +GType g_match_info_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_error_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_date_time_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_time_zone_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_io_channel_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_io_condition_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_variant_builder_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_40 +GType g_variant_dict_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +GType g_key_file_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_30 +GType g_main_loop_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_30 +GType g_main_context_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_30 +GType g_source_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_36 +GType g_pollfd_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_36 +GType g_thread_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_36 +GType g_checksum_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_36 +GType g_markup_parse_context_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_40 +GType g_mapped_file_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_44 +GType g_option_group_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_66 +GType g_uri_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_68 +GType g_tree_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_70 +GType g_pattern_spec_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_76 +GType g_bookmark_file_get_type (void) G_GNUC_CONST; + +GOBJECT_DEPRECATED_FOR('G_TYPE_VARIANT') +GType g_variant_get_gtype (void) G_GNUC_CONST; + +G_END_DECLS + +#endif /* __GLIB_TYPES_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gmarshal.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gmarshal.h new file mode 100644 index 000000000..96c7c4eee --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gmarshal.h @@ -0,0 +1,434 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +#ifndef __G_MARSHAL_H__ +#define __G_MARSHAL_H__ + +G_BEGIN_DECLS + +/* VOID:VOID */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__VOID (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__VOIDv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:BOOLEAN */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__BOOLEAN (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__BOOLEANv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:CHAR */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__CHAR (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__CHARv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:UCHAR */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__UCHAR (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__UCHARv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:INT */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__INT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__INTv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:UINT */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__UINT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__UINTv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:LONG */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__LONG (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__LONGv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:ULONG */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__ULONG (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__ULONGv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:ENUM */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__ENUM (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__ENUMv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:FLAGS */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__FLAGS (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__FLAGSv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:FLOAT */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__FLOAT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__FLOATv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:DOUBLE */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__DOUBLE (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__DOUBLEv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:STRING */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__STRING (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__STRINGv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:PARAM */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__PARAM (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__PARAMv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:BOXED */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__BOXED (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__BOXEDv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:POINTER */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__POINTER (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__POINTERv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:OBJECT */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__OBJECT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__OBJECTv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:VARIANT */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__VARIANT (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__VARIANTv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* VOID:UINT,POINTER */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__UINT_POINTER (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_VOID__UINT_POINTERv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* BOOL:FLAGS */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_BOOLEAN__FLAGS (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_BOOLEAN__FLAGSv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/** + * g_cclosure_marshal_BOOL__FLAGS: + * @closure: A #GClosure. + * @return_value: A #GValue to store the return value. May be %NULL + * if the callback of closure doesn't return a value. + * @n_param_values: The length of the @param_values array. + * @param_values: An array of #GValues holding the arguments + * on which to invoke the callback of closure. + * @invocation_hint: The invocation hint given as the last argument to + * g_closure_invoke(). + * @marshal_data: Additional data specified when registering the + * marshaller, see g_closure_set_marshal() and + * g_closure_set_meta_marshal() + * + * An old alias for g_cclosure_marshal_BOOLEAN__FLAGS(). + */ +#define g_cclosure_marshal_BOOL__FLAGS g_cclosure_marshal_BOOLEAN__FLAGS + +/* STRING:OBJECT,POINTER */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_STRING__OBJECT_POINTER (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_STRING__OBJECT_POINTERv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/* BOOL:BOXED,BOXED */ +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_BOOLEAN__BOXED_BOXED (GClosure *closure, + GValue *return_value, + guint n_param_values, + const GValue *param_values, + gpointer invocation_hint, + gpointer marshal_data); +GOBJECT_AVAILABLE_IN_ALL +void g_cclosure_marshal_BOOLEAN__BOXED_BOXEDv (GClosure *closure, + GValue *return_value, + gpointer instance, + va_list args, + gpointer marshal_data, + int n_params, + GType *param_types); + +/** + * g_cclosure_marshal_BOOL__BOXED_BOXED: + * @closure: A #GClosure. + * @return_value: A #GValue to store the return value. May be %NULL + * if the callback of closure doesn't return a value. + * @n_param_values: The length of the @param_values array. + * @param_values: An array of #GValues holding the arguments + * on which to invoke the callback of closure. + * @invocation_hint: The invocation hint given as the last argument to + * g_closure_invoke(). + * @marshal_data: Additional data specified when registering the + * marshaller, see g_closure_set_marshal() and + * g_closure_set_meta_marshal() + * + * An old alias for g_cclosure_marshal_BOOLEAN__BOXED_BOXED(). + */ +#define g_cclosure_marshal_BOOL__BOXED_BOXED g_cclosure_marshal_BOOLEAN__BOXED_BOXED + +G_END_DECLS + +#endif /* __G_MARSHAL_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gobject-autocleanups.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gobject-autocleanups.h new file mode 100644 index 000000000..bddb3f290 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gobject-autocleanups.h @@ -0,0 +1,33 @@ +/* + * Copyright © 2015 Canonical Limited + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + * + * Author: Ryan Lortie + */ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GClosure, g_closure_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GEnumClass, g_type_class_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GFlagsClass, g_type_class_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GObject, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GInitiallyUnowned, g_object_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GParamSpec, g_param_spec_unref) +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTypeClass, g_type_class_unref) +G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GValue, g_value_unset) diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gobject-visibility.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gobject-visibility.h new file mode 100644 index 000000000..08c9c54d8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gobject-visibility.h @@ -0,0 +1,952 @@ +#pragma once + +#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(GOBJECT_STATIC_COMPILATION) +# define _GOBJECT_EXPORT __declspec(dllexport) +# define _GOBJECT_IMPORT __declspec(dllimport) +#elif __GNUC__ >= 4 +# define _GOBJECT_EXPORT __attribute__((visibility("default"))) +# define _GOBJECT_IMPORT +#else +# define _GOBJECT_EXPORT +# define _GOBJECT_IMPORT +#endif +#ifdef GOBJECT_COMPILATION +# define _GOBJECT_API _GOBJECT_EXPORT +#else +# define _GOBJECT_API _GOBJECT_IMPORT +#endif + +#define _GOBJECT_EXTERN _GOBJECT_API extern + +#define GOBJECT_VAR _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_IN_ALL _GOBJECT_EXTERN + +#ifdef GLIB_DISABLE_DEPRECATION_WARNINGS +#define GOBJECT_DEPRECATED _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_UNAVAILABLE(maj,min) _GOBJECT_EXTERN +#define GOBJECT_UNAVAILABLE_STATIC_INLINE(maj,min) +#else +#define GOBJECT_DEPRECATED G_DEPRECATED _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _GOBJECT_EXTERN +#define GOBJECT_UNAVAILABLE_STATIC_INLINE(maj,min) G_UNAVAILABLE(maj,min) +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_26 +#define GOBJECT_DEPRECATED_IN_2_26 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_26_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_26 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_26_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_26 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_26_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_26 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_26_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_26 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_26_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_26 +#define GOBJECT_DEPRECATED_MACRO_IN_2_26_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_26 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_26_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_26 +#define GOBJECT_DEPRECATED_TYPE_IN_2_26_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_26 +#define GOBJECT_AVAILABLE_IN_2_26 GOBJECT_UNAVAILABLE (2, 26) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_26 GLIB_UNAVAILABLE_STATIC_INLINE (2, 26) +#define GOBJECT_AVAILABLE_MACRO_IN_2_26 GLIB_UNAVAILABLE_MACRO (2, 26) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_26 GLIB_UNAVAILABLE_ENUMERATOR (2, 26) +#define GOBJECT_AVAILABLE_TYPE_IN_2_26 GLIB_UNAVAILABLE_TYPE (2, 26) +#else +#define GOBJECT_AVAILABLE_IN_2_26 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_26 +#define GOBJECT_AVAILABLE_MACRO_IN_2_26 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_26 +#define GOBJECT_AVAILABLE_TYPE_IN_2_26 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_28 +#define GOBJECT_DEPRECATED_IN_2_28 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_28_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_28 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_28_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_28 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_28_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_28 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_28_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_28 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_28_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_28 +#define GOBJECT_DEPRECATED_MACRO_IN_2_28_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_28 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_28_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_28 +#define GOBJECT_DEPRECATED_TYPE_IN_2_28_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_28 +#define GOBJECT_AVAILABLE_IN_2_28 GOBJECT_UNAVAILABLE (2, 28) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_28 GLIB_UNAVAILABLE_STATIC_INLINE (2, 28) +#define GOBJECT_AVAILABLE_MACRO_IN_2_28 GLIB_UNAVAILABLE_MACRO (2, 28) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_28 GLIB_UNAVAILABLE_ENUMERATOR (2, 28) +#define GOBJECT_AVAILABLE_TYPE_IN_2_28 GLIB_UNAVAILABLE_TYPE (2, 28) +#else +#define GOBJECT_AVAILABLE_IN_2_28 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_28 +#define GOBJECT_AVAILABLE_MACRO_IN_2_28 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_28 +#define GOBJECT_AVAILABLE_TYPE_IN_2_28 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_30 +#define GOBJECT_DEPRECATED_IN_2_30 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_30_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_30 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_30_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_30 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_30_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_30 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_30_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_30 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_30_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_30 +#define GOBJECT_DEPRECATED_MACRO_IN_2_30_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_30 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_30_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_30 +#define GOBJECT_DEPRECATED_TYPE_IN_2_30_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_30 +#define GOBJECT_AVAILABLE_IN_2_30 GOBJECT_UNAVAILABLE (2, 30) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_30 GLIB_UNAVAILABLE_STATIC_INLINE (2, 30) +#define GOBJECT_AVAILABLE_MACRO_IN_2_30 GLIB_UNAVAILABLE_MACRO (2, 30) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_30 GLIB_UNAVAILABLE_ENUMERATOR (2, 30) +#define GOBJECT_AVAILABLE_TYPE_IN_2_30 GLIB_UNAVAILABLE_TYPE (2, 30) +#else +#define GOBJECT_AVAILABLE_IN_2_30 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_30 +#define GOBJECT_AVAILABLE_MACRO_IN_2_30 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_30 +#define GOBJECT_AVAILABLE_TYPE_IN_2_30 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_32 +#define GOBJECT_DEPRECATED_IN_2_32 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_32_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_32 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_32_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_32 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_32_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_32 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_32_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_32 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_32_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_32 +#define GOBJECT_DEPRECATED_MACRO_IN_2_32_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_32 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_32_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_32 +#define GOBJECT_DEPRECATED_TYPE_IN_2_32_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_32 +#define GOBJECT_AVAILABLE_IN_2_32 GOBJECT_UNAVAILABLE (2, 32) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_32 GLIB_UNAVAILABLE_STATIC_INLINE (2, 32) +#define GOBJECT_AVAILABLE_MACRO_IN_2_32 GLIB_UNAVAILABLE_MACRO (2, 32) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_32 GLIB_UNAVAILABLE_ENUMERATOR (2, 32) +#define GOBJECT_AVAILABLE_TYPE_IN_2_32 GLIB_UNAVAILABLE_TYPE (2, 32) +#else +#define GOBJECT_AVAILABLE_IN_2_32 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_32 +#define GOBJECT_AVAILABLE_MACRO_IN_2_32 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_32 +#define GOBJECT_AVAILABLE_TYPE_IN_2_32 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_34 +#define GOBJECT_DEPRECATED_IN_2_34 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_34_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_34 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_34_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_34 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_34_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_34 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_34_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_34 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_34_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_34 +#define GOBJECT_DEPRECATED_MACRO_IN_2_34_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_34 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_34_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_34 +#define GOBJECT_DEPRECATED_TYPE_IN_2_34_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_34 +#define GOBJECT_AVAILABLE_IN_2_34 GOBJECT_UNAVAILABLE (2, 34) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_34 GLIB_UNAVAILABLE_STATIC_INLINE (2, 34) +#define GOBJECT_AVAILABLE_MACRO_IN_2_34 GLIB_UNAVAILABLE_MACRO (2, 34) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_34 GLIB_UNAVAILABLE_ENUMERATOR (2, 34) +#define GOBJECT_AVAILABLE_TYPE_IN_2_34 GLIB_UNAVAILABLE_TYPE (2, 34) +#else +#define GOBJECT_AVAILABLE_IN_2_34 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_34 +#define GOBJECT_AVAILABLE_MACRO_IN_2_34 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_34 +#define GOBJECT_AVAILABLE_TYPE_IN_2_34 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_36 +#define GOBJECT_DEPRECATED_IN_2_36 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_36_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_36 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_36_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_36 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_36_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_36 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_36_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_36 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_36_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_36 +#define GOBJECT_DEPRECATED_MACRO_IN_2_36_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_36 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_36_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_36 +#define GOBJECT_DEPRECATED_TYPE_IN_2_36_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_36 +#define GOBJECT_AVAILABLE_IN_2_36 GOBJECT_UNAVAILABLE (2, 36) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_36 GLIB_UNAVAILABLE_STATIC_INLINE (2, 36) +#define GOBJECT_AVAILABLE_MACRO_IN_2_36 GLIB_UNAVAILABLE_MACRO (2, 36) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_36 GLIB_UNAVAILABLE_ENUMERATOR (2, 36) +#define GOBJECT_AVAILABLE_TYPE_IN_2_36 GLIB_UNAVAILABLE_TYPE (2, 36) +#else +#define GOBJECT_AVAILABLE_IN_2_36 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_36 +#define GOBJECT_AVAILABLE_MACRO_IN_2_36 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_36 +#define GOBJECT_AVAILABLE_TYPE_IN_2_36 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_38 +#define GOBJECT_DEPRECATED_IN_2_38 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_38_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_38 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_38_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_38 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_38_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_38 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_38_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_38 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_38_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_38 +#define GOBJECT_DEPRECATED_MACRO_IN_2_38_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_38 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_38_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_38 +#define GOBJECT_DEPRECATED_TYPE_IN_2_38_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38 +#define GOBJECT_AVAILABLE_IN_2_38 GOBJECT_UNAVAILABLE (2, 38) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_38 GLIB_UNAVAILABLE_STATIC_INLINE (2, 38) +#define GOBJECT_AVAILABLE_MACRO_IN_2_38 GLIB_UNAVAILABLE_MACRO (2, 38) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_38 GLIB_UNAVAILABLE_ENUMERATOR (2, 38) +#define GOBJECT_AVAILABLE_TYPE_IN_2_38 GLIB_UNAVAILABLE_TYPE (2, 38) +#else +#define GOBJECT_AVAILABLE_IN_2_38 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_38 +#define GOBJECT_AVAILABLE_MACRO_IN_2_38 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_38 +#define GOBJECT_AVAILABLE_TYPE_IN_2_38 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_40 +#define GOBJECT_DEPRECATED_IN_2_40 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_40_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_40 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_40_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_40 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_40_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_40 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_40_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_40 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_40_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_40 +#define GOBJECT_DEPRECATED_MACRO_IN_2_40_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_40 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_40_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_40 +#define GOBJECT_DEPRECATED_TYPE_IN_2_40_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_40 +#define GOBJECT_AVAILABLE_IN_2_40 GOBJECT_UNAVAILABLE (2, 40) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_40 GLIB_UNAVAILABLE_STATIC_INLINE (2, 40) +#define GOBJECT_AVAILABLE_MACRO_IN_2_40 GLIB_UNAVAILABLE_MACRO (2, 40) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_40 GLIB_UNAVAILABLE_ENUMERATOR (2, 40) +#define GOBJECT_AVAILABLE_TYPE_IN_2_40 GLIB_UNAVAILABLE_TYPE (2, 40) +#else +#define GOBJECT_AVAILABLE_IN_2_40 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_40 +#define GOBJECT_AVAILABLE_MACRO_IN_2_40 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_40 +#define GOBJECT_AVAILABLE_TYPE_IN_2_40 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_42 +#define GOBJECT_DEPRECATED_IN_2_42 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_42_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_42 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_42_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_42 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_42_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_42 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_42_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_42 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_42_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_42 +#define GOBJECT_DEPRECATED_MACRO_IN_2_42_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_42 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_42_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_42 +#define GOBJECT_DEPRECATED_TYPE_IN_2_42_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_42 +#define GOBJECT_AVAILABLE_IN_2_42 GOBJECT_UNAVAILABLE (2, 42) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_42 GLIB_UNAVAILABLE_STATIC_INLINE (2, 42) +#define GOBJECT_AVAILABLE_MACRO_IN_2_42 GLIB_UNAVAILABLE_MACRO (2, 42) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_42 GLIB_UNAVAILABLE_ENUMERATOR (2, 42) +#define GOBJECT_AVAILABLE_TYPE_IN_2_42 GLIB_UNAVAILABLE_TYPE (2, 42) +#else +#define GOBJECT_AVAILABLE_IN_2_42 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_42 +#define GOBJECT_AVAILABLE_MACRO_IN_2_42 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_42 +#define GOBJECT_AVAILABLE_TYPE_IN_2_42 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_44 +#define GOBJECT_DEPRECATED_IN_2_44 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_44_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_44 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_44_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_44 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_44_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_44 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_44_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_44 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_44_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_44 +#define GOBJECT_DEPRECATED_MACRO_IN_2_44_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_44 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_44_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_44 +#define GOBJECT_DEPRECATED_TYPE_IN_2_44_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_44 +#define GOBJECT_AVAILABLE_IN_2_44 GOBJECT_UNAVAILABLE (2, 44) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_44 GLIB_UNAVAILABLE_STATIC_INLINE (2, 44) +#define GOBJECT_AVAILABLE_MACRO_IN_2_44 GLIB_UNAVAILABLE_MACRO (2, 44) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_44 GLIB_UNAVAILABLE_ENUMERATOR (2, 44) +#define GOBJECT_AVAILABLE_TYPE_IN_2_44 GLIB_UNAVAILABLE_TYPE (2, 44) +#else +#define GOBJECT_AVAILABLE_IN_2_44 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_44 +#define GOBJECT_AVAILABLE_MACRO_IN_2_44 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_44 +#define GOBJECT_AVAILABLE_TYPE_IN_2_44 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_46 +#define GOBJECT_DEPRECATED_IN_2_46 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_46_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_46 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_46_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_46 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_46_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_46 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_46_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_46 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_46_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_46 +#define GOBJECT_DEPRECATED_MACRO_IN_2_46_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_46 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_46_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_46 +#define GOBJECT_DEPRECATED_TYPE_IN_2_46_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_46 +#define GOBJECT_AVAILABLE_IN_2_46 GOBJECT_UNAVAILABLE (2, 46) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_46 GLIB_UNAVAILABLE_STATIC_INLINE (2, 46) +#define GOBJECT_AVAILABLE_MACRO_IN_2_46 GLIB_UNAVAILABLE_MACRO (2, 46) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_46 GLIB_UNAVAILABLE_ENUMERATOR (2, 46) +#define GOBJECT_AVAILABLE_TYPE_IN_2_46 GLIB_UNAVAILABLE_TYPE (2, 46) +#else +#define GOBJECT_AVAILABLE_IN_2_46 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_46 +#define GOBJECT_AVAILABLE_MACRO_IN_2_46 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_46 +#define GOBJECT_AVAILABLE_TYPE_IN_2_46 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_48 +#define GOBJECT_DEPRECATED_IN_2_48 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_48_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_48 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_48_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_48 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_48_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_48 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_48_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_48 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_48_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_48 +#define GOBJECT_DEPRECATED_MACRO_IN_2_48_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_48 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_48_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_48 +#define GOBJECT_DEPRECATED_TYPE_IN_2_48_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_48 +#define GOBJECT_AVAILABLE_IN_2_48 GOBJECT_UNAVAILABLE (2, 48) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_48 GLIB_UNAVAILABLE_STATIC_INLINE (2, 48) +#define GOBJECT_AVAILABLE_MACRO_IN_2_48 GLIB_UNAVAILABLE_MACRO (2, 48) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_48 GLIB_UNAVAILABLE_ENUMERATOR (2, 48) +#define GOBJECT_AVAILABLE_TYPE_IN_2_48 GLIB_UNAVAILABLE_TYPE (2, 48) +#else +#define GOBJECT_AVAILABLE_IN_2_48 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_48 +#define GOBJECT_AVAILABLE_MACRO_IN_2_48 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_48 +#define GOBJECT_AVAILABLE_TYPE_IN_2_48 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_50 +#define GOBJECT_DEPRECATED_IN_2_50 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_50_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_50 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_50_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_50 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_50_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_50 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_50_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_50 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_50_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_50 +#define GOBJECT_DEPRECATED_MACRO_IN_2_50_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_50 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_50_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_50 +#define GOBJECT_DEPRECATED_TYPE_IN_2_50_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_50 +#define GOBJECT_AVAILABLE_IN_2_50 GOBJECT_UNAVAILABLE (2, 50) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_50 GLIB_UNAVAILABLE_STATIC_INLINE (2, 50) +#define GOBJECT_AVAILABLE_MACRO_IN_2_50 GLIB_UNAVAILABLE_MACRO (2, 50) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_50 GLIB_UNAVAILABLE_ENUMERATOR (2, 50) +#define GOBJECT_AVAILABLE_TYPE_IN_2_50 GLIB_UNAVAILABLE_TYPE (2, 50) +#else +#define GOBJECT_AVAILABLE_IN_2_50 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_50 +#define GOBJECT_AVAILABLE_MACRO_IN_2_50 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_50 +#define GOBJECT_AVAILABLE_TYPE_IN_2_50 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_52 +#define GOBJECT_DEPRECATED_IN_2_52 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_52_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_52 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_52_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_52 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_52_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_52 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_52_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_52 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_52_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_52 +#define GOBJECT_DEPRECATED_MACRO_IN_2_52_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_52 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_52_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_52 +#define GOBJECT_DEPRECATED_TYPE_IN_2_52_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_52 +#define GOBJECT_AVAILABLE_IN_2_52 GOBJECT_UNAVAILABLE (2, 52) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_52 GLIB_UNAVAILABLE_STATIC_INLINE (2, 52) +#define GOBJECT_AVAILABLE_MACRO_IN_2_52 GLIB_UNAVAILABLE_MACRO (2, 52) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_52 GLIB_UNAVAILABLE_ENUMERATOR (2, 52) +#define GOBJECT_AVAILABLE_TYPE_IN_2_52 GLIB_UNAVAILABLE_TYPE (2, 52) +#else +#define GOBJECT_AVAILABLE_IN_2_52 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_52 +#define GOBJECT_AVAILABLE_MACRO_IN_2_52 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_52 +#define GOBJECT_AVAILABLE_TYPE_IN_2_52 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_54 +#define GOBJECT_DEPRECATED_IN_2_54 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_54_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_54 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_54_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_54 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_54_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_54 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_54_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_54 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_54_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_54 +#define GOBJECT_DEPRECATED_MACRO_IN_2_54_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_54 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_54_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_54 +#define GOBJECT_DEPRECATED_TYPE_IN_2_54_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_54 +#define GOBJECT_AVAILABLE_IN_2_54 GOBJECT_UNAVAILABLE (2, 54) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_54 GLIB_UNAVAILABLE_STATIC_INLINE (2, 54) +#define GOBJECT_AVAILABLE_MACRO_IN_2_54 GLIB_UNAVAILABLE_MACRO (2, 54) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_54 GLIB_UNAVAILABLE_ENUMERATOR (2, 54) +#define GOBJECT_AVAILABLE_TYPE_IN_2_54 GLIB_UNAVAILABLE_TYPE (2, 54) +#else +#define GOBJECT_AVAILABLE_IN_2_54 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_54 +#define GOBJECT_AVAILABLE_MACRO_IN_2_54 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_54 +#define GOBJECT_AVAILABLE_TYPE_IN_2_54 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_56 +#define GOBJECT_DEPRECATED_IN_2_56 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_56_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_56 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_56_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_56 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_56_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_56 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_56_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_56 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_56_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_56 +#define GOBJECT_DEPRECATED_MACRO_IN_2_56_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_56 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_56_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_56 +#define GOBJECT_DEPRECATED_TYPE_IN_2_56_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_56 +#define GOBJECT_AVAILABLE_IN_2_56 GOBJECT_UNAVAILABLE (2, 56) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_56 GLIB_UNAVAILABLE_STATIC_INLINE (2, 56) +#define GOBJECT_AVAILABLE_MACRO_IN_2_56 GLIB_UNAVAILABLE_MACRO (2, 56) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_56 GLIB_UNAVAILABLE_ENUMERATOR (2, 56) +#define GOBJECT_AVAILABLE_TYPE_IN_2_56 GLIB_UNAVAILABLE_TYPE (2, 56) +#else +#define GOBJECT_AVAILABLE_IN_2_56 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_56 +#define GOBJECT_AVAILABLE_MACRO_IN_2_56 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_56 +#define GOBJECT_AVAILABLE_TYPE_IN_2_56 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_58 +#define GOBJECT_DEPRECATED_IN_2_58 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_58_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_58 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_58_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_58 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_58_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_58 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_58_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_58 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_58_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_58 +#define GOBJECT_DEPRECATED_MACRO_IN_2_58_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_58 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_58_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_58 +#define GOBJECT_DEPRECATED_TYPE_IN_2_58_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_58 +#define GOBJECT_AVAILABLE_IN_2_58 GOBJECT_UNAVAILABLE (2, 58) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_58 GLIB_UNAVAILABLE_STATIC_INLINE (2, 58) +#define GOBJECT_AVAILABLE_MACRO_IN_2_58 GLIB_UNAVAILABLE_MACRO (2, 58) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_58 GLIB_UNAVAILABLE_ENUMERATOR (2, 58) +#define GOBJECT_AVAILABLE_TYPE_IN_2_58 GLIB_UNAVAILABLE_TYPE (2, 58) +#else +#define GOBJECT_AVAILABLE_IN_2_58 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_58 +#define GOBJECT_AVAILABLE_MACRO_IN_2_58 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_58 +#define GOBJECT_AVAILABLE_TYPE_IN_2_58 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_60 +#define GOBJECT_DEPRECATED_IN_2_60 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_60_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_60 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_60_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_60 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_60_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_60 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_60_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_60 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_60_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_60 +#define GOBJECT_DEPRECATED_MACRO_IN_2_60_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_60 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_60_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_60 +#define GOBJECT_DEPRECATED_TYPE_IN_2_60_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_60 +#define GOBJECT_AVAILABLE_IN_2_60 GOBJECT_UNAVAILABLE (2, 60) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_60 GLIB_UNAVAILABLE_STATIC_INLINE (2, 60) +#define GOBJECT_AVAILABLE_MACRO_IN_2_60 GLIB_UNAVAILABLE_MACRO (2, 60) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_60 GLIB_UNAVAILABLE_ENUMERATOR (2, 60) +#define GOBJECT_AVAILABLE_TYPE_IN_2_60 GLIB_UNAVAILABLE_TYPE (2, 60) +#else +#define GOBJECT_AVAILABLE_IN_2_60 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_60 +#define GOBJECT_AVAILABLE_MACRO_IN_2_60 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_60 +#define GOBJECT_AVAILABLE_TYPE_IN_2_60 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_62 +#define GOBJECT_DEPRECATED_IN_2_62 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_62_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_62 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_62_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_62 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_62_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_62 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_62_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_62 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_62_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_62 +#define GOBJECT_DEPRECATED_MACRO_IN_2_62_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_62 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_62_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_62 +#define GOBJECT_DEPRECATED_TYPE_IN_2_62_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_62 +#define GOBJECT_AVAILABLE_IN_2_62 GOBJECT_UNAVAILABLE (2, 62) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_62 GLIB_UNAVAILABLE_STATIC_INLINE (2, 62) +#define GOBJECT_AVAILABLE_MACRO_IN_2_62 GLIB_UNAVAILABLE_MACRO (2, 62) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_62 GLIB_UNAVAILABLE_ENUMERATOR (2, 62) +#define GOBJECT_AVAILABLE_TYPE_IN_2_62 GLIB_UNAVAILABLE_TYPE (2, 62) +#else +#define GOBJECT_AVAILABLE_IN_2_62 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_62 +#define GOBJECT_AVAILABLE_MACRO_IN_2_62 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_62 +#define GOBJECT_AVAILABLE_TYPE_IN_2_62 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_64 +#define GOBJECT_DEPRECATED_IN_2_64 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_64_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_64 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_64_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_64 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_64_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_64 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_64_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_64 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_64_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_64 +#define GOBJECT_DEPRECATED_MACRO_IN_2_64_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_64 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_64_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_64 +#define GOBJECT_DEPRECATED_TYPE_IN_2_64_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_64 +#define GOBJECT_AVAILABLE_IN_2_64 GOBJECT_UNAVAILABLE (2, 64) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_64 GLIB_UNAVAILABLE_STATIC_INLINE (2, 64) +#define GOBJECT_AVAILABLE_MACRO_IN_2_64 GLIB_UNAVAILABLE_MACRO (2, 64) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_64 GLIB_UNAVAILABLE_ENUMERATOR (2, 64) +#define GOBJECT_AVAILABLE_TYPE_IN_2_64 GLIB_UNAVAILABLE_TYPE (2, 64) +#else +#define GOBJECT_AVAILABLE_IN_2_64 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_64 +#define GOBJECT_AVAILABLE_MACRO_IN_2_64 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_64 +#define GOBJECT_AVAILABLE_TYPE_IN_2_64 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_66 +#define GOBJECT_DEPRECATED_IN_2_66 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_66_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_66 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_66_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_66 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_66_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_66 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_66_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_66 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_66_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_66 +#define GOBJECT_DEPRECATED_MACRO_IN_2_66_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_66 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_66_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_66 +#define GOBJECT_DEPRECATED_TYPE_IN_2_66_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_66 +#define GOBJECT_AVAILABLE_IN_2_66 GOBJECT_UNAVAILABLE (2, 66) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_66 GLIB_UNAVAILABLE_STATIC_INLINE (2, 66) +#define GOBJECT_AVAILABLE_MACRO_IN_2_66 GLIB_UNAVAILABLE_MACRO (2, 66) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_66 GLIB_UNAVAILABLE_ENUMERATOR (2, 66) +#define GOBJECT_AVAILABLE_TYPE_IN_2_66 GLIB_UNAVAILABLE_TYPE (2, 66) +#else +#define GOBJECT_AVAILABLE_IN_2_66 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_66 +#define GOBJECT_AVAILABLE_MACRO_IN_2_66 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_66 +#define GOBJECT_AVAILABLE_TYPE_IN_2_66 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_68 +#define GOBJECT_DEPRECATED_IN_2_68 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_68_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_68 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_68_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_68 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_68_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_68 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_68_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_68 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_68_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_68 +#define GOBJECT_DEPRECATED_MACRO_IN_2_68_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_68 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_68_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_68 +#define GOBJECT_DEPRECATED_TYPE_IN_2_68_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_68 +#define GOBJECT_AVAILABLE_IN_2_68 GOBJECT_UNAVAILABLE (2, 68) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_68 GLIB_UNAVAILABLE_STATIC_INLINE (2, 68) +#define GOBJECT_AVAILABLE_MACRO_IN_2_68 GLIB_UNAVAILABLE_MACRO (2, 68) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_68 GLIB_UNAVAILABLE_ENUMERATOR (2, 68) +#define GOBJECT_AVAILABLE_TYPE_IN_2_68 GLIB_UNAVAILABLE_TYPE (2, 68) +#else +#define GOBJECT_AVAILABLE_IN_2_68 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_68 +#define GOBJECT_AVAILABLE_MACRO_IN_2_68 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_68 +#define GOBJECT_AVAILABLE_TYPE_IN_2_68 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_70 +#define GOBJECT_DEPRECATED_IN_2_70 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_70_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_70 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_70_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_70 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_70_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_70 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_70_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_70 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_70_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_70 +#define GOBJECT_DEPRECATED_MACRO_IN_2_70_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_70 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_70_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_70 +#define GOBJECT_DEPRECATED_TYPE_IN_2_70_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_70 +#define GOBJECT_AVAILABLE_IN_2_70 GOBJECT_UNAVAILABLE (2, 70) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_70 GLIB_UNAVAILABLE_STATIC_INLINE (2, 70) +#define GOBJECT_AVAILABLE_MACRO_IN_2_70 GLIB_UNAVAILABLE_MACRO (2, 70) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_70 GLIB_UNAVAILABLE_ENUMERATOR (2, 70) +#define GOBJECT_AVAILABLE_TYPE_IN_2_70 GLIB_UNAVAILABLE_TYPE (2, 70) +#else +#define GOBJECT_AVAILABLE_IN_2_70 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_70 +#define GOBJECT_AVAILABLE_MACRO_IN_2_70 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_70 +#define GOBJECT_AVAILABLE_TYPE_IN_2_70 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_72 +#define GOBJECT_DEPRECATED_IN_2_72 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_72_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_72 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_72_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_72 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_72_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_72 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_72_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_72 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_72_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_72 +#define GOBJECT_DEPRECATED_MACRO_IN_2_72_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_72 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_72_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_72 +#define GOBJECT_DEPRECATED_TYPE_IN_2_72_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_72 +#define GOBJECT_AVAILABLE_IN_2_72 GOBJECT_UNAVAILABLE (2, 72) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_72 GLIB_UNAVAILABLE_STATIC_INLINE (2, 72) +#define GOBJECT_AVAILABLE_MACRO_IN_2_72 GLIB_UNAVAILABLE_MACRO (2, 72) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_72 GLIB_UNAVAILABLE_ENUMERATOR (2, 72) +#define GOBJECT_AVAILABLE_TYPE_IN_2_72 GLIB_UNAVAILABLE_TYPE (2, 72) +#else +#define GOBJECT_AVAILABLE_IN_2_72 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_72 +#define GOBJECT_AVAILABLE_MACRO_IN_2_72 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_72 +#define GOBJECT_AVAILABLE_TYPE_IN_2_72 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_74 +#define GOBJECT_DEPRECATED_IN_2_74 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_74_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_74 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_74_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_74 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_74_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_74 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_74_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_74 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_74_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_74 +#define GOBJECT_DEPRECATED_MACRO_IN_2_74_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_74 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_74_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_74 +#define GOBJECT_DEPRECATED_TYPE_IN_2_74_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_74 +#define GOBJECT_AVAILABLE_IN_2_74 GOBJECT_UNAVAILABLE (2, 74) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_74 GLIB_UNAVAILABLE_STATIC_INLINE (2, 74) +#define GOBJECT_AVAILABLE_MACRO_IN_2_74 GLIB_UNAVAILABLE_MACRO (2, 74) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_74 GLIB_UNAVAILABLE_ENUMERATOR (2, 74) +#define GOBJECT_AVAILABLE_TYPE_IN_2_74 GLIB_UNAVAILABLE_TYPE (2, 74) +#else +#define GOBJECT_AVAILABLE_IN_2_74 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_74 +#define GOBJECT_AVAILABLE_MACRO_IN_2_74 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_74 +#define GOBJECT_AVAILABLE_TYPE_IN_2_74 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_76 +#define GOBJECT_DEPRECATED_IN_2_76 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_76_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_76 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_76_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_76 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_76_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_76 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_76_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_76 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_76_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_76 +#define GOBJECT_DEPRECATED_MACRO_IN_2_76_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_76 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_76_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_76 +#define GOBJECT_DEPRECATED_TYPE_IN_2_76_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_76 +#define GOBJECT_AVAILABLE_IN_2_76 GOBJECT_UNAVAILABLE (2, 76) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_76 GLIB_UNAVAILABLE_STATIC_INLINE (2, 76) +#define GOBJECT_AVAILABLE_MACRO_IN_2_76 GLIB_UNAVAILABLE_MACRO (2, 76) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_76 GLIB_UNAVAILABLE_ENUMERATOR (2, 76) +#define GOBJECT_AVAILABLE_TYPE_IN_2_76 GLIB_UNAVAILABLE_TYPE (2, 76) +#else +#define GOBJECT_AVAILABLE_IN_2_76 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_76 +#define GOBJECT_AVAILABLE_MACRO_IN_2_76 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_76 +#define GOBJECT_AVAILABLE_TYPE_IN_2_76 +#endif + +#if GLIB_VERSION_MIN_REQUIRED >= GLIB_VERSION_2_78 +#define GOBJECT_DEPRECATED_IN_2_78 GOBJECT_DEPRECATED +#define GOBJECT_DEPRECATED_IN_2_78_FOR(f) GOBJECT_DEPRECATED_FOR (f) +#define GOBJECT_DEPRECATED_MACRO_IN_2_78 GLIB_DEPRECATED_MACRO +#define GOBJECT_DEPRECATED_MACRO_IN_2_78_FOR(f) GLIB_DEPRECATED_MACRO_FOR (f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_78 GLIB_DEPRECATED_ENUMERATOR +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_78_FOR(f) GLIB_DEPRECATED_ENUMERATOR_FOR (f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_78 GLIB_DEPRECATED_TYPE +#define GOBJECT_DEPRECATED_TYPE_IN_2_78_FOR(f) GLIB_DEPRECATED_TYPE_FOR (f) +#else +#define GOBJECT_DEPRECATED_IN_2_78 _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_IN_2_78_FOR(f) _GOBJECT_EXTERN +#define GOBJECT_DEPRECATED_MACRO_IN_2_78 +#define GOBJECT_DEPRECATED_MACRO_IN_2_78_FOR(f) +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_78 +#define GOBJECT_DEPRECATED_ENUMERATOR_IN_2_78_FOR(f) +#define GOBJECT_DEPRECATED_TYPE_IN_2_78 +#define GOBJECT_DEPRECATED_TYPE_IN_2_78_FOR(f) +#endif + +#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_78 +#define GOBJECT_AVAILABLE_IN_2_78 GOBJECT_UNAVAILABLE (2, 78) +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_78 GLIB_UNAVAILABLE_STATIC_INLINE (2, 78) +#define GOBJECT_AVAILABLE_MACRO_IN_2_78 GLIB_UNAVAILABLE_MACRO (2, 78) +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_78 GLIB_UNAVAILABLE_ENUMERATOR (2, 78) +#define GOBJECT_AVAILABLE_TYPE_IN_2_78 GLIB_UNAVAILABLE_TYPE (2, 78) +#else +#define GOBJECT_AVAILABLE_IN_2_78 _GOBJECT_EXTERN +#define GOBJECT_AVAILABLE_STATIC_INLINE_IN_2_78 +#define GOBJECT_AVAILABLE_MACRO_IN_2_78 +#define GOBJECT_AVAILABLE_ENUMERATOR_IN_2_78 +#define GOBJECT_AVAILABLE_TYPE_IN_2_78 +#endif diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gobject.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gobject.h new file mode 100644 index 000000000..ea0157c35 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gobject.h @@ -0,0 +1,953 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 1998-1999, 2000-2001 Tim Janik and Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ +#ifndef __G_OBJECT_H__ +#define __G_OBJECT_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include +#include +#include +#include + +G_BEGIN_DECLS + +/* --- type macros --- */ +/** + * G_TYPE_IS_OBJECT: + * @type: Type id to check + * + * Check if the passed in type id is a %G_TYPE_OBJECT or derived from it. + * + * Returns: %FALSE or %TRUE, indicating whether @type is a %G_TYPE_OBJECT. + */ +#define G_TYPE_IS_OBJECT(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_OBJECT) +/** + * G_OBJECT: + * @object: Object which is subject to casting. + * + * Casts a #GObject or derived pointer into a (GObject*) pointer. + * + * Depending on the current debugging level, this function may invoke + * certain runtime checks to identify invalid casts. + */ +#define G_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject)) +/** + * G_OBJECT_CLASS: + * @class: a valid #GObjectClass + * + * Casts a derived #GObjectClass structure into a #GObjectClass structure. + */ +#define G_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass)) +/** + * G_IS_OBJECT: + * @object: Instance to check for being a %G_TYPE_OBJECT. + * + * Checks whether a valid #GTypeInstance pointer is of type %G_TYPE_OBJECT. + */ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_42 +#define G_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE ((object), G_TYPE_OBJECT)) +#else +#define G_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_OBJECT)) +#endif +/** + * G_IS_OBJECT_CLASS: + * @class: a #GObjectClass + * + * Checks whether @class "is a" valid #GObjectClass structure of type + * %G_TYPE_OBJECT or derived. + */ +#define G_IS_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_OBJECT)) +/** + * G_OBJECT_GET_CLASS: + * @object: a #GObject instance. + * + * Get the class structure associated to a #GObject instance. + * + * Returns: pointer to object class structure. + */ +#define G_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass)) +/** + * G_OBJECT_TYPE: + * @object: Object to return the type id for. + * + * Get the type id of an object. + * + * Returns: Type id of @object. + */ +#define G_OBJECT_TYPE(object) (G_TYPE_FROM_INSTANCE (object)) +/** + * G_OBJECT_TYPE_NAME: + * @object: Object to return the type name for. + * + * Get the name of an object's type. + * + * Returns: Type name of @object. The string is owned by the type system and + * should not be freed. + */ +#define G_OBJECT_TYPE_NAME(object) (g_type_name (G_OBJECT_TYPE (object))) +/** + * G_OBJECT_CLASS_TYPE: + * @class: a valid #GObjectClass + * + * Get the type id of a class structure. + * + * Returns: Type id of @class. + */ +#define G_OBJECT_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class)) +/** + * G_OBJECT_CLASS_NAME: + * @class: a valid #GObjectClass + * + * Return the name of a class structure's type. + * + * Returns: Type name of @class. The string is owned by the type system and + * should not be freed. + */ +#define G_OBJECT_CLASS_NAME(class) (g_type_name (G_OBJECT_CLASS_TYPE (class))) +/** + * G_VALUE_HOLDS_OBJECT: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values derived from type %G_TYPE_OBJECT. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_OBJECT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_OBJECT)) + +/* --- type macros --- */ +/** + * G_TYPE_INITIALLY_UNOWNED: + * + * The type for #GInitiallyUnowned. + */ +#define G_TYPE_INITIALLY_UNOWNED (g_initially_unowned_get_type()) +/** + * G_INITIALLY_UNOWNED: + * @object: Object which is subject to casting. + * + * Casts a #GInitiallyUnowned or derived pointer into a (GInitiallyUnowned*) + * pointer. + * + * Depending on the current debugging level, this function may invoke + * certain runtime checks to identify invalid casts. + */ +#define G_INITIALLY_UNOWNED(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnowned)) +/** + * G_INITIALLY_UNOWNED_CLASS: + * @class: a valid #GInitiallyUnownedClass + * + * Casts a derived #GInitiallyUnownedClass structure into a + * #GInitiallyUnownedClass structure. + */ +#define G_INITIALLY_UNOWNED_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnownedClass)) +/** + * G_IS_INITIALLY_UNOWNED: + * @object: Instance to check for being a %G_TYPE_INITIALLY_UNOWNED. + * + * Checks whether a valid #GTypeInstance pointer is of type %G_TYPE_INITIALLY_UNOWNED. + */ +#define G_IS_INITIALLY_UNOWNED(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_INITIALLY_UNOWNED)) +/** + * G_IS_INITIALLY_UNOWNED_CLASS: + * @class: a #GInitiallyUnownedClass + * + * Checks whether @class "is a" valid #GInitiallyUnownedClass structure of type + * %G_TYPE_INITIALLY_UNOWNED or derived. + */ +#define G_IS_INITIALLY_UNOWNED_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_INITIALLY_UNOWNED)) +/** + * G_INITIALLY_UNOWNED_GET_CLASS: + * @object: a #GInitiallyUnowned instance. + * + * Get the class structure associated to a #GInitiallyUnowned instance. + * + * Returns: pointer to object class structure. + */ +#define G_INITIALLY_UNOWNED_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnownedClass)) +/* GInitiallyUnowned ia a GObject with initially floating reference count */ + + +/* --- typedefs & structures --- */ +typedef struct _GObject GObject; +typedef struct _GObjectClass GObjectClass; +typedef struct _GObject GInitiallyUnowned; +typedef struct _GObjectClass GInitiallyUnownedClass; +typedef struct _GObjectConstructParam GObjectConstructParam; +/** + * GObjectGetPropertyFunc: + * @object: a #GObject + * @property_id: the numeric id under which the property was registered with + * g_object_class_install_property(). + * @value: a #GValue to return the property value in + * @pspec: the #GParamSpec describing the property + * + * The type of the @get_property function of #GObjectClass. + */ +typedef void (*GObjectGetPropertyFunc) (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec); +/** + * GObjectSetPropertyFunc: + * @object: a #GObject + * @property_id: the numeric id under which the property was registered with + * g_object_class_install_property(). + * @value: the new value for the property + * @pspec: the #GParamSpec describing the property + * + * The type of the @set_property function of #GObjectClass. + */ +typedef void (*GObjectSetPropertyFunc) (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec); +/** + * GObjectFinalizeFunc: + * @object: the #GObject being finalized + * + * The type of the @finalize function of #GObjectClass. + */ +typedef void (*GObjectFinalizeFunc) (GObject *object); +/** + * GWeakNotify: + * @data: data that was provided when the weak reference was established + * @where_the_object_was: the object being disposed + * + * A #GWeakNotify function can be added to an object as a callback that gets + * triggered when the object is finalized. + * + * Since the object is already being disposed when the #GWeakNotify is called, + * there's not much you could do with the object, apart from e.g. using its + * address as hash-index or the like. + * + * In particular, this means it’s invalid to call g_object_ref(), + * g_weak_ref_init(), g_weak_ref_set(), g_object_add_toggle_ref(), + * g_object_weak_ref(), g_object_add_weak_pointer() or any function which calls + * them on the object from this callback. + */ +typedef void (*GWeakNotify) (gpointer data, + GObject *where_the_object_was); +/** + * GObject: + * + * The base object type. + * + * All the fields in the `GObject` structure are private to the implementation + * and should never be accessed directly. + * + * Since GLib 2.72, all #GObjects are guaranteed to be aligned to at least the + * alignment of the largest basic GLib type (typically this is #guint64 or + * #gdouble). If you need larger alignment for an element in a #GObject, you + * should allocate it on the heap (aligned), or arrange for your #GObject to be + * appropriately padded. This guarantee applies to the #GObject (or derived) + * struct, the #GObjectClass (or derived) struct, and any private data allocated + * by G_ADD_PRIVATE(). + */ +struct _GObject +{ + GTypeInstance g_type_instance; + + /*< private >*/ + guint ref_count; /* (atomic) */ + GData *qdata; +}; +/** + * GObjectClass: + * @g_type_class: the parent class + * @constructor: the @constructor function is called by g_object_new () to + * complete the object initialization after all the construction properties are + * set. The first thing a @constructor implementation must do is chain up to the + * @constructor of the parent class. Overriding @constructor should be rarely + * needed, e.g. to handle construct properties, or to implement singletons. + * @set_property: the generic setter for all properties of this type. Should be + * overridden for every type with properties. If implementations of + * @set_property don't emit property change notification explicitly, this will + * be done implicitly by the type system. However, if the notify signal is + * emitted explicitly, the type system will not emit it a second time. + * @get_property: the generic getter for all properties of this type. Should be + * overridden for every type with properties. + * @dispose: the @dispose function is supposed to drop all references to other + * objects, but keep the instance otherwise intact, so that client method + * invocations still work. It may be run multiple times (due to reference + * loops). Before returning, @dispose should chain up to the @dispose method + * of the parent class. + * @finalize: instance finalization function, should finish the finalization of + * the instance begun in @dispose and chain up to the @finalize method of the + * parent class. + * @dispatch_properties_changed: emits property change notification for a bunch + * of properties. Overriding @dispatch_properties_changed should be rarely + * needed. + * @notify: the class closure for the notify signal + * @constructed: the @constructed function is called by g_object_new() as the + * final step of the object creation process. At the point of the call, all + * construction properties have been set on the object. The purpose of this + * call is to allow for object initialisation steps that can only be performed + * after construction properties have been set. @constructed implementors + * should chain up to the @constructed call of their parent class to allow it + * to complete its initialisation. + * + * The class structure for the GObject type. + * + * |[ + * // Example of implementing a singleton using a constructor. + * static MySingleton *the_singleton = NULL; + * + * static GObject* + * my_singleton_constructor (GType type, + * guint n_construct_params, + * GObjectConstructParam *construct_params) + * { + * GObject *object; + * + * if (!the_singleton) + * { + * object = G_OBJECT_CLASS (parent_class)->constructor (type, + * n_construct_params, + * construct_params); + * the_singleton = MY_SINGLETON (object); + * } + * else + * object = g_object_ref (G_OBJECT (the_singleton)); + * + * return object; + * } + * ]| + */ +struct _GObjectClass +{ + GTypeClass g_type_class; + + /*< private >*/ + GSList *construct_properties; + + /*< public >*/ + /* seldom overridden */ + GObject* (*constructor) (GType type, + guint n_construct_properties, + GObjectConstructParam *construct_properties); + /* overridable methods */ + void (*set_property) (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec); + void (*get_property) (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec); + void (*dispose) (GObject *object); + void (*finalize) (GObject *object); + /* seldom overridden */ + void (*dispatch_properties_changed) (GObject *object, + guint n_pspecs, + GParamSpec **pspecs); + /* signals */ + void (*notify) (GObject *object, + GParamSpec *pspec); + + /* called when done constructing */ + void (*constructed) (GObject *object); + + /*< private >*/ + gsize flags; + + gsize n_construct_properties; + + gpointer pspecs; + gsize n_pspecs; + + /* padding */ + gpointer pdummy[3]; +}; + +/** + * GObjectConstructParam: + * @pspec: the #GParamSpec of the construct parameter + * @value: the value to set the parameter to + * + * The GObjectConstructParam struct is an auxiliary structure used to hand + * #GParamSpec/#GValue pairs to the @constructor of a #GObjectClass. + */ +struct _GObjectConstructParam +{ + GParamSpec *pspec; + GValue *value; +}; + +/** + * GInitiallyUnowned: + * + * A type for objects that have an initially floating reference. + * + * All the fields in the `GInitiallyUnowned` structure are private to the + * implementation and should never be accessed directly. + */ +/** + * GInitiallyUnownedClass: + * + * The class structure for the GInitiallyUnowned type. + */ + + +/* --- prototypes --- */ +GOBJECT_AVAILABLE_IN_ALL +GType g_initially_unowned_get_type (void); +GOBJECT_AVAILABLE_IN_ALL +void g_object_class_install_property (GObjectClass *oclass, + guint property_id, + GParamSpec *pspec); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_object_class_find_property (GObjectClass *oclass, + const gchar *property_name); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec**g_object_class_list_properties (GObjectClass *oclass, + guint *n_properties); +GOBJECT_AVAILABLE_IN_ALL +void g_object_class_override_property (GObjectClass *oclass, + guint property_id, + const gchar *name); +GOBJECT_AVAILABLE_IN_ALL +void g_object_class_install_properties (GObjectClass *oclass, + guint n_pspecs, + GParamSpec **pspecs); + +GOBJECT_AVAILABLE_IN_ALL +void g_object_interface_install_property (gpointer g_iface, + GParamSpec *pspec); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_object_interface_find_property (gpointer g_iface, + const gchar *property_name); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec**g_object_interface_list_properties (gpointer g_iface, + guint *n_properties_p); + +GOBJECT_AVAILABLE_IN_ALL +GType g_object_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +gpointer g_object_new (GType object_type, + const gchar *first_property_name, + ...); +GOBJECT_AVAILABLE_IN_2_54 +GObject* g_object_new_with_properties (GType object_type, + guint n_properties, + const char *names[], + const GValue values[]); + +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + +GOBJECT_DEPRECATED_IN_2_54_FOR(g_object_new_with_properties) +gpointer g_object_newv (GType object_type, + guint n_parameters, + GParameter *parameters); + +G_GNUC_END_IGNORE_DEPRECATIONS + +GOBJECT_AVAILABLE_IN_ALL +GObject* g_object_new_valist (GType object_type, + const gchar *first_property_name, + va_list var_args); +GOBJECT_AVAILABLE_IN_ALL +void g_object_set (gpointer object, + const gchar *first_property_name, + ...) G_GNUC_NULL_TERMINATED; +GOBJECT_AVAILABLE_IN_ALL +void g_object_get (gpointer object, + const gchar *first_property_name, + ...) G_GNUC_NULL_TERMINATED; +GOBJECT_AVAILABLE_IN_ALL +gpointer g_object_connect (gpointer object, + const gchar *signal_spec, + ...) G_GNUC_NULL_TERMINATED; +GOBJECT_AVAILABLE_IN_ALL +void g_object_disconnect (gpointer object, + const gchar *signal_spec, + ...) G_GNUC_NULL_TERMINATED; +GOBJECT_AVAILABLE_IN_2_54 +void g_object_setv (GObject *object, + guint n_properties, + const gchar *names[], + const GValue values[]); +GOBJECT_AVAILABLE_IN_ALL +void g_object_set_valist (GObject *object, + const gchar *first_property_name, + va_list var_args); +GOBJECT_AVAILABLE_IN_2_54 +void g_object_getv (GObject *object, + guint n_properties, + const gchar *names[], + GValue values[]); +GOBJECT_AVAILABLE_IN_ALL +void g_object_get_valist (GObject *object, + const gchar *first_property_name, + va_list var_args); +GOBJECT_AVAILABLE_IN_ALL +void g_object_set_property (GObject *object, + const gchar *property_name, + const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_object_get_property (GObject *object, + const gchar *property_name, + GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_object_freeze_notify (GObject *object); +GOBJECT_AVAILABLE_IN_ALL +void g_object_notify (GObject *object, + const gchar *property_name); +GOBJECT_AVAILABLE_IN_ALL +void g_object_notify_by_pspec (GObject *object, + GParamSpec *pspec); +GOBJECT_AVAILABLE_IN_ALL +void g_object_thaw_notify (GObject *object); +GOBJECT_AVAILABLE_IN_ALL +gboolean g_object_is_floating (gpointer object); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_object_ref_sink (gpointer object); +GOBJECT_AVAILABLE_IN_2_70 +gpointer g_object_take_ref (gpointer object); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_object_ref (gpointer object); +GOBJECT_AVAILABLE_IN_ALL +void g_object_unref (gpointer object); +GOBJECT_AVAILABLE_IN_ALL +void g_object_weak_ref (GObject *object, + GWeakNotify notify, + gpointer data); +GOBJECT_AVAILABLE_IN_ALL +void g_object_weak_unref (GObject *object, + GWeakNotify notify, + gpointer data); +GOBJECT_AVAILABLE_IN_ALL +void g_object_add_weak_pointer (GObject *object, + gpointer *weak_pointer_location); +GOBJECT_AVAILABLE_IN_ALL +void g_object_remove_weak_pointer (GObject *object, + gpointer *weak_pointer_location); + +#if defined(glib_typeof) && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_56 +/* Make reference APIs type safe with macros */ +#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj)) +#define g_object_ref_sink(Obj) ((glib_typeof (Obj)) (g_object_ref_sink) (Obj)) +#endif + +/** + * GToggleNotify: + * @data: Callback data passed to g_object_add_toggle_ref() + * @object: The object on which g_object_add_toggle_ref() was called. + * @is_last_ref: %TRUE if the toggle reference is now the + * last reference to the object. %FALSE if the toggle + * reference was the last reference and there are now other + * references. + * + * A callback function used for notification when the state + * of a toggle reference changes. + * + * See also: g_object_add_toggle_ref() + */ +typedef void (*GToggleNotify) (gpointer data, + GObject *object, + gboolean is_last_ref); + +GOBJECT_AVAILABLE_IN_ALL +void g_object_add_toggle_ref (GObject *object, + GToggleNotify notify, + gpointer data); +GOBJECT_AVAILABLE_IN_ALL +void g_object_remove_toggle_ref (GObject *object, + GToggleNotify notify, + gpointer data); + +GOBJECT_AVAILABLE_IN_ALL +gpointer g_object_get_qdata (GObject *object, + GQuark quark); +GOBJECT_AVAILABLE_IN_ALL +void g_object_set_qdata (GObject *object, + GQuark quark, + gpointer data); +GOBJECT_AVAILABLE_IN_ALL +void g_object_set_qdata_full (GObject *object, + GQuark quark, + gpointer data, + GDestroyNotify destroy); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_object_steal_qdata (GObject *object, + GQuark quark); + +GOBJECT_AVAILABLE_IN_2_34 +gpointer g_object_dup_qdata (GObject *object, + GQuark quark, + GDuplicateFunc dup_func, + gpointer user_data); +GOBJECT_AVAILABLE_IN_2_34 +gboolean g_object_replace_qdata (GObject *object, + GQuark quark, + gpointer oldval, + gpointer newval, + GDestroyNotify destroy, + GDestroyNotify *old_destroy); + +GOBJECT_AVAILABLE_IN_ALL +gpointer g_object_get_data (GObject *object, + const gchar *key); +GOBJECT_AVAILABLE_IN_ALL +void g_object_set_data (GObject *object, + const gchar *key, + gpointer data); +GOBJECT_AVAILABLE_IN_ALL +void g_object_set_data_full (GObject *object, + const gchar *key, + gpointer data, + GDestroyNotify destroy); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_object_steal_data (GObject *object, + const gchar *key); + +GOBJECT_AVAILABLE_IN_2_34 +gpointer g_object_dup_data (GObject *object, + const gchar *key, + GDuplicateFunc dup_func, + gpointer user_data); +GOBJECT_AVAILABLE_IN_2_34 +gboolean g_object_replace_data (GObject *object, + const gchar *key, + gpointer oldval, + gpointer newval, + GDestroyNotify destroy, + GDestroyNotify *old_destroy); + + +GOBJECT_AVAILABLE_IN_ALL +void g_object_watch_closure (GObject *object, + GClosure *closure); +GOBJECT_AVAILABLE_IN_ALL +GClosure* g_cclosure_new_object (GCallback callback_func, + GObject *object); +GOBJECT_AVAILABLE_IN_ALL +GClosure* g_cclosure_new_object_swap (GCallback callback_func, + GObject *object); +GOBJECT_AVAILABLE_IN_ALL +GClosure* g_closure_new_object (guint sizeof_closure, + GObject *object); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_object (GValue *value, + gpointer v_object); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_value_get_object (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_value_dup_object (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +gulong g_signal_connect_object (gpointer instance, + const gchar *detailed_signal, + GCallback c_handler, + gpointer gobject, + GConnectFlags connect_flags); + +/*< protected >*/ +GOBJECT_AVAILABLE_IN_ALL +void g_object_force_floating (GObject *object); +GOBJECT_AVAILABLE_IN_ALL +void g_object_run_dispose (GObject *object); + + +GOBJECT_AVAILABLE_IN_ALL +void g_value_take_object (GValue *value, + gpointer v_object); +GOBJECT_DEPRECATED_FOR(g_value_take_object) +void g_value_set_object_take_ownership (GValue *value, + gpointer v_object); + +GOBJECT_DEPRECATED +gsize g_object_compat_control (gsize what, + gpointer data); + +/* --- implementation macros --- */ +#define G_OBJECT_WARN_INVALID_PSPEC(object, pname, property_id, pspec) \ +G_STMT_START { \ + GObject *_glib__object = (GObject*) (object); \ + GParamSpec *_glib__pspec = (GParamSpec*) (pspec); \ + guint _glib__property_id = (property_id); \ + g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'", \ + __FILE__, __LINE__, \ + (pname), \ + _glib__property_id, \ + _glib__pspec->name, \ + g_type_name (G_PARAM_SPEC_TYPE (_glib__pspec)), \ + G_OBJECT_TYPE_NAME (_glib__object)); \ +} G_STMT_END +/** + * G_OBJECT_WARN_INVALID_PROPERTY_ID: + * @object: the #GObject on which set_property() or get_property() was called + * @property_id: the numeric id of the property + * @pspec: the #GParamSpec of the property + * + * This macro should be used to emit a standard warning about unexpected + * properties in set_property() and get_property() implementations. + */ +#define G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec) \ + G_OBJECT_WARN_INVALID_PSPEC ((object), "property", (property_id), (pspec)) + +GOBJECT_AVAILABLE_IN_ALL +void g_clear_object (GObject **object_ptr); +#define g_clear_object(object_ptr) g_clear_pointer ((object_ptr), g_object_unref) + +/** + * g_set_object: (skip) + * @object_ptr: (inout) (not optional) (nullable): a pointer to a #GObject reference + * @new_object: (nullable) (transfer none): a pointer to the new #GObject to + * assign to @object_ptr, or %NULL to clear the pointer + * + * Updates a #GObject pointer to refer to @new_object. + * + * It increments the reference count of @new_object (if non-%NULL), decrements + * the reference count of the current value of @object_ptr (if non-%NULL), and + * assigns @new_object to @object_ptr. The assignment is not atomic. + * + * @object_ptr must not be %NULL, but can point to a %NULL value. + * + * A macro is also included that allows this function to be used without + * pointer casts. The function itself is static inline, so its address may vary + * between compilation units. + * + * One convenient usage of this function is in implementing property setters: + * |[ + * void + * foo_set_bar (Foo *foo, + * Bar *new_bar) + * { + * g_return_if_fail (IS_FOO (foo)); + * g_return_if_fail (new_bar == NULL || IS_BAR (new_bar)); + * + * if (g_set_object (&foo->bar, new_bar)) + * g_object_notify (foo, "bar"); + * } + * ]| + * + * Returns: %TRUE if the value of @object_ptr changed, %FALSE otherwise + * + * Since: 2.44 + */ +static inline gboolean +(g_set_object) (GObject **object_ptr, + GObject *new_object) +{ + GObject *old_object = *object_ptr; + + /* rely on g_object_[un]ref() to check the pointers are actually GObjects; + * elide a (object_ptr != NULL) check because most of the time we will be + * operating on struct members with a constant offset, so a NULL check would + * not catch bugs + */ + + if (old_object == new_object) + return FALSE; + + if (new_object != NULL) + g_object_ref (new_object); + + *object_ptr = new_object; + + if (old_object != NULL) + g_object_unref (old_object); + + return TRUE; +} + +/* We need GCC for __extension__, which we need to sort out strict aliasing of @object_ptr */ +#if defined(__GNUC__) + +#define g_set_object(object_ptr, new_object) \ + (G_GNUC_EXTENSION ({ \ + G_STATIC_ASSERT (sizeof *(object_ptr) == sizeof (new_object)); \ + /* Only one access, please; work around type aliasing */ \ + union { char *in; GObject **out; } _object_ptr; \ + _object_ptr.in = (char *) (object_ptr); \ + /* Check types match */ \ + (void) (0 ? *(object_ptr) = (new_object), FALSE : FALSE); \ + (g_set_object) (_object_ptr.out, (GObject *) new_object); \ + })) \ + GOBJECT_AVAILABLE_MACRO_IN_2_44 + +#else /* if !defined(__GNUC__) */ + +#define g_set_object(object_ptr, new_object) \ + (/* Check types match. */ \ + 0 ? *(object_ptr) = (new_object), FALSE : \ + (g_set_object) ((GObject **) (object_ptr), (GObject *) (new_object)) \ + ) + +#endif /* !defined(__GNUC__) */ + +/** + * g_assert_finalize_object: (skip) + * @object: (transfer full) (type GObject.Object): an object + * + * Assert that @object is non-%NULL, then release one reference to it with + * g_object_unref() and assert that it has been finalized (i.e. that there + * are no more references). + * + * If assertions are disabled via `G_DISABLE_ASSERT`, + * this macro just calls g_object_unref() without any further checks. + * + * This macro should only be used in regression tests. + * + * Since: 2.62 + */ +static inline void +(g_assert_finalize_object) (GObject *object) +{ + gpointer weak_pointer = object; + + g_assert_true (G_IS_OBJECT (weak_pointer)); + g_object_add_weak_pointer (object, &weak_pointer); + g_object_unref (weak_pointer); + g_assert_null (weak_pointer); +} + +#ifdef G_DISABLE_ASSERT +#define g_assert_finalize_object(object) g_object_unref (object) +#else +#define g_assert_finalize_object(object) (g_assert_finalize_object ((GObject *) object)) +#endif + +/** + * g_clear_weak_pointer: (skip) + * @weak_pointer_location: The memory address of a pointer + * + * Clears a weak reference to a #GObject. + * + * @weak_pointer_location must not be %NULL. + * + * If the weak reference is %NULL then this function does nothing. + * Otherwise, the weak reference to the object is removed for that location + * and the pointer is set to %NULL. + * + * A macro is also included that allows this function to be used without + * pointer casts. The function itself is static inline, so its address may vary + * between compilation units. + * + * Since: 2.56 + */ +static inline void +(g_clear_weak_pointer) (gpointer *weak_pointer_location) +{ + GObject *object = (GObject *) *weak_pointer_location; + + if (object != NULL) + { + g_object_remove_weak_pointer (object, weak_pointer_location); + *weak_pointer_location = NULL; + } +} + +#define g_clear_weak_pointer(weak_pointer_location) \ + (/* Check types match. */ \ + (g_clear_weak_pointer) ((gpointer *) (weak_pointer_location)) \ + ) + +/** + * g_set_weak_pointer: (skip) + * @weak_pointer_location: the memory address of a pointer + * @new_object: (nullable) (transfer none): a pointer to the new #GObject to + * assign to it, or %NULL to clear the pointer + * + * Updates a pointer to weakly refer to @new_object. + * + * It assigns @new_object to @weak_pointer_location and ensures + * that @weak_pointer_location will automatically be set to %NULL + * if @new_object gets destroyed. The assignment is not atomic. + * The weak reference is not thread-safe, see g_object_add_weak_pointer() + * for details. + * + * The @weak_pointer_location argument must not be %NULL. + * + * A macro is also included that allows this function to be used without + * pointer casts. The function itself is static inline, so its address may vary + * between compilation units. + * + * One convenient usage of this function is in implementing property setters: + * |[ + * void + * foo_set_bar (Foo *foo, + * Bar *new_bar) + * { + * g_return_if_fail (IS_FOO (foo)); + * g_return_if_fail (new_bar == NULL || IS_BAR (new_bar)); + * + * if (g_set_weak_pointer (&foo->bar, new_bar)) + * g_object_notify (foo, "bar"); + * } + * ]| + * + * Returns: %TRUE if the value of @weak_pointer_location changed, %FALSE otherwise + * + * Since: 2.56 + */ +static inline gboolean +(g_set_weak_pointer) (gpointer *weak_pointer_location, + GObject *new_object) +{ + GObject *old_object = (GObject *) *weak_pointer_location; + + /* elide a (weak_pointer_location != NULL) check because most of the time we + * will be operating on struct members with a constant offset, so a NULL + * check would not catch bugs + */ + + if (old_object == new_object) + return FALSE; + + if (old_object != NULL) + g_object_remove_weak_pointer (old_object, weak_pointer_location); + + *weak_pointer_location = new_object; + + if (new_object != NULL) + g_object_add_weak_pointer (new_object, weak_pointer_location); + + return TRUE; +} + +#define g_set_weak_pointer(weak_pointer_location, new_object) \ + (/* Check types match. */ \ + 0 ? *(weak_pointer_location) = (new_object), FALSE : \ + (g_set_weak_pointer) ((gpointer *) (weak_pointer_location), (GObject *) (new_object)) \ + ) + +typedef struct { + /**/ + union { gpointer p; } priv; +} GWeakRef; + +GOBJECT_AVAILABLE_IN_ALL +void g_weak_ref_init (GWeakRef *weak_ref, + gpointer object); +GOBJECT_AVAILABLE_IN_ALL +void g_weak_ref_clear (GWeakRef *weak_ref); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_weak_ref_get (GWeakRef *weak_ref); +GOBJECT_AVAILABLE_IN_ALL +void g_weak_ref_set (GWeakRef *weak_ref, + gpointer object); + +G_END_DECLS + +#endif /* __G_OBJECT_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gobjectnotifyqueue.c b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gobjectnotifyqueue.c new file mode 100644 index 000000000..6ed6f51ad --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gobjectnotifyqueue.c @@ -0,0 +1,199 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 1998-1999, 2000-2001 Tim Janik and Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ + +/* WARNING: + * + * This file is INSTALLED and other projects (outside of glib) + * #include its contents. + */ + +#ifndef __G_OBJECT_NOTIFY_QUEUE_H__ +#define __G_OBJECT_NOTIFY_QUEUE_H__ + +#include /* memset */ + +#include + +G_BEGIN_DECLS + + +/* --- typedefs --- */ +typedef struct _GObjectNotifyContext GObjectNotifyContext; +typedef struct _GObjectNotifyQueue GObjectNotifyQueue; +typedef void (*GObjectNotifyQueueDispatcher) (GObject *object, + guint n_pspecs, + GParamSpec **pspecs); + + +/* --- structures --- */ +struct _GObjectNotifyContext +{ + GQuark quark_notify_queue; + GObjectNotifyQueueDispatcher dispatcher; + GTrashStack *_nqueue_trash; /* unused */ +}; +struct _GObjectNotifyQueue +{ + GObjectNotifyContext *context; + GSList *pspecs; + guint16 n_pspecs; + guint16 freeze_count; +}; + +G_LOCK_DEFINE_STATIC(notify_lock); + +/* --- functions --- */ +static void +g_object_notify_queue_free (gpointer data) +{ + GObjectNotifyQueue *nqueue = data; + + g_slist_free (nqueue->pspecs); + g_slice_free (GObjectNotifyQueue, nqueue); +} + +static inline GObjectNotifyQueue* +g_object_notify_queue_freeze (GObject *object, + GObjectNotifyContext *context) +{ + GObjectNotifyQueue *nqueue; + + G_LOCK(notify_lock); + nqueue = g_datalist_id_get_data (&object->qdata, context->quark_notify_queue); + if (!nqueue) + { + nqueue = g_slice_new0 (GObjectNotifyQueue); + nqueue->context = context; + g_datalist_id_set_data_full (&object->qdata, context->quark_notify_queue, + nqueue, g_object_notify_queue_free); + } + + if (nqueue->freeze_count >= 65535) + g_critical("Free queue for %s (%p) is larger than 65535," + " called g_object_freeze_notify() too often." + " Forgot to call g_object_thaw_notify() or infinite loop", + G_OBJECT_TYPE_NAME (object), object); + else + nqueue->freeze_count++; + G_UNLOCK(notify_lock); + + return nqueue; +} + +static inline void +g_object_notify_queue_thaw (GObject *object, + GObjectNotifyQueue *nqueue) +{ + GObjectNotifyContext *context = nqueue->context; + GParamSpec *pspecs_mem[16], **pspecs, **free_me = NULL; + GSList *slist; + guint n_pspecs = 0; + + g_return_if_fail (nqueue->freeze_count > 0); + g_return_if_fail (g_atomic_int_get(&object->ref_count) > 0); + + G_LOCK(notify_lock); + + /* Just make sure we never get into some nasty race condition */ + if (G_UNLIKELY(nqueue->freeze_count == 0)) { + G_UNLOCK(notify_lock); + g_critical ("%s: property-changed notification for %s(%p) is not frozen", + G_STRFUNC, G_OBJECT_TYPE_NAME (object), object); + return; + } + + nqueue->freeze_count--; + if (nqueue->freeze_count) { + G_UNLOCK(notify_lock); + return; + } + + pspecs = nqueue->n_pspecs > 16 ? free_me = g_new (GParamSpec*, nqueue->n_pspecs) : pspecs_mem; + + for (slist = nqueue->pspecs; slist; slist = slist->next) + { + pspecs[n_pspecs++] = slist->data; + } + g_datalist_id_set_data (&object->qdata, context->quark_notify_queue, NULL); + + G_UNLOCK(notify_lock); + + if (n_pspecs) + context->dispatcher (object, n_pspecs, pspecs); + g_free (free_me); +} + +static inline void +g_object_notify_queue_clear (GObject *object, + GObjectNotifyQueue *nqueue) +{ + g_return_if_fail (nqueue->freeze_count > 0); + + G_LOCK(notify_lock); + + g_slist_free (nqueue->pspecs); + nqueue->pspecs = NULL; + nqueue->n_pspecs = 0; + + G_UNLOCK(notify_lock); +} + +static inline void +g_object_notify_queue_add (GObject *object, + GObjectNotifyQueue *nqueue, + GParamSpec *pspec) +{ + if (pspec->flags & G_PARAM_READABLE) + { + GParamSpec *redirect; + + G_LOCK(notify_lock); + + g_return_if_fail (nqueue->n_pspecs < 65535); + + redirect = g_param_spec_get_redirect_target (pspec); + if (redirect) + pspec = redirect; + + /* we do the deduping in _thaw */ + if (g_slist_find (nqueue->pspecs, pspec) == NULL) + { + nqueue->pspecs = g_slist_prepend (nqueue->pspecs, pspec); + nqueue->n_pspecs++; + } + + G_UNLOCK(notify_lock); + } +} + +/* NB: This function is not threadsafe, do not ever use it if + * you need a threadsafe notify queue. + * Use g_object_notify_queue_freeze() to acquire the queue and + * g_object_notify_queue_thaw() after you are done instead. + */ +static inline GObjectNotifyQueue* +g_object_notify_queue_from_object (GObject *object, + GObjectNotifyContext *context) +{ + return g_datalist_id_get_data (&object->qdata, context->quark_notify_queue); +} + +G_END_DECLS + +#endif /* __G_OBJECT_NOTIFY_QUEUE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gparam.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gparam.h new file mode 100644 index 000000000..6454e69a9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gparam.h @@ -0,0 +1,476 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 1997-1999, 2000-2001 Tim Janik and Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * gparam.h: GParamSpec base class implementation + */ +#ifndef __G_PARAM_H__ +#define __G_PARAM_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/* --- standard type macros --- */ +/** + * G_TYPE_IS_PARAM: + * @type: a #GType ID + * + * Checks whether @type "is a" %G_TYPE_PARAM. + */ +#define G_TYPE_IS_PARAM(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_PARAM) +/** + * G_PARAM_SPEC: + * @pspec: a valid #GParamSpec + * + * Casts a derived #GParamSpec object (e.g. of type #GParamSpecInt) into + * a #GParamSpec object. + */ +#define G_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM, GParamSpec)) +/** + * G_IS_PARAM_SPEC: + * @pspec: a #GParamSpec + * + * Checks whether @pspec "is a" valid #GParamSpec structure of type %G_TYPE_PARAM + * or derived. + */ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_42 +#define G_IS_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE ((pspec), G_TYPE_PARAM)) +#else +#define G_IS_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM)) +#endif +/** + * G_PARAM_SPEC_CLASS: + * @pclass: a valid #GParamSpecClass + * + * Casts a derived #GParamSpecClass structure into a #GParamSpecClass structure. + */ +#define G_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_CAST ((pclass), G_TYPE_PARAM, GParamSpecClass)) +/** + * G_IS_PARAM_SPEC_CLASS: + * @pclass: a #GParamSpecClass + * + * Checks whether @pclass "is a" valid #GParamSpecClass structure of type + * %G_TYPE_PARAM or derived. + */ +#define G_IS_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_TYPE ((pclass), G_TYPE_PARAM)) +/** + * G_PARAM_SPEC_GET_CLASS: + * @pspec: a valid #GParamSpec + * + * Retrieves the #GParamSpecClass of a #GParamSpec. + */ +#define G_PARAM_SPEC_GET_CLASS(pspec) (G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass)) + + +/* --- convenience macros --- */ +/** + * G_PARAM_SPEC_TYPE: + * @pspec: a valid #GParamSpec + * + * Retrieves the #GType of this @pspec. + */ +#define G_PARAM_SPEC_TYPE(pspec) (G_TYPE_FROM_INSTANCE (pspec)) +/** + * G_PARAM_SPEC_TYPE_NAME: + * @pspec: a valid #GParamSpec + * + * Retrieves the #GType name of this @pspec. + */ +#define G_PARAM_SPEC_TYPE_NAME(pspec) (g_type_name (G_PARAM_SPEC_TYPE (pspec))) +/** + * G_PARAM_SPEC_VALUE_TYPE: + * @pspec: a valid #GParamSpec + * + * Retrieves the #GType to initialize a #GValue for this parameter. + */ +#define G_PARAM_SPEC_VALUE_TYPE(pspec) (G_PARAM_SPEC (pspec)->value_type) +/** + * G_VALUE_HOLDS_PARAM: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values derived from type %G_TYPE_PARAM. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_PARAM(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_PARAM)) + + +/* --- flags --- */ +/** + * GParamFlags: + * @G_PARAM_READABLE: the parameter is readable + * @G_PARAM_WRITABLE: the parameter is writable + * @G_PARAM_READWRITE: alias for %G_PARAM_READABLE | %G_PARAM_WRITABLE + * @G_PARAM_CONSTRUCT: the parameter will be set upon object construction + * @G_PARAM_CONSTRUCT_ONLY: the parameter can only be set upon object construction + * @G_PARAM_LAX_VALIDATION: upon parameter conversion (see g_param_value_convert()) + * strict validation is not required + * @G_PARAM_STATIC_NAME: the string used as name when constructing the + * parameter is guaranteed to remain valid and + * unmodified for the lifetime of the parameter. + * Since 2.8 + * @G_PARAM_STATIC_NICK: the string used as nick when constructing the + * parameter is guaranteed to remain valid and + * unmmodified for the lifetime of the parameter. + * Since 2.8 + * @G_PARAM_STATIC_BLURB: the string used as blurb when constructing the + * parameter is guaranteed to remain valid and + * unmodified for the lifetime of the parameter. + * Since 2.8 + * @G_PARAM_EXPLICIT_NOTIFY: calls to g_object_set_property() for this + * property will not automatically result in a "notify" signal being + * emitted: the implementation must call g_object_notify() themselves + * in case the property actually changes. Since: 2.42. + * @G_PARAM_PRIVATE: internal + * @G_PARAM_DEPRECATED: the parameter is deprecated and will be removed + * in a future version. A warning will be generated if it is used + * while running with G_ENABLE_DIAGNOSTIC=1. + * Since 2.26 + * + * Through the #GParamFlags flag values, certain aspects of parameters + * can be configured. + * + * See also: %G_PARAM_STATIC_STRINGS + */ +typedef enum +{ + G_PARAM_READABLE = 1 << 0, + G_PARAM_WRITABLE = 1 << 1, + G_PARAM_READWRITE = (G_PARAM_READABLE | G_PARAM_WRITABLE), + G_PARAM_CONSTRUCT = 1 << 2, + G_PARAM_CONSTRUCT_ONLY = 1 << 3, + G_PARAM_LAX_VALIDATION = 1 << 4, + G_PARAM_STATIC_NAME = 1 << 5, + G_PARAM_PRIVATE GOBJECT_DEPRECATED_ENUMERATOR_IN_2_26 = G_PARAM_STATIC_NAME, + G_PARAM_STATIC_NICK = 1 << 6, + G_PARAM_STATIC_BLURB = 1 << 7, + /* User defined flags go here */ + G_PARAM_EXPLICIT_NOTIFY = 1 << 30, + /* Avoid warning with -Wpedantic for gcc6 */ + G_PARAM_DEPRECATED = (gint)(1u << 31) +} GParamFlags; + +/** + * G_PARAM_STATIC_STRINGS: + * + * #GParamFlags value alias for %G_PARAM_STATIC_NAME | %G_PARAM_STATIC_NICK | %G_PARAM_STATIC_BLURB. + * + * It is recommended to use this for all properties by default, as it allows for + * internal performance improvements in GObject. + * + * It is very rare that a property would have a dynamically constructed name, + * nickname or blurb. + * + * Since 2.13.0 + */ +#define G_PARAM_STATIC_STRINGS (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB) +/* bits in the range 0xffffff00 are reserved for 3rd party usage */ +/** + * G_PARAM_MASK: + * + * Mask containing the bits of #GParamSpec.flags which are reserved for GLib. + */ +#define G_PARAM_MASK (0x000000ff) +/** + * G_PARAM_USER_SHIFT: + * + * Minimum shift count to be used for user defined flags, to be stored in + * #GParamSpec.flags. The maximum allowed is 10. + */ +#define G_PARAM_USER_SHIFT (8) + +/* --- typedefs & structures --- */ +typedef struct _GParamSpec GParamSpec; +typedef struct _GParamSpecClass GParamSpecClass; +typedef struct _GParameter GParameter GOBJECT_DEPRECATED_TYPE_IN_2_54; +typedef struct _GParamSpecPool GParamSpecPool; +/** + * GParamSpec: (ref-func g_param_spec_ref_sink) (unref-func g_param_spec_unref) (set-value-func g_value_set_param) (get-value-func g_value_get_param) + * @g_type_instance: private #GTypeInstance portion + * @name: name of this parameter: always an interned string + * @flags: #GParamFlags flags for this parameter + * @value_type: the #GValue type for this parameter + * @owner_type: #GType type that uses (introduces) this parameter + * + * All other fields of the GParamSpec struct are private and + * should not be used directly. + */ +struct _GParamSpec +{ + GTypeInstance g_type_instance; + + const gchar *name; /* interned string */ + GParamFlags flags; + GType value_type; + GType owner_type; /* class or interface using this property */ + + /*< private >*/ + gchar *_nick; + gchar *_blurb; + GData *qdata; + guint ref_count; + guint param_id; /* sort-criteria */ +}; +/** + * GParamSpecClass: + * @g_type_class: the parent class + * @value_type: the #GValue type for this parameter + * @finalize: The instance finalization function (optional), should chain + * up to the finalize method of the parent class. + * @value_set_default: Resets a @value to the default value for this type + * (recommended, the default is g_value_reset()), see + * g_param_value_set_default(). + * @value_validate: Ensures that the contents of @value comply with the + * specifications set out by this type (optional), see + * g_param_value_validate(). + * @values_cmp: Compares @value1 with @value2 according to this type + * (recommended, the default is memcmp()), see g_param_values_cmp(). + * @value_is_valid: Checks if contents of @value comply with the specifications + * set out by this type, without modifying the value. This vfunc is optional. + * If it isn't set, GObject will use @value_validate. Since 2.74 + * + * The class structure for the GParamSpec type. + * Normally, GParamSpec classes are filled by + * g_param_type_register_static(). + */ +struct _GParamSpecClass +{ + GTypeClass g_type_class; + + GType value_type; + + void (*finalize) (GParamSpec *pspec); + + /* GParam methods */ + void (*value_set_default) (GParamSpec *pspec, + GValue *value); + gboolean (*value_validate) (GParamSpec *pspec, + GValue *value); + gint (*values_cmp) (GParamSpec *pspec, + const GValue *value1, + const GValue *value2); + + gboolean (*value_is_valid) (GParamSpec *pspec, + const GValue *value); + + /*< private >*/ + gpointer dummy[3]; +}; +/** + * GParameter: + * @name: the parameter name + * @value: the parameter value + * + * The GParameter struct is an auxiliary structure used + * to hand parameter name/value pairs to g_object_newv(). + * + * Deprecated: 2.54: This type is not introspectable. + */ +struct _GParameter /* auxiliary structure for _setv() variants */ +{ + const gchar *name; + GValue value; +} GOBJECT_DEPRECATED_TYPE_IN_2_54; + + +/* --- prototypes --- */ +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_ref (GParamSpec *pspec); +GOBJECT_AVAILABLE_IN_ALL +void g_param_spec_unref (GParamSpec *pspec); +GOBJECT_AVAILABLE_IN_ALL +void g_param_spec_sink (GParamSpec *pspec); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_ref_sink (GParamSpec *pspec); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_param_spec_get_qdata (GParamSpec *pspec, + GQuark quark); +GOBJECT_AVAILABLE_IN_ALL +void g_param_spec_set_qdata (GParamSpec *pspec, + GQuark quark, + gpointer data); +GOBJECT_AVAILABLE_IN_ALL +void g_param_spec_set_qdata_full (GParamSpec *pspec, + GQuark quark, + gpointer data, + GDestroyNotify destroy); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_param_spec_steal_qdata (GParamSpec *pspec, + GQuark quark); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_get_redirect_target (GParamSpec *pspec); + +GOBJECT_AVAILABLE_IN_ALL +void g_param_value_set_default (GParamSpec *pspec, + GValue *value); +GOBJECT_AVAILABLE_IN_ALL +gboolean g_param_value_defaults (GParamSpec *pspec, + const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +gboolean g_param_value_validate (GParamSpec *pspec, + GValue *value); +GOBJECT_AVAILABLE_IN_2_74 +gboolean g_param_value_is_valid (GParamSpec *pspec, + const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +gboolean g_param_value_convert (GParamSpec *pspec, + const GValue *src_value, + GValue *dest_value, + gboolean strict_validation); +GOBJECT_AVAILABLE_IN_ALL +gint g_param_values_cmp (GParamSpec *pspec, + const GValue *value1, + const GValue *value2); +GOBJECT_AVAILABLE_IN_ALL +const gchar * g_param_spec_get_name (GParamSpec *pspec); +GOBJECT_AVAILABLE_IN_ALL +const gchar * g_param_spec_get_nick (GParamSpec *pspec); +GOBJECT_AVAILABLE_IN_ALL +const gchar * g_param_spec_get_blurb (GParamSpec *pspec); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_param (GValue *value, + GParamSpec *param); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_value_get_param (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_value_dup_param (const GValue *value); + + +GOBJECT_AVAILABLE_IN_ALL +void g_value_take_param (GValue *value, + GParamSpec *param); +GOBJECT_DEPRECATED_FOR(g_value_take_param) +void g_value_set_param_take_ownership (GValue *value, + GParamSpec *param); +GOBJECT_AVAILABLE_IN_2_36 +const GValue * g_param_spec_get_default_value (GParamSpec *pspec); + +GOBJECT_AVAILABLE_IN_2_46 +GQuark g_param_spec_get_name_quark (GParamSpec *pspec); + +/* --- convenience functions --- */ +typedef struct _GParamSpecTypeInfo GParamSpecTypeInfo; +/** + * GParamSpecTypeInfo: + * @instance_size: Size of the instance (object) structure. + * @n_preallocs: Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the [slice allocator][glib-Memory-Slices] now. + * @instance_init: Location of the instance initialization function (optional). + * @value_type: The #GType of values conforming to this #GParamSpec + * @finalize: The instance finalization function (optional). + * @value_set_default: Resets a @value to the default value for @pspec + * (recommended, the default is g_value_reset()), see + * g_param_value_set_default(). + * @value_validate: Ensures that the contents of @value comply with the + * specifications set out by @pspec (optional), see + * g_param_value_validate(). + * @values_cmp: Compares @value1 with @value2 according to @pspec + * (recommended, the default is memcmp()), see g_param_values_cmp(). + * + * This structure is used to provide the type system with the information + * required to initialize and destruct (finalize) a parameter's class and + * instances thereof. + * + * The initialized structure is passed to the g_param_type_register_static() + * The type system will perform a deep copy of this structure, so its memory + * does not need to be persistent across invocation of + * g_param_type_register_static(). + */ +struct _GParamSpecTypeInfo +{ + /* type system portion */ + guint16 instance_size; /* obligatory */ + guint16 n_preallocs; /* optional */ + void (*instance_init) (GParamSpec *pspec); /* optional */ + + /* class portion */ + GType value_type; /* obligatory */ + void (*finalize) (GParamSpec *pspec); /* optional */ + void (*value_set_default) (GParamSpec *pspec, /* recommended */ + GValue *value); + gboolean (*value_validate) (GParamSpec *pspec, /* optional */ + GValue *value); + gint (*values_cmp) (GParamSpec *pspec, /* recommended */ + const GValue *value1, + const GValue *value2); +}; +GOBJECT_AVAILABLE_IN_ALL +GType g_param_type_register_static (const gchar *name, + const GParamSpecTypeInfo *pspec_info); + +GOBJECT_AVAILABLE_IN_2_66 +gboolean g_param_spec_is_valid_name (const gchar *name); + +/* For registering builting types */ +GType _g_param_type_register_static_constant (const gchar *name, + const GParamSpecTypeInfo *pspec_info, + GType opt_type); + + +/* --- protected --- */ +GOBJECT_AVAILABLE_IN_ALL +gpointer g_param_spec_internal (GType param_type, + const gchar *name, + const gchar *nick, + const gchar *blurb, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpecPool* g_param_spec_pool_new (gboolean type_prefixing); +GOBJECT_AVAILABLE_IN_ALL +void g_param_spec_pool_insert (GParamSpecPool *pool, + GParamSpec *pspec, + GType owner_type); +GOBJECT_AVAILABLE_IN_ALL +void g_param_spec_pool_remove (GParamSpecPool *pool, + GParamSpec *pspec); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_pool_lookup (GParamSpecPool *pool, + const gchar *param_name, + GType owner_type, + gboolean walk_ancestors); +GOBJECT_AVAILABLE_IN_ALL +GList* g_param_spec_pool_list_owned (GParamSpecPool *pool, + GType owner_type); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec** g_param_spec_pool_list (GParamSpecPool *pool, + GType owner_type, + guint *n_pspecs_p); + + +/* contracts: + * + * gboolean value_validate (GParamSpec *pspec, + * GValue *value): + * modify value contents in the least destructive way, so + * that it complies with pspec's requirements (i.e. + * according to minimum/maximum ranges etc...). return + * whether modification was necessary. + * + * gint values_cmp (GParamSpec *pspec, + * const GValue *value1, + * const GValue *value2): + * return value1 - value2, i.e. (-1) if value1 < value2, + * (+1) if value1 > value2, and (0) otherwise (equality) + */ + +G_END_DECLS + +#endif /* __G_PARAM_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gparamspecs.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gparamspecs.h new file mode 100644 index 000000000..eaabc10dc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gparamspecs.h @@ -0,0 +1,1151 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 1997-1999, 2000-2001 Tim Janik and Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * gparamspecs.h: GLib default param specs + */ +#ifndef __G_PARAMSPECS_H__ +#define __G_PARAMSPECS_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include +#include + +G_BEGIN_DECLS + +/* --- type macros --- */ +/** + * G_TYPE_PARAM_CHAR: + * + * The #GType of #GParamSpecChar. + */ +#define G_TYPE_PARAM_CHAR (g_param_spec_types[0]) +/** + * G_IS_PARAM_SPEC_CHAR: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_CHAR. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_CHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_CHAR)) +/** + * G_PARAM_SPEC_CHAR: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecChar. + */ +#define G_PARAM_SPEC_CHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_CHAR, GParamSpecChar)) + +/** + * G_TYPE_PARAM_UCHAR: + * + * The #GType of #GParamSpecUChar. + */ +#define G_TYPE_PARAM_UCHAR (g_param_spec_types[1]) +/** + * G_IS_PARAM_SPEC_UCHAR: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UCHAR. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_UCHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UCHAR)) +/** + * G_PARAM_SPEC_UCHAR: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecUChar. + */ +#define G_PARAM_SPEC_UCHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UCHAR, GParamSpecUChar)) + +/** + * G_TYPE_PARAM_BOOLEAN: + * + * The #GType of #GParamSpecBoolean. + */ +#define G_TYPE_PARAM_BOOLEAN (g_param_spec_types[2]) +/** + * G_IS_PARAM_SPEC_BOOLEAN: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_BOOLEAN. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_BOOLEAN(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOOLEAN)) +/** + * G_PARAM_SPEC_BOOLEAN: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecBoolean. + */ +#define G_PARAM_SPEC_BOOLEAN(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOOLEAN, GParamSpecBoolean)) + +/** + * G_TYPE_PARAM_INT: + * + * The #GType of #GParamSpecInt. + */ +#define G_TYPE_PARAM_INT (g_param_spec_types[3]) +/** + * G_IS_PARAM_SPEC_INT: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_INT. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT)) +/** + * G_PARAM_SPEC_INT: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecInt. + */ +#define G_PARAM_SPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT, GParamSpecInt)) + +/** + * G_TYPE_PARAM_UINT: + * + * The #GType of #GParamSpecUInt. + */ +#define G_TYPE_PARAM_UINT (g_param_spec_types[4]) +/** + * G_IS_PARAM_SPEC_UINT: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UINT. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_UINT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT)) +/** + * G_PARAM_SPEC_UINT: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecUInt. + */ +#define G_PARAM_SPEC_UINT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT, GParamSpecUInt)) + +/** + * G_TYPE_PARAM_LONG: + * + * The #GType of #GParamSpecLong. + */ +#define G_TYPE_PARAM_LONG (g_param_spec_types[5]) +/** + * G_IS_PARAM_SPEC_LONG: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_LONG. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_LONG(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_LONG)) +/** + * G_PARAM_SPEC_LONG: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecLong. + */ +#define G_PARAM_SPEC_LONG(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_LONG, GParamSpecLong)) + +/** + * G_TYPE_PARAM_ULONG: + * + * The #GType of #GParamSpecULong. + */ +#define G_TYPE_PARAM_ULONG (g_param_spec_types[6]) +/** + * G_IS_PARAM_SPEC_ULONG: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_ULONG. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_ULONG(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ULONG)) +/** + * G_PARAM_SPEC_ULONG: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecULong. + */ +#define G_PARAM_SPEC_ULONG(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ULONG, GParamSpecULong)) + +/** + * G_TYPE_PARAM_INT64: + * + * The #GType of #GParamSpecInt64. + */ +#define G_TYPE_PARAM_INT64 (g_param_spec_types[7]) +/** + * G_IS_PARAM_SPEC_INT64: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_INT64. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_INT64(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT64)) +/** + * G_PARAM_SPEC_INT64: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecInt64. + */ +#define G_PARAM_SPEC_INT64(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT64, GParamSpecInt64)) + +/** + * G_TYPE_PARAM_UINT64: + * + * The #GType of #GParamSpecUInt64. + */ +#define G_TYPE_PARAM_UINT64 (g_param_spec_types[8]) +/** + * G_IS_PARAM_SPEC_UINT64: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UINT64. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_UINT64(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT64)) +/** + * G_PARAM_SPEC_UINT64: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecUInt64. + */ +#define G_PARAM_SPEC_UINT64(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT64, GParamSpecUInt64)) + +/** + * G_TYPE_PARAM_UNICHAR: + * + * The #GType of #GParamSpecUnichar. + */ +#define G_TYPE_PARAM_UNICHAR (g_param_spec_types[9]) +/** + * G_PARAM_SPEC_UNICHAR: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecUnichar. + */ +#define G_PARAM_SPEC_UNICHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UNICHAR, GParamSpecUnichar)) +/** + * G_IS_PARAM_SPEC_UNICHAR: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UNICHAR. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_UNICHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UNICHAR)) + +/** + * G_TYPE_PARAM_ENUM: + * + * The #GType of #GParamSpecEnum. + */ +#define G_TYPE_PARAM_ENUM (g_param_spec_types[10]) +/** + * G_IS_PARAM_SPEC_ENUM: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_ENUM. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_ENUM(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ENUM)) +/** + * G_PARAM_SPEC_ENUM: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecEnum. + */ +#define G_PARAM_SPEC_ENUM(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ENUM, GParamSpecEnum)) + +/** + * G_TYPE_PARAM_FLAGS: + * + * The #GType of #GParamSpecFlags. + */ +#define G_TYPE_PARAM_FLAGS (g_param_spec_types[11]) +/** + * G_IS_PARAM_SPEC_FLAGS: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_FLAGS. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_FLAGS(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLAGS)) +/** + * G_PARAM_SPEC_FLAGS: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecFlags. + */ +#define G_PARAM_SPEC_FLAGS(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLAGS, GParamSpecFlags)) + +/** + * G_TYPE_PARAM_FLOAT: + * + * The #GType of #GParamSpecFloat. + */ +#define G_TYPE_PARAM_FLOAT (g_param_spec_types[12]) +/** + * G_IS_PARAM_SPEC_FLOAT: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_FLOAT. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_FLOAT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLOAT)) +/** + * G_PARAM_SPEC_FLOAT: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecFloat. + */ +#define G_PARAM_SPEC_FLOAT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLOAT, GParamSpecFloat)) + +/** + * G_TYPE_PARAM_DOUBLE: + * + * The #GType of #GParamSpecDouble. + */ +#define G_TYPE_PARAM_DOUBLE (g_param_spec_types[13]) +/** + * G_IS_PARAM_SPEC_DOUBLE: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_DOUBLE. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_DOUBLE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_DOUBLE)) +/** + * G_PARAM_SPEC_DOUBLE: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecDouble. + */ +#define G_PARAM_SPEC_DOUBLE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_DOUBLE, GParamSpecDouble)) + +/** + * G_TYPE_PARAM_STRING: + * + * The #GType of #GParamSpecString. + */ +#define G_TYPE_PARAM_STRING (g_param_spec_types[14]) +/** + * G_IS_PARAM_SPEC_STRING: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_STRING. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_STRING)) +/** + * G_PARAM_SPEC_STRING: + * @pspec: a valid #GParamSpec instance + * + * Casts a #GParamSpec instance into a #GParamSpecString. + */ +#define G_PARAM_SPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_STRING, GParamSpecString)) + +/** + * G_TYPE_PARAM_PARAM: + * + * The #GType of #GParamSpecParam. + */ +#define G_TYPE_PARAM_PARAM (g_param_spec_types[15]) +/** + * G_IS_PARAM_SPEC_PARAM: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_PARAM. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_PARAM(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_PARAM)) +/** + * G_PARAM_SPEC_PARAM: + * @pspec: a valid #GParamSpec instance + * + * Casts a #GParamSpec instance into a #GParamSpecParam. + */ +#define G_PARAM_SPEC_PARAM(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_PARAM, GParamSpecParam)) + +/** + * G_TYPE_PARAM_BOXED: + * + * The #GType of #GParamSpecBoxed. + */ +#define G_TYPE_PARAM_BOXED (g_param_spec_types[16]) +/** + * G_IS_PARAM_SPEC_BOXED: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_BOXED. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_BOXED(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOXED)) +/** + * G_PARAM_SPEC_BOXED: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecBoxed. + */ +#define G_PARAM_SPEC_BOXED(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOXED, GParamSpecBoxed)) + +/** + * G_TYPE_PARAM_POINTER: + * + * The #GType of #GParamSpecPointer. + */ +#define G_TYPE_PARAM_POINTER (g_param_spec_types[17]) +/** + * G_IS_PARAM_SPEC_POINTER: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_POINTER. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_POINTER(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_POINTER)) +/** + * G_PARAM_SPEC_POINTER: + * @pspec: a valid #GParamSpec instance + * + * Casts a #GParamSpec instance into a #GParamSpecPointer. + */ +#define G_PARAM_SPEC_POINTER(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_POINTER, GParamSpecPointer)) + +/** + * G_TYPE_PARAM_VALUE_ARRAY: + * + * The #GType of #GParamSpecValueArray. + * + * Deprecated: 2.32: Use #GArray instead of #GValueArray + */ +#define G_TYPE_PARAM_VALUE_ARRAY (g_param_spec_types[18]) GOBJECT_DEPRECATED_MACRO_IN_2_32 +/** + * G_IS_PARAM_SPEC_VALUE_ARRAY: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VALUE_ARRAY. + * + * Returns: %TRUE on success. + * + * Deprecated: 2.32: Use #GArray instead of #GValueArray + */ +#define G_IS_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VALUE_ARRAY)) GOBJECT_DEPRECATED_MACRO_IN_2_32 +/** + * G_PARAM_SPEC_VALUE_ARRAY: + * @pspec: a valid #GParamSpec instance + * + * Cast a #GParamSpec instance into a #GParamSpecValueArray. + * + * Deprecated: 2.32: Use #GArray instead of #GValueArray + */ +#define G_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VALUE_ARRAY, GParamSpecValueArray)) GOBJECT_DEPRECATED_MACRO_IN_2_32 + +/** + * G_TYPE_PARAM_OBJECT: + * + * The #GType of #GParamSpecObject. + */ +#define G_TYPE_PARAM_OBJECT (g_param_spec_types[19]) +/** + * G_IS_PARAM_SPEC_OBJECT: + * @pspec: a valid #GParamSpec instance + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_OBJECT. + * + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OBJECT)) +/** + * G_PARAM_SPEC_OBJECT: + * @pspec: a valid #GParamSpec instance + * + * Casts a #GParamSpec instance into a #GParamSpecObject. + */ +#define G_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject)) + +/** + * G_TYPE_PARAM_OVERRIDE: + * + * The #GType of #GParamSpecOverride. + * + * Since: 2.4 + */ +#define G_TYPE_PARAM_OVERRIDE (g_param_spec_types[20]) +/** + * G_IS_PARAM_SPEC_OVERRIDE: + * @pspec: a #GParamSpec + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_OVERRIDE. + * + * Since: 2.4 + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OVERRIDE)) +/** + * G_PARAM_SPEC_OVERRIDE: + * @pspec: a #GParamSpec + * + * Casts a #GParamSpec into a #GParamSpecOverride. + * + * Since: 2.4 + */ +#define G_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OVERRIDE, GParamSpecOverride)) + +/** + * G_TYPE_PARAM_GTYPE: + * + * The #GType of #GParamSpecGType. + * + * Since: 2.10 + */ +#define G_TYPE_PARAM_GTYPE (g_param_spec_types[21]) +/** + * G_IS_PARAM_SPEC_GTYPE: + * @pspec: a #GParamSpec + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_GTYPE. + * + * Since: 2.10 + * Returns: %TRUE on success. + */ +#define G_IS_PARAM_SPEC_GTYPE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_GTYPE)) +/** + * G_PARAM_SPEC_GTYPE: + * @pspec: a #GParamSpec + * + * Casts a #GParamSpec into a #GParamSpecGType. + * + * Since: 2.10 + */ +#define G_PARAM_SPEC_GTYPE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_GTYPE, GParamSpecGType)) + +/** + * G_TYPE_PARAM_VARIANT: + * + * The #GType of #GParamSpecVariant. + * + * Since: 2.26 + */ +#define G_TYPE_PARAM_VARIANT (g_param_spec_types[22]) +/** + * G_IS_PARAM_SPEC_VARIANT: + * @pspec: a #GParamSpec + * + * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VARIANT. + * + * Returns: %TRUE on success + * + * Since: 2.26 + */ +#define G_IS_PARAM_SPEC_VARIANT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VARIANT)) +/** + * G_PARAM_SPEC_VARIANT: + * @pspec: a #GParamSpec + * + * Casts a #GParamSpec into a #GParamSpecVariant. + * + * Since: 2.26 + */ +#define G_PARAM_SPEC_VARIANT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VARIANT, GParamSpecVariant)) + +/* --- typedefs & structures --- */ +typedef struct _GParamSpecChar GParamSpecChar; +typedef struct _GParamSpecUChar GParamSpecUChar; +typedef struct _GParamSpecBoolean GParamSpecBoolean; +typedef struct _GParamSpecInt GParamSpecInt; +typedef struct _GParamSpecUInt GParamSpecUInt; +typedef struct _GParamSpecLong GParamSpecLong; +typedef struct _GParamSpecULong GParamSpecULong; +typedef struct _GParamSpecInt64 GParamSpecInt64; +typedef struct _GParamSpecUInt64 GParamSpecUInt64; +typedef struct _GParamSpecUnichar GParamSpecUnichar; +typedef struct _GParamSpecEnum GParamSpecEnum; +typedef struct _GParamSpecFlags GParamSpecFlags; +typedef struct _GParamSpecFloat GParamSpecFloat; +typedef struct _GParamSpecDouble GParamSpecDouble; +typedef struct _GParamSpecString GParamSpecString; +typedef struct _GParamSpecParam GParamSpecParam; +typedef struct _GParamSpecBoxed GParamSpecBoxed; +typedef struct _GParamSpecPointer GParamSpecPointer; +typedef struct _GParamSpecValueArray GParamSpecValueArray; +typedef struct _GParamSpecObject GParamSpecObject; +typedef struct _GParamSpecOverride GParamSpecOverride; +typedef struct _GParamSpecGType GParamSpecGType; +typedef struct _GParamSpecVariant GParamSpecVariant; + +/** + * GParamSpecChar: + * @parent_instance: private #GParamSpec portion + * @minimum: minimum value for the property specified + * @maximum: maximum value for the property specified + * @default_value: default value for the property specified + * + * A #GParamSpec derived structure that contains the meta data for character properties. + */ +struct _GParamSpecChar +{ + GParamSpec parent_instance; + + gint8 minimum; + gint8 maximum; + gint8 default_value; +}; +/** + * GParamSpecUChar: + * @parent_instance: private #GParamSpec portion + * @minimum: minimum value for the property specified + * @maximum: maximum value for the property specified + * @default_value: default value for the property specified + * + * A #GParamSpec derived structure that contains the meta data for unsigned character properties. + */ +struct _GParamSpecUChar +{ + GParamSpec parent_instance; + + guint8 minimum; + guint8 maximum; + guint8 default_value; +}; +/** + * GParamSpecBoolean: + * @parent_instance: private #GParamSpec portion + * @default_value: default value for the property specified + * + * A #GParamSpec derived structure that contains the meta data for boolean properties. + */ +struct _GParamSpecBoolean +{ + GParamSpec parent_instance; + + gboolean default_value; +}; +/** + * GParamSpecInt: + * @parent_instance: private #GParamSpec portion + * @minimum: minimum value for the property specified + * @maximum: maximum value for the property specified + * @default_value: default value for the property specified + * + * A #GParamSpec derived structure that contains the meta data for integer properties. + */ +struct _GParamSpecInt +{ + GParamSpec parent_instance; + + gint minimum; + gint maximum; + gint default_value; +}; +/** + * GParamSpecUInt: + * @parent_instance: private #GParamSpec portion + * @minimum: minimum value for the property specified + * @maximum: maximum value for the property specified + * @default_value: default value for the property specified + * + * A #GParamSpec derived structure that contains the meta data for unsigned integer properties. + */ +struct _GParamSpecUInt +{ + GParamSpec parent_instance; + + guint minimum; + guint maximum; + guint default_value; +}; +/** + * GParamSpecLong: + * @parent_instance: private #GParamSpec portion + * @minimum: minimum value for the property specified + * @maximum: maximum value for the property specified + * @default_value: default value for the property specified + * + * A #GParamSpec derived structure that contains the meta data for long integer properties. + */ +struct _GParamSpecLong +{ + GParamSpec parent_instance; + + glong minimum; + glong maximum; + glong default_value; +}; +/** + * GParamSpecULong: + * @parent_instance: private #GParamSpec portion + * @minimum: minimum value for the property specified + * @maximum: maximum value for the property specified + * @default_value: default value for the property specified + * + * A #GParamSpec derived structure that contains the meta data for unsigned long integer properties. + */ +struct _GParamSpecULong +{ + GParamSpec parent_instance; + + gulong minimum; + gulong maximum; + gulong default_value; +}; +/** + * GParamSpecInt64: + * @parent_instance: private #GParamSpec portion + * @minimum: minimum value for the property specified + * @maximum: maximum value for the property specified + * @default_value: default value for the property specified + * + * A #GParamSpec derived structure that contains the meta data for 64bit integer properties. + */ +struct _GParamSpecInt64 +{ + GParamSpec parent_instance; + + gint64 minimum; + gint64 maximum; + gint64 default_value; +}; +/** + * GParamSpecUInt64: + * @parent_instance: private #GParamSpec portion + * @minimum: minimum value for the property specified + * @maximum: maximum value for the property specified + * @default_value: default value for the property specified + * + * A #GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties. + */ +struct _GParamSpecUInt64 +{ + GParamSpec parent_instance; + + guint64 minimum; + guint64 maximum; + guint64 default_value; +}; +/** + * GParamSpecUnichar: + * @parent_instance: private #GParamSpec portion + * @default_value: default value for the property specified + * + * A #GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties. + */ +struct _GParamSpecUnichar +{ + GParamSpec parent_instance; + + gunichar default_value; +}; +/** + * GParamSpecEnum: + * @parent_instance: private #GParamSpec portion + * @enum_class: the #GEnumClass for the enum + * @default_value: default value for the property specified + * + * A #GParamSpec derived structure that contains the meta data for enum + * properties. + */ +struct _GParamSpecEnum +{ + GParamSpec parent_instance; + + GEnumClass *enum_class; + gint default_value; +}; +/** + * GParamSpecFlags: + * @parent_instance: private #GParamSpec portion + * @flags_class: the #GFlagsClass for the flags + * @default_value: default value for the property specified + * + * A #GParamSpec derived structure that contains the meta data for flags + * properties. + */ +struct _GParamSpecFlags +{ + GParamSpec parent_instance; + + GFlagsClass *flags_class; + guint default_value; +}; +/** + * GParamSpecFloat: + * @parent_instance: private #GParamSpec portion + * @minimum: minimum value for the property specified + * @maximum: maximum value for the property specified + * @default_value: default value for the property specified + * @epsilon: values closer than @epsilon will be considered identical + * by g_param_values_cmp(); the default value is 1e-30. + * + * A #GParamSpec derived structure that contains the meta data for float properties. + */ +struct _GParamSpecFloat +{ + GParamSpec parent_instance; + + gfloat minimum; + gfloat maximum; + gfloat default_value; + gfloat epsilon; +}; +/** + * GParamSpecDouble: + * @parent_instance: private #GParamSpec portion + * @minimum: minimum value for the property specified + * @maximum: maximum value for the property specified + * @default_value: default value for the property specified + * @epsilon: values closer than @epsilon will be considered identical + * by g_param_values_cmp(); the default value is 1e-90. + * + * A #GParamSpec derived structure that contains the meta data for double properties. + */ +struct _GParamSpecDouble +{ + GParamSpec parent_instance; + + gdouble minimum; + gdouble maximum; + gdouble default_value; + gdouble epsilon; +}; +/** + * GParamSpecString: + * @parent_instance: private #GParamSpec portion + * @default_value: default value for the property specified + * @cset_first: a string containing the allowed values for the first byte + * @cset_nth: a string containing the allowed values for the subsequent bytes + * @substitutor: the replacement byte for bytes which don't match @cset_first or @cset_nth. + * @null_fold_if_empty: replace empty string by %NULL + * @ensure_non_null: replace %NULL strings by an empty string + * + * A #GParamSpec derived structure that contains the meta data for string + * properties. + */ +struct _GParamSpecString +{ + GParamSpec parent_instance; + + gchar *default_value; + gchar *cset_first; + gchar *cset_nth; + gchar substitutor; + guint null_fold_if_empty : 1; + guint ensure_non_null : 1; +}; +/** + * GParamSpecParam: + * @parent_instance: private #GParamSpec portion + * + * A #GParamSpec derived structure that contains the meta data for %G_TYPE_PARAM + * properties. + */ +struct _GParamSpecParam +{ + GParamSpec parent_instance; +}; +/** + * GParamSpecBoxed: + * @parent_instance: private #GParamSpec portion + * + * A #GParamSpec derived structure that contains the meta data for boxed properties. + */ +struct _GParamSpecBoxed +{ + GParamSpec parent_instance; +}; +/** + * GParamSpecPointer: + * @parent_instance: private #GParamSpec portion + * + * A #GParamSpec derived structure that contains the meta data for pointer properties. + */ +struct _GParamSpecPointer +{ + GParamSpec parent_instance; +}; +/** + * GParamSpecValueArray: + * @parent_instance: private #GParamSpec portion + * @element_spec: a #GParamSpec describing the elements contained in arrays of this property, may be %NULL + * @fixed_n_elements: if greater than 0, arrays of this property will always have this many elements + * + * A #GParamSpec derived structure that contains the meta data for #GValueArray properties. + */ +struct _GParamSpecValueArray +{ + GParamSpec parent_instance; + GParamSpec *element_spec; + guint fixed_n_elements; +}; +/** + * GParamSpecObject: + * @parent_instance: private #GParamSpec portion + * + * A #GParamSpec derived structure that contains the meta data for object properties. + */ +struct _GParamSpecObject +{ + GParamSpec parent_instance; +}; +/** + * GParamSpecOverride: + * + * A #GParamSpec derived structure that redirects operations to + * other types of #GParamSpec. + * + * All operations other than getting or setting the value are redirected, + * including accessing the nick and blurb, validating a value, and so + * forth. + * + * See g_param_spec_get_redirect_target() for retrieving the overridden + * property. #GParamSpecOverride is used in implementing + * g_object_class_override_property(), and will not be directly useful + * unless you are implementing a new base type similar to GObject. + * + * Since: 2.4 + */ +struct _GParamSpecOverride +{ + /*< private >*/ + GParamSpec parent_instance; + GParamSpec *overridden; +}; +/** + * GParamSpecGType: + * @parent_instance: private #GParamSpec portion + * @is_a_type: a #GType whose subtypes can occur as values + * + * A #GParamSpec derived structure that contains the meta data for #GType properties. + * + * Since: 2.10 + */ +struct _GParamSpecGType +{ + GParamSpec parent_instance; + GType is_a_type; +}; +/** + * GParamSpecVariant: + * @parent_instance: private #GParamSpec portion + * @type: a #GVariantType, or %NULL + * @default_value: a #GVariant, or %NULL + * + * A #GParamSpec derived structure that contains the meta data for #GVariant properties. + * + * When comparing values with g_param_values_cmp(), scalar values with the same + * type will be compared with g_variant_compare(). Other non-%NULL variants will + * be checked for equality with g_variant_equal(), and their sort order is + * otherwise undefined. %NULL is ordered before non-%NULL variants. Two %NULL + * values compare equal. + * + * Since: 2.26 + */ +struct _GParamSpecVariant +{ + GParamSpec parent_instance; + GVariantType *type; + GVariant *default_value; + + /*< private >*/ + gpointer padding[4]; +}; + +/* --- GParamSpec prototypes --- */ +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_char (const gchar *name, + const gchar *nick, + const gchar *blurb, + gint8 minimum, + gint8 maximum, + gint8 default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_uchar (const gchar *name, + const gchar *nick, + const gchar *blurb, + guint8 minimum, + guint8 maximum, + guint8 default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_boolean (const gchar *name, + const gchar *nick, + const gchar *blurb, + gboolean default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_int (const gchar *name, + const gchar *nick, + const gchar *blurb, + gint minimum, + gint maximum, + gint default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_uint (const gchar *name, + const gchar *nick, + const gchar *blurb, + guint minimum, + guint maximum, + guint default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_long (const gchar *name, + const gchar *nick, + const gchar *blurb, + glong minimum, + glong maximum, + glong default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_ulong (const gchar *name, + const gchar *nick, + const gchar *blurb, + gulong minimum, + gulong maximum, + gulong default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_int64 (const gchar *name, + const gchar *nick, + const gchar *blurb, + gint64 minimum, + gint64 maximum, + gint64 default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_uint64 (const gchar *name, + const gchar *nick, + const gchar *blurb, + guint64 minimum, + guint64 maximum, + guint64 default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_unichar (const gchar *name, + const gchar *nick, + const gchar *blurb, + gunichar default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_enum (const gchar *name, + const gchar *nick, + const gchar *blurb, + GType enum_type, + gint default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_flags (const gchar *name, + const gchar *nick, + const gchar *blurb, + GType flags_type, + guint default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_float (const gchar *name, + const gchar *nick, + const gchar *blurb, + gfloat minimum, + gfloat maximum, + gfloat default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_double (const gchar *name, + const gchar *nick, + const gchar *blurb, + gdouble minimum, + gdouble maximum, + gdouble default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_string (const gchar *name, + const gchar *nick, + const gchar *blurb, + const gchar *default_value, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_param (const gchar *name, + const gchar *nick, + const gchar *blurb, + GType param_type, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_boxed (const gchar *name, + const gchar *nick, + const gchar *blurb, + GType boxed_type, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_pointer (const gchar *name, + const gchar *nick, + const gchar *blurb, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_value_array (const gchar *name, + const gchar *nick, + const gchar *blurb, + GParamSpec *element_spec, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_object (const gchar *name, + const gchar *nick, + const gchar *blurb, + GType object_type, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_override (const gchar *name, + GParamSpec *overridden); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_gtype (const gchar *name, + const gchar *nick, + const gchar *blurb, + GType is_a_type, + GParamFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GParamSpec* g_param_spec_variant (const gchar *name, + const gchar *nick, + const gchar *blurb, + const GVariantType *type, + GVariant *default_value, + GParamFlags flags); + +GOBJECT_VAR GType *g_param_spec_types; + +G_END_DECLS + +#endif /* __G_PARAMSPECS_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gsignal.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gsignal.h new file mode 100644 index 000000000..312055b13 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gsignal.h @@ -0,0 +1,647 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 2000-2001 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ +#ifndef __G_SIGNAL_H__ +#define __G_SIGNAL_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include +#include + +G_BEGIN_DECLS + +/* --- typedefs --- */ +typedef struct _GSignalQuery GSignalQuery; +typedef struct _GSignalInvocationHint GSignalInvocationHint; +/** + * GSignalCMarshaller: + * + * This is the signature of marshaller functions, required to marshall + * arrays of parameter values to signal emissions into C language callback + * invocations. + * + * It is merely an alias to #GClosureMarshal since the #GClosure mechanism + * takes over responsibility of actual function invocation for the signal + * system. + */ +typedef GClosureMarshal GSignalCMarshaller; +/** + * GSignalCVaMarshaller: + * + * This is the signature of va_list marshaller functions, an optional + * marshaller that can be used in some situations to avoid + * marshalling the signal argument into GValues. + */ +typedef GVaClosureMarshal GSignalCVaMarshaller; +/** + * GSignalEmissionHook: + * @ihint: Signal invocation hint, see #GSignalInvocationHint. + * @n_param_values: the number of parameters to the function, including + * the instance on which the signal was emitted. + * @param_values: (array length=n_param_values): the instance on which + * the signal was emitted, followed by the parameters of the emission. + * @data: user data associated with the hook. + * + * A simple function pointer to get invoked when the signal is emitted. + * + * Emission hooks allow you to tie a hook to the signal type, so that it will + * trap all emissions of that signal, from any object. + * + * You may not attach these to signals created with the %G_SIGNAL_NO_HOOKS flag. + * + * Returns: whether it wants to stay connected. If it returns %FALSE, the signal + * hook is disconnected (and destroyed). + */ +typedef gboolean (*GSignalEmissionHook) (GSignalInvocationHint *ihint, + guint n_param_values, + const GValue *param_values, + gpointer data); +/** + * GSignalAccumulator: + * @ihint: Signal invocation hint, see #GSignalInvocationHint. + * @return_accu: Accumulator to collect callback return values in, this + * is the return value of the current signal emission. + * @handler_return: A #GValue holding the return value of the signal handler. + * @data: Callback data that was specified when creating the signal. + * + * The signal accumulator is a special callback function that can be used + * to collect return values of the various callbacks that are called + * during a signal emission. + * + * The signal accumulator is specified at signal creation time, if it is + * left %NULL, no accumulation of callback return values is performed. + * The return value of signal emissions is then the value returned by the + * last callback. + * + * Returns: The accumulator function returns whether the signal emission + * should be aborted. Returning %TRUE will continue with + * the signal emission. Returning %FALSE will abort the current emission. + * Since 2.62, returning %FALSE will skip to the CLEANUP stage. In this case, + * emission will occur as normal in the CLEANUP stage and the handler's + * return value will be accumulated. + */ +typedef gboolean (*GSignalAccumulator) (GSignalInvocationHint *ihint, + GValue *return_accu, + const GValue *handler_return, + gpointer data); + + +/* --- run, match and connect types --- */ +/** + * GSignalFlags: + * @G_SIGNAL_RUN_FIRST: Invoke the object method handler in the first emission stage. + * @G_SIGNAL_RUN_LAST: Invoke the object method handler in the third emission stage. + * @G_SIGNAL_RUN_CLEANUP: Invoke the object method handler in the last emission stage. + * @G_SIGNAL_NO_RECURSE: Signals being emitted for an object while currently being in + * emission for this very object will not be emitted recursively, + * but instead cause the first emission to be restarted. + * @G_SIGNAL_DETAILED: This signal supports "::detail" appendices to the signal name + * upon handler connections and emissions. + * @G_SIGNAL_ACTION: Action signals are signals that may freely be emitted on alive + * objects from user code via g_signal_emit() and friends, without + * the need of being embedded into extra code that performs pre or + * post emission adjustments on the object. They can also be thought + * of as object methods which can be called generically by + * third-party code. + * @G_SIGNAL_NO_HOOKS: No emissions hooks are supported for this signal. + * @G_SIGNAL_MUST_COLLECT: Varargs signal emission will always collect the + * arguments, even if there are no signal handlers connected. Since 2.30. + * @G_SIGNAL_DEPRECATED: The signal is deprecated and will be removed + * in a future version. A warning will be generated if it is connected while + * running with G_ENABLE_DIAGNOSTIC=1. Since 2.32. + * @G_SIGNAL_ACCUMULATOR_FIRST_RUN: Only used in #GSignalAccumulator accumulator + * functions for the #GSignalInvocationHint::run_type field to mark the first + * call to the accumulator function for a signal emission. Since 2.68. + * + * The signal flags are used to specify a signal's behaviour. + */ +typedef enum +{ + G_SIGNAL_RUN_FIRST = 1 << 0, + G_SIGNAL_RUN_LAST = 1 << 1, + G_SIGNAL_RUN_CLEANUP = 1 << 2, + G_SIGNAL_NO_RECURSE = 1 << 3, + G_SIGNAL_DETAILED = 1 << 4, + G_SIGNAL_ACTION = 1 << 5, + G_SIGNAL_NO_HOOKS = 1 << 6, + G_SIGNAL_MUST_COLLECT = 1 << 7, + G_SIGNAL_DEPRECATED = 1 << 8, + /* normal signal flags until 1 << 16 */ + G_SIGNAL_ACCUMULATOR_FIRST_RUN = 1 << 17, +} GSignalFlags; +/** + * G_SIGNAL_FLAGS_MASK: + * + * A mask for all #GSignalFlags bits. + */ +#define G_SIGNAL_FLAGS_MASK 0x1ff +/** + * GConnectFlags: + * @G_CONNECT_DEFAULT: Default behaviour (no special flags). Since: 2.74 + * @G_CONNECT_AFTER: If set, the handler should be called after the + * default handler of the signal. Normally, the handler is called before + * the default handler. + * @G_CONNECT_SWAPPED: If set, the instance and data should be swapped when + * calling the handler; see g_signal_connect_swapped() for an example. + * + * The connection flags are used to specify the behaviour of a signal's + * connection. + */ +typedef enum +{ + G_CONNECT_DEFAULT GOBJECT_AVAILABLE_ENUMERATOR_IN_2_74 = 0, + G_CONNECT_AFTER = 1 << 0, + G_CONNECT_SWAPPED = 1 << 1 +} GConnectFlags; +/** + * GSignalMatchType: + * @G_SIGNAL_MATCH_ID: The signal id must be equal. + * @G_SIGNAL_MATCH_DETAIL: The signal detail must be equal. + * @G_SIGNAL_MATCH_CLOSURE: The closure must be the same. + * @G_SIGNAL_MATCH_FUNC: The C closure callback must be the same. + * @G_SIGNAL_MATCH_DATA: The closure data must be the same. + * @G_SIGNAL_MATCH_UNBLOCKED: Only unblocked signals may be matched. + * + * The match types specify what g_signal_handlers_block_matched(), + * g_signal_handlers_unblock_matched() and g_signal_handlers_disconnect_matched() + * match signals by. + */ +typedef enum +{ + G_SIGNAL_MATCH_ID = 1 << 0, + G_SIGNAL_MATCH_DETAIL = 1 << 1, + G_SIGNAL_MATCH_CLOSURE = 1 << 2, + G_SIGNAL_MATCH_FUNC = 1 << 3, + G_SIGNAL_MATCH_DATA = 1 << 4, + G_SIGNAL_MATCH_UNBLOCKED = 1 << 5 +} GSignalMatchType; +/** + * G_SIGNAL_MATCH_MASK: + * + * A mask for all #GSignalMatchType bits. + */ +#define G_SIGNAL_MATCH_MASK 0x3f +/** + * G_SIGNAL_TYPE_STATIC_SCOPE: + * + * This macro flags signal argument types for which the signal system may + * assume that instances thereof remain persistent across all signal emissions + * they are used in. This is only useful for non ref-counted, value-copy types. + * + * To flag a signal argument in this way, add `| G_SIGNAL_TYPE_STATIC_SCOPE` + * to the corresponding argument of g_signal_new(). + * |[ + * g_signal_new ("size_request", + * G_TYPE_FROM_CLASS (gobject_class), + * G_SIGNAL_RUN_FIRST, + * G_STRUCT_OFFSET (GtkWidgetClass, size_request), + * NULL, NULL, + * _gtk_marshal_VOID__BOXED, + * G_TYPE_NONE, 1, + * GTK_TYPE_REQUISITION | G_SIGNAL_TYPE_STATIC_SCOPE); + * ]| + */ +#define G_SIGNAL_TYPE_STATIC_SCOPE (G_TYPE_FLAG_RESERVED_ID_BIT) + + +/* --- signal information --- */ +/** + * GSignalInvocationHint: + * @signal_id: The signal id of the signal invoking the callback + * @detail: The detail passed on for this emission + * @run_type: The stage the signal emission is currently in, this + * field will contain one of %G_SIGNAL_RUN_FIRST, + * %G_SIGNAL_RUN_LAST or %G_SIGNAL_RUN_CLEANUP and %G_SIGNAL_ACCUMULATOR_FIRST_RUN. + * %G_SIGNAL_ACCUMULATOR_FIRST_RUN is only set for the first run of the accumulator + * function for a signal emission. + * + * The #GSignalInvocationHint structure is used to pass on additional information + * to callbacks during a signal emission. + */ +struct _GSignalInvocationHint +{ + guint signal_id; + GQuark detail; + GSignalFlags run_type; +}; +/** + * GSignalQuery: + * @signal_id: The signal id of the signal being queried, or 0 if the + * signal to be queried was unknown. + * @signal_name: The signal name. + * @itype: The interface/instance type that this signal can be emitted for. + * @signal_flags: The signal flags as passed in to g_signal_new(). + * @return_type: The return type for user callbacks. + * @n_params: The number of parameters that user callbacks take. + * @param_types: (array length=n_params): The individual parameter types for + * user callbacks, note that the effective callback signature is: + * |[ + * @return_type callback (#gpointer data1, + * [param_types param_names,] + * gpointer data2); + * ]| + * + * A structure holding in-depth information for a specific signal. + * + * See also: g_signal_query() + */ +struct _GSignalQuery +{ + guint signal_id; + const gchar *signal_name; + GType itype; + GSignalFlags signal_flags; + GType return_type; /* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag */ + guint n_params; + const GType *param_types; /* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag */ +}; + + +/* --- signals --- */ +GOBJECT_AVAILABLE_IN_ALL +guint g_signal_newv (const gchar *signal_name, + GType itype, + GSignalFlags signal_flags, + GClosure *class_closure, + GSignalAccumulator accumulator, + gpointer accu_data, + GSignalCMarshaller c_marshaller, + GType return_type, + guint n_params, + GType *param_types); +GOBJECT_AVAILABLE_IN_ALL +guint g_signal_new_valist (const gchar *signal_name, + GType itype, + GSignalFlags signal_flags, + GClosure *class_closure, + GSignalAccumulator accumulator, + gpointer accu_data, + GSignalCMarshaller c_marshaller, + GType return_type, + guint n_params, + va_list args); +GOBJECT_AVAILABLE_IN_ALL +guint g_signal_new (const gchar *signal_name, + GType itype, + GSignalFlags signal_flags, + guint class_offset, + GSignalAccumulator accumulator, + gpointer accu_data, + GSignalCMarshaller c_marshaller, + GType return_type, + guint n_params, + ...); +GOBJECT_AVAILABLE_IN_ALL +guint g_signal_new_class_handler (const gchar *signal_name, + GType itype, + GSignalFlags signal_flags, + GCallback class_handler, + GSignalAccumulator accumulator, + gpointer accu_data, + GSignalCMarshaller c_marshaller, + GType return_type, + guint n_params, + ...); +GOBJECT_AVAILABLE_IN_ALL +void g_signal_set_va_marshaller (guint signal_id, + GType instance_type, + GSignalCVaMarshaller va_marshaller); + +GOBJECT_AVAILABLE_IN_ALL +void g_signal_emitv (const GValue *instance_and_params, + guint signal_id, + GQuark detail, + GValue *return_value); +GOBJECT_AVAILABLE_IN_ALL +void g_signal_emit_valist (gpointer instance, + guint signal_id, + GQuark detail, + va_list var_args); +GOBJECT_AVAILABLE_IN_ALL +void g_signal_emit (gpointer instance, + guint signal_id, + GQuark detail, + ...); +GOBJECT_AVAILABLE_IN_ALL +void g_signal_emit_by_name (gpointer instance, + const gchar *detailed_signal, + ...); +GOBJECT_AVAILABLE_IN_ALL +guint g_signal_lookup (const gchar *name, + GType itype); +GOBJECT_AVAILABLE_IN_ALL +const gchar * g_signal_name (guint signal_id); +GOBJECT_AVAILABLE_IN_ALL +void g_signal_query (guint signal_id, + GSignalQuery *query); +GOBJECT_AVAILABLE_IN_ALL +guint* g_signal_list_ids (GType itype, + guint *n_ids); +GOBJECT_AVAILABLE_IN_2_66 +gboolean g_signal_is_valid_name (const gchar *name); +GOBJECT_AVAILABLE_IN_ALL +gboolean g_signal_parse_name (const gchar *detailed_signal, + GType itype, + guint *signal_id_p, + GQuark *detail_p, + gboolean force_detail_quark); +GOBJECT_AVAILABLE_IN_ALL +GSignalInvocationHint* g_signal_get_invocation_hint (gpointer instance); + + +/* --- signal emissions --- */ +GOBJECT_AVAILABLE_IN_ALL +void g_signal_stop_emission (gpointer instance, + guint signal_id, + GQuark detail); +GOBJECT_AVAILABLE_IN_ALL +void g_signal_stop_emission_by_name (gpointer instance, + const gchar *detailed_signal); +GOBJECT_AVAILABLE_IN_ALL +gulong g_signal_add_emission_hook (guint signal_id, + GQuark detail, + GSignalEmissionHook hook_func, + gpointer hook_data, + GDestroyNotify data_destroy); +GOBJECT_AVAILABLE_IN_ALL +void g_signal_remove_emission_hook (guint signal_id, + gulong hook_id); + + +/* --- signal handlers --- */ +GOBJECT_AVAILABLE_IN_ALL +gboolean g_signal_has_handler_pending (gpointer instance, + guint signal_id, + GQuark detail, + gboolean may_be_blocked); +GOBJECT_AVAILABLE_IN_ALL +gulong g_signal_connect_closure_by_id (gpointer instance, + guint signal_id, + GQuark detail, + GClosure *closure, + gboolean after); +GOBJECT_AVAILABLE_IN_ALL +gulong g_signal_connect_closure (gpointer instance, + const gchar *detailed_signal, + GClosure *closure, + gboolean after); +GOBJECT_AVAILABLE_IN_ALL +gulong g_signal_connect_data (gpointer instance, + const gchar *detailed_signal, + GCallback c_handler, + gpointer data, + GClosureNotify destroy_data, + GConnectFlags connect_flags); +GOBJECT_AVAILABLE_IN_ALL +void g_signal_handler_block (gpointer instance, + gulong handler_id); +GOBJECT_AVAILABLE_IN_ALL +void g_signal_handler_unblock (gpointer instance, + gulong handler_id); +GOBJECT_AVAILABLE_IN_ALL +void g_signal_handler_disconnect (gpointer instance, + gulong handler_id); +GOBJECT_AVAILABLE_IN_ALL +gboolean g_signal_handler_is_connected (gpointer instance, + gulong handler_id); +GOBJECT_AVAILABLE_IN_ALL +gulong g_signal_handler_find (gpointer instance, + GSignalMatchType mask, + guint signal_id, + GQuark detail, + GClosure *closure, + gpointer func, + gpointer data); +GOBJECT_AVAILABLE_IN_ALL +guint g_signal_handlers_block_matched (gpointer instance, + GSignalMatchType mask, + guint signal_id, + GQuark detail, + GClosure *closure, + gpointer func, + gpointer data); +GOBJECT_AVAILABLE_IN_ALL +guint g_signal_handlers_unblock_matched (gpointer instance, + GSignalMatchType mask, + guint signal_id, + GQuark detail, + GClosure *closure, + gpointer func, + gpointer data); +GOBJECT_AVAILABLE_IN_ALL +guint g_signal_handlers_disconnect_matched (gpointer instance, + GSignalMatchType mask, + guint signal_id, + GQuark detail, + GClosure *closure, + gpointer func, + gpointer data); + +GOBJECT_AVAILABLE_IN_2_62 +void g_clear_signal_handler (gulong *handler_id_ptr, + gpointer instance); + +#define g_clear_signal_handler(handler_id_ptr, instance) \ + G_STMT_START { \ + gpointer const _instance = (instance); \ + gulong *const _handler_id_ptr = (handler_id_ptr); \ + const gulong _handler_id = *_handler_id_ptr; \ + \ + if (_handler_id > 0) \ + { \ + *_handler_id_ptr = 0; \ + g_signal_handler_disconnect (_instance, _handler_id); \ + } \ + } G_STMT_END \ + GOBJECT_AVAILABLE_MACRO_IN_2_62 + +/* --- overriding and chaining --- */ +GOBJECT_AVAILABLE_IN_ALL +void g_signal_override_class_closure (guint signal_id, + GType instance_type, + GClosure *class_closure); +GOBJECT_AVAILABLE_IN_ALL +void g_signal_override_class_handler (const gchar *signal_name, + GType instance_type, + GCallback class_handler); +GOBJECT_AVAILABLE_IN_ALL +void g_signal_chain_from_overridden (const GValue *instance_and_params, + GValue *return_value); +GOBJECT_AVAILABLE_IN_ALL +void g_signal_chain_from_overridden_handler (gpointer instance, + ...); + + +/* --- convenience --- */ +/** + * g_signal_connect: + * @instance: the instance to connect to. + * @detailed_signal: a string of the form "signal-name::detail". + * @c_handler: the #GCallback to connect. + * @data: data to pass to @c_handler calls. + * + * Connects a #GCallback function to a signal for a particular object. + * + * The handler will be called synchronously, before the default handler of the signal. g_signal_emit() will not return control until all handlers are called. + * + * See [memory management of signal handlers][signal-memory-management] for + * details on how to handle the return value and memory management of @data. + * + * Returns: the handler ID, of type #gulong (always greater than 0 for successful connections) + */ +/* Intentionally not using G_CONNECT_DEFAULT here to avoid deprecation + * warnings with older GLIB_VERSION_MAX_ALLOWED */ +#define g_signal_connect(instance, detailed_signal, c_handler, data) \ + g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, (GConnectFlags) 0) +/** + * g_signal_connect_after: + * @instance: the instance to connect to. + * @detailed_signal: a string of the form "signal-name::detail". + * @c_handler: the #GCallback to connect. + * @data: data to pass to @c_handler calls. + * + * Connects a #GCallback function to a signal for a particular object. + * + * The handler will be called synchronously, after the default handler of the signal. + * + * Returns: the handler ID, of type #gulong (always greater than 0 for successful connections) + */ +#define g_signal_connect_after(instance, detailed_signal, c_handler, data) \ + g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, G_CONNECT_AFTER) +/** + * g_signal_connect_swapped: + * @instance: the instance to connect to. + * @detailed_signal: a string of the form "signal-name::detail". + * @c_handler: the #GCallback to connect. + * @data: data to pass to @c_handler calls. + * + * Connects a #GCallback function to a signal for a particular object. + * + * The instance on which the signal is emitted and @data will be swapped when + * calling the handler. This is useful when calling pre-existing functions to + * operate purely on the @data, rather than the @instance: swapping the + * parameters avoids the need to write a wrapper function. + * + * For example, this allows the shorter code: + * |[ + * g_signal_connect_swapped (button, "clicked", + * (GCallback) gtk_widget_hide, other_widget); + * ]| + * + * Rather than the cumbersome: + * |[ + * static void + * button_clicked_cb (GtkButton *button, GtkWidget *other_widget) + * { + * gtk_widget_hide (other_widget); + * } + * + * ... + * + * g_signal_connect (button, "clicked", + * (GCallback) button_clicked_cb, other_widget); + * ]| + * + * Returns: the handler ID, of type #gulong (always greater than 0 for successful connections) + */ +#define g_signal_connect_swapped(instance, detailed_signal, c_handler, data) \ + g_signal_connect_data ((instance), (detailed_signal), (c_handler), (data), NULL, G_CONNECT_SWAPPED) +/** + * g_signal_handlers_disconnect_by_func: + * @instance: The instance to remove handlers from. + * @func: The C closure callback of the handlers (useless for non-C closures). + * @data: The closure data of the handlers' closures. + * + * Disconnects all handlers on an instance that match @func and @data. + * + * Returns: The number of handlers that matched. + */ +#define g_signal_handlers_disconnect_by_func(instance, func, data) \ + g_signal_handlers_disconnect_matched ((instance), \ + (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), \ + 0, 0, NULL, (func), (data)) + +/** + * g_signal_handlers_disconnect_by_data: + * @instance: The instance to remove handlers from + * @data: the closure data of the handlers' closures + * + * Disconnects all handlers on an instance that match @data. + * + * Returns: The number of handlers that matched. + * + * Since: 2.32 + */ +#define g_signal_handlers_disconnect_by_data(instance, data) \ + g_signal_handlers_disconnect_matched ((instance), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, (data)) + +/** + * g_signal_handlers_block_by_func: + * @instance: The instance to block handlers from. + * @func: The C closure callback of the handlers (useless for non-C closures). + * @data: The closure data of the handlers' closures. + * + * Blocks all handlers on an instance that match @func and @data. + * + * Returns: The number of handlers that matched. + */ +#define g_signal_handlers_block_by_func(instance, func, data) \ + g_signal_handlers_block_matched ((instance), \ + (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), \ + 0, 0, NULL, (func), (data)) +/** + * g_signal_handlers_unblock_by_func: + * @instance: The instance to unblock handlers from. + * @func: The C closure callback of the handlers (useless for non-C closures). + * @data: The closure data of the handlers' closures. + * + * Unblocks all handlers on an instance that match @func and @data. + * + * Returns: The number of handlers that matched. + */ +#define g_signal_handlers_unblock_by_func(instance, func, data) \ + g_signal_handlers_unblock_matched ((instance), \ + (GSignalMatchType) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), \ + 0, 0, NULL, (func), (data)) + + +GOBJECT_AVAILABLE_IN_ALL +gboolean g_signal_accumulator_true_handled (GSignalInvocationHint *ihint, + GValue *return_accu, + const GValue *handler_return, + gpointer dummy); + +GOBJECT_AVAILABLE_IN_ALL +gboolean g_signal_accumulator_first_wins (GSignalInvocationHint *ihint, + GValue *return_accu, + const GValue *handler_return, + gpointer dummy); + +/*< private >*/ +GOBJECT_AVAILABLE_IN_ALL +void g_signal_handlers_destroy (gpointer instance); +void _g_signals_destroy (GType itype); + +G_END_DECLS + +#endif /* __G_SIGNAL_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gsignalgroup.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gsignalgroup.h new file mode 100644 index 000000000..6aa151ca4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gsignalgroup.h @@ -0,0 +1,98 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * + * Copyright (C) 2015-2022 Christian Hergert + * Copyright (C) 2015 Garrett Regier + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef __G_SIGNAL_GROUP_H__ +#define __G_SIGNAL_GROUP_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include +#include + +G_BEGIN_DECLS + +#define G_SIGNAL_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), G_TYPE_SIGNAL_GROUP, GSignalGroup)) +#define G_IS_SIGNAL_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), G_TYPE_SIGNAL_GROUP)) +#define G_TYPE_SIGNAL_GROUP (g_signal_group_get_type()) + +/** + * GSignalGroup: + * + * #GSignalGroup is an opaque structure whose members + * cannot be accessed directly. + * + * Since: 2.72 + */ +typedef struct _GSignalGroup GSignalGroup; + +GOBJECT_AVAILABLE_IN_2_72 +GType g_signal_group_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_2_72 +GSignalGroup *g_signal_group_new (GType target_type); +GOBJECT_AVAILABLE_IN_2_72 +void g_signal_group_set_target (GSignalGroup *self, + gpointer target); +GOBJECT_AVAILABLE_IN_2_72 +gpointer g_signal_group_dup_target (GSignalGroup *self); +GOBJECT_AVAILABLE_IN_2_72 +void g_signal_group_block (GSignalGroup *self); +GOBJECT_AVAILABLE_IN_2_72 +void g_signal_group_unblock (GSignalGroup *self); +GOBJECT_AVAILABLE_IN_2_74 +void g_signal_group_connect_closure (GSignalGroup *self, + const gchar *detailed_signal, + GClosure *closure, + gboolean after); +GOBJECT_AVAILABLE_IN_2_72 +void g_signal_group_connect_object (GSignalGroup *self, + const gchar *detailed_signal, + GCallback c_handler, + gpointer object, + GConnectFlags flags); +GOBJECT_AVAILABLE_IN_2_72 +void g_signal_group_connect_data (GSignalGroup *self, + const gchar *detailed_signal, + GCallback c_handler, + gpointer data, + GClosureNotify notify, + GConnectFlags flags); +GOBJECT_AVAILABLE_IN_2_72 +void g_signal_group_connect (GSignalGroup *self, + const gchar *detailed_signal, + GCallback c_handler, + gpointer data); +GOBJECT_AVAILABLE_IN_2_72 +void g_signal_group_connect_after (GSignalGroup *self, + const gchar *detailed_signal, + GCallback c_handler, + gpointer data); +GOBJECT_AVAILABLE_IN_2_72 +void g_signal_group_connect_swapped (GSignalGroup *self, + const gchar *detailed_signal, + GCallback c_handler, + gpointer data); + +G_END_DECLS + +#endif /* __G_SIGNAL_GROUP_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gsourceclosure.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gsourceclosure.h new file mode 100644 index 000000000..d60916542 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gsourceclosure.h @@ -0,0 +1,40 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 2001 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ +#ifndef __G_SOURCECLOSURE_H__ +#define __G_SOURCECLOSURE_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +GOBJECT_AVAILABLE_IN_ALL +void g_source_set_closure (GSource *source, + GClosure *closure); + +GOBJECT_AVAILABLE_IN_ALL +void g_source_set_dummy_callback (GSource *source); + +G_END_DECLS + +#endif /* __G_SOURCECLOSURE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gtype.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gtype.h new file mode 100644 index 000000000..c074d540e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gtype.h @@ -0,0 +1,2703 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 1998-1999, 2000-2001 Tim Janik and Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ +#ifndef __G_TYPE_H__ +#define __G_TYPE_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +/* Basic Type Macros + */ +/** + * G_TYPE_FUNDAMENTAL: + * @type: A #GType value. + * + * The fundamental type which is the ancestor of @type. + * + * Fundamental types are types that serve as ultimate bases for the derived types, + * thus they are the roots of distinct inheritance hierarchies. + */ +#define G_TYPE_FUNDAMENTAL(type) (g_type_fundamental (type)) +/** + * G_TYPE_FUNDAMENTAL_MAX: + * + * An integer constant that represents the number of identifiers reserved + * for types that are assigned at compile-time. + */ +#define G_TYPE_FUNDAMENTAL_MAX (255 << G_TYPE_FUNDAMENTAL_SHIFT) + +/* Constant fundamental types, + */ +/** + * G_TYPE_INVALID: + * + * An invalid #GType used as error return value in some functions which return + * a #GType. + */ +#define G_TYPE_INVALID G_TYPE_MAKE_FUNDAMENTAL (0) +/** + * G_TYPE_NONE: + * + * A fundamental type which is used as a replacement for the C + * void return type. + */ +#define G_TYPE_NONE G_TYPE_MAKE_FUNDAMENTAL (1) +/** + * G_TYPE_INTERFACE: + * + * The fundamental type from which all interfaces are derived. + */ +#define G_TYPE_INTERFACE G_TYPE_MAKE_FUNDAMENTAL (2) +/** + * G_TYPE_CHAR: + * + * The fundamental type corresponding to #gchar. + * + * The type designated by %G_TYPE_CHAR is unconditionally an 8-bit signed integer. + * This may or may not be the same type a the C type "gchar". + */ +#define G_TYPE_CHAR G_TYPE_MAKE_FUNDAMENTAL (3) +/** + * G_TYPE_UCHAR: + * + * The fundamental type corresponding to #guchar. + */ +#define G_TYPE_UCHAR G_TYPE_MAKE_FUNDAMENTAL (4) +/** + * G_TYPE_BOOLEAN: + * + * The fundamental type corresponding to #gboolean. + */ +#define G_TYPE_BOOLEAN G_TYPE_MAKE_FUNDAMENTAL (5) +/** + * G_TYPE_INT: + * + * The fundamental type corresponding to #gint. + */ +#define G_TYPE_INT G_TYPE_MAKE_FUNDAMENTAL (6) +/** + * G_TYPE_UINT: + * + * The fundamental type corresponding to #guint. + */ +#define G_TYPE_UINT G_TYPE_MAKE_FUNDAMENTAL (7) +/** + * G_TYPE_LONG: + * + * The fundamental type corresponding to #glong. + */ +#define G_TYPE_LONG G_TYPE_MAKE_FUNDAMENTAL (8) +/** + * G_TYPE_ULONG: + * + * The fundamental type corresponding to #gulong. + */ +#define G_TYPE_ULONG G_TYPE_MAKE_FUNDAMENTAL (9) +/** + * G_TYPE_INT64: + * + * The fundamental type corresponding to #gint64. + */ +#define G_TYPE_INT64 G_TYPE_MAKE_FUNDAMENTAL (10) +/** + * G_TYPE_UINT64: + * + * The fundamental type corresponding to #guint64. + */ +#define G_TYPE_UINT64 G_TYPE_MAKE_FUNDAMENTAL (11) +/** + * G_TYPE_ENUM: + * + * The fundamental type from which all enumeration types are derived. + */ +#define G_TYPE_ENUM G_TYPE_MAKE_FUNDAMENTAL (12) +/** + * G_TYPE_FLAGS: + * + * The fundamental type from which all flags types are derived. + */ +#define G_TYPE_FLAGS G_TYPE_MAKE_FUNDAMENTAL (13) +/** + * G_TYPE_FLOAT: + * + * The fundamental type corresponding to #gfloat. + */ +#define G_TYPE_FLOAT G_TYPE_MAKE_FUNDAMENTAL (14) +/** + * G_TYPE_DOUBLE: + * + * The fundamental type corresponding to #gdouble. + */ +#define G_TYPE_DOUBLE G_TYPE_MAKE_FUNDAMENTAL (15) +/** + * G_TYPE_STRING: + * + * The fundamental type corresponding to nul-terminated C strings. + */ +#define G_TYPE_STRING G_TYPE_MAKE_FUNDAMENTAL (16) +/** + * G_TYPE_POINTER: + * + * The fundamental type corresponding to #gpointer. + */ +#define G_TYPE_POINTER G_TYPE_MAKE_FUNDAMENTAL (17) +/** + * G_TYPE_BOXED: + * + * The fundamental type from which all boxed types are derived. + */ +#define G_TYPE_BOXED G_TYPE_MAKE_FUNDAMENTAL (18) +/** + * G_TYPE_PARAM: + * + * The fundamental type from which all #GParamSpec types are derived. + */ +#define G_TYPE_PARAM G_TYPE_MAKE_FUNDAMENTAL (19) +/** + * G_TYPE_OBJECT: + * + * The fundamental type for #GObject. + */ +#define G_TYPE_OBJECT G_TYPE_MAKE_FUNDAMENTAL (20) +/** + * G_TYPE_VARIANT: + * + * The fundamental type corresponding to #GVariant. + * + * All floating #GVariant instances passed through the #GType system are + * consumed. + * + * Note that callbacks in closures, and signal handlers + * for signals of return type %G_TYPE_VARIANT, must never return floating + * variants. + * + * Note: GLib 2.24 did include a boxed type with this name. It was replaced + * with this fundamental type in 2.26. + * + * Since: 2.26 + */ +#define G_TYPE_VARIANT G_TYPE_MAKE_FUNDAMENTAL (21) + + +/* Reserved fundamental type numbers to create new fundamental + * type IDs with G_TYPE_MAKE_FUNDAMENTAL(). + * + * Open an issue on https://gitlab.gnome.org/GNOME/glib/issues/new for + * reservations. + */ +/** + * G_TYPE_FUNDAMENTAL_SHIFT: + * + * Shift value used in converting numbers to type IDs. + */ +#define G_TYPE_FUNDAMENTAL_SHIFT (2) +/** + * G_TYPE_MAKE_FUNDAMENTAL: + * @x: the fundamental type number. + * + * Get the type ID for the fundamental type number @x. + * + * Use g_type_fundamental_next() instead of this macro to create new fundamental + * types. + * + * Returns: the GType + */ +#define G_TYPE_MAKE_FUNDAMENTAL(x) ((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT)) +/** + * G_TYPE_RESERVED_GLIB_FIRST: + * + * First fundamental type number to create a new fundamental type id with + * G_TYPE_MAKE_FUNDAMENTAL() reserved for GLib. + */ +#define G_TYPE_RESERVED_GLIB_FIRST (22) +/** + * G_TYPE_RESERVED_GLIB_LAST: + * + * Last fundamental type number reserved for GLib. + */ +#define G_TYPE_RESERVED_GLIB_LAST (31) +/** + * G_TYPE_RESERVED_BSE_FIRST: + * + * First fundamental type number to create a new fundamental type id with + * G_TYPE_MAKE_FUNDAMENTAL() reserved for BSE. + */ +#define G_TYPE_RESERVED_BSE_FIRST (32) +/** + * G_TYPE_RESERVED_BSE_LAST: + * + * Last fundamental type number reserved for BSE. + */ +#define G_TYPE_RESERVED_BSE_LAST (48) +/** + * G_TYPE_RESERVED_USER_FIRST: + * + * First available fundamental type number to create new fundamental + * type id with G_TYPE_MAKE_FUNDAMENTAL(). + */ +#define G_TYPE_RESERVED_USER_FIRST (49) + + +/* Type Checking Macros + */ +/** + * G_TYPE_IS_FUNDAMENTAL: + * @type: A #GType value + * + * Checks if @type is a fundamental type. + * + * Returns: %TRUE is @type is fundamental + */ +#define G_TYPE_IS_FUNDAMENTAL(type) ((type) <= G_TYPE_FUNDAMENTAL_MAX) +/** + * G_TYPE_IS_DERIVED: + * @type: A #GType value + * + * Checks if @type is derived (or in object-oriented terminology: + * inherited) from another type (this holds true for all non-fundamental + * types). + * + * Returns: %TRUE if @type is derived + */ +#define G_TYPE_IS_DERIVED(type) ((type) > G_TYPE_FUNDAMENTAL_MAX) +/** + * G_TYPE_IS_INTERFACE: + * @type: A #GType value + * + * Checks if @type is an interface type. + * + * An interface type provides a pure API, the implementation + * of which is provided by another type (which is then said to conform + * to the interface). GLib interfaces are somewhat analogous to Java + * interfaces and C++ classes containing only pure virtual functions, + * with the difference that GType interfaces are not derivable (but see + * g_type_interface_add_prerequisite() for an alternative). + * + * Returns: %TRUE if @type is an interface + */ +#define G_TYPE_IS_INTERFACE(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE) +/** + * G_TYPE_IS_CLASSED: + * @type: A #GType value + * + * Checks if @type is a classed type. + * + * A classed type has an associated #GTypeClass which can be derived to store + * class-wide virtual function pointers and data for all instances of the type. + * This allows for subclassing. All #GObjects are classed; none of the scalar + * fundamental types built into GLib are classed. + * + * Interfaces are not classed: while their #GTypeInterface struct could be + * considered similar to #GTypeClass, and classes can derive interfaces, + * #GTypeInterface doesn’t allow for subclassing. + * + * Returns: %TRUE if @type is classed + */ +#define G_TYPE_IS_CLASSED(type) (g_type_test_flags ((type), G_TYPE_FLAG_CLASSED)) +/** + * G_TYPE_IS_INSTANTIATABLE: + * @type: A #GType value + * + * Checks if @type can be instantiated. Instantiation is the + * process of creating an instance (object) of this type. + * + * Returns: %TRUE if @type is instantiatable + */ +#define G_TYPE_IS_INSTANTIATABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_INSTANTIATABLE)) +/** + * G_TYPE_IS_DERIVABLE: + * @type: A #GType value + * + * Checks if @type is a derivable type. A derivable type can + * be used as the base class of a flat (single-level) class hierarchy. + * + * Returns: %TRUE if @type is derivable + */ +#define G_TYPE_IS_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DERIVABLE)) +/** + * G_TYPE_IS_DEEP_DERIVABLE: + * @type: A #GType value + * + * Checks if @type is a deep derivable type. A deep derivable type + * can be used as the base class of a deep (multi-level) class hierarchy. + * + * Returns: %TRUE if @type is deep derivable + */ +#define G_TYPE_IS_DEEP_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DEEP_DERIVABLE)) +/** + * G_TYPE_IS_ABSTRACT: + * @type: A #GType value + * + * Checks if @type is an abstract type. An abstract type cannot be + * instantiated and is normally used as an abstract base class for + * derived classes. + * + * Returns: %TRUE if @type is abstract + */ +#define G_TYPE_IS_ABSTRACT(type) (g_type_test_flags ((type), G_TYPE_FLAG_ABSTRACT)) +/** + * G_TYPE_IS_VALUE_ABSTRACT: + * @type: A #GType value + * + * Checks if @type is an abstract value type. An abstract value type introduces + * a value table, but can't be used for g_value_init() and is normally used as + * an abstract base type for derived value types. + * + * Returns: %TRUE if @type is an abstract value type + */ +#define G_TYPE_IS_VALUE_ABSTRACT(type) (g_type_test_flags ((type), G_TYPE_FLAG_VALUE_ABSTRACT)) +/** + * G_TYPE_IS_VALUE_TYPE: + * @type: A #GType value + * + * Checks if @type is a value type and can be used with g_value_init(). + * + * Returns: %TRUE if @type is a value type + */ +#define G_TYPE_IS_VALUE_TYPE(type) (g_type_check_is_value_type (type)) +/** + * G_TYPE_HAS_VALUE_TABLE: + * @type: A #GType value + * + * Checks if @type has a #GTypeValueTable. + * + * Returns: %TRUE if @type has a value table + */ +#define G_TYPE_HAS_VALUE_TABLE(type) (g_type_value_table_peek (type) != NULL) +/** + * G_TYPE_IS_FINAL: + * @type: a #GType value + * + * Checks if @type is a final type. A final type cannot be derived any + * further. + * + * Returns: %TRUE if @type is final + * + * Since: 2.70 + */ +#define G_TYPE_IS_FINAL(type) (g_type_test_flags ((type), G_TYPE_FLAG_FINAL)) GOBJECT_AVAILABLE_MACRO_IN_2_70 + +/** + * G_TYPE_IS_DEPRECATED: + * @type: a #GType value + * + * Checks if @type is deprecated. Instantiating a deprecated type will + * trigger a warning if running with `G_ENABLE_DIAGNOSTIC=1`. + * + * Returns: %TRUE if the type is deprecated + * + * Since: 2.76 + */ +#define G_TYPE_IS_DEPRECATED(type) (g_type_test_flags ((type), G_TYPE_FLAG_DEPRECATED)) GOBJECT_AVAILABLE_MACRO_IN_2_76 + + +/* Typedefs + */ +/** + * GType: + * + * A numerical value which represents the unique identifier of a registered + * type. + */ +#if GLIB_SIZEOF_SIZE_T != GLIB_SIZEOF_LONG || !defined (G_CXX_STD_VERSION) +typedef gsize GType; +#else /* for historic reasons, C++ links against gulong GTypes */ +typedef gulong GType; +#endif +typedef struct _GValue GValue; +typedef union _GTypeCValue GTypeCValue; +typedef struct _GTypePlugin GTypePlugin; +typedef struct _GTypeClass GTypeClass; +typedef struct _GTypeInterface GTypeInterface; +typedef struct _GTypeInstance GTypeInstance; +typedef struct _GTypeInfo GTypeInfo; +typedef struct _GTypeFundamentalInfo GTypeFundamentalInfo; +typedef struct _GInterfaceInfo GInterfaceInfo; +typedef struct _GTypeValueTable GTypeValueTable; +typedef struct _GTypeQuery GTypeQuery; + + +/* Basic Type Structures + */ +/** + * GTypeClass: + * + * An opaque structure used as the base of all classes. + */ +struct _GTypeClass +{ + /*< private >*/ + GType g_type; +}; +/** + * GTypeInstance: + * + * An opaque structure used as the base of all type instances. + */ +struct _GTypeInstance +{ + /*< private >*/ + GTypeClass *g_class; +}; +/** + * GTypeInterface: + * + * An opaque structure used as the base of all interface types. + */ +struct _GTypeInterface +{ + /*< private >*/ + GType g_type; /* iface type */ + GType g_instance_type; +}; +/** + * GTypeQuery: + * @type: the #GType value of the type + * @type_name: the name of the type + * @class_size: the size of the class structure + * @instance_size: the size of the instance structure + * + * A structure holding information for a specific type. + * + * See also: g_type_query() + */ +struct _GTypeQuery +{ + GType type; + const gchar *type_name; + guint class_size; + guint instance_size; +}; + + +/* Casts, checks and accessors for structured types + * usage of these macros is reserved to type implementations only + */ +/*< protected >*/ +/** + * G_TYPE_CHECK_INSTANCE: + * @instance: Location of a #GTypeInstance structure + * + * Checks if @instance is a valid #GTypeInstance structure, + * otherwise issues a warning and returns %FALSE. %NULL is not a valid + * #GTypeInstance. + * + * This macro should only be used in type implementations. + * + * Returns: %TRUE if @instance is valid + */ +#define G_TYPE_CHECK_INSTANCE(instance) (_G_TYPE_CHI ((GTypeInstance*) (instance))) +/** + * G_TYPE_CHECK_INSTANCE_CAST: + * @instance: (nullable): Location of a #GTypeInstance structure + * @g_type: The type to be returned + * @c_type: The corresponding C type of @g_type + * + * Checks that @instance is an instance of the type identified by @g_type + * and issues a warning if this is not the case. Returns @instance casted + * to a pointer to @c_type. + * + * No warning will be issued if @instance is %NULL, and %NULL will be returned. + * + * This macro should only be used in type implementations. + */ +#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type) (_G_TYPE_CIC ((instance), (g_type), c_type)) +/** + * G_TYPE_CHECK_INSTANCE_TYPE: + * @instance: (nullable): Location of a #GTypeInstance structure. + * @g_type: The type to be checked + * + * Checks if @instance is an instance of the type identified by @g_type. If + * @instance is %NULL, %FALSE will be returned. + * + * This macro should only be used in type implementations. + * + * Returns: %TRUE if @instance is an instance of @g_type + */ +#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type) (_G_TYPE_CIT ((instance), (g_type))) +/** + * G_TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE: + * @instance: (nullable): Location of a #GTypeInstance structure. + * @g_type: The fundamental type to be checked + * + * Checks if @instance is an instance of the fundamental type identified by @g_type. + * If @instance is %NULL, %FALSE will be returned. + * + * This macro should only be used in type implementations. + * + * Returns: %TRUE if @instance is an instance of @g_type + */ +#define G_TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE(instance, g_type) (_G_TYPE_CIFT ((instance), (g_type))) +/** + * G_TYPE_INSTANCE_GET_CLASS: + * @instance: Location of the #GTypeInstance structure + * @g_type: The #GType of the class to be returned + * @c_type: The C type of the class structure + * + * Get the class structure of a given @instance, casted + * to a specified ancestor type @g_type of the instance. + * + * Note that while calling a GInstanceInitFunc(), the class pointer + * gets modified, so it might not always return the expected pointer. + * + * This macro should only be used in type implementations. + * + * Returns: a pointer to the class structure + */ +#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type) (_G_TYPE_IGC ((instance), (g_type), c_type)) +/** + * G_TYPE_INSTANCE_GET_INTERFACE: + * @instance: Location of the #GTypeInstance structure + * @g_type: The #GType of the interface to be returned + * @c_type: The C type of the interface structure + * + * Get the interface structure for interface @g_type of a given @instance. + * + * This macro should only be used in type implementations. + * + * Returns: a pointer to the interface structure + */ +#define G_TYPE_INSTANCE_GET_INTERFACE(instance, g_type, c_type) (_G_TYPE_IGI ((instance), (g_type), c_type)) +/** + * G_TYPE_CHECK_CLASS_CAST: + * @g_class: Location of a #GTypeClass structure + * @g_type: The type to be returned + * @c_type: The corresponding C type of class structure of @g_type + * + * Checks that @g_class is a class structure of the type identified by @g_type + * and issues a warning if this is not the case. Returns @g_class casted + * to a pointer to @c_type. %NULL is not a valid class structure. + * + * This macro should only be used in type implementations. + */ +#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type) (_G_TYPE_CCC ((g_class), (g_type), c_type)) +/** + * G_TYPE_CHECK_CLASS_TYPE: + * @g_class: (nullable): Location of a #GTypeClass structure + * @g_type: The type to be checked + * + * Checks if @g_class is a class structure of the type identified by + * @g_type. If @g_class is %NULL, %FALSE will be returned. + * + * This macro should only be used in type implementations. + * + * Returns: %TRUE if @g_class is a class structure of @g_type + */ +#define G_TYPE_CHECK_CLASS_TYPE(g_class, g_type) (_G_TYPE_CCT ((g_class), (g_type))) +/** + * G_TYPE_CHECK_VALUE: + * @value: a #GValue + * + * Checks if @value has been initialized to hold values + * of a value type. + * + * This macro should only be used in type implementations. + * + * Returns: %TRUE if @value is initialized + */ +#define G_TYPE_CHECK_VALUE(value) (_G_TYPE_CHV ((value))) +/** + * G_TYPE_CHECK_VALUE_TYPE: + * @value: a #GValue + * @g_type: The type to be checked + * + * Checks if @value has been initialized to hold values + * of type @g_type. + * + * This macro should only be used in type implementations. + * + * Returns: %TRUE if @value has been initialized to hold values of type @g_type + */ +#define G_TYPE_CHECK_VALUE_TYPE(value, g_type) (_G_TYPE_CVH ((value), (g_type))) +/** + * G_TYPE_FROM_INSTANCE: + * @instance: Location of a valid #GTypeInstance structure + * + * Get the type identifier from a given @instance structure. + * + * This macro should only be used in type implementations. + * + * Returns: the #GType + */ +#define G_TYPE_FROM_INSTANCE(instance) (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class)) +/** + * G_TYPE_FROM_CLASS: + * @g_class: Location of a valid #GTypeClass structure + * + * Get the type identifier from a given @class structure. + * + * This macro should only be used in type implementations. + * + * Returns: the #GType + */ +#define G_TYPE_FROM_CLASS(g_class) (((GTypeClass*) (g_class))->g_type) +/** + * G_TYPE_FROM_INTERFACE: + * @g_iface: Location of a valid #GTypeInterface structure + * + * Get the type identifier from a given @interface structure. + * + * This macro should only be used in type implementations. + * + * Returns: the #GType + */ +#define G_TYPE_FROM_INTERFACE(g_iface) (((GTypeInterface*) (g_iface))->g_type) + +/** + * G_TYPE_INSTANCE_GET_PRIVATE: + * @instance: the instance of a type deriving from @private_type + * @g_type: the type identifying which private data to retrieve + * @c_type: The C type for the private structure + * + * Gets the private structure for a particular type. + * + * The private structure must have been registered in the + * class_init function with g_type_class_add_private(). + * + * This macro should only be used in type implementations. + * + * Since: 2.4 + * Deprecated: 2.58: Use G_ADD_PRIVATE() and the generated + * `your_type_get_instance_private()` function instead + * Returns: (not nullable): a pointer to the private data structure + */ +#define G_TYPE_INSTANCE_GET_PRIVATE(instance, g_type, c_type) ((c_type*) g_type_instance_get_private ((GTypeInstance*) (instance), (g_type))) GOBJECT_DEPRECATED_MACRO_IN_2_58_FOR(G_ADD_PRIVATE) + +/** + * G_TYPE_CLASS_GET_PRIVATE: + * @klass: the class of a type deriving from @private_type + * @g_type: the type identifying which private data to retrieve + * @c_type: The C type for the private structure + * + * Gets the private class structure for a particular type. + * + * The private structure must have been registered in the + * get_type() function with g_type_add_class_private(). + * + * This macro should only be used in type implementations. + * + * Since: 2.24 + * Returns: (not nullable): a pointer to the private data structure + */ +#define G_TYPE_CLASS_GET_PRIVATE(klass, g_type, c_type) ((c_type*) g_type_class_get_private ((GTypeClass*) (klass), (g_type))) + +/** + * GTypeDebugFlags: + * @G_TYPE_DEBUG_NONE: Print no messages + * @G_TYPE_DEBUG_OBJECTS: Print messages about object bookkeeping + * @G_TYPE_DEBUG_SIGNALS: Print messages about signal emissions + * @G_TYPE_DEBUG_MASK: Mask covering all debug flags + * @G_TYPE_DEBUG_INSTANCE_COUNT: Keep a count of instances of each type + * + * These flags used to be passed to g_type_init_with_debug_flags() which + * is now deprecated. + * + * If you need to enable debugging features, use the `GOBJECT_DEBUG` + * environment variable. + * + * Deprecated: 2.36: g_type_init() is now done automatically + */ +typedef enum /*< skip >*/ +{ + G_TYPE_DEBUG_NONE = 0, + G_TYPE_DEBUG_OBJECTS = 1 << 0, + G_TYPE_DEBUG_SIGNALS = 1 << 1, + G_TYPE_DEBUG_INSTANCE_COUNT = 1 << 2, + G_TYPE_DEBUG_MASK = 0x07 +} GTypeDebugFlags GOBJECT_DEPRECATED_TYPE_IN_2_36; + + +/* --- prototypes --- */ +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +GOBJECT_DEPRECATED_IN_2_36 +void g_type_init (void); +GOBJECT_DEPRECATED_IN_2_36 +void g_type_init_with_debug_flags (GTypeDebugFlags debug_flags); +G_GNUC_END_IGNORE_DEPRECATIONS + +GOBJECT_AVAILABLE_IN_ALL +const gchar * g_type_name (GType type); +GOBJECT_AVAILABLE_IN_ALL +GQuark g_type_qname (GType type); +GOBJECT_AVAILABLE_IN_ALL +GType g_type_from_name (const gchar *name); +GOBJECT_AVAILABLE_IN_ALL +GType g_type_parent (GType type); +GOBJECT_AVAILABLE_IN_ALL +guint g_type_depth (GType type); +GOBJECT_AVAILABLE_IN_ALL +GType g_type_next_base (GType leaf_type, + GType root_type); +GOBJECT_AVAILABLE_IN_ALL +gboolean g_type_is_a (GType type, + GType is_a_type); + +/* Hoist exact GType comparisons into the caller */ +#define g_type_is_a(a,b) ((a) == (b) || (g_type_is_a) ((a), (b))) + +GOBJECT_AVAILABLE_IN_ALL +gpointer g_type_class_ref (GType type); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_type_class_peek (GType type); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_type_class_peek_static (GType type); +GOBJECT_AVAILABLE_IN_ALL +void g_type_class_unref (gpointer g_class); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_type_class_peek_parent (gpointer g_class); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_type_interface_peek (gpointer instance_class, + GType iface_type); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_type_interface_peek_parent (gpointer g_iface); + +GOBJECT_AVAILABLE_IN_ALL +gpointer g_type_default_interface_ref (GType g_type); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_type_default_interface_peek (GType g_type); +GOBJECT_AVAILABLE_IN_ALL +void g_type_default_interface_unref (gpointer g_iface); + +/* g_free() the returned arrays */ +GOBJECT_AVAILABLE_IN_ALL +GType* g_type_children (GType type, + guint *n_children); +GOBJECT_AVAILABLE_IN_ALL +GType* g_type_interfaces (GType type, + guint *n_interfaces); + +/* per-type _static_ data */ +GOBJECT_AVAILABLE_IN_ALL +void g_type_set_qdata (GType type, + GQuark quark, + gpointer data); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_type_get_qdata (GType type, + GQuark quark); +GOBJECT_AVAILABLE_IN_ALL +void g_type_query (GType type, + GTypeQuery *query); + +GOBJECT_AVAILABLE_IN_2_44 +int g_type_get_instance_count (GType type); + +/* --- type registration --- */ +/** + * GBaseInitFunc: + * @g_class: (type GObject.TypeClass): The #GTypeClass structure to initialize + * + * A callback function used by the type system to do base initialization + * of the class structures of derived types. + * + * This function is called as part of the initialization process of all derived + * classes and should reallocate or reset all dynamic class members copied over + * from the parent class. + * + * For example, class members (such as strings) that are not sufficiently + * handled by a plain memory copy of the parent class into the derived class + * have to be altered. See GClassInitFunc() for a discussion of the class + * initialization process. + */ +typedef void (*GBaseInitFunc) (gpointer g_class); +/** + * GBaseFinalizeFunc: + * @g_class: (type GObject.TypeClass): The #GTypeClass structure to finalize + * + * A callback function used by the type system to finalize those portions + * of a derived types class structure that were setup from the corresponding + * GBaseInitFunc() function. + * + * Class finalization basically works the inverse way in which class + * initialization is performed. + * + * See GClassInitFunc() for a discussion of the class initialization process. + */ +typedef void (*GBaseFinalizeFunc) (gpointer g_class); +/** + * GClassInitFunc: + * @g_class: (type GObject.TypeClass): The #GTypeClass structure to initialize. + * @class_data: The @class_data member supplied via the #GTypeInfo structure. + * + * A callback function used by the type system to initialize the class + * of a specific type. + * + * This function should initialize all static class members. + * + * The initialization process of a class involves: + * + * - Copying common members from the parent class over to the + * derived class structure. + * - Zero initialization of the remaining members not copied + * over from the parent class. + * - Invocation of the GBaseInitFunc() initializers of all parent + * types and the class' type. + * - Invocation of the class' GClassInitFunc() initializer. + * + * Since derived classes are partially initialized through a memory copy + * of the parent class, the general rule is that GBaseInitFunc() and + * GBaseFinalizeFunc() should take care of necessary reinitialization + * and release of those class members that were introduced by the type + * that specified these GBaseInitFunc()/GBaseFinalizeFunc(). + * GClassInitFunc() should only care about initializing static + * class members, while dynamic class members (such as allocated strings + * or reference counted resources) are better handled by a GBaseInitFunc() + * for this type, so proper initialization of the dynamic class members + * is performed for class initialization of derived types as well. + * + * An example may help to correspond the intend of the different class + * initializers: + * + * |[ + * typedef struct { + * GObjectClass parent_class; + * gint static_integer; + * gchar *dynamic_string; + * } TypeAClass; + * static void + * type_a_base_class_init (TypeAClass *class) + * { + * class->dynamic_string = g_strdup ("some string"); + * } + * static void + * type_a_base_class_finalize (TypeAClass *class) + * { + * g_free (class->dynamic_string); + * } + * static void + * type_a_class_init (TypeAClass *class) + * { + * class->static_integer = 42; + * } + * + * typedef struct { + * TypeAClass parent_class; + * gfloat static_float; + * GString *dynamic_gstring; + * } TypeBClass; + * static void + * type_b_base_class_init (TypeBClass *class) + * { + * class->dynamic_gstring = g_string_new ("some other string"); + * } + * static void + * type_b_base_class_finalize (TypeBClass *class) + * { + * g_string_free (class->dynamic_gstring); + * } + * static void + * type_b_class_init (TypeBClass *class) + * { + * class->static_float = 3.14159265358979323846; + * } + * ]| + * + * Initialization of TypeBClass will first cause initialization of + * TypeAClass (derived classes reference their parent classes, see + * g_type_class_ref() on this). + * + * Initialization of TypeAClass roughly involves zero-initializing its fields, + * then calling its GBaseInitFunc() type_a_base_class_init() to allocate + * its dynamic members (dynamic_string), and finally calling its GClassInitFunc() + * type_a_class_init() to initialize its static members (static_integer). + * The first step in the initialization process of TypeBClass is then + * a plain memory copy of the contents of TypeAClass into TypeBClass and + * zero-initialization of the remaining fields in TypeBClass. + * The dynamic members of TypeAClass within TypeBClass now need + * reinitialization which is performed by calling type_a_base_class_init() + * with an argument of TypeBClass. + * + * After that, the GBaseInitFunc() of TypeBClass, type_b_base_class_init() + * is called to allocate the dynamic members of TypeBClass (dynamic_gstring), + * and finally the GClassInitFunc() of TypeBClass, type_b_class_init(), + * is called to complete the initialization process with the static members + * (static_float). + * + * Corresponding finalization counter parts to the GBaseInitFunc() functions + * have to be provided to release allocated resources at class finalization + * time. + */ +typedef void (*GClassInitFunc) (gpointer g_class, + gpointer class_data); +/** + * GClassFinalizeFunc: + * @g_class: (type GObject.TypeClass): The #GTypeClass structure to finalize + * @class_data: The @class_data member supplied via the #GTypeInfo structure + * + * A callback function used by the type system to finalize a class. + * + * This function is rarely needed, as dynamically allocated class resources + * should be handled by GBaseInitFunc() and GBaseFinalizeFunc(). + * + * Also, specification of a GClassFinalizeFunc() in the #GTypeInfo + * structure of a static type is invalid, because classes of static types + * will never be finalized (they are artificially kept alive when their + * reference count drops to zero). + */ +typedef void (*GClassFinalizeFunc) (gpointer g_class, + gpointer class_data); +/** + * GInstanceInitFunc: + * @instance: The instance to initialize + * @g_class: (type GObject.TypeClass): The class of the type the instance is + * created for + * + * A callback function used by the type system to initialize a new + * instance of a type. + * + * This function initializes all instance members and allocates any resources + * required by it. + * + * Initialization of a derived instance involves calling all its parent + * types instance initializers, so the class member of the instance + * is altered during its initialization to always point to the class that + * belongs to the type the current initializer was introduced for. + * + * The extended members of @instance are guaranteed to have been filled with + * zeros before this function is called. + */ +typedef void (*GInstanceInitFunc) (GTypeInstance *instance, + gpointer g_class); +/** + * GInterfaceInitFunc: + * @g_iface: (type GObject.TypeInterface): The interface structure to initialize + * @iface_data: The @interface_data supplied via the #GInterfaceInfo structure + * + * A callback function used by the type system to initialize a new + * interface. + * + * This function should initialize all internal data and* allocate any + * resources required by the interface. + * + * The members of @iface_data are guaranteed to have been filled with + * zeros before this function is called. + */ +typedef void (*GInterfaceInitFunc) (gpointer g_iface, + gpointer iface_data); +/** + * GInterfaceFinalizeFunc: + * @g_iface: (type GObject.TypeInterface): The interface structure to finalize + * @iface_data: The @interface_data supplied via the #GInterfaceInfo structure + * + * A callback function used by the type system to finalize an interface. + * + * This function should destroy any internal data and release any resources + * allocated by the corresponding GInterfaceInitFunc() function. + */ +typedef void (*GInterfaceFinalizeFunc) (gpointer g_iface, + gpointer iface_data); +/** + * GTypeClassCacheFunc: + * @cache_data: data that was given to the g_type_add_class_cache_func() call + * @g_class: (type GObject.TypeClass): The #GTypeClass structure which is + * unreferenced + * + * A callback function which is called when the reference count of a class + * drops to zero. + * + * It may use g_type_class_ref() to prevent the class from being freed. You + * should not call g_type_class_unref() from a #GTypeClassCacheFunc function + * to prevent infinite recursion, use g_type_class_unref_uncached() instead. + * + * The functions have to check the class id passed in to figure + * whether they actually want to cache the class of this type, since all + * classes are routed through the same #GTypeClassCacheFunc chain. + * + * Returns: %TRUE to stop further #GTypeClassCacheFuncs from being + * called, %FALSE to continue + */ +typedef gboolean (*GTypeClassCacheFunc) (gpointer cache_data, + GTypeClass *g_class); +/** + * GTypeInterfaceCheckFunc: + * @check_data: data passed to g_type_add_interface_check() + * @g_iface: (type GObject.TypeInterface): the interface that has been + * initialized + * + * A callback called after an interface vtable is initialized. + * + * See g_type_add_interface_check(). + * + * Since: 2.4 + */ +typedef void (*GTypeInterfaceCheckFunc) (gpointer check_data, + gpointer g_iface); +/** + * GTypeFundamentalFlags: + * @G_TYPE_FLAG_CLASSED: Indicates a classed type + * @G_TYPE_FLAG_INSTANTIATABLE: Indicates an instantiatable type (implies classed) + * @G_TYPE_FLAG_DERIVABLE: Indicates a flat derivable type + * @G_TYPE_FLAG_DEEP_DERIVABLE: Indicates a deep derivable type (implies derivable) + * + * Bit masks used to check or determine specific characteristics of a + * fundamental type. + */ +typedef enum /*< skip >*/ +{ + /* There is no G_TYPE_FUNDAMENTAL_FLAGS_NONE: this is implemented to use + * the same bits as GTypeFlags */ + G_TYPE_FLAG_CLASSED = (1 << 0), + G_TYPE_FLAG_INSTANTIATABLE = (1 << 1), + G_TYPE_FLAG_DERIVABLE = (1 << 2), + G_TYPE_FLAG_DEEP_DERIVABLE = (1 << 3) +} GTypeFundamentalFlags; +/** + * GTypeFlags: + * @G_TYPE_FLAG_NONE: No special flags. Since: 2.74 + * @G_TYPE_FLAG_ABSTRACT: Indicates an abstract type. No instances can be + * created for an abstract type + * @G_TYPE_FLAG_VALUE_ABSTRACT: Indicates an abstract value type, i.e. a type + * that introduces a value table, but can't be used for + * g_value_init() + * @G_TYPE_FLAG_FINAL: Indicates a final type. A final type is a non-derivable + * leaf node in a deep derivable type hierarchy tree. Since: 2.70 + * @G_TYPE_FLAG_DEPRECATED: The type is deprecated and may be removed in a + * future version. A warning will be emitted if it is instantiated while + * running with `G_ENABLE_DIAGNOSTIC=1`. Since 2.76 + * + * Bit masks used to check or determine characteristics of a type. + */ +typedef enum /*< skip >*/ +{ + G_TYPE_FLAG_NONE GOBJECT_AVAILABLE_ENUMERATOR_IN_2_74 = 0, + G_TYPE_FLAG_ABSTRACT = (1 << 4), + G_TYPE_FLAG_VALUE_ABSTRACT = (1 << 5), + G_TYPE_FLAG_FINAL GOBJECT_AVAILABLE_ENUMERATOR_IN_2_70 = (1 << 6), + G_TYPE_FLAG_DEPRECATED GOBJECT_AVAILABLE_ENUMERATOR_IN_2_76 = (1 << 7) +} GTypeFlags; +/** + * GTypeInfo: + * @class_size: Size of the class structure (required for interface, classed and instantiatable types) + * @base_init: Location of the base initialization function (optional) + * @base_finalize: Location of the base finalization function (optional) + * @class_init: Location of the class initialization function for + * classed and instantiatable types. Location of the default vtable + * inititalization function for interface types. (optional) This function + * is used both to fill in virtual functions in the class or default vtable, + * and to do type-specific setup such as registering signals and object + * properties. + * @class_finalize: Location of the class finalization function for + * classed and instantiatable types. Location of the default vtable + * finalization function for interface types. (optional) + * @class_data: User-supplied data passed to the class init/finalize functions + * @instance_size: Size of the instance (object) structure (required for instantiatable types only) + * @n_preallocs: Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10 this field is ignored. + * @instance_init: Location of the instance initialization function (optional, for instantiatable types only) + * @value_table: A #GTypeValueTable function table for generic handling of GValues + * of this type (usually only useful for fundamental types) + * + * This structure is used to provide the type system with the information + * required to initialize and destruct (finalize) a type's class and + * its instances. + * + * The initialized structure is passed to the g_type_register_static() function + * (or is copied into the provided #GTypeInfo structure in the + * g_type_plugin_complete_type_info()). The type system will perform a deep + * copy of this structure, so its memory does not need to be persistent + * across invocation of g_type_register_static(). + */ +struct _GTypeInfo +{ + /* interface types, classed types, instantiated types */ + guint16 class_size; + + GBaseInitFunc base_init; + GBaseFinalizeFunc base_finalize; + + /* interface types, classed types, instantiated types */ + GClassInitFunc class_init; + GClassFinalizeFunc class_finalize; + gconstpointer class_data; + + /* instantiated types */ + guint16 instance_size; + guint16 n_preallocs; + GInstanceInitFunc instance_init; + + /* value handling */ + const GTypeValueTable *value_table; +}; +/** + * GTypeFundamentalInfo: + * @type_flags: #GTypeFundamentalFlags describing the characteristics of the fundamental type + * + * A structure that provides information to the type system which is + * used specifically for managing fundamental types. + */ +struct _GTypeFundamentalInfo +{ + GTypeFundamentalFlags type_flags; +}; +/** + * GInterfaceInfo: + * @interface_init: location of the interface initialization function + * @interface_finalize: location of the interface finalization function + * @interface_data: user-supplied data passed to the interface init/finalize functions + * + * A structure that provides information to the type system which is + * used specifically for managing interface types. + */ +struct _GInterfaceInfo +{ + GInterfaceInitFunc interface_init; + GInterfaceFinalizeFunc interface_finalize; + gpointer interface_data; +}; + +/** + * GTypeValueInitFunc: + * @value: the value to initialize + * + * Initializes the value contents by setting the fields of the `value->data` + * array. + * + * The data array of the #GValue passed into this function was zero-filled + * with `memset()`, so no care has to be taken to free any old contents. + * For example, in the case of a string value that may never be %NULL, the + * implementation might look like: + * + * |[ + * value->data[0].v_pointer = g_strdup (""); + * ]| + * + * Since: 2.78 + */ +GOBJECT_AVAILABLE_TYPE_IN_2_78 +typedef void (* GTypeValueInitFunc) (GValue *value); + +/** + * GTypeValueFreeFunc: + * @value: the value to free + * + * Frees any old contents that might be left in the `value->data` array of + * the given value. + * + * No resources may remain allocated through the #GValue contents after this + * function returns. E.g. for our above string type: + * + * |[ + * // only free strings without a specific flag for static storage + * if (!(value->data[1].v_uint & G_VALUE_NOCOPY_CONTENTS)) + * g_free (value->data[0].v_pointer); + * ]| + * + * Since: 2.78 + */ +GOBJECT_AVAILABLE_TYPE_IN_2_78 +typedef void (* GTypeValueFreeFunc) (GValue *value); + +/** + * GTypeValueCopyFunc: + * @src_value: the value to copy + * @dest_value: (out): the location of the copy + * + * Copies the content of a #GValue into another. + * + * The @dest_value is a #GValue with zero-filled data section and @src_value + * is a properly initialized #GValue of same type, or derived type. + * + * The purpose of this function is to copy the contents of @src_value + * into @dest_value in a way, that even after @src_value has been freed, the + * contents of @dest_value remain valid. String type example: + * + * |[ + * dest_value->data[0].v_pointer = g_strdup (src_value->data[0].v_pointer); + * ]| + * + * Since: 2.78 + */ +GOBJECT_AVAILABLE_TYPE_IN_2_78 +typedef void (* GTypeValueCopyFunc) (const GValue *src_value, + GValue *dest_value); + +/** + * GTypeValuePeekPointerFunc: + * @value: the value to peek + * + * If the value contents fit into a pointer, such as objects or strings, + * return this pointer, so the caller can peek at the current contents. + * + * To extend on our above string example: + * + * |[ + * return value->data[0].v_pointer; + * ]| + * + * Returns: (transfer none): a pointer to the value contents + * + * Since: 2.78 + */ +GOBJECT_AVAILABLE_TYPE_IN_2_78 +typedef gpointer (* GTypeValuePeekPointerFunc) (const GValue *value); + +/** + * GTypeValueCollectFunc: + * @value: the value to initialize + * @n_collect_values: the number of collected values + * @collect_values: (array length=n_collect_values): the collected values + * @collect_flags: optional flags + * + * This function is responsible for converting the values collected from + * a variadic argument list into contents suitable for storage in a #GValue. + * + * This function should setup @value similar to #GTypeValueInitFunc; e.g. + * for a string value that does not allow `NULL` pointers, it needs to either + * emit an error, or do an implicit conversion by storing an empty string. + * + * The @value passed in to this function has a zero-filled data array, so + * just like for #GTypeValueInitFunc it is guaranteed to not contain any old + * contents that might need freeing. + * + * The @n_collect_values argument is the string length of the `collect_format` + * field of #GTypeValueTable, and `collect_values` is an array of #GTypeCValue + * with length of @n_collect_values, containing the collected values according + * to `collect_format`. + * + * The @collect_flags argument provided as a hint by the caller. It may + * contain the flag %G_VALUE_NOCOPY_CONTENTS indicating that the collected + * value contents may be considered ‘static’ for the duration of the @value + * lifetime. Thus an extra copy of the contents stored in @collect_values is + * not required for assignment to @value. + * + * For our above string example, we continue with: + * + * |[ + * if (!collect_values[0].v_pointer) + * value->data[0].v_pointer = g_strdup (""); + * else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) + * { + * value->data[0].v_pointer = collect_values[0].v_pointer; + * // keep a flag for the value_free() implementation to not free this string + * value->data[1].v_uint = G_VALUE_NOCOPY_CONTENTS; + * } + * else + * value->data[0].v_pointer = g_strdup (collect_values[0].v_pointer); + * return NULL; + * ]| + * + * It should be noted, that it is generally a bad idea to follow the + * %G_VALUE_NOCOPY_CONTENTS hint for reference counted types. Due to + * reentrancy requirements and reference count assertions performed + * by the signal emission code, reference counts should always be + * incremented for reference counted contents stored in the `value->data` + * array. To deviate from our string example for a moment, and taking + * a look at an exemplary implementation for `GTypeValueTable.collect_value()` + * of `GObject`: + * + * |[ + * GObject *object = G_OBJECT (collect_values[0].v_pointer); + * g_return_val_if_fail (object != NULL, + * g_strdup_printf ("Object %p passed as invalid NULL pointer", object)); + * // never honour G_VALUE_NOCOPY_CONTENTS for ref-counted types + * value->data[0].v_pointer = g_object_ref (object); + * return NULL; + * ]| + * + * The reference count for valid objects is always incremented, regardless + * of `collect_flags`. For invalid objects, the example returns a newly + * allocated string without altering `value`. + * + * Upon success, `collect_value()` needs to return `NULL`. If, however, + * an error condition occurred, `collect_value()` should return a newly + * allocated string containing an error diagnostic. + * + * The calling code makes no assumptions about the `value` contents being + * valid upon error returns, `value` is simply thrown away without further + * freeing. As such, it is a good idea to not allocate `GValue` contents + * prior to returning an error; however, `collect_values()` is not obliged + * to return a correctly setup @value for error returns, simply because + * any non-`NULL` return is considered a fatal programming error, and + * further program behaviour is undefined. + * + * Returns: (transfer full) (nullable): `NULL` on success, otherwise a + * newly allocated error string on failure + * + * Since: 2.78 + */ +GOBJECT_AVAILABLE_TYPE_IN_2_78 +typedef gchar * (* GTypeValueCollectFunc) (GValue *value, + guint n_collect_values, + GTypeCValue *collect_values, + guint collect_flags); + +/** + * GTypeValueLCopyFunc: + * @value: the value to lcopy + * @n_collect_values: the number of collected values + * @collect_values: (array length=n_collect_values): the collected + * locations for storage + * @collect_flags: optional flags + * + * This function is responsible for storing the `value` + * contents into arguments passed through a variadic argument list which + * got collected into `collect_values` according to `lcopy_format`. + * + * The `n_collect_values` argument equals the string length of + * `lcopy_format`, and `collect_flags` may contain %G_VALUE_NOCOPY_CONTENTS. + * + * In contrast to #GTypeValueCollectFunc, this function is obliged to always + * properly support %G_VALUE_NOCOPY_CONTENTS. + * + * Similar to #GTypeValueCollectFunc the function may prematurely abort by + * returning a newly allocated string describing an error condition. To + * complete the string example: + * + * |[ + * gchar **string_p = collect_values[0].v_pointer; + * g_return_val_if_fail (string_p != NULL, + * g_strdup ("string location passed as NULL")); + * + * if (collect_flags & G_VALUE_NOCOPY_CONTENTS) + * *string_p = value->data[0].v_pointer; + * else + * *string_p = g_strdup (value->data[0].v_pointer); + * ]| + * + * And an illustrative version of this function for reference-counted + * types: + * + * |[ + * GObject **object_p = collect_values[0].v_pointer; + * g_return_val_if_fail (object_p != NULL, + * g_strdup ("object location passed as NULL")); + * + * if (value->data[0].v_pointer == NULL) + * *object_p = NULL; + * else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) // always honour + * *object_p = value->data[0].v_pointer; + * else + * *object_p = g_object_ref (value->data[0].v_pointer); + * + * return NULL; + * ]| + * + * Returns: (transfer full) (nullable): `NULL` on success, otherwise + * a newly allocated error string on failure + * + * Since: 2.78 + */ +GOBJECT_AVAILABLE_TYPE_IN_2_78 +typedef gchar * (* GTypeValueLCopyFunc) (const GValue *value, + guint n_collect_values, + GTypeCValue *collect_values, + guint collect_flags); + +/** + * GTypeValueTable: + * @value_init: Function to initialize a GValue + * @value_free: Function to free a GValue + * @value_copy: Function to copy a GValue + * @value_peek_pointer: Function to peek the contents of a GValue if they fit + * into a pointer + * @collect_format: A string format describing how to collect the contents of + * this value bit-by-bit. Each character in the format represents + * an argument to be collected, and the characters themselves indicate + * the type of the argument. Currently supported arguments are: + * - `'i'`: Integers, passed as `collect_values[].v_int` + * - `'l'`: Longs, passed as `collect_values[].v_long` + * - `'d'`: Doubles, passed as `collect_values[].v_double` + * - `'p'`: Pointers, passed as `collect_values[].v_pointer` + * It should be noted that for variable argument list construction, + * ANSI C promotes every type smaller than an integer to an int, and + * floats to doubles. So for collection of short int or char, `'i'` + * needs to be used, and for collection of floats `'d'`. + * @collect_value: Function to initialize a GValue from the values + * collected from variadic arguments + * @lcopy_format: Format description of the arguments to collect for @lcopy_value, + * analogous to @collect_format. Usually, @lcopy_format string consists + * only of `'p'`s to provide lcopy_value() with pointers to storage locations. + * @lcopy_value: Function to store the contents of a value into the + * locations collected from variadic arguments + * + * The #GTypeValueTable provides the functions required by the #GValue + * implementation, to serve as a container for values of a type. + */ +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +struct _GTypeValueTable +{ + GTypeValueInitFunc value_init; + GTypeValueFreeFunc value_free; + GTypeValueCopyFunc value_copy; + GTypeValuePeekPointerFunc value_peek_pointer; + + const gchar *collect_format; + GTypeValueCollectFunc collect_value; + + const gchar *lcopy_format; + GTypeValueLCopyFunc lcopy_value; +}; +G_GNUC_END_IGNORE_DEPRECATIONS + +GOBJECT_AVAILABLE_IN_ALL +GType g_type_register_static (GType parent_type, + const gchar *type_name, + const GTypeInfo *info, + GTypeFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GType g_type_register_static_simple (GType parent_type, + const gchar *type_name, + guint class_size, + GClassInitFunc class_init, + guint instance_size, + GInstanceInitFunc instance_init, + GTypeFlags flags); + +GOBJECT_AVAILABLE_IN_ALL +GType g_type_register_dynamic (GType parent_type, + const gchar *type_name, + GTypePlugin *plugin, + GTypeFlags flags); +GOBJECT_AVAILABLE_IN_ALL +GType g_type_register_fundamental (GType type_id, + const gchar *type_name, + const GTypeInfo *info, + const GTypeFundamentalInfo *finfo, + GTypeFlags flags); +GOBJECT_AVAILABLE_IN_ALL +void g_type_add_interface_static (GType instance_type, + GType interface_type, + const GInterfaceInfo *info); +GOBJECT_AVAILABLE_IN_ALL +void g_type_add_interface_dynamic (GType instance_type, + GType interface_type, + GTypePlugin *plugin); +GOBJECT_AVAILABLE_IN_ALL +void g_type_interface_add_prerequisite (GType interface_type, + GType prerequisite_type); +GOBJECT_AVAILABLE_IN_ALL +GType*g_type_interface_prerequisites (GType interface_type, + guint *n_prerequisites); +GOBJECT_AVAILABLE_IN_2_68 +GType g_type_interface_instantiatable_prerequisite + (GType interface_type); +GOBJECT_DEPRECATED_IN_2_58 +void g_type_class_add_private (gpointer g_class, + gsize private_size); +GOBJECT_AVAILABLE_IN_2_38 +gint g_type_add_instance_private (GType class_type, + gsize private_size); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_type_instance_get_private (GTypeInstance *instance, + GType private_type); +GOBJECT_AVAILABLE_IN_2_38 +void g_type_class_adjust_private_offset (gpointer g_class, + gint *private_size_or_offset); + +GOBJECT_AVAILABLE_IN_ALL +void g_type_add_class_private (GType class_type, + gsize private_size); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_type_class_get_private (GTypeClass *klass, + GType private_type); +GOBJECT_AVAILABLE_IN_2_38 +gint g_type_class_get_instance_private_offset (gpointer g_class); + +GOBJECT_AVAILABLE_IN_2_34 +void g_type_ensure (GType type); +GOBJECT_AVAILABLE_IN_2_36 +guint g_type_get_type_registration_serial (void); + + +/* --- GType boilerplate --- */ +/** + * G_DECLARE_FINAL_TYPE: + * @ModuleObjName: The name of the new type, in camel case (like `GtkWidget`) + * @module_obj_name: The name of the new type in lowercase, with words + * separated by `_` (like `gtk_widget`) + * @MODULE: The name of the module, in all caps (like `GTK`) + * @OBJ_NAME: The bare name of the type, in all caps (like `WIDGET`) + * @ParentName: the name of the parent type, in camel case (like `GtkWidget`) + * + * A convenience macro for emitting the usual declarations in the header file + * for a type which is not (at the present time) intended to be subclassed. + * + * You might use it in a header as follows: + * + * |[ + * #ifndef _myapp_window_h_ + * #define _myapp_window_h_ + * + * #include + * + * #define MY_APP_TYPE_WINDOW my_app_window_get_type () + * G_DECLARE_FINAL_TYPE (MyAppWindow, my_app_window, MY_APP, WINDOW, GtkWindow) + * + * MyAppWindow * my_app_window_new (void); + * + * ... + * + * #endif + * ]| + * + * And use it as follow in your C file: + * + * |[ + * struct _MyAppWindow + * { + * GtkWindow parent; + * ... + * }; + * G_DEFINE_TYPE (MyAppWindow, my_app_window, GTK_TYPE_WINDOW) + * ]| + * + * This results in the following things happening: + * + * - the usual `my_app_window_get_type()` function is declared with a return type of #GType + * + * - the `MyAppWindow` type is defined as a `typedef` of `struct _MyAppWindow`. The struct itself is not + * defined and should be defined from the .c file before G_DEFINE_TYPE() is used. + * + * - the `MY_APP_WINDOW()` cast is emitted as `static inline` function along with the `MY_APP_IS_WINDOW()` type + * checking function + * + * - the `MyAppWindowClass` type is defined as a struct containing `GtkWindowClass`. This is done for the + * convenience of the person defining the type and should not be considered to be part of the ABI. In + * particular, without a firm declaration of the instance structure, it is not possible to subclass the type + * and therefore the fact that the size of the class structure is exposed is not a concern and it can be + * freely changed at any point in the future. + * + * - g_autoptr() support being added for your type, based on the type of your parent class + * + * You can only use this function if your parent type also supports g_autoptr(). + * + * Because the type macro (`MY_APP_TYPE_WINDOW` in the above example) is not a callable, you must continue to + * manually define this as a macro for yourself. + * + * The declaration of the `_get_type()` function is the first thing emitted by the macro. This allows this macro + * to be used in the usual way with export control and API versioning macros. + * + * If you want to declare your own class structure, use G_DECLARE_DERIVABLE_TYPE(). + * + * If you are writing a library, it is important to note that it is possible to convert a type from using + * G_DECLARE_FINAL_TYPE() to G_DECLARE_DERIVABLE_TYPE() without breaking API or ABI. As a precaution, you + * should therefore use G_DECLARE_FINAL_TYPE() until you are sure that it makes sense for your class to be + * subclassed. Once a class structure has been exposed it is not possible to change its size or remove or + * reorder items without breaking the API and/or ABI. + * + * Since: 2.44 + **/ +#define G_DECLARE_FINAL_TYPE(ModuleObjName, module_obj_name, MODULE, OBJ_NAME, ParentName) \ + GType module_obj_name##_get_type (void); \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + typedef struct _##ModuleObjName ModuleObjName; \ + typedef struct { ParentName##Class parent_class; } ModuleObjName##Class; \ + \ + _GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName) \ + G_DEFINE_AUTOPTR_CLEANUP_FUNC (ModuleObjName##Class, g_type_class_unref) \ + \ + G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) { \ + return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); } \ + G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) { \ + return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); } \ + G_GNUC_END_IGNORE_DEPRECATIONS + +/** + * G_DECLARE_DERIVABLE_TYPE: + * @ModuleObjName: The name of the new type, in camel case (like `GtkWidget`) + * @module_obj_name: The name of the new type in lowercase, with words + * separated by `_` (like `gtk_widget`) + * @MODULE: The name of the module, in all caps (like `GTK`) + * @OBJ_NAME: The bare name of the type, in all caps (like `WIDGET`) + * @ParentName: the name of the parent type, in camel case (like `GtkWidget`) + * + * A convenience macro for emitting the usual declarations in the + * header file for a type which is intended to be subclassed. + * + * You might use it in a header as follows: + * + * |[ + * #ifndef _gtk_frobber_h_ + * #define _gtk_frobber_h_ + * + * #define GTK_TYPE_FROBBER gtk_frobber_get_type () + * GDK_AVAILABLE_IN_3_12 + * G_DECLARE_DERIVABLE_TYPE (GtkFrobber, gtk_frobber, GTK, FROBBER, GtkWidget) + * + * struct _GtkFrobberClass + * { + * GtkWidgetClass parent_class; + * + * void (* handle_frob) (GtkFrobber *frobber, + * guint n_frobs); + * + * gpointer padding[12]; + * }; + * + * GtkWidget * gtk_frobber_new (void); + * + * ... + * + * #endif + * ]| + * + * Since the instance structure is public it is often needed to declare a + * private struct as follow in your C file: + * + * |[ + * typedef struct _GtkFrobberPrivate GtkFrobberPrivate; + * struct _GtkFrobberPrivate + * { + * ... + * }; + * G_DEFINE_TYPE_WITH_PRIVATE (GtkFrobber, gtk_frobber, GTK_TYPE_WIDGET) + * ]| + * + * This results in the following things happening: + * + * - the usual `gtk_frobber_get_type()` function is declared with a return type of #GType + * + * - the `GtkFrobber` struct is created with `GtkWidget` as the first and only item. You are expected to use + * a private structure from your .c file to store your instance variables. + * + * - the `GtkFrobberClass` type is defined as a typedef to `struct _GtkFrobberClass`, which is left undefined. + * You should do this from the header file directly after you use the macro. + * + * - the `GTK_FROBBER()` and `GTK_FROBBER_CLASS()` casts are emitted as `static inline` functions along with + * the `GTK_IS_FROBBER()` and `GTK_IS_FROBBER_CLASS()` type checking functions and `GTK_FROBBER_GET_CLASS()` + * function. + * + * - g_autoptr() support being added for your type, based on the type of your parent class + * + * You can only use this function if your parent type also supports g_autoptr(). + * + * Because the type macro (`GTK_TYPE_FROBBER` in the above example) is not a callable, you must continue to + * manually define this as a macro for yourself. + * + * The declaration of the `_get_type()` function is the first thing emitted by the macro. This allows this macro + * to be used in the usual way with export control and API versioning macros. + * + * If you are writing a library, it is important to note that it is possible to convert a type from using + * G_DECLARE_FINAL_TYPE() to G_DECLARE_DERIVABLE_TYPE() without breaking API or ABI. As a precaution, you + * should therefore use G_DECLARE_FINAL_TYPE() until you are sure that it makes sense for your class to be + * subclassed. Once a class structure has been exposed it is not possible to change its size or remove or + * reorder items without breaking the API and/or ABI. If you want to declare your own class structure, use + * G_DECLARE_DERIVABLE_TYPE(). If you want to declare a class without exposing the class or instance + * structures, use G_DECLARE_FINAL_TYPE(). + * + * If you must use G_DECLARE_DERIVABLE_TYPE() you should be sure to include some padding at the bottom of your + * class structure to leave space for the addition of future virtual functions. + * + * Since: 2.44 + **/ +#define G_DECLARE_DERIVABLE_TYPE(ModuleObjName, module_obj_name, MODULE, OBJ_NAME, ParentName) \ + GType module_obj_name##_get_type (void); \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + typedef struct _##ModuleObjName ModuleObjName; \ + typedef struct _##ModuleObjName##Class ModuleObjName##Class; \ + struct _##ModuleObjName { ParentName parent_instance; }; \ + \ + _GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName) \ + G_DEFINE_AUTOPTR_CLEANUP_FUNC (ModuleObjName##Class, g_type_class_unref) \ + \ + G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) { \ + return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); } \ + G_GNUC_UNUSED static inline ModuleObjName##Class * MODULE##_##OBJ_NAME##_CLASS (gpointer ptr) { \ + return G_TYPE_CHECK_CLASS_CAST (ptr, module_obj_name##_get_type (), ModuleObjName##Class); } \ + G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) { \ + return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); } \ + G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME##_CLASS (gpointer ptr) { \ + return G_TYPE_CHECK_CLASS_TYPE (ptr, module_obj_name##_get_type ()); } \ + G_GNUC_UNUSED static inline ModuleObjName##Class * MODULE##_##OBJ_NAME##_GET_CLASS (gpointer ptr) { \ + return G_TYPE_INSTANCE_GET_CLASS (ptr, module_obj_name##_get_type (), ModuleObjName##Class); } \ + G_GNUC_END_IGNORE_DEPRECATIONS + +/** + * G_DECLARE_INTERFACE: + * @ModuleObjName: The name of the new type, in camel case (like `GtkWidget`) + * @module_obj_name: The name of the new type in lowercase, with words + * separated by `_` (like `gtk_widget`) + * @MODULE: The name of the module, in all caps (like `GTK`) + * @OBJ_NAME: The bare name of the type, in all caps (like `WIDGET`) + * @PrerequisiteName: the name of the prerequisite type, in camel case (like `GtkWidget`) + * + * A convenience macro for emitting the usual declarations in the header file for a #GInterface type. + * + * You might use it in a header as follows: + * + * |[ + * #ifndef _my_model_h_ + * #define _my_model_h_ + * + * #define MY_TYPE_MODEL my_model_get_type () + * GDK_AVAILABLE_IN_3_12 + * G_DECLARE_INTERFACE (MyModel, my_model, MY, MODEL, GObject) + * + * struct _MyModelInterface + * { + * GTypeInterface g_iface; + * + * gpointer (* get_item) (MyModel *model); + * }; + * + * gpointer my_model_get_item (MyModel *model); + * + * ... + * + * #endif + * ]| + * + * And use it as follow in your C file: + * + * |[ + * G_DEFINE_INTERFACE (MyModel, my_model, G_TYPE_OBJECT); + * + * static void + * my_model_default_init (MyModelInterface *iface) + * { + * ... + * } + * ]| + * + * This results in the following things happening: + * + * - the usual `my_model_get_type()` function is declared with a return type of #GType + * + * - the `MyModelInterface` type is defined as a typedef to `struct _MyModelInterface`, + * which is left undefined. You should do this from the header file directly after + * you use the macro. + * + * - the `MY_MODEL()` cast is emitted as `static inline` functions along with + * the `MY_IS_MODEL()` type checking function and `MY_MODEL_GET_IFACE()` function. + * + * - g_autoptr() support being added for your type, based on your prerequisite type. + * + * You can only use this function if your prerequisite type also supports g_autoptr(). + * + * Because the type macro (`MY_TYPE_MODEL` in the above example) is not a callable, you must continue to + * manually define this as a macro for yourself. + * + * The declaration of the `_get_type()` function is the first thing emitted by the macro. This allows this macro + * to be used in the usual way with export control and API versioning macros. + * + * Since: 2.44 + **/ +#define G_DECLARE_INTERFACE(ModuleObjName, module_obj_name, MODULE, OBJ_NAME, PrerequisiteName) \ + GType module_obj_name##_get_type (void); \ + G_GNUC_BEGIN_IGNORE_DEPRECATIONS \ + typedef struct _##ModuleObjName ModuleObjName; \ + typedef struct _##ModuleObjName##Interface ModuleObjName##Interface; \ + \ + _GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, PrerequisiteName) \ + \ + G_GNUC_UNUSED static inline ModuleObjName * MODULE##_##OBJ_NAME (gpointer ptr) { \ + return G_TYPE_CHECK_INSTANCE_CAST (ptr, module_obj_name##_get_type (), ModuleObjName); } \ + G_GNUC_UNUSED static inline gboolean MODULE##_IS_##OBJ_NAME (gpointer ptr) { \ + return G_TYPE_CHECK_INSTANCE_TYPE (ptr, module_obj_name##_get_type ()); } \ + G_GNUC_UNUSED static inline ModuleObjName##Interface * MODULE##_##OBJ_NAME##_GET_IFACE (gpointer ptr) { \ + return G_TYPE_INSTANCE_GET_INTERFACE (ptr, module_obj_name##_get_type (), ModuleObjName##Interface); } \ + G_GNUC_END_IGNORE_DEPRECATIONS + +/** + * G_DEFINE_TYPE: + * @TN: The name of the new type, in Camel case. + * @t_n: The name of the new type, in lowercase, with words + * separated by `_`. + * @T_P: The #GType of the parent type. + * + * A convenience macro for type implementations, which declares a class + * initialization function, an instance initialization function (see #GTypeInfo + * for information about these) and a static variable named `t_n_parent_class` + * pointing to the parent class. Furthermore, it defines a `*_get_type()` function. + * See G_DEFINE_TYPE_EXTENDED() for an example. + * + * Since: 2.4 + */ +#define G_DEFINE_TYPE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {}) +/** + * G_DEFINE_TYPE_WITH_CODE: + * @TN: The name of the new type, in Camel case. + * @t_n: The name of the new type in lowercase, with words separated by `_`. + * @T_P: The #GType of the parent type. + * @_C_: Custom code that gets inserted in the `*_get_type()` function. + * + * A convenience macro for type implementations. + * + * Similar to G_DEFINE_TYPE(), but allows you to insert custom code into the + * `*_get_type()` function, e.g. interface implementations via G_IMPLEMENT_INTERFACE(). + * See G_DEFINE_TYPE_EXTENDED() for an example. + * + * Since: 2.4 + */ +#define G_DEFINE_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, 0) {_C_;} _G_DEFINE_TYPE_EXTENDED_END() +/** + * G_DEFINE_TYPE_WITH_PRIVATE: + * @TN: The name of the new type, in Camel case. + * @t_n: The name of the new type, in lowercase, with words + * separated by `_`. + * @T_P: The #GType of the parent type. + * + * A convenience macro for type implementations, which declares a class + * initialization function, an instance initialization function (see #GTypeInfo + * for information about these), a static variable named `t_n_parent_class` + * pointing to the parent class, and adds private instance data to the type. + * + * Furthermore, it defines a `*_get_type()` function. See G_DEFINE_TYPE_EXTENDED() + * for an example. + * + * Note that private structs added with this macros must have a struct + * name of the form `TN ## Private`. + * + * The private instance data can be retrieved using the automatically generated + * getter function `t_n_get_instance_private()`. + * + * See also: G_ADD_PRIVATE() + * + * Since: 2.38 + */ +#define G_DEFINE_TYPE_WITH_PRIVATE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, G_ADD_PRIVATE (TN)) +/** + * G_DEFINE_ABSTRACT_TYPE: + * @TN: The name of the new type, in Camel case. + * @t_n: The name of the new type, in lowercase, with words + * separated by `_`. + * @T_P: The #GType of the parent type. + * + * A convenience macro for type implementations. + * + * Similar to G_DEFINE_TYPE(), but defines an abstract type. + * See G_DEFINE_TYPE_EXTENDED() for an example. + * + * Since: 2.4 + */ +#define G_DEFINE_ABSTRACT_TYPE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, {}) +/** + * G_DEFINE_ABSTRACT_TYPE_WITH_CODE: + * @TN: The name of the new type, in Camel case. + * @t_n: The name of the new type, in lowercase, with words + * separated by `_`. + * @T_P: The #GType of the parent type. + * @_C_: Custom code that gets inserted in the `type_name_get_type()` function. + * + * A convenience macro for type implementations. + * + * Similar to G_DEFINE_TYPE_WITH_CODE(), but defines an abstract type and + * allows you to insert custom code into the `*_get_type()` function, e.g. + * interface implementations via G_IMPLEMENT_INTERFACE(). + * + * See G_DEFINE_TYPE_EXTENDED() for an example. + * + * Since: 2.4 + */ +#define G_DEFINE_ABSTRACT_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT) {_C_;} _G_DEFINE_TYPE_EXTENDED_END() +/** + * G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE: + * @TN: The name of the new type, in Camel case. + * @t_n: The name of the new type, in lowercase, with words + * separated by `_`. + * @T_P: The #GType of the parent type. + * + * Similar to G_DEFINE_TYPE_WITH_PRIVATE(), but defines an abstract type. + * + * See G_DEFINE_TYPE_EXTENDED() for an example. + * + * Since: 2.38 + */ +#define G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, G_ADD_PRIVATE (TN)) +/** + * G_DEFINE_FINAL_TYPE: + * @TN: the name of the new type, in Camel case + * @t_n: the name of the new type, in lower case, with words + * separated by `_` (snake case) + * @T_P: the #GType of the parent type + * + * A convenience macro for type implementations. + * + * Similar to G_DEFINE_TYPE(), but defines a final type. + * + * See G_DEFINE_TYPE_EXTENDED() for an example. + * + * Since: 2.70 + */ +#define G_DEFINE_FINAL_TYPE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_FINAL, {}) GOBJECT_AVAILABLE_MACRO_IN_2_70 +/** + * G_DEFINE_FINAL_TYPE_WITH_CODE: + * @TN: the name of the new type, in Camel case + * @t_n: the name of the new type, in lower case, with words + * separated by `_` (snake case) + * @T_P: the #GType of the parent type + * @_C_: Custom code that gets inserted in the `type_name_get_type()` function. + * + * A convenience macro for type implementations. + * + * Similar to G_DEFINE_TYPE_WITH_CODE(), but defines a final type and + * allows you to insert custom code into the `*_get_type()` function, e.g. + * interface implementations via G_IMPLEMENT_INTERFACE(). + * + * See G_DEFINE_TYPE_EXTENDED() for an example. + * + * Since: 2.70 + */ +#define G_DEFINE_FINAL_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, G_TYPE_FLAG_FINAL) {_C_;} _G_DEFINE_TYPE_EXTENDED_END() GOBJECT_AVAILABLE_MACRO_IN_2_70 +/** + * G_DEFINE_FINAL_TYPE_WITH_PRIVATE: + * @TN: the name of the new type, in Camel case + * @t_n: the name of the new type, in lower case, with words + * separated by `_` (snake case) + * @T_P: the #GType of the parent type + * + * A convenience macro for type implementations. + * + * Similar to G_DEFINE_TYPE_WITH_PRIVATE(), but defines a final type. + * + * See G_DEFINE_TYPE_EXTENDED() for an example. + * + * Since: 2.70 + */ +#define G_DEFINE_FINAL_TYPE_WITH_PRIVATE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_FINAL, G_ADD_PRIVATE (TN)) GOBJECT_AVAILABLE_MACRO_IN_2_70 +/** + * G_DEFINE_TYPE_EXTENDED: + * @TN: The name of the new type, in Camel case. + * @t_n: The name of the new type, in lowercase, with words + * separated by `_`. + * @T_P: The #GType of the parent type. + * @_f_: #GTypeFlags to pass to g_type_register_static() + * @_C_: Custom code that gets inserted in the `*_get_type()` function. + * + * The most general convenience macro for type implementations, on which + * G_DEFINE_TYPE(), etc are based. + * + * |[ + * G_DEFINE_TYPE_EXTENDED (GtkGadget, + * gtk_gadget, + * GTK_TYPE_WIDGET, + * 0, + * G_ADD_PRIVATE (GtkGadget) + * G_IMPLEMENT_INTERFACE (TYPE_GIZMO, + * gtk_gadget_gizmo_init)); + * ]| + * + * expands to + * + * |[ + * static void gtk_gadget_init (GtkGadget *self); + * static void gtk_gadget_class_init (GtkGadgetClass *klass); + * static gpointer gtk_gadget_parent_class = NULL; + * static gint GtkGadget_private_offset; + * static void gtk_gadget_class_intern_init (gpointer klass) + * { + * gtk_gadget_parent_class = g_type_class_peek_parent (klass); + * if (GtkGadget_private_offset != 0) + * g_type_class_adjust_private_offset (klass, &GtkGadget_private_offset); + * gtk_gadget_class_init ((GtkGadgetClass*) klass); + * } + * static inline gpointer gtk_gadget_get_instance_private (GtkGadget *self) + * { + * return (G_STRUCT_MEMBER_P (self, GtkGadget_private_offset)); + * } + * + * GType + * gtk_gadget_get_type (void) + * { + * static gsize static_g_define_type_id = 0; + * if (g_once_init_enter (&static_g_define_type_id)) + * { + * GType g_define_type_id = + * g_type_register_static_simple (GTK_TYPE_WIDGET, + * g_intern_static_string ("GtkGadget"), + * sizeof (GtkGadgetClass), + * (GClassInitFunc) gtk_gadget_class_intern_init, + * sizeof (GtkGadget), + * (GInstanceInitFunc) gtk_gadget_init, + * 0); + * { + * GtkGadget_private_offset = + * g_type_add_instance_private (g_define_type_id, sizeof (GtkGadgetPrivate)); + * } + * { + * const GInterfaceInfo g_implement_interface_info = { + * (GInterfaceInitFunc) gtk_gadget_gizmo_init + * }; + * g_type_add_interface_static (g_define_type_id, TYPE_GIZMO, &g_implement_interface_info); + * } + * g_once_init_leave (&static_g_define_type_id, g_define_type_id); + * } + * return static_g_define_type_id; + * } + * ]| + * + * The only pieces which have to be manually provided are the definitions of + * the instance and class structure and the definitions of the instance and + * class init functions. + * + * Since: 2.4 + */ +#define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END() + +/** + * G_DEFINE_INTERFACE: + * @TN: The name of the new type, in Camel case. + * @t_n: The name of the new type, in lowercase, with words separated by `_`. + * @T_P: The #GType of the prerequisite type for the interface, or %G_TYPE_INVALID + * for no prerequisite type. + * + * A convenience macro for #GTypeInterface definitions, which declares + * a default vtable initialization function and defines a `*_get_type()` + * function. + * + * The macro expects the interface initialization function to have the + * name `t_n ## _default_init`, and the interface structure to have the + * name `TN ## Interface`. + * + * The initialization function has signature + * `static void t_n ## _default_init (TypeName##Interface *klass);`, rather than + * the full #GInterfaceInitFunc signature, for brevity and convenience. If you + * need to use an initialization function with an `iface_data` argument, you + * must write the #GTypeInterface definitions manually. + * + * Since: 2.24 + */ +#define G_DEFINE_INTERFACE(TN, t_n, T_P) G_DEFINE_INTERFACE_WITH_CODE(TN, t_n, T_P, ;) + +/** + * G_DEFINE_INTERFACE_WITH_CODE: + * @TN: The name of the new type, in Camel case. + * @t_n: The name of the new type, in lowercase, with words separated by `_`. + * @T_P: The #GType of the prerequisite type for the interface, or %G_TYPE_INVALID + * for no prerequisite type. + * @_C_: Custom code that gets inserted in the `*_get_type()` function. + * + * A convenience macro for #GTypeInterface definitions. + * + * Similar to G_DEFINE_INTERFACE(), but allows you to insert custom code + * into the `*_get_type()` function, e.g. additional interface implementations + * via G_IMPLEMENT_INTERFACE(), or additional prerequisite types. + * + * See G_DEFINE_TYPE_EXTENDED() for a similar example using + * G_DEFINE_TYPE_WITH_CODE(). + * + * Since: 2.24 + */ +#define G_DEFINE_INTERFACE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_INTERFACE_EXTENDED_BEGIN(TN, t_n, T_P) {_C_;} _G_DEFINE_INTERFACE_EXTENDED_END() + +/** + * G_IMPLEMENT_INTERFACE: + * @TYPE_IFACE: The #GType of the interface to add + * @iface_init: (type GInterfaceInitFunc): The interface init function, of type #GInterfaceInitFunc + * + * A convenience macro to ease interface addition in the `_C_` section + * of G_DEFINE_TYPE_WITH_CODE() or G_DEFINE_ABSTRACT_TYPE_WITH_CODE(). + * See G_DEFINE_TYPE_EXTENDED() for an example. + * + * Note that this macro can only be used together with the `G_DEFINE_TYPE_*` + * macros, since it depends on variable names from those macros. + * + * Since: 2.4 + */ +#define G_IMPLEMENT_INTERFACE(TYPE_IFACE, iface_init) { \ + const GInterfaceInfo g_implement_interface_info = { \ + (GInterfaceInitFunc)(void (*)(void)) iface_init, NULL, NULL \ + }; \ + g_type_add_interface_static (g_define_type_id, TYPE_IFACE, &g_implement_interface_info); \ +} + +/** + * G_ADD_PRIVATE: + * @TypeName: the name of the type in CamelCase + * + * A convenience macro to ease adding private data to instances of a new type + * in the @_C_ section of G_DEFINE_TYPE_WITH_CODE() or + * G_DEFINE_ABSTRACT_TYPE_WITH_CODE(). + * + * For instance: + * + * |[ + * typedef struct _MyObject MyObject; + * typedef struct _MyObjectClass MyObjectClass; + * + * typedef struct { + * gint foo; + * gint bar; + * } MyObjectPrivate; + * + * G_DEFINE_TYPE_WITH_CODE (MyObject, my_object, G_TYPE_OBJECT, + * G_ADD_PRIVATE (MyObject)) + * ]| + * + * Will add `MyObjectPrivate` as the private data to any instance of the + * `MyObject` type. + * + * `G_DEFINE_TYPE_*` macros will automatically create a private function + * based on the arguments to this macro, which can be used to safely + * retrieve the private data from an instance of the type; for instance: + * + * |[ + * gint + * my_object_get_foo (MyObject *obj) + * { + * MyObjectPrivate *priv = my_object_get_instance_private (obj); + * + * g_return_val_if_fail (MY_IS_OBJECT (obj), 0); + * + * return priv->foo; + * } + * + * void + * my_object_set_bar (MyObject *obj, + * gint bar) + * { + * MyObjectPrivate *priv = my_object_get_instance_private (obj); + * + * g_return_if_fail (MY_IS_OBJECT (obj)); + * + * if (priv->bar != bar) + * priv->bar = bar; + * } + * ]| + * + * Since GLib 2.72, the returned `MyObjectPrivate` pointer is guaranteed to be + * aligned to at least the alignment of the largest basic GLib type (typically + * this is #guint64 or #gdouble). If you need larger alignment for an element in + * the struct, you should allocate it on the heap (aligned), or arrange for your + * `MyObjectPrivate` struct to be appropriately padded. + * + * Note that this macro can only be used together with the `G_DEFINE_TYPE_*` + * macros, since it depends on variable names from those macros. + * + * Also note that private structs added with these macros must have a struct + * name of the form `TypeNamePrivate`. + * + * It is safe to call the `_get_instance_private` function on %NULL or invalid + * objects since it's only adding an offset to the instance pointer. In that + * case the returned pointer must not be dereferenced. + * + * Since: 2.38 + */ +#define G_ADD_PRIVATE(TypeName) { \ + TypeName##_private_offset = \ + g_type_add_instance_private (g_define_type_id, sizeof (TypeName##Private)); \ +} + +/** + * G_PRIVATE_OFFSET: + * @TypeName: the name of the type in CamelCase + * @field: the name of the field in the private data structure + * + * Evaluates to the offset of the @field inside the instance private data + * structure for @TypeName. + * + * Note that this macro can only be used together with the `G_DEFINE_TYPE_*` + * and G_ADD_PRIVATE() macros, since it depends on variable names from + * those macros. + * + * Since: 2.38 + */ +#define G_PRIVATE_OFFSET(TypeName, field) \ + (TypeName##_private_offset + (G_STRUCT_OFFSET (TypeName##Private, field))) + +/** + * G_PRIVATE_FIELD_P: + * @TypeName: the name of the type in CamelCase + * @inst: the instance of @TypeName you wish to access + * @field_name: the name of the field in the private data structure + * + * Evaluates to a pointer to the @field_name inside the @inst private data + * structure for @TypeName. + * + * Note that this macro can only be used together with the `G_DEFINE_TYPE_*` + * and G_ADD_PRIVATE() macros, since it depends on variable names from + * those macros. + * + * Since: 2.38 + */ +#define G_PRIVATE_FIELD_P(TypeName, inst, field_name) \ + G_STRUCT_MEMBER_P (inst, G_PRIVATE_OFFSET (TypeName, field_name)) + +/** + * G_PRIVATE_FIELD: + * @TypeName: the name of the type in CamelCase + * @inst: the instance of @TypeName you wish to access + * @field_type: the type of the field in the private data structure + * @field_name: the name of the field in the private data structure + * + * Evaluates to the @field_name inside the @inst private data + * structure for @TypeName. + * + * Note that this macro can only be used together with the `G_DEFINE_TYPE_*` + * and G_ADD_PRIVATE() macros, since it depends on variable names from + * those macros. + * + * Since: 2.38 + */ +#define G_PRIVATE_FIELD(TypeName, inst, field_type, field_name) \ + G_STRUCT_MEMBER (field_type, inst, G_PRIVATE_OFFSET (TypeName, field_name)) + +/* we need to have this macro under conditional expansion, as it references + * a function that has been added in 2.38. see bug: + * https://bugzilla.gnome.org/show_bug.cgi?id=703191 + */ +#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 +#define _G_DEFINE_TYPE_EXTENDED_CLASS_INIT(TypeName, type_name) \ +static void type_name##_class_intern_init (gpointer klass) \ +{ \ + type_name##_parent_class = g_type_class_peek_parent (klass); \ + if (TypeName##_private_offset != 0) \ + g_type_class_adjust_private_offset (klass, &TypeName##_private_offset); \ + type_name##_class_init ((TypeName##Class*) klass); \ +} + +#else +#define _G_DEFINE_TYPE_EXTENDED_CLASS_INIT(TypeName, type_name) \ +static void type_name##_class_intern_init (gpointer klass) \ +{ \ + type_name##_parent_class = g_type_class_peek_parent (klass); \ + type_name##_class_init ((TypeName##Class*) klass); \ +} +#endif /* GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38 */ + +/* Added for _G_DEFINE_TYPE_EXTENDED_WITH_PRELUDE */ +#define _G_DEFINE_TYPE_EXTENDED_BEGIN_PRE(TypeName, type_name, TYPE_PARENT) \ +\ +static void type_name##_init (TypeName *self); \ +static void type_name##_class_init (TypeName##Class *klass); \ +static GType type_name##_get_type_once (void); \ +static gpointer type_name##_parent_class = NULL; \ +static gint TypeName##_private_offset; \ +\ +_G_DEFINE_TYPE_EXTENDED_CLASS_INIT(TypeName, type_name) \ +\ +G_GNUC_UNUSED \ +static inline gpointer \ +type_name##_get_instance_private (TypeName *self) \ +{ \ + return (G_STRUCT_MEMBER_P (self, TypeName##_private_offset)); \ +} \ +\ +GType \ +type_name##_get_type (void) \ +{ \ + static gsize static_g_define_type_id = 0; + /* Prelude goes here */ + +/* Added for _G_DEFINE_TYPE_EXTENDED_WITH_PRELUDE */ +#define _G_DEFINE_TYPE_EXTENDED_BEGIN_REGISTER(TypeName, type_name, TYPE_PARENT, flags) \ + if (g_once_init_enter (&static_g_define_type_id)) \ + { \ + GType g_define_type_id = type_name##_get_type_once (); \ + g_once_init_leave (&static_g_define_type_id, g_define_type_id); \ + } \ + return static_g_define_type_id; \ +} /* closes type_name##_get_type() */ \ +\ +G_NO_INLINE \ +static GType \ +type_name##_get_type_once (void) \ +{ \ + GType g_define_type_id = \ + g_type_register_static_simple (TYPE_PARENT, \ + g_intern_static_string (#TypeName), \ + sizeof (TypeName##Class), \ + (GClassInitFunc)(void (*)(void)) type_name##_class_intern_init, \ + sizeof (TypeName), \ + (GInstanceInitFunc)(void (*)(void)) type_name##_init, \ + (GTypeFlags) flags); \ + { /* custom code follows */ +#define _G_DEFINE_TYPE_EXTENDED_END() \ + /* following custom code */ \ + } \ + return g_define_type_id; \ +} /* closes type_name##_get_type_once() */ + +/* This was defined before we had G_DEFINE_TYPE_WITH_CODE_AND_PRELUDE, it's simplest + * to keep it. + */ +#define _G_DEFINE_TYPE_EXTENDED_BEGIN(TypeName, type_name, TYPE_PARENT, flags) \ + _G_DEFINE_TYPE_EXTENDED_BEGIN_PRE(TypeName, type_name, TYPE_PARENT) \ + _G_DEFINE_TYPE_EXTENDED_BEGIN_REGISTER(TypeName, type_name, TYPE_PARENT, flags) \ + +/* Intentionally using (GTypeFlags) 0 instead of G_TYPE_FLAG_NONE here, + * to avoid deprecation warnings with older GLIB_VERSION_MAX_ALLOWED */ +#define _G_DEFINE_INTERFACE_EXTENDED_BEGIN(TypeName, type_name, TYPE_PREREQ) \ +\ +static void type_name##_default_init (TypeName##Interface *klass); \ +\ +GType \ +type_name##_get_type (void) \ +{ \ + static gsize static_g_define_type_id = 0; \ + if (g_once_init_enter (&static_g_define_type_id)) \ + { \ + GType g_define_type_id = \ + g_type_register_static_simple (G_TYPE_INTERFACE, \ + g_intern_static_string (#TypeName), \ + sizeof (TypeName##Interface), \ + (GClassInitFunc)(void (*)(void)) type_name##_default_init, \ + 0, \ + (GInstanceInitFunc)NULL, \ + (GTypeFlags) 0); \ + if (TYPE_PREREQ != G_TYPE_INVALID) \ + g_type_interface_add_prerequisite (g_define_type_id, TYPE_PREREQ); \ + { /* custom code follows */ +#define _G_DEFINE_INTERFACE_EXTENDED_END() \ + /* following custom code */ \ + } \ + g_once_init_leave (&static_g_define_type_id, g_define_type_id); \ + } \ + return static_g_define_type_id; \ +} /* closes type_name##_get_type() */ + +/** + * G_DEFINE_BOXED_TYPE: + * @TypeName: The name of the new type, in Camel case + * @type_name: The name of the new type, in lowercase, with words + * separated by `_` + * @copy_func: the #GBoxedCopyFunc for the new type + * @free_func: the #GBoxedFreeFunc for the new type + * + * A convenience macro for defining a new custom boxed type. + * + * Using this macro is the recommended way of defining new custom boxed + * types, over calling g_boxed_type_register_static() directly. It defines + * a `type_name_get_type()` function which will return the newly defined + * #GType, enabling lazy instantiation. + * + * You might start by putting declarations in a header as follows: + * + * |[ + * #define MY_TYPE_STRUCT my_struct_get_type () + * GType my_struct_get_type (void) G_GNUC_CONST; + * + * MyStruct * my_struct_new (void); + * void my_struct_free (MyStruct *self); + * MyStruct * my_struct_copy (MyStruct *self); + * ]| + * + * And then use this macro and define your implementation in the source file as + * follows: + * + * |[ + * MyStruct * + * my_struct_new (void) + * { + * // ... your code to allocate a new MyStruct ... + * } + * + * void + * my_struct_free (MyStruct *self) + * { + * // ... your code to free a MyStruct ... + * } + * + * MyStruct * + * my_struct_copy (MyStruct *self) + * { + * // ... your code return a newly allocated copy of a MyStruct ... + * } + * + * G_DEFINE_BOXED_TYPE (MyStruct, my_struct, my_struct_copy, my_struct_free) + * + * void + * foo () + * { + * MyStruct *ms; + * + * ms = my_struct_new (); + * // ... your code ... + * my_struct_free (ms); + * } + * ]| + * + * Since: 2.26 + */ +#define G_DEFINE_BOXED_TYPE(TypeName, type_name, copy_func, free_func) G_DEFINE_BOXED_TYPE_WITH_CODE (TypeName, type_name, copy_func, free_func, {}) +/** + * G_DEFINE_BOXED_TYPE_WITH_CODE: + * @TypeName: The name of the new type, in Camel case + * @type_name: The name of the new type, in lowercase, with words + * separated by `_` + * @copy_func: the #GBoxedCopyFunc for the new type + * @free_func: the #GBoxedFreeFunc for the new type + * @_C_: Custom code that gets inserted in the `*_get_type()` function + * + * A convenience macro for boxed type implementations. + * + * Similar to G_DEFINE_BOXED_TYPE(), but allows to insert custom code into the + * `type_name_get_type()` function, e.g. to register value transformations with + * g_value_register_transform_func(), for instance: + * + * |[ + * G_DEFINE_BOXED_TYPE_WITH_CODE (GdkRectangle, gdk_rectangle, + * gdk_rectangle_copy, + * gdk_rectangle_free, + * register_rectangle_transform_funcs (g_define_type_id)) + * ]| + * + * Similarly to the `G_DEFINE_TYPE_*` family of macros, the #GType of the newly + * defined boxed type is exposed in the `g_define_type_id` variable. + * + * Since: 2.26 + */ +#define G_DEFINE_BOXED_TYPE_WITH_CODE(TypeName, type_name, copy_func, free_func, _C_) _G_DEFINE_BOXED_TYPE_BEGIN (TypeName, type_name, copy_func, free_func) {_C_;} _G_DEFINE_TYPE_EXTENDED_END() + +/* Only use this in non-C++ on GCC >= 2.7, except for Darwin/ppc64. + * See https://bugzilla.gnome.org/show_bug.cgi?id=647145 + */ +#if !defined (G_CXX_STD_VERSION) && (G_GNUC_CHECK_VERSION(2, 7)) && \ + !(defined (__APPLE__) && defined (__ppc64__)) +#define _G_DEFINE_BOXED_TYPE_BEGIN(TypeName, type_name, copy_func, free_func) \ +static GType type_name##_get_type_once (void); \ +\ +GType \ +type_name##_get_type (void) \ +{ \ + static gsize static_g_define_type_id = 0; \ + if (g_once_init_enter (&static_g_define_type_id)) \ + { \ + GType g_define_type_id = type_name##_get_type_once (); \ + g_once_init_leave (&static_g_define_type_id, g_define_type_id); \ + } \ + return static_g_define_type_id; \ +} \ +\ +G_NO_INLINE \ +static GType \ +type_name##_get_type_once (void) \ +{ \ + GType (* _g_register_boxed) \ + (const gchar *, \ + union \ + { \ + TypeName * (*do_copy_type) (TypeName *); \ + TypeName * (*do_const_copy_type) (const TypeName *); \ + GBoxedCopyFunc do_copy_boxed; \ + } __attribute__((__transparent_union__)), \ + union \ + { \ + void (* do_free_type) (TypeName *); \ + GBoxedFreeFunc do_free_boxed; \ + } __attribute__((__transparent_union__)) \ + ) = g_boxed_type_register_static; \ + GType g_define_type_id = \ + _g_register_boxed (g_intern_static_string (#TypeName), copy_func, free_func); \ + { /* custom code follows */ +#else +#define _G_DEFINE_BOXED_TYPE_BEGIN(TypeName, type_name, copy_func, free_func) \ +static GType type_name##_get_type_once (void); \ +\ +GType \ +type_name##_get_type (void) \ +{ \ + static gsize static_g_define_type_id = 0; \ + if (g_once_init_enter (&static_g_define_type_id)) \ + { \ + GType g_define_type_id = type_name##_get_type_once (); \ + g_once_init_leave (&static_g_define_type_id, g_define_type_id); \ + } \ + return static_g_define_type_id; \ +} \ +\ +G_NO_INLINE \ +static GType \ +type_name##_get_type_once (void) \ +{ \ + GType g_define_type_id = \ + g_boxed_type_register_static (g_intern_static_string (#TypeName), \ + (GBoxedCopyFunc) copy_func, \ + (GBoxedFreeFunc) free_func); \ + { /* custom code follows */ +#endif /* __GNUC__ */ + +/** + * G_DEFINE_POINTER_TYPE: + * @TypeName: The name of the new type, in Camel case + * @type_name: The name of the new type, in lowercase, with words + * separated by `_` + * + * A convenience macro for pointer type implementations, which defines a + * `type_name_get_type()` function registering the pointer type. + * + * Since: 2.26 + */ +#define G_DEFINE_POINTER_TYPE(TypeName, type_name) G_DEFINE_POINTER_TYPE_WITH_CODE (TypeName, type_name, {}) +/** + * G_DEFINE_POINTER_TYPE_WITH_CODE: + * @TypeName: The name of the new type, in Camel case + * @type_name: The name of the new type, in lowercase, with words + * separated by `_` + * @_C_: Custom code that gets inserted in the `*_get_type()` function + * + * A convenience macro for pointer type implementations. + * Similar to G_DEFINE_POINTER_TYPE(), but allows to insert + * custom code into the `type_name_get_type()` function. + * + * Since: 2.26 + */ +#define G_DEFINE_POINTER_TYPE_WITH_CODE(TypeName, type_name, _C_) _G_DEFINE_POINTER_TYPE_BEGIN (TypeName, type_name) {_C_;} _G_DEFINE_TYPE_EXTENDED_END() + +#define _G_DEFINE_POINTER_TYPE_BEGIN(TypeName, type_name) \ +static GType type_name##_get_type_once (void); \ +\ +GType \ +type_name##_get_type (void) \ +{ \ + static gsize static_g_define_type_id = 0; \ + if (g_once_init_enter (&static_g_define_type_id)) \ + { \ + GType g_define_type_id = type_name##_get_type_once (); \ + g_once_init_leave (&static_g_define_type_id, g_define_type_id); \ + } \ + return static_g_define_type_id; \ +} \ +\ +G_NO_INLINE \ +static GType \ +type_name##_get_type_once (void) \ +{ \ + GType g_define_type_id = \ + g_pointer_type_register_static (g_intern_static_string (#TypeName)); \ + { /* custom code follows */ + +/* --- protected (for fundamental type implementations) --- */ +GOBJECT_AVAILABLE_IN_ALL +GTypePlugin* g_type_get_plugin (GType type); +GOBJECT_AVAILABLE_IN_ALL +GTypePlugin* g_type_interface_get_plugin (GType instance_type, + GType interface_type); +GOBJECT_AVAILABLE_IN_ALL +GType g_type_fundamental_next (void); +GOBJECT_AVAILABLE_IN_ALL +GType g_type_fundamental (GType type_id); +GOBJECT_AVAILABLE_IN_ALL +GTypeInstance* g_type_create_instance (GType type); +GOBJECT_AVAILABLE_IN_ALL +void g_type_free_instance (GTypeInstance *instance); + +GOBJECT_AVAILABLE_IN_ALL +void g_type_add_class_cache_func (gpointer cache_data, + GTypeClassCacheFunc cache_func); +GOBJECT_AVAILABLE_IN_ALL +void g_type_remove_class_cache_func (gpointer cache_data, + GTypeClassCacheFunc cache_func); +GOBJECT_AVAILABLE_IN_ALL +void g_type_class_unref_uncached (gpointer g_class); + +GOBJECT_AVAILABLE_IN_ALL +void g_type_add_interface_check (gpointer check_data, + GTypeInterfaceCheckFunc check_func); +GOBJECT_AVAILABLE_IN_ALL +void g_type_remove_interface_check (gpointer check_data, + GTypeInterfaceCheckFunc check_func); + +GOBJECT_AVAILABLE_IN_ALL +GTypeValueTable* g_type_value_table_peek (GType type); + + +/*< private >*/ +GOBJECT_AVAILABLE_IN_ALL +gboolean g_type_check_instance (GTypeInstance *instance) G_GNUC_PURE; +GOBJECT_AVAILABLE_IN_ALL +GTypeInstance* g_type_check_instance_cast (GTypeInstance *instance, + GType iface_type); +GOBJECT_AVAILABLE_IN_ALL +gboolean g_type_check_instance_is_a (GTypeInstance *instance, + GType iface_type) G_GNUC_PURE; +GOBJECT_AVAILABLE_IN_2_42 +gboolean g_type_check_instance_is_fundamentally_a (GTypeInstance *instance, + GType fundamental_type) G_GNUC_PURE; +GOBJECT_AVAILABLE_IN_ALL +GTypeClass* g_type_check_class_cast (GTypeClass *g_class, + GType is_a_type); +GOBJECT_AVAILABLE_IN_ALL +gboolean g_type_check_class_is_a (GTypeClass *g_class, + GType is_a_type) G_GNUC_PURE; +GOBJECT_AVAILABLE_IN_ALL +gboolean g_type_check_is_value_type (GType type) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +gboolean g_type_check_value (const GValue *value) G_GNUC_PURE; +GOBJECT_AVAILABLE_IN_ALL +gboolean g_type_check_value_holds (const GValue *value, + GType type) G_GNUC_PURE; +GOBJECT_AVAILABLE_IN_ALL +gboolean g_type_test_flags (GType type, + guint flags) G_GNUC_CONST; + + +/* --- debugging functions --- */ +GOBJECT_AVAILABLE_IN_ALL +const gchar * g_type_name_from_instance (GTypeInstance *instance); +GOBJECT_AVAILABLE_IN_ALL +const gchar * g_type_name_from_class (GTypeClass *g_class); + + +/* --- implementation bits --- */ +#if defined(G_DISABLE_CAST_CHECKS) || defined(__OPTIMIZE__) +# define _G_TYPE_CIC(ip, gt, ct) ((ct*) (void *) ip) +# define _G_TYPE_CCC(cp, gt, ct) ((ct*) (void *) cp) +#else +# define _G_TYPE_CIC(ip, gt, ct) \ + ((ct*) (void *) g_type_check_instance_cast ((GTypeInstance*) ip, gt)) +# define _G_TYPE_CCC(cp, gt, ct) \ + ((ct*) (void *) g_type_check_class_cast ((GTypeClass*) cp, gt)) +#endif + +#define _G_TYPE_CHI(ip) (g_type_check_instance ((GTypeInstance*) ip)) +#define _G_TYPE_CHV(vl) (g_type_check_value ((GValue*) vl)) +#define _G_TYPE_IGC(ip, gt, ct) ((ct*) (((GTypeInstance*) ip)->g_class)) +#define _G_TYPE_IGI(ip, gt, ct) ((ct*) g_type_interface_peek (((GTypeInstance*) ip)->g_class, gt)) +#define _G_TYPE_CIFT(ip, ft) (g_type_check_instance_is_fundamentally_a ((GTypeInstance*) ip, ft)) +#ifdef __GNUC__ +# define _G_TYPE_CIT(ip, gt) (G_GNUC_EXTENSION ({ \ + GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \ + if (!__inst) \ + __r = FALSE; \ + else if (__inst->g_class && __inst->g_class->g_type == __t) \ + __r = TRUE; \ + else \ + __r = g_type_check_instance_is_a (__inst, __t); \ + __r; \ +})) +# define _G_TYPE_CCT(cp, gt) (G_GNUC_EXTENSION ({ \ + GTypeClass *__class = (GTypeClass*) cp; GType __t = gt; gboolean __r; \ + if (!__class) \ + __r = FALSE; \ + else if (__class->g_type == __t) \ + __r = TRUE; \ + else \ + __r = g_type_check_class_is_a (__class, __t); \ + __r; \ +})) +# define _G_TYPE_CVH(vl, gt) (G_GNUC_EXTENSION ({ \ + const GValue *__val = (const GValue*) vl; GType __t = gt; gboolean __r; \ + if (!__val) \ + __r = FALSE; \ + else if (__val->g_type == __t) \ + __r = TRUE; \ + else \ + __r = g_type_check_value_holds (__val, __t); \ + __r; \ +})) +#else /* !__GNUC__ */ +# define _G_TYPE_CIT(ip, gt) (g_type_check_instance_is_a ((GTypeInstance*) ip, gt)) +# define _G_TYPE_CCT(cp, gt) (g_type_check_class_is_a ((GTypeClass*) cp, gt)) +# define _G_TYPE_CVH(vl, gt) (g_type_check_value_holds ((const GValue*) vl, gt)) +#endif /* !__GNUC__ */ +/** + * G_TYPE_FLAG_RESERVED_ID_BIT: + * + * A bit in the type number that's supposed to be left untouched. + */ +#define G_TYPE_FLAG_RESERVED_ID_BIT ((GType) (1 << 0)) + +G_END_DECLS + +#endif /* __G_TYPE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gtypemodule.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gtypemodule.h new file mode 100644 index 000000000..e386b50df --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gtypemodule.h @@ -0,0 +1,302 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 2000 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see . + */ +#ifndef __G_TYPE_MODULE_H__ +#define __G_TYPE_MODULE_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include +#include + +G_BEGIN_DECLS + +typedef struct _GTypeModule GTypeModule; +typedef struct _GTypeModuleClass GTypeModuleClass; + +#define G_TYPE_TYPE_MODULE (g_type_module_get_type ()) +#define G_TYPE_MODULE(module) (G_TYPE_CHECK_INSTANCE_CAST ((module), G_TYPE_TYPE_MODULE, GTypeModule)) +#define G_TYPE_MODULE_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_TYPE_MODULE, GTypeModuleClass)) +#define G_IS_TYPE_MODULE(module) (G_TYPE_CHECK_INSTANCE_TYPE ((module), G_TYPE_TYPE_MODULE)) +#define G_IS_TYPE_MODULE_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_TYPE_MODULE)) +#define G_TYPE_MODULE_GET_CLASS(module) (G_TYPE_INSTANCE_GET_CLASS ((module), G_TYPE_TYPE_MODULE, GTypeModuleClass)) + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTypeModule, g_object_unref) + +/** + * GTypeModule: + * @name: the name of the module + * + * The members of the GTypeModule structure should not + * be accessed directly, except for the @name field. + */ +struct _GTypeModule +{ + GObject parent_instance; + + guint use_count; + GSList *type_infos; + GSList *interface_infos; + + /*< public >*/ + gchar *name; +}; + +/** + * GTypeModuleClass: + * @parent_class: the parent class + * @load: loads the module and registers one or more types using + * g_type_module_register_type(). + * @unload: unloads the module + * + * In order to implement dynamic loading of types based on #GTypeModule, + * the @load and @unload functions in #GTypeModuleClass must be implemented. + */ +struct _GTypeModuleClass +{ + GObjectClass parent_class; + + /*< public >*/ + gboolean (* load) (GTypeModule *module); + void (* unload) (GTypeModule *module); + + /*< private >*/ + /* Padding for future expansion */ + void (*reserved1) (void); + void (*reserved2) (void); + void (*reserved3) (void); + void (*reserved4) (void); +}; + +/** + * G_DEFINE_DYNAMIC_TYPE: + * @TN: The name of the new type, in Camel case. + * @t_n: The name of the new type, in lowercase, with words + * separated by '_'. + * @T_P: The #GType of the parent type. + * + * A convenience macro for dynamic type implementations, which declares a + * class initialization function, an instance initialization function (see + * #GTypeInfo for information about these) and a static variable named + * `t_n`_parent_class pointing to the parent class. + * + * Furthermore, it defines a `*_get_type()` and a static `*_register_type()` + * functions for use in your `module_init()`. + * + * See G_DEFINE_DYNAMIC_TYPE_EXTENDED() for an example. + * + * Since: 2.14 + */ +#define G_DEFINE_DYNAMIC_TYPE(TN, t_n, T_P) G_DEFINE_DYNAMIC_TYPE_EXTENDED (TN, t_n, T_P, 0, {}) +/** + * G_DEFINE_DYNAMIC_TYPE_EXTENDED: + * @TypeName: The name of the new type, in Camel case. + * @type_name: The name of the new type, in lowercase, with words + * separated by '_'. + * @TYPE_PARENT: The #GType of the parent type. + * @flags: #GTypeFlags to pass to g_type_module_register_type() + * @CODE: Custom code that gets inserted in the *_get_type() function. + * + * A more general version of G_DEFINE_DYNAMIC_TYPE() which + * allows to specify #GTypeFlags and custom code. + * + * |[ + * G_DEFINE_DYNAMIC_TYPE_EXTENDED (GtkGadget, + * gtk_gadget, + * GTK_TYPE_THING, + * 0, + * G_IMPLEMENT_INTERFACE_DYNAMIC (TYPE_GIZMO, + * gtk_gadget_gizmo_init)); + * ]| + * + * expands to + * + * |[ + * static void gtk_gadget_init (GtkGadget *self); + * static void gtk_gadget_class_init (GtkGadgetClass *klass); + * static void gtk_gadget_class_finalize (GtkGadgetClass *klass); + * + * static gpointer gtk_gadget_parent_class = NULL; + * static GType gtk_gadget_type_id = 0; + * + * static void gtk_gadget_class_intern_init (gpointer klass) + * { + * gtk_gadget_parent_class = g_type_class_peek_parent (klass); + * gtk_gadget_class_init ((GtkGadgetClass*) klass); + * } + * + * GType + * gtk_gadget_get_type (void) + * { + * return gtk_gadget_type_id; + * } + * + * static void + * gtk_gadget_register_type (GTypeModule *type_module) + * { + * const GTypeInfo g_define_type_info = { + * sizeof (GtkGadgetClass), + * (GBaseInitFunc) NULL, + * (GBaseFinalizeFunc) NULL, + * (GClassInitFunc) gtk_gadget_class_intern_init, + * (GClassFinalizeFunc) gtk_gadget_class_finalize, + * NULL, // class_data + * sizeof (GtkGadget), + * 0, // n_preallocs + * (GInstanceInitFunc) gtk_gadget_init, + * NULL // value_table + * }; + * gtk_gadget_type_id = g_type_module_register_type (type_module, + * GTK_TYPE_THING, + * "GtkGadget", + * &g_define_type_info, + * (GTypeFlags) flags); + * { + * const GInterfaceInfo g_implement_interface_info = { + * (GInterfaceInitFunc) gtk_gadget_gizmo_init + * }; + * g_type_module_add_interface (type_module, g_define_type_id, TYPE_GIZMO, &g_implement_interface_info); + * } + * } + * ]| + * + * Since: 2.14 + */ +#define G_DEFINE_DYNAMIC_TYPE_EXTENDED(TypeName, type_name, TYPE_PARENT, flags, CODE) \ +static void type_name##_init (TypeName *self); \ +static void type_name##_class_init (TypeName##Class *klass); \ +static void type_name##_class_finalize (TypeName##Class *klass); \ +static gpointer type_name##_parent_class = NULL; \ +static GType type_name##_type_id = 0; \ +static gint TypeName##_private_offset; \ +\ +_G_DEFINE_TYPE_EXTENDED_CLASS_INIT(TypeName, type_name) \ +\ +G_GNUC_UNUSED \ +static inline gpointer \ +type_name##_get_instance_private (TypeName *self) \ +{ \ + return (G_STRUCT_MEMBER_P (self, TypeName##_private_offset)); \ +} \ +\ +GType \ +type_name##_get_type (void) \ +{ \ + return type_name##_type_id; \ +} \ +static void \ +type_name##_register_type (GTypeModule *type_module) \ +{ \ + GType g_define_type_id G_GNUC_UNUSED; \ + const GTypeInfo g_define_type_info = { \ + sizeof (TypeName##Class), \ + (GBaseInitFunc) NULL, \ + (GBaseFinalizeFunc) NULL, \ + (GClassInitFunc)(void (*)(void)) type_name##_class_intern_init, \ + (GClassFinalizeFunc)(void (*)(void)) type_name##_class_finalize, \ + NULL, /* class_data */ \ + sizeof (TypeName), \ + 0, /* n_preallocs */ \ + (GInstanceInitFunc)(void (*)(void)) type_name##_init, \ + NULL /* value_table */ \ + }; \ + type_name##_type_id = g_type_module_register_type (type_module, \ + TYPE_PARENT, \ + #TypeName, \ + &g_define_type_info, \ + (GTypeFlags) flags); \ + g_define_type_id = type_name##_type_id; \ + { CODE ; } \ +} + +/** + * G_IMPLEMENT_INTERFACE_DYNAMIC: + * @TYPE_IFACE: The #GType of the interface to add + * @iface_init: The interface init function + * + * A convenience macro to ease interface addition in the @_C_ section + * of G_DEFINE_DYNAMIC_TYPE_EXTENDED(). + * + * See G_DEFINE_DYNAMIC_TYPE_EXTENDED() for an example. + * + * Note that this macro can only be used together with the + * G_DEFINE_DYNAMIC_TYPE_EXTENDED macros, since it depends on variable + * names from that macro. + * + * Since: 2.24 + */ +#define G_IMPLEMENT_INTERFACE_DYNAMIC(TYPE_IFACE, iface_init) { \ + const GInterfaceInfo g_implement_interface_info = { \ + (GInterfaceInitFunc)(void (*)(void)) iface_init, NULL, NULL \ + }; \ + g_type_module_add_interface (type_module, g_define_type_id, TYPE_IFACE, &g_implement_interface_info); \ +} + +/** + * G_ADD_PRIVATE_DYNAMIC: + * @TypeName: the name of the type in CamelCase + * + * A convenience macro to ease adding private data to instances of a new dynamic + * type in the @_C_ section of G_DEFINE_DYNAMIC_TYPE_EXTENDED(). + * + * See G_ADD_PRIVATE() for details, it is similar but for static types. + * + * Note that this macro can only be used together with the + * G_DEFINE_DYNAMIC_TYPE_EXTENDED macros, since it depends on variable + * names from that macro. + * + * Since: 2.38 + */ +#define G_ADD_PRIVATE_DYNAMIC(TypeName) { \ + TypeName##_private_offset = sizeof (TypeName##Private); \ +} + +GOBJECT_AVAILABLE_IN_ALL +GType g_type_module_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +gboolean g_type_module_use (GTypeModule *module); +GOBJECT_AVAILABLE_IN_ALL +void g_type_module_unuse (GTypeModule *module); +GOBJECT_AVAILABLE_IN_ALL +void g_type_module_set_name (GTypeModule *module, + const gchar *name); +GOBJECT_AVAILABLE_IN_ALL +GType g_type_module_register_type (GTypeModule *module, + GType parent_type, + const gchar *type_name, + const GTypeInfo *type_info, + GTypeFlags flags); +GOBJECT_AVAILABLE_IN_ALL +void g_type_module_add_interface (GTypeModule *module, + GType instance_type, + GType interface_type, + const GInterfaceInfo *interface_info); +GOBJECT_AVAILABLE_IN_ALL +GType g_type_module_register_enum (GTypeModule *module, + const gchar *name, + const GEnumValue *const_static_values); +GOBJECT_AVAILABLE_IN_ALL +GType g_type_module_register_flags (GTypeModule *module, + const gchar *name, + const GFlagsValue *const_static_values); + +G_END_DECLS + +#endif /* __G_TYPE_MODULE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gtypeplugin.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gtypeplugin.h new file mode 100644 index 000000000..3711932be --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gtypeplugin.h @@ -0,0 +1,136 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 2000 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + */ +#ifndef __G_TYPE_PLUGIN_H__ +#define __G_TYPE_PLUGIN_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/* --- type macros --- */ +#define G_TYPE_TYPE_PLUGIN (g_type_plugin_get_type ()) +#define G_TYPE_PLUGIN(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), G_TYPE_TYPE_PLUGIN, GTypePlugin)) +#define G_TYPE_PLUGIN_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), G_TYPE_TYPE_PLUGIN, GTypePluginClass)) +#define G_IS_TYPE_PLUGIN(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), G_TYPE_TYPE_PLUGIN)) +#define G_IS_TYPE_PLUGIN_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), G_TYPE_TYPE_PLUGIN)) +#define G_TYPE_PLUGIN_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), G_TYPE_TYPE_PLUGIN, GTypePluginClass)) + + +/* --- typedefs & structures --- */ +typedef struct _GTypePluginClass GTypePluginClass; +/** + * GTypePluginUse: + * @plugin: the #GTypePlugin whose use count should be increased + * + * The type of the @use_plugin function of #GTypePluginClass, which gets called + * to increase the use count of @plugin. + */ +typedef void (*GTypePluginUse) (GTypePlugin *plugin); +/** + * GTypePluginUnuse: + * @plugin: the #GTypePlugin whose use count should be decreased + * + * The type of the @unuse_plugin function of #GTypePluginClass. + */ +typedef void (*GTypePluginUnuse) (GTypePlugin *plugin); +/** + * GTypePluginCompleteTypeInfo: + * @plugin: the #GTypePlugin + * @g_type: the #GType whose info is completed + * @info: the #GTypeInfo struct to fill in + * @value_table: the #GTypeValueTable to fill in + * + * The type of the @complete_type_info function of #GTypePluginClass. + */ +typedef void (*GTypePluginCompleteTypeInfo) (GTypePlugin *plugin, + GType g_type, + GTypeInfo *info, + GTypeValueTable *value_table); +/** + * GTypePluginCompleteInterfaceInfo: + * @plugin: the #GTypePlugin + * @instance_type: the #GType of an instantiatable type to which the interface + * is added + * @interface_type: the #GType of the interface whose info is completed + * @info: the #GInterfaceInfo to fill in + * + * The type of the @complete_interface_info function of #GTypePluginClass. + */ +typedef void (*GTypePluginCompleteInterfaceInfo) (GTypePlugin *plugin, + GType instance_type, + GType interface_type, + GInterfaceInfo *info); +/** + * GTypePlugin: + * + * The GTypePlugin typedef is used as a placeholder + * for objects that implement the GTypePlugin interface. + */ +/** + * GTypePluginClass: + * @use_plugin: Increases the use count of the plugin. + * @unuse_plugin: Decreases the use count of the plugin. + * @complete_type_info: Fills in the #GTypeInfo and + * #GTypeValueTable structs for the type. The structs are initialized + * with `memset(s, 0, sizeof (s))` before calling this function. + * @complete_interface_info: Fills in missing parts of the #GInterfaceInfo + * for the interface. The structs is initialized with + * `memset(s, 0, sizeof (s))` before calling this function. + * + * The #GTypePlugin interface is used by the type system in order to handle + * the lifecycle of dynamically loaded types. + */ +struct _GTypePluginClass +{ + /*< private >*/ + GTypeInterface base_iface; + + /*< public >*/ + GTypePluginUse use_plugin; + GTypePluginUnuse unuse_plugin; + GTypePluginCompleteTypeInfo complete_type_info; + GTypePluginCompleteInterfaceInfo complete_interface_info; +}; + + +/* --- prototypes --- */ +GOBJECT_AVAILABLE_IN_ALL +GType g_type_plugin_get_type (void) G_GNUC_CONST; +GOBJECT_AVAILABLE_IN_ALL +void g_type_plugin_use (GTypePlugin *plugin); +GOBJECT_AVAILABLE_IN_ALL +void g_type_plugin_unuse (GTypePlugin *plugin); +GOBJECT_AVAILABLE_IN_ALL +void g_type_plugin_complete_type_info (GTypePlugin *plugin, + GType g_type, + GTypeInfo *info, + GTypeValueTable *value_table); +GOBJECT_AVAILABLE_IN_ALL +void g_type_plugin_complete_interface_info (GTypePlugin *plugin, + GType instance_type, + GType interface_type, + GInterfaceInfo *info); + +G_END_DECLS + +#endif /* __G_TYPE_PLUGIN_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gvalue.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gvalue.h new file mode 100644 index 000000000..2ac5ca189 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gvalue.h @@ -0,0 +1,212 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 1997-1999, 2000-2001 Tim Janik and Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * gvalue.h: generic GValue functions + */ +#ifndef __G_VALUE_H__ +#define __G_VALUE_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/* --- type macros --- */ +/** + * G_TYPE_IS_VALUE: + * @type: A #GType value. + * + * Checks whether the passed in type ID can be used for g_value_init(). + * + * That is, this macro checks whether this type provides an implementation + * of the #GTypeValueTable functions required for a type to create a #GValue of. + * + * Returns: Whether @type is suitable as a #GValue type. + */ +#define G_TYPE_IS_VALUE(type) (g_type_check_is_value_type (type)) +/** + * G_IS_VALUE: + * @value: A #GValue structure. + * + * Checks if @value is a valid and initialized #GValue structure. + * + * Returns: %TRUE on success. + */ +#define G_IS_VALUE(value) (G_TYPE_CHECK_VALUE (value)) +/** + * G_VALUE_TYPE: + * @value: A #GValue structure. + * + * Get the type identifier of @value. + * + * Returns: the #GType. + */ +#define G_VALUE_TYPE(value) (((GValue*) (value))->g_type) +/** + * G_VALUE_TYPE_NAME: + * @value: A #GValue structure. + * + * Gets the type name of @value. + * + * Returns: the type name. + */ +#define G_VALUE_TYPE_NAME(value) (g_type_name (G_VALUE_TYPE (value))) +/** + * G_VALUE_HOLDS: + * @value: A #GValue structure. + * @type: A #GType value. + * + * Checks if @value holds (or contains) a value of @type. + * This macro will also check for @value != %NULL and issue a + * warning if the check fails. + * + * Returns: %TRUE if @value holds the @type. + */ +#define G_VALUE_HOLDS(value,type) (G_TYPE_CHECK_VALUE_TYPE ((value), (type))) + + +/* --- typedefs & structures --- */ +/** + * GValueTransform: + * @src_value: Source value. + * @dest_value: Target value. + * + * The type of value transformation functions which can be registered with + * g_value_register_transform_func(). + * + * @dest_value will be initialized to the correct destination type. + */ +typedef void (*GValueTransform) (const GValue *src_value, + GValue *dest_value); +/** + * GValue: + * + * An opaque structure used to hold different types of values. + * + * The data within the structure has protected scope: it is accessible only + * to functions within a #GTypeValueTable structure, or implementations of + * the g_value_*() API. That is, code portions which implement new fundamental + * types. + * + * #GValue users cannot make any assumptions about how data is stored + * within the 2 element @data union, and the @g_type member should + * only be accessed through the G_VALUE_TYPE() macro. + */ +struct _GValue +{ + /*< private >*/ + GType g_type; + + /* public for GTypeValueTable methods */ + union { + gint v_int; + guint v_uint; + glong v_long; + gulong v_ulong; + gint64 v_int64; + guint64 v_uint64; + gfloat v_float; + gdouble v_double; + gpointer v_pointer; + } data[2]; +}; + + +/* --- prototypes --- */ +GOBJECT_AVAILABLE_IN_ALL +GValue* g_value_init (GValue *value, + GType g_type); +GOBJECT_AVAILABLE_IN_ALL +void g_value_copy (const GValue *src_value, + GValue *dest_value); +GOBJECT_AVAILABLE_IN_ALL +GValue* g_value_reset (GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_unset (GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_instance (GValue *value, + gpointer instance); +GOBJECT_AVAILABLE_IN_2_42 +void g_value_init_from_instance (GValue *value, + gpointer instance); + + +/* --- private --- */ +GOBJECT_AVAILABLE_IN_ALL +gboolean g_value_fits_pointer (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_value_peek_pointer (const GValue *value); + + +/* --- implementation details --- */ +GOBJECT_AVAILABLE_IN_ALL +gboolean g_value_type_compatible (GType src_type, + GType dest_type); +GOBJECT_AVAILABLE_IN_ALL +gboolean g_value_type_transformable (GType src_type, + GType dest_type); +GOBJECT_AVAILABLE_IN_ALL +gboolean g_value_transform (const GValue *src_value, + GValue *dest_value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_register_transform_func (GType src_type, + GType dest_type, + GValueTransform transform_func); + +/** + * G_VALUE_NOCOPY_CONTENTS: + * + * If passed to G_VALUE_COLLECT(), allocated data won't be copied + * but used verbatim. This does not affect ref-counted types like + * objects. This does not affect usage of g_value_copy(), the data will + * be copied if it is not ref-counted. + */ +#define G_VALUE_NOCOPY_CONTENTS (1 << 27) + +/** + * G_VALUE_INTERNED_STRING: + * + * For string values, indicates that the string contained is canonical and will + * exist for the duration of the process. See g_value_set_interned_string(). + * + * Since: 2.66 + */ +#define G_VALUE_INTERNED_STRING (1 << 28) GOBJECT_AVAILABLE_MACRO_IN_2_66 + +/** + * G_VALUE_INIT: + * + * A #GValue must be initialized before it can be used. This macro can + * be used as initializer instead of an explicit `{ 0 }` when declaring + * a variable, but it cannot be assigned to a variable. + * + * |[ + * GValue value = G_VALUE_INIT; + * ]| + * + * Since: 2.30 + */ +#define G_VALUE_INIT { 0, { { 0 } } } + + +G_END_DECLS + +#endif /* __G_VALUE_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gvaluearray.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gvaluearray.h new file mode 100644 index 000000000..72aa91b57 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gvaluearray.h @@ -0,0 +1,106 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 2001 Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * gvaluearray.h: GLib array type holding GValues + */ +#ifndef __G_VALUE_ARRAY_H__ +#define __G_VALUE_ARRAY_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/** + * G_TYPE_VALUE_ARRAY: + * + * The type ID of the "GValueArray" type which is a boxed type, + * used to pass around pointers to GValueArrays. + * + * Deprecated: 2.32: Use #GArray instead of #GValueArray + */ +#define G_TYPE_VALUE_ARRAY (g_value_array_get_type ()) GOBJECT_DEPRECATED_MACRO_IN_2_32_FOR(G_TYPE_ARRAY) + +/* --- typedefs & structs --- */ +typedef struct _GValueArray GValueArray; +/** + * GValueArray: + * @n_values: number of values contained in the array + * @values: array of values + * + * A #GValueArray contains an array of #GValue elements. + */ +struct _GValueArray +{ + guint n_values; + GValue *values; + + /*< private >*/ + guint n_prealloced; +}; + +/* --- prototypes --- */ +GOBJECT_DEPRECATED_IN_2_32_FOR(GArray) +GType g_value_array_get_type (void) G_GNUC_CONST; + +GOBJECT_DEPRECATED_IN_2_32_FOR(GArray) +GValue* g_value_array_get_nth (GValueArray *value_array, + guint index_); + +GOBJECT_DEPRECATED_IN_2_32_FOR(GArray) +GValueArray* g_value_array_new (guint n_prealloced); + +GOBJECT_DEPRECATED_IN_2_32_FOR(GArray) +void g_value_array_free (GValueArray *value_array); + +GOBJECT_DEPRECATED_IN_2_32_FOR(GArray) +GValueArray* g_value_array_copy (const GValueArray *value_array); + +GOBJECT_DEPRECATED_IN_2_32_FOR(GArray) +GValueArray* g_value_array_prepend (GValueArray *value_array, + const GValue *value); + +GOBJECT_DEPRECATED_IN_2_32_FOR(GArray) +GValueArray* g_value_array_append (GValueArray *value_array, + const GValue *value); + +GOBJECT_DEPRECATED_IN_2_32_FOR(GArray) +GValueArray* g_value_array_insert (GValueArray *value_array, + guint index_, + const GValue *value); + +GOBJECT_DEPRECATED_IN_2_32_FOR(GArray) +GValueArray* g_value_array_remove (GValueArray *value_array, + guint index_); + +GOBJECT_DEPRECATED_IN_2_32_FOR(GArray) +GValueArray* g_value_array_sort (GValueArray *value_array, + GCompareFunc compare_func); + +GOBJECT_DEPRECATED_IN_2_32_FOR(GArray) +GValueArray* g_value_array_sort_with_data (GValueArray *value_array, + GCompareDataFunc compare_func, + gpointer user_data); + + +G_END_DECLS + +#endif /* __G_VALUE_ARRAY_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gvaluecollector.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gvaluecollector.h new file mode 100644 index 000000000..7e7ae021b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gvaluecollector.h @@ -0,0 +1,290 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 1998-1999, 2000-2001 Tim Janik and Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * gvaluecollector.h: GValue varargs stubs + */ +/** + * SECTION:value_collection + * @Short_description: Converting varargs to generic values + * @Title: Varargs Value Collection + * + * The macros in this section provide the varargs parsing support needed + * in variadic GObject functions such as g_object_new() or g_object_set(). + * + * They currently support the collection of integral types, floating point + * types and pointers. + */ +#ifndef __G_VALUE_COLLECTOR_H__ +#define __G_VALUE_COLLECTOR_H__ + +#include + +G_BEGIN_DECLS + +/* we may want to add aggregate types here some day, if requested + * by users. the basic C types are covered already, everything + * smaller than an int is promoted to an integer and floats are + * always promoted to doubles for varargs call constructions. + */ +enum /*< skip >*/ +{ + G_VALUE_COLLECT_INT = 'i', + G_VALUE_COLLECT_LONG = 'l', + G_VALUE_COLLECT_INT64 = 'q', + G_VALUE_COLLECT_DOUBLE = 'd', + G_VALUE_COLLECT_POINTER = 'p' +}; + + +/* vararg union holding actual values collected + */ +/** + * GTypeCValue: + * @v_int: the field for holding integer values + * @v_long: the field for holding long integer values + * @v_int64: the field for holding 64 bit integer values + * @v_double: the field for holding floating point values + * @v_pointer: the field for holding pointers + * + * A union holding one collected value. + */ +union _GTypeCValue +{ + gint v_int; + glong v_long; + gint64 v_int64; + gdouble v_double; + gpointer v_pointer; +}; + +/** + * G_VALUE_COLLECT_INIT: + * @value: a #GValue return location. @value must contain only 0 bytes. + * @_value_type: the #GType to use for @value. + * @var_args: the va_list variable; it may be evaluated multiple times + * @flags: flags which are passed on to the collect_value() function of + * the #GTypeValueTable of @value. + * @__error: a #gchar** variable that will be modified to hold a g_new() + * allocated error messages if something fails + * + * Collects a variable argument value from a `va_list`. + * + * We have to implement the varargs collection as a macro, because on some + * systems `va_list` variables cannot be passed by reference. + * + * Since: 2.24 + */ +#define G_VALUE_COLLECT_INIT(value, _value_type, var_args, flags, __error) \ + G_STMT_START { \ + GTypeValueTable *g_vci_vtab; \ + G_VALUE_COLLECT_INIT2(value, g_vci_vtab, _value_type, var_args, flags, __error); \ +} G_STMT_END + +/** + * G_VALUE_COLLECT_INIT2: + * @value: a #GValue return location. @value must contain only 0 bytes. + * @g_vci_vtab: a #GTypeValueTable pointer that will be set to the value table + * for @_value_type + * @_value_type: the #GType to use for @value. + * @var_args: the va_list variable; it may be evaluated multiple times + * @flags: flags which are passed on to the collect_value() function of + * the #GTypeValueTable of @value. + * @__error: a #gchar** variable that will be modified to hold a g_new() + * allocated error messages if something fails + * + * A variant of G_VALUE_COLLECT_INIT() that provides the #GTypeValueTable + * to the caller. + * + * Since: 2.74 + */ +#define G_VALUE_COLLECT_INIT2(value, g_vci_vtab, _value_type, var_args, flags, __error) \ +G_STMT_START { \ + GValue *g_vci_val = (value); \ + guint g_vci_flags = (flags); \ + const gchar *g_vci_collect_format; \ + GTypeCValue g_vci_cvalues[G_VALUE_COLLECT_FORMAT_MAX_LENGTH] = { { 0, }, }; \ + guint g_vci_n_values = 0; \ + g_vci_vtab = g_type_value_table_peek (_value_type); \ + g_vci_collect_format = g_vci_vtab->collect_format; \ + g_vci_val->g_type = _value_type; /* value_meminit() from gvalue.c */ \ + while (*g_vci_collect_format) \ + { \ + GTypeCValue *g_vci_cvalue = g_vci_cvalues + g_vci_n_values++; \ + \ + switch (*g_vci_collect_format++) \ + { \ + case G_VALUE_COLLECT_INT: \ + g_vci_cvalue->v_int = va_arg ((var_args), gint); \ + break; \ + case G_VALUE_COLLECT_LONG: \ + g_vci_cvalue->v_long = va_arg ((var_args), glong); \ + break; \ + case G_VALUE_COLLECT_INT64: \ + g_vci_cvalue->v_int64 = va_arg ((var_args), gint64); \ + break; \ + case G_VALUE_COLLECT_DOUBLE: \ + g_vci_cvalue->v_double = va_arg ((var_args), gdouble); \ + break; \ + case G_VALUE_COLLECT_POINTER: \ + g_vci_cvalue->v_pointer = va_arg ((var_args), gpointer); \ + break; \ + default: \ + g_assert_not_reached (); \ + } \ + } \ + *(__error) = g_vci_vtab->collect_value (g_vci_val, \ + g_vci_n_values, \ + g_vci_cvalues, \ + g_vci_flags); \ +} G_STMT_END + +/** + * G_VALUE_COLLECT: + * @value: a #GValue return location. @value is supposed to be initialized + * according to the value type to be collected + * @var_args: the va_list variable; it may be evaluated multiple times + * @flags: flags which are passed on to the collect_value() function of + * the #GTypeValueTable of @value. + * @__error: a #gchar** variable that will be modified to hold a g_new() + * allocated error messages if something fails + * + * Collects a variable argument value from a `va_list`. + * + * We have to implement the varargs collection as a macro, because on some systems + * `va_list` variables cannot be passed by reference. + * + * Note: If you are creating the @value argument just before calling this macro, + * you should use the G_VALUE_COLLECT_INIT() variant and pass the uninitialized + * #GValue. That variant is faster than G_VALUE_COLLECT(). + */ +#define G_VALUE_COLLECT(value, var_args, flags, __error) G_STMT_START { \ + GValue *g_vc_value = (value); \ + GType g_vc_value_type = G_VALUE_TYPE (g_vc_value); \ + GTypeValueTable *g_vc_vtable = g_type_value_table_peek (g_vc_value_type); \ + \ + if (g_vc_vtable->value_free) \ + g_vc_vtable->value_free (g_vc_value); \ + memset (g_vc_value->data, 0, sizeof (g_vc_value->data)); \ + \ + G_VALUE_COLLECT_INIT(value, g_vc_value_type, var_args, flags, __error); \ +} G_STMT_END + +/** + * G_VALUE_COLLECT_SKIP: + * @_value_type: the #GType of the value to skip + * @var_args: the va_list variable; it may be evaluated multiple times + * + * Skip an argument of type @_value_type from @var_args. + */ +#define G_VALUE_COLLECT_SKIP(_value_type, var_args) \ +G_STMT_START { \ + GTypeValueTable *g_vcs_vtable = g_type_value_table_peek (_value_type); \ + const gchar *g_vcs_collect_format = g_vcs_vtable->collect_format; \ + \ + while (*g_vcs_collect_format) \ + { \ + switch (*g_vcs_collect_format++) \ + { \ + case G_VALUE_COLLECT_INT: \ + va_arg ((var_args), gint); \ + break; \ + case G_VALUE_COLLECT_LONG: \ + va_arg ((var_args), glong); \ + break; \ + case G_VALUE_COLLECT_INT64: \ + va_arg ((var_args), gint64); \ + break; \ + case G_VALUE_COLLECT_DOUBLE: \ + va_arg ((var_args), gdouble); \ + break; \ + case G_VALUE_COLLECT_POINTER: \ + va_arg ((var_args), gpointer); \ + break; \ + default: \ + g_assert_not_reached (); \ + } \ + } \ +} G_STMT_END + +/** + * G_VALUE_LCOPY: + * @value: a #GValue to store into the @var_args; this must be initialized + * and set + * @var_args: the va_list variable; it may be evaluated multiple times + * @flags: flags which are passed on to the lcopy_value() function of + * the #GTypeValueTable of @value. + * @__error: a #gchar** variable that will be modified to hold a g_new() + * allocated error message if something fails + * + * Stores a value’s value into one or more argument locations from a `va_list`. + * + * This is the inverse of G_VALUE_COLLECT(). + */ +#define G_VALUE_LCOPY(value, var_args, flags, __error) \ +G_STMT_START { \ + const GValue *g_vl_value = (value); \ + guint g_vl_flags = (flags); \ + GType g_vl_value_type = G_VALUE_TYPE (g_vl_value); \ + GTypeValueTable *g_vl_vtable = g_type_value_table_peek (g_vl_value_type); \ + const gchar *g_vl_lcopy_format = g_vl_vtable->lcopy_format; \ + GTypeCValue g_vl_cvalues[G_VALUE_COLLECT_FORMAT_MAX_LENGTH] = { { 0, }, }; \ + guint g_vl_n_values = 0; \ + \ + while (*g_vl_lcopy_format) \ + { \ + GTypeCValue *g_vl_cvalue = g_vl_cvalues + g_vl_n_values++; \ + \ + switch (*g_vl_lcopy_format++) \ + { \ + case G_VALUE_COLLECT_INT: \ + g_vl_cvalue->v_int = va_arg ((var_args), gint); \ + break; \ + case G_VALUE_COLLECT_LONG: \ + g_vl_cvalue->v_long = va_arg ((var_args), glong); \ + break; \ + case G_VALUE_COLLECT_INT64: \ + g_vl_cvalue->v_int64 = va_arg ((var_args), gint64); \ + break; \ + case G_VALUE_COLLECT_DOUBLE: \ + g_vl_cvalue->v_double = va_arg ((var_args), gdouble); \ + break; \ + case G_VALUE_COLLECT_POINTER: \ + g_vl_cvalue->v_pointer = va_arg ((var_args), gpointer); \ + break; \ + default: \ + g_assert_not_reached (); \ + } \ + } \ + *(__error) = g_vl_vtable->lcopy_value (g_vl_value, \ + g_vl_n_values, \ + g_vl_cvalues, \ + g_vl_flags); \ +} G_STMT_END + + +/** + * G_VALUE_COLLECT_FORMAT_MAX_LENGTH: + * + * The maximal number of #GTypeCValues which can be collected for a + * single #GValue. + */ +#define G_VALUE_COLLECT_FORMAT_MAX_LENGTH (8) + +G_END_DECLS + +#endif /* __G_VALUE_COLLECTOR_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gvaluetypes.h b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gvaluetypes.h new file mode 100644 index 000000000..0c8d0f66e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/glib-2.0/gobject/gvaluetypes.h @@ -0,0 +1,318 @@ +/* GObject - GLib Type, Object, Parameter and Signal Library + * Copyright (C) 1997-1999, 2000-2001 Tim Janik and Red Hat, Inc. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General + * Public License along with this library; if not, see . + * + * gvaluetypes.h: GLib default values + */ +#ifndef __G_VALUETYPES_H__ +#define __G_VALUETYPES_H__ + +#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION) +#error "Only can be included directly." +#endif + +#include + +G_BEGIN_DECLS + +/* --- type macros --- */ +/** + * G_VALUE_HOLDS_CHAR: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_CHAR. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_CHAR(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_CHAR)) +/** + * G_VALUE_HOLDS_UCHAR: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_UCHAR. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_UCHAR(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UCHAR)) +/** + * G_VALUE_HOLDS_BOOLEAN: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_BOOLEAN. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_BOOLEAN(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_BOOLEAN)) +/** + * G_VALUE_HOLDS_INT: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_INT. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_INT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT)) +/** + * G_VALUE_HOLDS_UINT: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_UINT. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_UINT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT)) +/** + * G_VALUE_HOLDS_LONG: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_LONG. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_LONG(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_LONG)) +/** + * G_VALUE_HOLDS_ULONG: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_ULONG. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_ULONG(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_ULONG)) +/** + * G_VALUE_HOLDS_INT64: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_INT64. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_INT64(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT64)) +/** + * G_VALUE_HOLDS_UINT64: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_UINT64. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_UINT64(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT64)) +/** + * G_VALUE_HOLDS_FLOAT: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_FLOAT. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_FLOAT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_FLOAT)) +/** + * G_VALUE_HOLDS_DOUBLE: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_DOUBLE. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_DOUBLE(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_DOUBLE)) +/** + * G_VALUE_HOLDS_STRING: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_STRING. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_STRING(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_STRING)) +/** + * G_VALUE_IS_INTERNED_STRING: + * @value: a valid #GValue structure + * + * Checks whether @value contains a string which is canonical. + * + * Returns: %TRUE if the value contains a string in its canonical + * representation, as returned by g_intern_string(). See also + * g_value_set_interned_string(). + * + * Since: 2.66 + */ +#define G_VALUE_IS_INTERNED_STRING(value) (G_VALUE_HOLDS_STRING (value) && ((value)->data[1].v_uint & G_VALUE_INTERNED_STRING)) GOBJECT_AVAILABLE_MACRO_IN_2_66 +/** + * G_VALUE_HOLDS_POINTER: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_POINTER. + * + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_POINTER(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_POINTER)) +/** + * G_TYPE_GTYPE: + * + * The type for #GType. + */ +#define G_TYPE_GTYPE (g_gtype_get_type()) +/** + * G_VALUE_HOLDS_GTYPE: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_GTYPE. + * + * Since: 2.12 + * Returns: %TRUE on success. + */ +#define G_VALUE_HOLDS_GTYPE(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_GTYPE)) +/** + * G_VALUE_HOLDS_VARIANT: + * @value: a valid #GValue structure + * + * Checks whether the given #GValue can hold values of type %G_TYPE_VARIANT. + * + * Returns: %TRUE on success. + * + * Since: 2.26 + */ +#define G_VALUE_HOLDS_VARIANT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_VARIANT)) + + +/* --- prototypes --- */ +GOBJECT_DEPRECATED_IN_2_32_FOR(g_value_set_schar) +void g_value_set_char (GValue *value, + gchar v_char); +GOBJECT_DEPRECATED_IN_2_32_FOR(g_value_get_schar) +gchar g_value_get_char (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_schar (GValue *value, + gint8 v_char); +GOBJECT_AVAILABLE_IN_ALL +gint8 g_value_get_schar (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_uchar (GValue *value, + guchar v_uchar); +GOBJECT_AVAILABLE_IN_ALL +guchar g_value_get_uchar (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_boolean (GValue *value, + gboolean v_boolean); +GOBJECT_AVAILABLE_IN_ALL +gboolean g_value_get_boolean (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_int (GValue *value, + gint v_int); +GOBJECT_AVAILABLE_IN_ALL +gint g_value_get_int (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_uint (GValue *value, + guint v_uint); +GOBJECT_AVAILABLE_IN_ALL +guint g_value_get_uint (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_long (GValue *value, + glong v_long); +GOBJECT_AVAILABLE_IN_ALL +glong g_value_get_long (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_ulong (GValue *value, + gulong v_ulong); +GOBJECT_AVAILABLE_IN_ALL +gulong g_value_get_ulong (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_int64 (GValue *value, + gint64 v_int64); +GOBJECT_AVAILABLE_IN_ALL +gint64 g_value_get_int64 (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_uint64 (GValue *value, + guint64 v_uint64); +GOBJECT_AVAILABLE_IN_ALL +guint64 g_value_get_uint64 (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_float (GValue *value, + gfloat v_float); +GOBJECT_AVAILABLE_IN_ALL +gfloat g_value_get_float (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_double (GValue *value, + gdouble v_double); +GOBJECT_AVAILABLE_IN_ALL +gdouble g_value_get_double (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_string (GValue *value, + const gchar *v_string); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_static_string (GValue *value, + const gchar *v_string); +GOBJECT_AVAILABLE_IN_2_66 +void g_value_set_interned_string (GValue *value, + const gchar *v_string); +GOBJECT_AVAILABLE_IN_ALL +const gchar * g_value_get_string (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +gchar* g_value_dup_string (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_pointer (GValue *value, + gpointer v_pointer); +GOBJECT_AVAILABLE_IN_ALL +gpointer g_value_get_pointer (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +GType g_gtype_get_type (void); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_gtype (GValue *value, + GType v_gtype); +GOBJECT_AVAILABLE_IN_ALL +GType g_value_get_gtype (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +void g_value_set_variant (GValue *value, + GVariant *variant); +GOBJECT_AVAILABLE_IN_ALL +void g_value_take_variant (GValue *value, + GVariant *variant); +GOBJECT_AVAILABLE_IN_ALL +GVariant* g_value_get_variant (const GValue *value); +GOBJECT_AVAILABLE_IN_ALL +GVariant* g_value_dup_variant (const GValue *value); + + +/* Convenience for registering new pointer types */ +GOBJECT_AVAILABLE_IN_ALL +GType g_pointer_type_register_static (const gchar *name); + +/* debugging aid, describe value contents as string */ +GOBJECT_AVAILABLE_IN_ALL +gchar* g_strdup_value_contents (const GValue *value); + + +GOBJECT_AVAILABLE_IN_ALL +void g_value_take_string (GValue *value, + gchar *v_string); +GOBJECT_DEPRECATED_FOR(g_value_take_string) +void g_value_set_string_take_ownership (GValue *value, + gchar *v_string); + + +/* humpf, need a C representable type name for G_TYPE_STRING */ +/** + * gchararray: + * + * A C representable type name for %G_TYPE_STRING. + */ +typedef gchar* gchararray; + + +G_END_DECLS + +#endif /* __G_VALUETYPES_H__ */ diff --git a/code/application/source/sf_app/tools/blue/include/libintl.h b/code/application/source/sf_app/tools/blue/include/libintl.h new file mode 100644 index 000000000..a45c6bc4a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/libintl.h @@ -0,0 +1,597 @@ +/* Message catalogs for internationalization. + Copyright (C) 1995-1997, 2000-2016, 2018-2023 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#ifndef _LIBINTL_H +#define _LIBINTL_H 1 + +#include +#if (defined __APPLE__ && defined __MACH__) && 1 +# include +#endif + +/* The LC_MESSAGES locale category is the category used by the functions + gettext() and dgettext(). It is specified in POSIX, but not in ANSI C. + On systems that don't define it, use an arbitrary value instead. + On Solaris, defines __LOCALE_H (or _LOCALE_H in Solaris 2.5) + then includes (i.e. this file!) and then only defines + LC_MESSAGES. To avoid a redefinition warning, don't define LC_MESSAGES + in this case. */ +#if !defined LC_MESSAGES && !(defined __LOCALE_H || (defined _LOCALE_H && defined __sun)) +# define LC_MESSAGES 1729 +#endif + +/* We define an additional symbol to signal that we use the GNU + implementation of gettext. */ +#define __USE_GNU_GETTEXT 1 + +/* Provide information about the supported file formats. Returns the + maximum minor revision number supported for a given major revision. */ +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) \ + ((major) == 0 || (major) == 1 ? 1 : -1) + +/* Resolve a platform specific conflict on DJGPP. GNU gettext takes + precedence over _conio_gettext. */ +#ifdef __DJGPP__ +# undef gettext +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Version number: (major<<16) + (minor<<8) + subminor */ +#define LIBINTL_VERSION 0x001600 +extern int libintl_version; + + +/* We redirect the functions to those prefixed with "libintl_". This is + necessary, because some systems define gettext/textdomain/... in the C + library (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer). + If we used the unprefixed names, there would be cases where the + definition in the C library would override the one in the libintl.so + shared library. Recall that on ELF systems, the symbols are looked + up in the following order: + 1. in the executable, + 2. in the shared libraries specified on the link command line, in order, + 3. in the dependencies of the shared libraries specified on the link + command line, + 4. in the dlopen()ed shared libraries, in the order in which they were + dlopen()ed. + The definition in the C library would override the one in libintl.so if + either + * -lc is given on the link command line and -lintl isn't, or + * -lc is given on the link command line before -lintl, or + * libintl.so is a dependency of a dlopen()ed shared library but not + linked to the executable at link time. + Since Solaris gettext() behaves differently than GNU gettext(), this + would be unacceptable. + + The redirection happens by default through macros in C, so that &gettext + is independent of the compilation unit, but through inline functions in + C++, in order not to interfere with the name mangling of class fields or + class methods called 'gettext'. */ + +/* The user can define _INTL_REDIRECT_INLINE or _INTL_REDIRECT_MACROS. + If he doesn't, we choose the method. A third possible method is + _INTL_REDIRECT_ASM, supported only by GCC. */ +#if !(defined _INTL_REDIRECT_INLINE || defined _INTL_REDIRECT_MACROS) +# if defined __GNUC__ && __GNUC__ >= 2 && !(defined __APPLE_CC__ && __APPLE_CC__ > 1) && !defined __MINGW32__ && !(__GNUC__ == 2 && defined _AIX) && (defined __STDC__ || defined __cplusplus) +# define _INTL_REDIRECT_ASM +# else +# ifdef __cplusplus +# define _INTL_REDIRECT_INLINE +# else +# define _INTL_REDIRECT_MACROS +# endif +# endif +#endif +/* Auxiliary macros. */ +#ifdef _INTL_REDIRECT_ASM +# define _INTL_ASM(cname) __asm__ (_INTL_ASMNAME (__USER_LABEL_PREFIX__, #cname)) +# define _INTL_ASMNAME(prefix,cnamestring) _INTL_STRINGIFY (prefix) cnamestring +# define _INTL_STRINGIFY(prefix) #prefix +#else +# define _INTL_ASM(cname) +#endif + +/* _INTL_MAY_RETURN_STRING_ARG(n) declares that the given function may return + its n-th argument literally. This enables GCC to warn for example about + printf (gettext ("foo %y")). */ +#if defined __GNUC__ && __GNUC__ >= 3 && !(defined __APPLE_CC__ && __APPLE_CC__ > 1 && !(defined __clang__ && __clang__ && __clang_major__ >= 3) && defined __cplusplus) +# define _INTL_MAY_RETURN_STRING_ARG(n) __attribute__ ((__format_arg__ (n))) +#else +# define _INTL_MAY_RETURN_STRING_ARG(n) +#endif + +/* Look up MSGID in the current default message catalog for the current + LC_MESSAGES locale. If not found, returns MSGID itself (the default + text). */ +#ifdef _INTL_REDIRECT_INLINE +extern char *libintl_gettext (const char *__msgid) + _INTL_MAY_RETURN_STRING_ARG (1); +static inline +_INTL_MAY_RETURN_STRING_ARG (1) +char *gettext (const char *__msgid) +{ + return libintl_gettext (__msgid); +} +#else +# ifdef _INTL_REDIRECT_MACROS +# define gettext libintl_gettext +# endif +extern char *gettext (const char *__msgid) + _INTL_ASM (libintl_gettext) + _INTL_MAY_RETURN_STRING_ARG (1); +#endif + +/* Look up MSGID in the DOMAINNAME message catalog for the current + LC_MESSAGES locale. */ +#ifdef _INTL_REDIRECT_INLINE +extern char *libintl_dgettext (const char *__domainname, const char *__msgid) + _INTL_MAY_RETURN_STRING_ARG (2); +static inline +_INTL_MAY_RETURN_STRING_ARG (2) +char *dgettext (const char *__domainname, const char *__msgid) +{ + return libintl_dgettext (__domainname, __msgid); +} +#else +# ifdef _INTL_REDIRECT_MACROS +# define dgettext libintl_dgettext +# endif +extern char *dgettext (const char *__domainname, const char *__msgid) + _INTL_ASM (libintl_dgettext) + _INTL_MAY_RETURN_STRING_ARG (2); +#endif + +/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY + locale. */ +#ifdef _INTL_REDIRECT_INLINE +extern char *libintl_dcgettext (const char *__domainname, const char *__msgid, + int __category) + _INTL_MAY_RETURN_STRING_ARG (2); +static inline +_INTL_MAY_RETURN_STRING_ARG (2) +char *dcgettext (const char *__domainname, const char *__msgid, int __category) +{ + return libintl_dcgettext (__domainname, __msgid, __category); +} +#else +# ifdef _INTL_REDIRECT_MACROS +# define dcgettext libintl_dcgettext +# endif +extern char *dcgettext (const char *__domainname, const char *__msgid, + int __category) + _INTL_ASM (libintl_dcgettext) + _INTL_MAY_RETURN_STRING_ARG (2); +#endif + + +/* Similar to 'gettext' but select the plural form corresponding to the + number N. */ +#ifdef _INTL_REDIRECT_INLINE +extern char *libintl_ngettext (const char *__msgid1, const char *__msgid2, + unsigned long int __n) + _INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2); +static inline +_INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2) +char *ngettext (const char *__msgid1, const char *__msgid2, + unsigned long int __n) +{ + return libintl_ngettext (__msgid1, __msgid2, __n); +} +#else +# ifdef _INTL_REDIRECT_MACROS +# define ngettext libintl_ngettext +# endif +extern char *ngettext (const char *__msgid1, const char *__msgid2, + unsigned long int __n) + _INTL_ASM (libintl_ngettext) + _INTL_MAY_RETURN_STRING_ARG (1) _INTL_MAY_RETURN_STRING_ARG (2); +#endif + +/* Similar to 'dgettext' but select the plural form corresponding to the + number N. */ +#ifdef _INTL_REDIRECT_INLINE +extern char *libintl_dngettext (const char *__domainname, const char *__msgid1, + const char *__msgid2, unsigned long int __n) + _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3); +static inline +_INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3) +char *dngettext (const char *__domainname, const char *__msgid1, + const char *__msgid2, unsigned long int __n) +{ + return libintl_dngettext (__domainname, __msgid1, __msgid2, __n); +} +#else +# ifdef _INTL_REDIRECT_MACROS +# define dngettext libintl_dngettext +# endif +extern char *dngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int __n) + _INTL_ASM (libintl_dngettext) + _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3); +#endif + +/* Similar to 'dcgettext' but select the plural form corresponding to the + number N. */ +#ifdef _INTL_REDIRECT_INLINE +extern char *libintl_dcngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int __n, int __category) + _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3); +static inline +_INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3) +char *dcngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int __n, int __category) +{ + return libintl_dcngettext (__domainname, __msgid1, __msgid2, __n, __category); +} +#else +# ifdef _INTL_REDIRECT_MACROS +# define dcngettext libintl_dcngettext +# endif +extern char *dcngettext (const char *__domainname, + const char *__msgid1, const char *__msgid2, + unsigned long int __n, int __category) + _INTL_ASM (libintl_dcngettext) + _INTL_MAY_RETURN_STRING_ARG (2) _INTL_MAY_RETURN_STRING_ARG (3); +#endif + + + +/* Set the current default message catalog to DOMAINNAME. + If DOMAINNAME is null, return the current default. + If DOMAINNAME is "", reset to the default of "messages". */ +# ifdef _INTL_REDIRECT_INLINE +extern char *libintl_textdomain (const char *__domainname); +static inline char *textdomain (const char *__domainname) +{ + return libintl_textdomain (__domainname); +} +# else +# ifdef _INTL_REDIRECT_MACROS +# define textdomain libintl_textdomain +# endif +extern char *textdomain (const char *__domainname) + _INTL_ASM (libintl_textdomain); +# endif + +/* Specify that the DOMAINNAME message catalog will be found + in DIRNAME rather than in the system locale data base. */ +# ifdef _INTL_REDIRECT_INLINE +extern char *libintl_bindtextdomain (const char *__domainname, + const char *__dirname); +static inline char *bindtextdomain (const char *__domainname, + const char *__dirname) +{ + return libintl_bindtextdomain (__domainname, __dirname); +} +# else +# ifdef _INTL_REDIRECT_MACROS +# define bindtextdomain libintl_bindtextdomain +# endif +extern char *bindtextdomain (const char *__domainname, const char *__dirname) + _INTL_ASM (libintl_bindtextdomain); +# endif + +# if defined _WIN32 && !defined __CYGWIN__ +/* Specify that the DOMAINNAME message catalog will be found + in WDIRNAME rather than in the system locale data base. */ +# ifdef _INTL_REDIRECT_INLINE +extern wchar_t *libintl_wbindtextdomain (const char *__domainname, + const wchar_t *__wdirname); +static inline wchar_t *wbindtextdomain (const char *__domainname, + const wchar_t *__wdirname) +{ + return libintl_wbindtextdomain (__domainname, __wdirname); +} +# else +# ifdef _INTL_REDIRECT_MACROS +# define wbindtextdomain libintl_wbindtextdomain +# endif +extern wchar_t *wbindtextdomain (const char *__domainname, + const wchar_t *__wdirname) + _INTL_ASM (libintl_wbindtextdomain); +# endif +# endif + +/* Specify the character encoding in which the messages from the + DOMAINNAME message catalog will be returned. */ +# ifdef _INTL_REDIRECT_INLINE +extern char *libintl_bind_textdomain_codeset (const char *__domainname, + const char *__codeset); +static inline char *bind_textdomain_codeset (const char *__domainname, + const char *__codeset) +{ + return libintl_bind_textdomain_codeset (__domainname, __codeset); +} +# else +# ifdef _INTL_REDIRECT_MACROS +# define bind_textdomain_codeset libintl_bind_textdomain_codeset +# endif +extern char *bind_textdomain_codeset (const char *__domainname, + const char *__codeset) + _INTL_ASM (libintl_bind_textdomain_codeset); +# endif + + + +/* Support for format strings with positions in *printf(), following the + POSIX/XSI specification. + Note: These replacements for the *printf() functions are visible only + in source files that #include or #include "gettext.h". + Packages that use *printf() in source files that don't refer to _() + or gettext() but for which the format string could be the return value + of _() or gettext() need to add this #include. Oh well. */ + +/* Note: In C++ mode, it is not sufficient to redefine a symbol at the + preprocessor macro level, such as + #define sprintf libintl_sprintf + Some programs may reference std::sprintf after including . + Therefore we must make sure that std::libintl_sprintf is defined and + identical to ::libintl_sprintf. + The user can define _INTL_CXX_NO_CLOBBER_STD_NAMESPACE to avoid this. + In such cases, they will not benefit from the overrides when using + the 'std' namespace, and they will need to do the references to the + 'std' namespace *before* including or "gettext.h". */ + +#if !1 + +# include +# include + +/* Get va_list. */ +# if (defined __STDC__ && __STDC__) || defined __cplusplus || defined _MSC_VER +# include +# else +# include +# endif + +# if !((defined fprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_fprintf) /* don't override gnulib */ +# undef fprintf +# define fprintf libintl_fprintf +extern int fprintf (FILE *, const char *, ...); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_fprintf; } +# endif +# endif +# if !((defined vfprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vfprintf) /* don't override gnulib */ +# undef vfprintf +# define vfprintf libintl_vfprintf +extern int vfprintf (FILE *, const char *, va_list); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_vfprintf; } +# endif +# endif + +# if !((defined printf && defined _GL_STDIO_H) || defined GNULIB_overrides_printf) /* don't override gnulib */ +# undef printf +# if defined __NetBSD__ || defined __BEOS__ || defined __CYGWIN__ || defined __MINGW32__ +/* Don't break __attribute__((format(printf,M,N))). + This redefinition is only possible because the libc in NetBSD, Cygwin, + mingw does not have a function __printf__. + Alternatively, we could have done this redirection only when compiling with + __GNUC__, together with a symbol redirection: + extern int printf (const char *, ...) + __asm__ (#__USER_LABEL_PREFIX__ "libintl_printf"); + But doing it now would introduce a binary incompatibility with already + distributed versions of libintl on these systems. */ +# define libintl_printf __printf__ +# endif +# define printf libintl_printf +extern int printf (const char *, ...); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_printf; } +# endif +# endif +# if !((defined vprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vprintf) /* don't override gnulib */ +# undef vprintf +# define vprintf libintl_vprintf +extern int vprintf (const char *, va_list); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_vprintf; } +# endif +# endif + +# if !((defined sprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_sprintf) /* don't override gnulib */ +# undef sprintf +# define sprintf libintl_sprintf +extern int sprintf (char *, const char *, ...); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_sprintf; } +# endif +# endif +# if !((defined vsprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vsprintf) /* don't override gnulib */ +# undef vsprintf +# define vsprintf libintl_vsprintf +extern int vsprintf (char *, const char *, va_list); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_vsprintf; } +# endif +# endif + +# if 1 + +# if !((defined snprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_snprintf) /* don't override gnulib */ +# undef snprintf +# define snprintf libintl_snprintf +extern int snprintf (char *, size_t, const char *, ...); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_snprintf; } +# endif +# endif +# if !((defined vsnprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vsnprintf) /* don't override gnulib */ +# undef vsnprintf +# define vsnprintf libintl_vsnprintf +extern int vsnprintf (char *, size_t, const char *, va_list); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_vsnprintf; } +# endif +# endif + +# endif + +# if 1 + +# if !((defined asprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_asprintf) /* don't override gnulib */ +# undef asprintf +# define asprintf libintl_asprintf +extern int asprintf (char **, const char *, ...); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_asprintf; } +# endif +# endif +# if !((defined vasprintf && defined _GL_STDIO_H) || defined GNULIB_overrides_vasprintf) /* don't override gnulib */ +# undef vasprintf +# define vasprintf libintl_vasprintf +extern int vasprintf (char **, const char *, va_list); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_vasprintf; } +# endif +# endif + +# endif + +# if 1 + +# undef fwprintf +# define fwprintf libintl_fwprintf +extern int fwprintf (FILE *, const wchar_t *, ...); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_fwprintf; } +# endif +# undef vfwprintf +# define vfwprintf libintl_vfwprintf +extern int vfwprintf (FILE *, const wchar_t *, va_list); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_vfwprintf; } +# endif + +# undef wprintf +# define wprintf libintl_wprintf +extern int wprintf (const wchar_t *, ...); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_wprintf; } +# endif +# undef vwprintf +# define vwprintf libintl_vwprintf +extern int vwprintf (const wchar_t *, va_list); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_vwprintf; } +# endif + +# undef swprintf +# define swprintf libintl_swprintf +extern int swprintf (wchar_t *, size_t, const wchar_t *, ...); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_swprintf; } +# endif +# undef vswprintf +# define vswprintf libintl_vswprintf +extern int vswprintf (wchar_t *, size_t, const wchar_t *, va_list); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_vswprintf; } +# endif + +# endif + +#endif + + +/* Support for retrieving the name of a locale_t object. */ +#if 0 + +# ifndef GNULIB_defined_newlocale /* don't override gnulib */ +# undef newlocale +# define newlocale libintl_newlocale +extern locale_t newlocale (int, const char *, locale_t); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_newlocale; } +# endif +# endif + +# ifndef GNULIB_defined_duplocale /* don't override gnulib */ +# undef duplocale +# define duplocale libintl_duplocale +extern locale_t duplocale (locale_t); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_duplocale; } +# endif +# endif + +# ifndef GNULIB_defined_freelocale /* don't override gnulib */ +# undef freelocale +# define freelocale libintl_freelocale +extern void freelocale (locale_t); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_freelocale; } +# endif +# endif + +#endif + + +/* Support for the locale chosen by the user. */ +#if (defined __APPLE__ && defined __MACH__) || defined _WIN32 || defined __CYGWIN__ + +# ifndef GNULIB_defined_setlocale /* don't override gnulib */ +# undef setlocale +# define setlocale libintl_setlocale +extern char *setlocale (int, const char *); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_setlocale; } +# endif +# endif + +# if 1 + +# undef newlocale +# define newlocale libintl_newlocale +/* Declare newlocale() only if the system headers define the 'locale_t' type. */ +# if !(defined __CYGWIN__ && !defined LC_ALL_MASK) +extern locale_t newlocale (int, const char *, locale_t); +# if defined __cplusplus && !defined _INTL_CXX_NO_CLOBBER_STD_NAMESPACE +namespace std { using ::libintl_newlocale; } +# endif +# endif + +# endif + +#endif + + +/* Support for relocatable packages. */ + +/* Sets the original and the current installation prefix of the package. + Relocation simply replaces a pathname starting with the original prefix + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +#define libintl_set_relocation_prefix libintl_set_relocation_prefix +extern void + libintl_set_relocation_prefix (const char *orig_prefix, + const char *curr_prefix); + + +#ifdef __cplusplus +} +#endif + +#endif /* libintl.h */ diff --git a/code/application/source/sf_app/tools/blue/include/menu.h b/code/application/source/sf_app/tools/blue/include/menu.h new file mode 100644 index 000000000..e5a53729d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/menu.h @@ -0,0 +1,281 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Juergen Pfeifer, 1995,1997 * + ****************************************************************************/ + +/* $Id: menu.h,v 1.26 2020/12/12 00:38:02 tom Exp $ */ + +#ifndef ETI_MENU +#define ETI_MENU + +#ifdef AMIGA +#define TEXT TEXT_ncurses +#endif + +#include +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + +#if defined(BUILDING_MENU) +# define MENU_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT +#else +# define MENU_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT +#endif + +#define MENU_WRAPPED_VAR(type,name) extern MENU_IMPEXP type NCURSES_PUBLIC_VAR(name)(void) + +#define MENU_EXPORT(type) MENU_IMPEXP type NCURSES_API +#define MENU_EXPORT_VAR(type) MENU_IMPEXP type + + typedef int Menu_Options; + typedef int Item_Options; + +/* Menu options: */ +#define O_ONEVALUE (0x01) +#define O_SHOWDESC (0x02) +#define O_ROWMAJOR (0x04) +#define O_IGNORECASE (0x08) +#define O_SHOWMATCH (0x10) +#define O_NONCYCLIC (0x20) +#define O_MOUSE_MENU (0x40) + +/* Item options: */ +#define O_SELECTABLE (0x01) + +#if !NCURSES_OPAQUE_MENU + typedef struct + { + const char *str; + unsigned short length; + } + TEXT; +#endif /* !NCURSES_OPAQUE_MENU */ + + struct tagMENU; + + typedef struct tagITEM +#if !NCURSES_OPAQUE_MENU + { + TEXT name; /* name of menu item */ + TEXT description; /* description of item, optional in display */ + struct tagMENU *imenu; /* Pointer to parent menu */ + void *userptr; /* Pointer to user defined per item data */ + Item_Options opt; /* Item options */ + short index; /* Item number if connected to a menu */ + short y; /* y and x location of item in menu */ + short x; + bool value; /* Selection value */ + + struct tagITEM *left; /* neighbor items */ + struct tagITEM *right; + struct tagITEM *up; + struct tagITEM *down; + + } +#endif /* !NCURSES_OPAQUE_MENU */ + ITEM; + + typedef void (*Menu_Hook) (struct tagMENU *); + + typedef struct tagMENU +#if 1 /* not yet: !NCURSES_OPAQUE_MENU */ + { + short height; /* Nr. of chars high */ + short width; /* Nr. of chars wide */ + short rows; /* Nr. of items high */ + short cols; /* Nr. of items wide */ + short frows; /* Nr. of formatted items high */ + short fcols; /* Nr. of formatted items wide */ + short arows; /* Nr. of items high (actual) */ + short namelen; /* Max. name length */ + short desclen; /* Max. description length */ + short marklen; /* Length of mark, if any */ + short itemlen; /* Length of one item */ + short spc_desc; /* Spacing for descriptor */ + short spc_cols; /* Spacing for columns */ + short spc_rows; /* Spacing for rows */ + char *pattern; /* Buffer to store match chars */ + short pindex; /* Index into pattern buffer */ + WINDOW *win; /* Window containing menu */ + WINDOW *sub; /* Subwindow for menu display */ + WINDOW *userwin; /* User's window */ + WINDOW *usersub; /* User's subwindow */ + ITEM **items; /* array of items */ + short nitems; /* Nr. of items in menu */ + ITEM *curitem; /* Current item */ + short toprow; /* Top row of menu */ + chtype fore; /* Selection attribute */ + chtype back; /* Nonselection attribute */ + chtype grey; /* Inactive attribute */ + unsigned char pad; /* Pad character */ + + Menu_Hook menuinit; /* User hooks */ + Menu_Hook menuterm; + Menu_Hook iteminit; + Menu_Hook itemterm; + + void *userptr; /* Pointer to menus user data */ + char *mark; /* Pointer to marker string */ + + Menu_Options opt; /* Menu options */ + unsigned short status; /* Internal state of menu */ + } +#endif /* !NCURSES_OPAQUE_MENU */ + MENU; + +/* Define keys */ + +#define REQ_LEFT_ITEM (KEY_MAX + 1) +#define REQ_RIGHT_ITEM (KEY_MAX + 2) +#define REQ_UP_ITEM (KEY_MAX + 3) +#define REQ_DOWN_ITEM (KEY_MAX + 4) +#define REQ_SCR_ULINE (KEY_MAX + 5) +#define REQ_SCR_DLINE (KEY_MAX + 6) +#define REQ_SCR_DPAGE (KEY_MAX + 7) +#define REQ_SCR_UPAGE (KEY_MAX + 8) +#define REQ_FIRST_ITEM (KEY_MAX + 9) +#define REQ_LAST_ITEM (KEY_MAX + 10) +#define REQ_NEXT_ITEM (KEY_MAX + 11) +#define REQ_PREV_ITEM (KEY_MAX + 12) +#define REQ_TOGGLE_ITEM (KEY_MAX + 13) +#define REQ_CLEAR_PATTERN (KEY_MAX + 14) +#define REQ_BACK_PATTERN (KEY_MAX + 15) +#define REQ_NEXT_MATCH (KEY_MAX + 16) +#define REQ_PREV_MATCH (KEY_MAX + 17) + +#define MIN_MENU_COMMAND (KEY_MAX + 1) +#define MAX_MENU_COMMAND (KEY_MAX + 17) + +/* + * Some AT&T code expects MAX_COMMAND to be out-of-band not + * just for menu commands but for forms ones as well. + */ +#if defined(MAX_COMMAND) +# if (MAX_MENU_COMMAND > MAX_COMMAND) +# error Something is wrong -- MAX_MENU_COMMAND is greater than MAX_COMMAND +# elif (MAX_COMMAND != (KEY_MAX + 128)) +# error Something is wrong -- MAX_COMMAND is already inconsistently defined. +# endif +#else +# define MAX_COMMAND (KEY_MAX + 128) +#endif + +/* --------- prototypes for libmenu functions ----------------------------- */ + + extern MENU_EXPORT(ITEM **) menu_items(const MENU *); + extern MENU_EXPORT(ITEM *) current_item(const MENU *); + extern MENU_EXPORT(ITEM *) new_item(const char *, const char *); + + extern MENU_EXPORT(MENU *) new_menu(ITEM **); + + extern MENU_EXPORT(Item_Options) item_opts(const ITEM *); + extern MENU_EXPORT(Menu_Options) menu_opts(const MENU *); + + extern MENU_EXPORT(Menu_Hook) item_init(const MENU *); + extern MENU_EXPORT(Menu_Hook) item_term(const MENU *); + extern MENU_EXPORT(Menu_Hook) menu_init(const MENU *); + extern MENU_EXPORT(Menu_Hook) menu_term(const MENU *); + + extern MENU_EXPORT(WINDOW *) menu_sub(const MENU *); + extern MENU_EXPORT(WINDOW *) menu_win(const MENU *); + + extern MENU_EXPORT(const char *) item_description(const ITEM *); + extern MENU_EXPORT(const char *) item_name(const ITEM *); + extern MENU_EXPORT(const char *) menu_mark(const MENU *); + extern MENU_EXPORT(const char *) menu_request_name(int); + + extern MENU_EXPORT(char *) menu_pattern(const MENU *); + + extern MENU_EXPORT(void *) menu_userptr(const MENU *); + extern MENU_EXPORT(void *) item_userptr(const ITEM *); + + extern MENU_EXPORT(chtype) menu_back(const MENU *); + extern MENU_EXPORT(chtype) menu_fore(const MENU *); + extern MENU_EXPORT(chtype) menu_grey(const MENU *); + + extern MENU_EXPORT(int) free_item(ITEM *); + extern MENU_EXPORT(int) free_menu(MENU *); + extern MENU_EXPORT(int) item_count(const MENU *); + extern MENU_EXPORT(int) item_index(const ITEM *); + extern MENU_EXPORT(int) item_opts_off(ITEM *, Item_Options); + extern MENU_EXPORT(int) item_opts_on(ITEM *, Item_Options); + extern MENU_EXPORT(int) menu_driver(MENU *, int); + extern MENU_EXPORT(int) menu_opts_off(MENU *, Menu_Options); + extern MENU_EXPORT(int) menu_opts_on(MENU *, Menu_Options); + extern MENU_EXPORT(int) menu_pad(const MENU *); + extern MENU_EXPORT(int) pos_menu_cursor(const MENU *); + extern MENU_EXPORT(int) post_menu(MENU *); + extern MENU_EXPORT(int) scale_menu(const MENU *, int *, int *); + extern MENU_EXPORT(int) set_current_item(MENU *menu, ITEM *item); + extern MENU_EXPORT(int) set_item_init(MENU *, Menu_Hook); + extern MENU_EXPORT(int) set_item_opts(ITEM *, Item_Options); + extern MENU_EXPORT(int) set_item_term(MENU *, Menu_Hook); + extern MENU_EXPORT(int) set_item_userptr(ITEM *, void *); + extern MENU_EXPORT(int) set_item_value(ITEM *, bool); + extern MENU_EXPORT(int) set_menu_back(MENU *, chtype); + extern MENU_EXPORT(int) set_menu_fore(MENU *, chtype); + extern MENU_EXPORT(int) set_menu_format(MENU *, int, int); + extern MENU_EXPORT(int) set_menu_grey(MENU *, chtype); + extern MENU_EXPORT(int) set_menu_init(MENU *, Menu_Hook); + extern MENU_EXPORT(int) set_menu_items(MENU *, ITEM **); + extern MENU_EXPORT(int) set_menu_mark(MENU *, const char *); + extern MENU_EXPORT(int) set_menu_opts(MENU *, Menu_Options); + extern MENU_EXPORT(int) set_menu_pad(MENU *, int); + extern MENU_EXPORT(int) set_menu_pattern(MENU *, const char *); + extern MENU_EXPORT(int) set_menu_sub(MENU *, WINDOW *); + extern MENU_EXPORT(int) set_menu_term(MENU *, Menu_Hook); + extern MENU_EXPORT(int) set_menu_userptr(MENU *, void *); + extern MENU_EXPORT(int) set_menu_win(MENU *, WINDOW *); + extern MENU_EXPORT(int) set_top_row(MENU *, int); + extern MENU_EXPORT(int) top_row(const MENU *); + extern MENU_EXPORT(int) unpost_menu(MENU *); + extern MENU_EXPORT(int) menu_request_by_name(const char *); + extern MENU_EXPORT(int) set_menu_spacing(MENU *, int, int, int); + extern MENU_EXPORT(int) menu_spacing(const MENU *, int *, int *, int *); + + extern MENU_EXPORT(bool) item_value(const ITEM *); + extern MENU_EXPORT(bool) item_visible(const ITEM *); + + extern MENU_EXPORT(void) menu_format(const MENU *, int *, int *); + +#if NCURSES_SP_FUNCS + extern MENU_EXPORT(MENU *) NCURSES_SP_NAME(new_menu) (SCREEN *, ITEM **); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* ETI_MENU */ diff --git a/code/application/source/sf_app/tools/blue/include/ncurses.h b/code/application/source/sf_app/tools/blue/include/ncurses.h new file mode 100644 index 000000000..a7abea0f1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/ncurses.h @@ -0,0 +1,1800 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* $Id: curses.h.in,v 1.277 2021/09/24 16:07:37 tom Exp $ */ + +#ifndef __NCURSES_H +#define __NCURSES_H + +/* + The symbols beginning NCURSES_ or USE_ are configuration choices. + A few of the former can be overridden by applications at compile-time. + Most of the others correspond to configure-script options (or checks + by the configure-script for features of the system on which it is built). + + These symbols can be overridden by applications at compile-time: + NCURSES_NOMACROS suppresses macro definitions in favor of functions + NCURSES_WATTR_MACROS suppresses wattr_* macro definitions + NCURSES_WIDECHAR is an alternative for declaring wide-character functions. + + These symbols are used only when building ncurses: + NCURSES_ATTR_T + NCURSES_FIELD_INTERNALS + NCURSES_INTERNALS + + These symbols are set by the configure script: + NCURSES_ENABLE_STDBOOL_H + NCURSES_EXPANDED + NCURSES_EXT_COLORS + NCURSES_EXT_FUNCS + NCURSES_EXT_PUTWIN + NCURSES_NO_PADDING + NCURSES_OSPEED_COMPAT + NCURSES_PATHSEP + NCURSES_REENTRANT + */ + +#define CURSES 1 +#define CURSES_H 1 + +/* These are defined only in curses.h, and are used for conditional compiles */ +#define NCURSES_VERSION_MAJOR 6 +#define NCURSES_VERSION_MINOR 3 +#define NCURSES_VERSION_PATCH 20211021 + +/* This is defined in more than one ncurses header, for identification */ +#undef NCURSES_VERSION +#define NCURSES_VERSION "6.3" + +/* + * Identify the mouse encoding version. + */ +#define NCURSES_MOUSE_VERSION 2 + +/* + * Definitions to facilitate DLL's. + */ +#include + +/* + * Extra headers. + */ +#if 1 +#include +#endif + +#ifdef __cplusplus +#else +#if 0 +#include +#undef GCC_NORETURN +#define GCC_NORETURN _Noreturn +#endif +#endif + +/* + * User-definable tweak to disable the include of . + */ +#ifndef NCURSES_ENABLE_STDBOOL_H +#define NCURSES_ENABLE_STDBOOL_H 1 +#endif + +/* + * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses + * configured using --disable-macros. + */ +#ifndef NCURSES_ATTR_T +#define NCURSES_ATTR_T int +#endif + +/* + * Expands to 'const' if ncurses is configured using --enable-const. Note that + * doing so makes it incompatible with other implementations of X/Open Curses. + */ +#undef NCURSES_CONST +#define NCURSES_CONST const + +#undef NCURSES_INLINE +#define NCURSES_INLINE inline + +/* + * The standard type used for color values, and for color-pairs. The latter + * allows the curses library to enumerate the combinations of foreground and + * background colors used by an application, and is normally the product of the + * total foreground and background colors. + * + * X/Open uses "short" for both of these types, ultimately because they are + * numbers from the SVr4 terminal database, which uses 16-bit signed values. + */ +#undef NCURSES_COLOR_T +#define NCURSES_COLOR_T short + +#undef NCURSES_PAIRS_T +#define NCURSES_PAIRS_T short + +/* + * Definitions used to make WINDOW and similar structs opaque. + */ +#ifndef NCURSES_INTERNALS +#define NCURSES_OPAQUE 0 +#define NCURSES_OPAQUE_FORM 0 +#define NCURSES_OPAQUE_MENU 0 +#define NCURSES_OPAQUE_PANEL 0 +#endif + +/* + * Definition used to optionally suppress wattr* macros to help with the + * transition from ncurses5 to ncurses6 by allowing the header files to + * be shared across development packages for ncursesw in both ABIs. + */ +#ifndef NCURSES_WATTR_MACROS +#define NCURSES_WATTR_MACROS 0 +#endif + +/* + * The reentrant code relies on the opaque setting, but adds features. + */ +#ifndef NCURSES_REENTRANT +#define NCURSES_REENTRANT 0 +#endif + +/* + * In certain environments, we must work around linker problems for data + */ +#undef NCURSES_BROKEN_LINKER +#if 0 +#define NCURSES_BROKEN_LINKER 1 +#endif + +/* + * Control whether bindings for interop support are added. + */ +#undef NCURSES_INTEROP_FUNCS +#define NCURSES_INTEROP_FUNCS 1 + +/* + * The internal type used for window dimensions. + */ +#undef NCURSES_SIZE_T +#define NCURSES_SIZE_T short + +/* + * Control whether tparm() supports varargs or fixed-parameter list. + */ +#undef NCURSES_TPARM_VARARGS +#define NCURSES_TPARM_VARARGS 1 + +/* + * Control type used for tparm's arguments. While X/Open equates long and + * char* values, this is not always workable for 64-bit platforms. + */ +#undef NCURSES_TPARM_ARG +#define NCURSES_TPARM_ARG intptr_t + +/* + * Control whether ncurses uses wcwidth() for checking width of line-drawing + * characters. + */ +#undef NCURSES_WCWIDTH_GRAPHICS +#define NCURSES_WCWIDTH_GRAPHICS 1 + +/* + * NCURSES_CH_T is used in building the library, but not used otherwise in + * this header file, since that would make the normal/wide-character versions + * of the header incompatible. + */ +#undef NCURSES_CH_T +#define NCURSES_CH_T chtype + +#if 1 && defined(_LP64) +typedef unsigned chtype; +typedef unsigned mmask_t; +#else +typedef uint32_t chtype; +typedef uint32_t mmask_t; +#endif + +/* + * We need FILE, etc. Include this before checking any feature symbols. + */ +#include + +/* + * With XPG4, you must define _XOPEN_SOURCE_EXTENDED, it is redundant (or + * conflicting) when _XOPEN_SOURCE is 500 or greater. If NCURSES_WIDECHAR is + * not already defined, e.g., if the platform relies upon nonstandard feature + * test macros, define it at this point if the standard feature test macros + * indicate that it should be defined. + */ +#ifndef NCURSES_WIDECHAR +#if defined(_XOPEN_SOURCE_EXTENDED) || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500)) +#define NCURSES_WIDECHAR 1 +#else +#define NCURSES_WIDECHAR 0 +#endif +#endif /* NCURSES_WIDECHAR */ + +#include /* we need va_list */ +#if NCURSES_WIDECHAR +#include /* we want wchar_t */ +#endif + +/* X/Open and SVr4 specify that curses implements 'bool'. However, C++ may also + * implement it. If so, we must use the C++ compiler's type to avoid conflict + * with other interfaces. + * + * A further complication is that may declare 'bool' to be a + * different type, such as an enum which is not necessarily compatible with + * C++. If we have , make 'bool' a macro, so users may #undef it. + * Otherwise, let it remain a typedef to avoid conflicts with other #define's. + * In either case, make a typedef for NCURSES_BOOL which can be used if needed + * from either C or C++. + */ + +#undef TRUE +#define TRUE 1 + +#undef FALSE +#define FALSE 0 + +typedef unsigned char NCURSES_BOOL; + +#if defined(__cplusplus) /* __cplusplus, etc. */ + +/* use the C++ compiler's bool type */ +#define NCURSES_BOOL bool + +#else /* c89, c99, etc. */ + +#if NCURSES_ENABLE_STDBOOL_H +#include +/* use whatever the C compiler decides bool really is */ +#define NCURSES_BOOL bool +#else +/* there is no predefined bool - use our own */ +#undef bool +#define bool NCURSES_BOOL +#endif + +#endif /* !__cplusplus, etc. */ + +#ifdef __cplusplus +extern "C" { +#define NCURSES_CAST(type,value) static_cast(value) +#else +#define NCURSES_CAST(type,value) (type)(value) +#endif + +#define NCURSES_OK_ADDR(p) (0 != NCURSES_CAST(const void *, (p))) + +/* + * X/Open attributes. In the ncurses implementation, they are identical to the + * A_ attributes. + */ +#define WA_ATTRIBUTES A_ATTRIBUTES +#define WA_NORMAL A_NORMAL +#define WA_STANDOUT A_STANDOUT +#define WA_UNDERLINE A_UNDERLINE +#define WA_REVERSE A_REVERSE +#define WA_BLINK A_BLINK +#define WA_DIM A_DIM +#define WA_BOLD A_BOLD +#define WA_ALTCHARSET A_ALTCHARSET +#define WA_INVIS A_INVIS +#define WA_PROTECT A_PROTECT +#define WA_HORIZONTAL A_HORIZONTAL +#define WA_LEFT A_LEFT +#define WA_LOW A_LOW +#define WA_RIGHT A_RIGHT +#define WA_TOP A_TOP +#define WA_VERTICAL A_VERTICAL + +#if 1 +#define WA_ITALIC A_ITALIC /* ncurses extension */ +#endif + +/* colors */ +#define COLOR_BLACK 0 +#define COLOR_RED 1 +#define COLOR_GREEN 2 +#define COLOR_YELLOW 3 +#define COLOR_BLUE 4 +#define COLOR_MAGENTA 5 +#define COLOR_CYAN 6 +#define COLOR_WHITE 7 + +/* line graphics */ + +#if 0 || NCURSES_REENTRANT +NCURSES_WRAPPED_VAR(chtype*, acs_map); +#define acs_map NCURSES_PUBLIC_VAR(acs_map()) +#else +extern NCURSES_EXPORT_VAR(chtype) acs_map[]; +#endif + +#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,(c))]) + +/* VT100 symbols begin here */ +#define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */ +#define ACS_LLCORNER NCURSES_ACS('m') /* lower left corner */ +#define ACS_URCORNER NCURSES_ACS('k') /* upper right corner */ +#define ACS_LRCORNER NCURSES_ACS('j') /* lower right corner */ +#define ACS_LTEE NCURSES_ACS('t') /* tee pointing right */ +#define ACS_RTEE NCURSES_ACS('u') /* tee pointing left */ +#define ACS_BTEE NCURSES_ACS('v') /* tee pointing up */ +#define ACS_TTEE NCURSES_ACS('w') /* tee pointing down */ +#define ACS_HLINE NCURSES_ACS('q') /* horizontal line */ +#define ACS_VLINE NCURSES_ACS('x') /* vertical line */ +#define ACS_PLUS NCURSES_ACS('n') /* large plus or crossover */ +#define ACS_S1 NCURSES_ACS('o') /* scan line 1 */ +#define ACS_S9 NCURSES_ACS('s') /* scan line 9 */ +#define ACS_DIAMOND NCURSES_ACS('`') /* diamond */ +#define ACS_CKBOARD NCURSES_ACS('a') /* checker board (stipple) */ +#define ACS_DEGREE NCURSES_ACS('f') /* degree symbol */ +#define ACS_PLMINUS NCURSES_ACS('g') /* plus/minus */ +#define ACS_BULLET NCURSES_ACS('~') /* bullet */ +/* Teletype 5410v1 symbols begin here */ +#define ACS_LARROW NCURSES_ACS(',') /* arrow pointing left */ +#define ACS_RARROW NCURSES_ACS('+') /* arrow pointing right */ +#define ACS_DARROW NCURSES_ACS('.') /* arrow pointing down */ +#define ACS_UARROW NCURSES_ACS('-') /* arrow pointing up */ +#define ACS_BOARD NCURSES_ACS('h') /* board of squares */ +#define ACS_LANTERN NCURSES_ACS('i') /* lantern symbol */ +#define ACS_BLOCK NCURSES_ACS('0') /* solid square block */ +/* + * These aren't documented, but a lot of System Vs have them anyway + * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings). + * The ACS_names may not match AT&T's, our source didn't know them. + */ +#define ACS_S3 NCURSES_ACS('p') /* scan line 3 */ +#define ACS_S7 NCURSES_ACS('r') /* scan line 7 */ +#define ACS_LEQUAL NCURSES_ACS('y') /* less/equal */ +#define ACS_GEQUAL NCURSES_ACS('z') /* greater/equal */ +#define ACS_PI NCURSES_ACS('{') /* Pi */ +#define ACS_NEQUAL NCURSES_ACS('|') /* not equal */ +#define ACS_STERLING NCURSES_ACS('}') /* UK pound sign */ + +/* + * Line drawing ACS names are of the form ACS_trbl, where t is the top, r + * is the right, b is the bottom, and l is the left. t, r, b, and l might + * be B (blank), S (single), D (double), or T (thick). The subset defined + * here only uses B and S. + */ +#define ACS_BSSB ACS_ULCORNER +#define ACS_SSBB ACS_LLCORNER +#define ACS_BBSS ACS_URCORNER +#define ACS_SBBS ACS_LRCORNER +#define ACS_SBSS ACS_RTEE +#define ACS_SSSB ACS_LTEE +#define ACS_SSBS ACS_BTEE +#define ACS_BSSS ACS_TTEE +#define ACS_BSBS ACS_HLINE +#define ACS_SBSB ACS_VLINE +#define ACS_SSSS ACS_PLUS + +#undef ERR +#define ERR (-1) + +#undef OK +#define OK (0) + +/* values for the _flags member */ +#define _SUBWIN 0x01 /* is this a sub-window? */ +#define _ENDLINE 0x02 /* is the window flush right? */ +#define _FULLWIN 0x04 /* is the window full-screen? */ +#define _SCROLLWIN 0x08 /* bottom edge is at screen bottom? */ +#define _ISPAD 0x10 /* is this window a pad? */ +#define _HASMOVED 0x20 /* has cursor moved since last refresh? */ +#define _WRAPPED 0x40 /* cursor was just wrappped */ + +/* + * this value is used in the firstchar and lastchar fields to mark + * unchanged lines + */ +#define _NOCHANGE -1 + +/* + * this value is used in the oldindex field to mark lines created by insertions + * and scrolls. + */ +#define _NEWINDEX -1 + +#ifdef NCURSES_INTERNALS +#undef SCREEN +#define SCREEN struct screen +SCREEN; +#else +typedef struct screen SCREEN; +#endif + +typedef struct _win_st WINDOW; + +typedef chtype attr_t; /* ...must be at least as wide as chtype */ + +#if NCURSES_WIDECHAR + +#if 0 +#ifdef mblen /* libutf8.h defines it w/o undefining first */ +#undef mblen +#endif +#include +#endif + +#if 0 +#include /* ...to get mbstate_t, etc. */ +#endif + +#if 0 +typedef unsigned short wchar_t; +#endif + +#if 0 +typedef unsigned int wint_t; +#endif + +/* + * cchar_t stores an array of CCHARW_MAX wide characters. The first is + * normally a spacing character. The others are non-spacing. If those + * (spacing and nonspacing) do not fill the array, a null L'\0' follows. + * Otherwise, a null is assumed to follow when extracting via getcchar(). + */ +#define CCHARW_MAX 5 +typedef struct +{ + attr_t attr; + wchar_t chars[CCHARW_MAX]; +#if 0 +#undef NCURSES_EXT_COLORS +#define NCURSES_EXT_COLORS 20211021 + int ext_color; /* color pair, must be more than 16-bits */ +#endif +} +cchar_t; + +#endif /* NCURSES_WIDECHAR */ + +#if !NCURSES_OPAQUE +struct ldat; + +struct _win_st +{ + NCURSES_SIZE_T _cury, _curx; /* current cursor position */ + + /* window location and size */ + NCURSES_SIZE_T _maxy, _maxx; /* maximums of x and y, NOT window size */ + NCURSES_SIZE_T _begy, _begx; /* screen coords of upper-left-hand corner */ + + short _flags; /* window state flags */ + + /* attribute tracking */ + attr_t _attrs; /* current attribute for non-space character */ + chtype _bkgd; /* current background char/attribute pair */ + + /* option values set by user */ + bool _notimeout; /* no time out on function-key entry? */ + bool _clear; /* consider all data in the window invalid? */ + bool _leaveok; /* OK to not reset cursor on exit? */ + bool _scroll; /* OK to scroll this window? */ + bool _idlok; /* OK to use insert/delete line? */ + bool _idcok; /* OK to use insert/delete char? */ + bool _immed; /* window in immed mode? (not yet used) */ + bool _sync; /* window in sync mode? */ + bool _use_keypad; /* process function keys into KEY_ symbols? */ + int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */ + + struct ldat *_line; /* the actual line data */ + + /* global screen state */ + NCURSES_SIZE_T _regtop; /* top line of scrolling region */ + NCURSES_SIZE_T _regbottom; /* bottom line of scrolling region */ + + /* these are used only if this is a sub-window */ + int _parx; /* x coordinate of this window in parent */ + int _pary; /* y coordinate of this window in parent */ + WINDOW *_parent; /* pointer to parent if a sub-window */ + + /* these are used only if this is a pad */ + struct pdat + { + NCURSES_SIZE_T _pad_y, _pad_x; + NCURSES_SIZE_T _pad_top, _pad_left; + NCURSES_SIZE_T _pad_bottom, _pad_right; + } _pad; + + NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */ + +#if NCURSES_WIDECHAR + cchar_t _bkgrnd; /* current background char/attribute pair */ +#if 0 + int _color; /* current color-pair for non-space character */ +#endif +#endif +}; +#endif /* NCURSES_OPAQUE */ + +/* + * GCC (and some other compilers) define '__attribute__'; we're using this + * macro to alert the compiler to flag inconsistencies in printf/scanf-like + * function calls. Just in case '__attribute__' isn't defined, make a dummy. + * Old versions of G++ do not accept it anyway, at least not consistently with + * GCC. + */ +#if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__)) +#define __attribute__(p) /* nothing */ +#endif + +/* + * We cannot define these in ncurses_cfg.h, since they require parameters to be + * passed (that is non-portable). + */ +#ifndef GCC_PRINTFLIKE +#ifndef printf +#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) +#else +#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ +#endif +#endif + +#ifndef GCC_SCANFLIKE +#ifndef scanf +#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) +#else +#define GCC_SCANFLIKE(fmt,var) /*nothing*/ +#endif +#endif + +#ifndef GCC_NORETURN +#define GCC_NORETURN /* nothing */ +#endif + +#ifndef GCC_UNUSED +#define GCC_UNUSED /* nothing */ +#endif + +#undef GCC_DEPRECATED +#if (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2)) && !defined(NCURSES_INTERNALS) +#define GCC_DEPRECATED(msg) __attribute__((deprecated)) +#else +#define GCC_DEPRECATED(msg) /* nothing */ +#endif + +/* + * Curses uses a helper function. Define our type for this to simplify + * extending it for the sp-funcs feature. + */ +typedef int (*NCURSES_OUTC)(int); + +/* + * Function prototypes. This is the complete X/Open Curses list of required + * functions. Those marked `generated' will have sources generated from the + * macro definitions later in this file, in order to satisfy XPG4.2 + * requirements. + */ + +extern NCURSES_EXPORT(int) addch (const chtype); /* generated */ +extern NCURSES_EXPORT(int) addchnstr (const chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) addchstr (const chtype *); /* generated */ +extern NCURSES_EXPORT(int) addnstr (const char *, int); /* generated */ +extern NCURSES_EXPORT(int) addstr (const char *); /* generated */ +extern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T); /* generated */ +extern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T); /* generated */ +extern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T); /* generated */ +extern NCURSES_EXPORT(int) attr_get (attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ +extern NCURSES_EXPORT(int) attr_off (attr_t, void *); /* generated */ +extern NCURSES_EXPORT(int) attr_on (attr_t, void *); /* generated */ +extern NCURSES_EXPORT(int) attr_set (attr_t, NCURSES_PAIRS_T, void *); /* generated */ +extern NCURSES_EXPORT(int) baudrate (void); /* implemented */ +extern NCURSES_EXPORT(int) beep (void); /* implemented */ +extern NCURSES_EXPORT(int) bkgd (chtype); /* generated */ +extern NCURSES_EXPORT(void) bkgdset (chtype); /* generated */ +extern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* generated */ +extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype); /* generated */ +extern NCURSES_EXPORT(bool) can_change_color (void); /* implemented */ +extern NCURSES_EXPORT(int) cbreak (void); /* implemented */ +extern NCURSES_EXPORT(int) chgat (int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ +extern NCURSES_EXPORT(int) clear (void); /* generated */ +extern NCURSES_EXPORT(int) clearok (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) clrtobot (void); /* generated */ +extern NCURSES_EXPORT(int) clrtoeol (void); /* generated */ +extern NCURSES_EXPORT(int) color_content (NCURSES_COLOR_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ +extern NCURSES_EXPORT(int) color_set (NCURSES_PAIRS_T,void*); /* generated */ +extern NCURSES_EXPORT(int) COLOR_PAIR (int); /* generated */ +extern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) curs_set (int); /* implemented */ +extern NCURSES_EXPORT(int) def_prog_mode (void); /* implemented */ +extern NCURSES_EXPORT(int) def_shell_mode (void); /* implemented */ +extern NCURSES_EXPORT(int) delay_output (int); /* implemented */ +extern NCURSES_EXPORT(int) delch (void); /* generated */ +extern NCURSES_EXPORT(void) delscreen (SCREEN *); /* implemented */ +extern NCURSES_EXPORT(int) delwin (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) deleteln (void); /* generated */ +extern NCURSES_EXPORT(WINDOW *) derwin (WINDOW *,int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) doupdate (void); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) dupwin (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) echo (void); /* implemented */ +extern NCURSES_EXPORT(int) echochar (const chtype); /* generated */ +extern NCURSES_EXPORT(int) erase (void); /* generated */ +extern NCURSES_EXPORT(int) endwin (void); /* implemented */ +extern NCURSES_EXPORT(char) erasechar (void); /* implemented */ +extern NCURSES_EXPORT(void) filter (void); /* implemented */ +extern NCURSES_EXPORT(int) flash (void); /* implemented */ +extern NCURSES_EXPORT(int) flushinp (void); /* implemented */ +extern NCURSES_EXPORT(chtype) getbkgd (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getch (void); /* generated */ +extern NCURSES_EXPORT(int) getnstr (char *, int); /* generated */ +extern NCURSES_EXPORT(int) getstr (char *); /* generated */ +extern NCURSES_EXPORT(WINDOW *) getwin (FILE *); /* implemented */ +extern NCURSES_EXPORT(int) halfdelay (int); /* implemented */ +extern NCURSES_EXPORT(bool) has_colors (void); /* implemented */ +extern NCURSES_EXPORT(bool) has_ic (void); /* implemented */ +extern NCURSES_EXPORT(bool) has_il (void); /* implemented */ +extern NCURSES_EXPORT(int) hline (chtype, int); /* generated */ +extern NCURSES_EXPORT(void) idcok (WINDOW *, bool); /* implemented */ +extern NCURSES_EXPORT(int) idlok (WINDOW *, bool); /* implemented */ +extern NCURSES_EXPORT(void) immedok (WINDOW *, bool); /* implemented */ +extern NCURSES_EXPORT(chtype) inch (void); /* generated */ +extern NCURSES_EXPORT(int) inchnstr (chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) inchstr (chtype *); /* generated */ +extern NCURSES_EXPORT(WINDOW *) initscr (void); /* implemented */ +extern NCURSES_EXPORT(int) init_color (NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ +extern NCURSES_EXPORT(int) init_pair (NCURSES_PAIRS_T,NCURSES_COLOR_T,NCURSES_COLOR_T); /* implemented */ +extern NCURSES_EXPORT(int) innstr (char *, int); /* generated */ +extern NCURSES_EXPORT(int) insch (chtype); /* generated */ +extern NCURSES_EXPORT(int) insdelln (int); /* generated */ +extern NCURSES_EXPORT(int) insertln (void); /* generated */ +extern NCURSES_EXPORT(int) insnstr (const char *, int); /* generated */ +extern NCURSES_EXPORT(int) insstr (const char *); /* generated */ +extern NCURSES_EXPORT(int) instr (char *); /* generated */ +extern NCURSES_EXPORT(int) intrflush (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(bool) isendwin (void); /* implemented */ +extern NCURSES_EXPORT(bool) is_linetouched (WINDOW *,int); /* implemented */ +extern NCURSES_EXPORT(bool) is_wintouched (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(NCURSES_CONST char *) keyname (int); /* implemented */ +extern NCURSES_EXPORT(int) keypad (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(char) killchar (void); /* implemented */ +extern NCURSES_EXPORT(int) leaveok (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(char *) longname (void); /* implemented */ +extern NCURSES_EXPORT(int) meta (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) move (int, int); /* generated */ +extern NCURSES_EXPORT(int) mvaddch (int, int, const chtype); /* generated */ +extern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *); /* generated */ +extern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvaddstr (int, int, const char *); /* generated */ +extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, NCURSES_PAIRS_T, const void *); /* generated */ +extern NCURSES_EXPORT(int) mvcur (int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) mvdelch (int, int); /* generated */ +extern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int); /* implemented */ +extern NCURSES_EXPORT(int) mvgetch (int, int); /* generated */ +extern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvgetstr (int, int, char *); /* generated */ +extern NCURSES_EXPORT(int) mvhline (int, int, chtype, int); /* generated */ +extern NCURSES_EXPORT(chtype) mvinch (int, int); /* generated */ +extern NCURSES_EXPORT(int) mvinchnstr (int, int, chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) mvinchstr (int, int, chtype *); /* generated */ +extern NCURSES_EXPORT(int) mvinnstr (int, int, char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvinsch (int, int, chtype); /* generated */ +extern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvinsstr (int, int, const char *); /* generated */ +extern NCURSES_EXPORT(int) mvinstr (int, int, char *); /* generated */ +extern NCURSES_EXPORT(int) mvprintw (int,int, const char *,...) /* implemented */ + GCC_PRINTFLIKE(3,4); +extern NCURSES_EXPORT(int) mvscanw (int,int, const char *,...) /* implemented */ + GCC_SCANFLIKE(3,4); +extern NCURSES_EXPORT(int) mvvline (int, int, chtype, int); /* generated */ +extern NCURSES_EXPORT(int) mvwaddch (WINDOW *, int, int, const chtype); /* generated */ +extern NCURSES_EXPORT(int) mvwaddchnstr (WINDOW *, int, int, const chtype *, int);/* generated */ +extern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *); /* generated */ +extern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *); /* generated */ +extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, NCURSES_PAIRS_T, const void *);/* generated */ +extern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int); /* generated */ +extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int); /* generated */ +extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *); /* generated */ +extern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int); /* generated */ +extern NCURSES_EXPORT(int) mvwin (WINDOW *,int,int); /* implemented */ +extern NCURSES_EXPORT(chtype) mvwinch (WINDOW *, int, int); /* generated */ +extern NCURSES_EXPORT(int) mvwinchnstr (WINDOW *, int, int, chtype *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwinchstr (WINDOW *, int, int, chtype *); /* generated */ +extern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype); /* generated */ +extern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int); /* generated */ +extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *); /* generated */ +extern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *); /* generated */ +extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...) /* implemented */ + GCC_PRINTFLIKE(4,5); +extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, const char *,...) /* implemented */ + GCC_SCANFLIKE(4,5); +extern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int); /* generated */ +extern NCURSES_EXPORT(int) napms (int); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) newpad (int,int); /* implemented */ +extern NCURSES_EXPORT(SCREEN *) newterm (const char *,FILE *,FILE *); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) nl (void); /* implemented */ +extern NCURSES_EXPORT(int) nocbreak (void); /* implemented */ +extern NCURSES_EXPORT(int) nodelay (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) noecho (void); /* implemented */ +extern NCURSES_EXPORT(int) nonl (void); /* implemented */ +extern NCURSES_EXPORT(void) noqiflush (void); /* implemented */ +extern NCURSES_EXPORT(int) noraw (void); /* implemented */ +extern NCURSES_EXPORT(int) notimeout (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) pair_content (NCURSES_PAIRS_T,NCURSES_COLOR_T*,NCURSES_COLOR_T*); /* implemented */ +extern NCURSES_EXPORT(int) PAIR_NUMBER (int); /* generated */ +extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype); /* implemented */ +extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */ +extern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) printw (const char *,...) /* implemented */ + GCC_PRINTFLIKE(1,2); +extern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *); /* implemented */ +extern NCURSES_EXPORT(void) qiflush (void); /* implemented */ +extern NCURSES_EXPORT(int) raw (void); /* implemented */ +extern NCURSES_EXPORT(int) redrawwin (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) refresh (void); /* generated */ +extern NCURSES_EXPORT(int) resetty (void); /* implemented */ +extern NCURSES_EXPORT(int) reset_prog_mode (void); /* implemented */ +extern NCURSES_EXPORT(int) reset_shell_mode (void); /* implemented */ +extern NCURSES_EXPORT(int) ripoffline (int, int (*)(WINDOW *, int)); /* implemented */ +extern NCURSES_EXPORT(int) savetty (void); /* implemented */ +extern NCURSES_EXPORT(int) scanw (const char *,...) /* implemented */ + GCC_SCANFLIKE(1,2); +extern NCURSES_EXPORT(int) scr_dump (const char *); /* implemented */ +extern NCURSES_EXPORT(int) scr_init (const char *); /* implemented */ +extern NCURSES_EXPORT(int) scrl (int); /* generated */ +extern NCURSES_EXPORT(int) scroll (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) scrollok (WINDOW *,bool); /* implemented */ +extern NCURSES_EXPORT(int) scr_restore (const char *); /* implemented */ +extern NCURSES_EXPORT(int) scr_set (const char *); /* implemented */ +extern NCURSES_EXPORT(int) setscrreg (int,int); /* generated */ +extern NCURSES_EXPORT(SCREEN *) set_term (SCREEN *); /* implemented */ +extern NCURSES_EXPORT(int) slk_attroff (const chtype); /* implemented */ +extern NCURSES_EXPORT(int) slk_attr_off (const attr_t, void *); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) slk_attron (const chtype); /* implemented */ +extern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*); /* generated:WIDEC */ +extern NCURSES_EXPORT(int) slk_attrset (const chtype); /* implemented */ +extern NCURSES_EXPORT(attr_t) slk_attr (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,NCURSES_PAIRS_T,void*); /* implemented */ +extern NCURSES_EXPORT(int) slk_clear (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_color (NCURSES_PAIRS_T); /* implemented */ +extern NCURSES_EXPORT(int) slk_init (int); /* implemented */ +extern NCURSES_EXPORT(char *) slk_label (int); /* implemented */ +extern NCURSES_EXPORT(int) slk_noutrefresh (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_refresh (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_restore (void); /* implemented */ +extern NCURSES_EXPORT(int) slk_set (int,const char *,int); /* implemented */ +extern NCURSES_EXPORT(int) slk_touch (void); /* implemented */ +extern NCURSES_EXPORT(int) standout (void); /* generated */ +extern NCURSES_EXPORT(int) standend (void); /* generated */ +extern NCURSES_EXPORT(int) start_color (void); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int); /* implemented */ +extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int); /* implemented */ +extern NCURSES_EXPORT(int) syncok (WINDOW *, bool); /* implemented */ +extern NCURSES_EXPORT(chtype) termattrs (void); /* implemented */ +extern NCURSES_EXPORT(char *) termname (void); /* implemented */ +extern NCURSES_EXPORT(void) timeout (int); /* generated */ +extern NCURSES_EXPORT(int) touchline (WINDOW *, int, int); /* generated */ +extern NCURSES_EXPORT(int) touchwin (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) typeahead (int); /* implemented */ +extern NCURSES_EXPORT(int) ungetch (int); /* implemented */ +extern NCURSES_EXPORT(int) untouchwin (WINDOW *); /* generated */ +extern NCURSES_EXPORT(void) use_env (bool); /* implemented */ +extern NCURSES_EXPORT(void) use_tioctl (bool); /* implemented */ +extern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */ +extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC); /* implemented */ +extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */ +extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw) /* implemented */ + GCC_PRINTFLIKE(2,0); +extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list) /* implemented */ + GCC_PRINTFLIKE(2,0); +extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_scanw) /* implemented */ + GCC_SCANFLIKE(2,0); +extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list) /* implemented */ + GCC_SCANFLIKE(2,0); +extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype); /* implemented */ +extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int); /* implemented */ +extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *); /* generated */ +extern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int); /* implemented */ +extern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *); /* generated */ +extern NCURSES_EXPORT(int) wattron (WINDOW *, int); /* generated */ +extern NCURSES_EXPORT(int) wattroff (WINDOW *, int); /* generated */ +extern NCURSES_EXPORT(int) wattrset (WINDOW *, int); /* generated */ +extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, NCURSES_PAIRS_T *, void *); /* generated */ +extern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *); /* implemented */ +extern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *); /* implemented */ +extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, NCURSES_PAIRS_T, void *); /* generated */ +extern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype); /* implemented */ +extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype); /* implemented */ +extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* implemented */ +extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, NCURSES_PAIRS_T, const void *);/* implemented */ +extern NCURSES_EXPORT(int) wclear (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wclrtobot (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wclrtoeol (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,NCURSES_PAIRS_T,void*); /* implemented */ +extern NCURSES_EXPORT(void) wcursyncup (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wdelch (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wdeleteln (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) wechochar (WINDOW *, const chtype); /* implemented */ +extern NCURSES_EXPORT(int) werase (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wgetch (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int); /* implemented */ +extern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *); /* generated */ +extern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int); /* implemented */ +extern NCURSES_EXPORT(chtype) winch (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) winchnstr (WINDOW *, chtype *, int); /* implemented */ +extern NCURSES_EXPORT(int) winchstr (WINDOW *, chtype *); /* generated */ +extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int); /* implemented */ +extern NCURSES_EXPORT(int) winsch (WINDOW *, chtype); /* implemented */ +extern NCURSES_EXPORT(int) winsdelln (WINDOW *,int); /* implemented */ +extern NCURSES_EXPORT(int) winsertln (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) winsnstr (WINDOW *, const char *,int); /* implemented */ +extern NCURSES_EXPORT(int) winsstr (WINDOW *, const char *); /* generated */ +extern NCURSES_EXPORT(int) winstr (WINDOW *, char *); /* generated */ +extern NCURSES_EXPORT(int) wmove (WINDOW *,int,int); /* implemented */ +extern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wprintw (WINDOW *, const char *,...) /* implemented */ + GCC_PRINTFLIKE(2,3); +extern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int); /* implemented */ +extern NCURSES_EXPORT(int) wrefresh (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(int) wscanw (WINDOW *, const char *,...) /* implemented */ + GCC_SCANFLIKE(2,3); +extern NCURSES_EXPORT(int) wscrl (WINDOW *,int); /* implemented */ +extern NCURSES_EXPORT(int) wsetscrreg (WINDOW *,int,int); /* implemented */ +extern NCURSES_EXPORT(int) wstandout (WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) wstandend (WINDOW *); /* generated */ +extern NCURSES_EXPORT(void) wsyncdown (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(void) wsyncup (WINDOW *); /* implemented */ +extern NCURSES_EXPORT(void) wtimeout (WINDOW *,int); /* implemented */ +extern NCURSES_EXPORT(int) wtouchln (WINDOW *,int,int,int); /* implemented */ +extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int); /* implemented */ + +/* + * These are also declared in : + */ +extern NCURSES_EXPORT(int) tigetflag (const char *); /* implemented */ +extern NCURSES_EXPORT(int) tigetnum (const char *); /* implemented */ +extern NCURSES_EXPORT(char *) tigetstr (const char *); /* implemented */ +extern NCURSES_EXPORT(int) putp (const char *); /* implemented */ + +#if NCURSES_TPARM_VARARGS +extern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */ +#else +extern NCURSES_EXPORT(char *) tparm (const char *, NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG,NCURSES_TPARM_ARG); /* special */ +#endif + +extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */ + +/* + * These functions are not in X/Open, but we use them in macro definitions: + */ +extern NCURSES_EXPORT(int) getattrs (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getcurx (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getcury (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getbegx (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getbegy (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getmaxx (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getmaxy (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getparx (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) getpary (const WINDOW *); /* generated */ + +/* + * vid_attr() was implemented originally based on a draft of X/Open curses. + */ +#if !NCURSES_WIDECHAR +#define vid_attr(a,pair,opts) vidattr(a) +#endif + +/* + * These functions are extensions - not in X/Open Curses. + */ +#if 1 +#undef NCURSES_EXT_FUNCS +#define NCURSES_EXT_FUNCS 20211021 +typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *); +typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *); +extern NCURSES_EXPORT(bool) is_term_resized (int, int); +extern NCURSES_EXPORT(char *) keybound (int, int); +extern NCURSES_EXPORT(const char *) curses_version (void); +extern NCURSES_EXPORT(int) alloc_pair (int, int); +extern NCURSES_EXPORT(int) assume_default_colors (int, int); +extern NCURSES_EXPORT(int) define_key (const char *, int); +extern NCURSES_EXPORT(int) extended_color_content(int, int *, int *, int *); +extern NCURSES_EXPORT(int) extended_pair_content(int, int *, int *); +extern NCURSES_EXPORT(int) extended_slk_color(int); +extern NCURSES_EXPORT(int) find_pair (int, int); +extern NCURSES_EXPORT(int) free_pair (int); +extern NCURSES_EXPORT(int) get_escdelay (void); +extern NCURSES_EXPORT(int) init_extended_color(int, int, int, int); +extern NCURSES_EXPORT(int) init_extended_pair(int, int, int); +extern NCURSES_EXPORT(int) key_defined (const char *); +extern NCURSES_EXPORT(int) keyok (int, bool); +extern NCURSES_EXPORT(void) reset_color_pairs (void); +extern NCURSES_EXPORT(int) resize_term (int, int); +extern NCURSES_EXPORT(int) resizeterm (int, int); +extern NCURSES_EXPORT(int) set_escdelay (int); +extern NCURSES_EXPORT(int) set_tabsize (int); +extern NCURSES_EXPORT(int) use_default_colors (void); +extern NCURSES_EXPORT(int) use_extended_names (bool); +extern NCURSES_EXPORT(int) use_legacy_coding (int); +extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *); +extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *); +extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int); +extern NCURSES_EXPORT(void) nofilter(void); + +/* + * These extensions provide access to information stored in the WINDOW even + * when NCURSES_OPAQUE is set: + */ +extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_pad (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_subwin (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) wgetdelay (const WINDOW *); /* generated */ +extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* generated */ + +#else +#define curses_version() NCURSES_VERSION +#endif + +/* + * Extra extension-functions, which pass a SCREEN pointer rather than using + * a global variable SP. + */ +#if 1 +#undef NCURSES_SP_FUNCS +#define NCURSES_SP_FUNCS 20211021 +#define NCURSES_SP_NAME(name) name##_sp + +/* Define the sp-funcs helper function */ +#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC) +typedef int (*NCURSES_SP_OUTC)(SCREEN*, int); + +extern NCURSES_EXPORT(SCREEN *) new_prescr (void); /* implemented:SP_FUNC */ + +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(baudrate) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(beep) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(can_change_color) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(cbreak) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(curs_set) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(delay_output) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(doupdate) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(echo) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(endwin) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char) NCURSES_SP_NAME(erasechar) (SCREEN*);/* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(filter) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flash) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flushinp) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(getwin) (SCREEN*, FILE *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(halfdelay) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_colors) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_ic) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_il) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T, NCURSES_COLOR_T); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(intrflush) (SCREEN*, WINDOW*, bool); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(isendwin) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(keyname) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char) NCURSES_SP_NAME(killchar) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mvcur) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(napms) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newpad) (SCREEN*, int, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(SCREEN *) NCURSES_SP_NAME(newterm) (SCREEN*, const char *, FILE *, FILE *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newwin) (SCREEN*, int, int, int, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nl) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nocbreak) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noecho) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nonl) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(noqiflush) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noraw) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, NCURSES_PAIRS_T, NCURSES_COLOR_T*, NCURSES_COLOR_T*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(qiflush) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(raw) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_prog_mode) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_shell_mode) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resetty) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ripoffline) (SCREEN*, int, int (*)(WINDOW *, int)); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(savetty) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_init) (SCREEN*, const char *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_restore) (SCREEN*, const char *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_set) (SCREEN*, const char *); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attroff) (SCREEN*, const chtype); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attron) (SCREEN*, const chtype); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attrset) (SCREEN*, const chtype); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(slk_attr) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, NCURSES_PAIRS_T, void*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_clear) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, NCURSES_PAIRS_T); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_init) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(slk_label) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_noutrefresh) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_refresh) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_restore) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_set) (SCREEN*, int, const char *, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_touch) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(start_color) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(chtype) NCURSES_SP_NAME(termattrs) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(termname) (SCREEN*); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_tioctl) (SCREEN*, bool); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype); /* implemented:SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented:SP_FUNC */ +#if 1 +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(alloc_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(assume_default_colors) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(define_key) (SCREEN*, const char *, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_color_content) (SCREEN*, int, int *, int *, int *); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_pair_content) (SCREEN*, int, int *, int *); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(extended_slk_color) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(find_pair) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(free_pair) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_color) (SCREEN*, int, int, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_extended_pair) (SCREEN*, int, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(is_term_resized) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(key_defined) (SCREEN*, const char *); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(keyok) (SCREEN*, int, bool); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(nofilter) (SCREEN*); /* implemented */ /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(reset_color_pairs) (SCREEN*); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resize_term) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resizeterm) (SCREEN*, int, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_escdelay) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_tabsize) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_default_colors) (SCREEN*); /* implemented:EXT_SP_FUNC */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int); /* implemented:EXT_SP_FUNC */ +#endif +#else +#undef NCURSES_SP_FUNCS +#define NCURSES_SP_FUNCS 0 +#define NCURSES_SP_NAME(name) name +#define NCURSES_SP_OUTC NCURSES_OUTC +#endif + +/* attributes */ + +#define NCURSES_ATTR_SHIFT 8 +#define NCURSES_BITS(mask,shift) (NCURSES_CAST(chtype,(mask)) << ((shift) + NCURSES_ATTR_SHIFT)) + +#define A_NORMAL (1U - 1U) +#define A_ATTRIBUTES NCURSES_BITS(~(1U - 1U),0) +#define A_CHARTEXT (NCURSES_BITS(1U,0) - 1U) +#define A_COLOR NCURSES_BITS(((1U) << 8) - 1U,0) +#define A_STANDOUT NCURSES_BITS(1U,8) +#define A_UNDERLINE NCURSES_BITS(1U,9) +#define A_REVERSE NCURSES_BITS(1U,10) +#define A_BLINK NCURSES_BITS(1U,11) +#define A_DIM NCURSES_BITS(1U,12) +#define A_BOLD NCURSES_BITS(1U,13) +#define A_ALTCHARSET NCURSES_BITS(1U,14) +#define A_INVIS NCURSES_BITS(1U,15) +#define A_PROTECT NCURSES_BITS(1U,16) +#define A_HORIZONTAL NCURSES_BITS(1U,17) +#define A_LEFT NCURSES_BITS(1U,18) +#define A_LOW NCURSES_BITS(1U,19) +#define A_RIGHT NCURSES_BITS(1U,20) +#define A_TOP NCURSES_BITS(1U,21) +#define A_VERTICAL NCURSES_BITS(1U,22) + +#if 1 +#define A_ITALIC NCURSES_BITS(1U,23) /* ncurses extension */ +#endif + +/* + * Most of the pseudo functions are macros that either provide compatibility + * with older versions of curses, or provide inline functionality to improve + * performance. + */ + +/* + * These pseudo functions are always implemented as macros: + */ + +#define getyx(win,y,x) (y = getcury(win), x = getcurx(win)) +#define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win)) +#define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win)) +#define getparyx(win,y,x) (y = getpary(win), x = getparx(win)) + +#define getsyx(y,x) do { if (newscr) { \ + if (is_leaveok(newscr)) \ + (y) = (x) = -1; \ + else \ + getyx(newscr,(y), (x)); \ + } \ + } while(0) + +#define setsyx(y,x) do { if (newscr) { \ + if ((y) == -1 && (x) == -1) \ + leaveok(newscr, TRUE); \ + else { \ + leaveok(newscr, FALSE); \ + wmove(newscr, (y), (x)); \ + } \ + } \ + } while(0) + +#ifndef NCURSES_NOMACROS + +/* + * These miscellaneous pseudo functions are provided for compatibility: + */ + +#define wgetstr(w, s) wgetnstr(w, s, -1) +#define getnstr(s, n) wgetnstr(stdscr, s, (n)) + +#define setterm(term) setupterm(term, 1, (int *)0) + +#define fixterm() reset_prog_mode() +#define resetterm() reset_shell_mode() +#define saveterm() def_prog_mode() +#define crmode() cbreak() +#define nocrmode() nocbreak() +#define gettmode() + +/* It seems older SYSV curses versions define these */ +#if !NCURSES_OPAQUE +#define getattrs(win) NCURSES_CAST(int, NCURSES_OK_ADDR(win) ? (win)->_attrs : A_NORMAL) +#define getcurx(win) (NCURSES_OK_ADDR(win) ? (win)->_curx : ERR) +#define getcury(win) (NCURSES_OK_ADDR(win) ? (win)->_cury : ERR) +#define getbegx(win) (NCURSES_OK_ADDR(win) ? (win)->_begx : ERR) +#define getbegy(win) (NCURSES_OK_ADDR(win) ? (win)->_begy : ERR) +#define getmaxx(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxx + 1) : ERR) +#define getmaxy(win) (NCURSES_OK_ADDR(win) ? ((win)->_maxy + 1) : ERR) +#define getparx(win) (NCURSES_OK_ADDR(win) ? (win)->_parx : ERR) +#define getpary(win) (NCURSES_OK_ADDR(win) ? (win)->_pary : ERR) +#endif /* NCURSES_OPAQUE */ + +#define wstandout(win) (wattrset(win,A_STANDOUT)) +#define wstandend(win) (wattrset(win,A_NORMAL)) + +#define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL) +#define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL) + +#if !NCURSES_OPAQUE +#if NCURSES_WATTR_MACROS +#if NCURSES_WIDECHAR && 0 +#define wattrset(win,at) \ + (NCURSES_OK_ADDR(win) \ + ? ((win)->_color = NCURSES_CAST(int, PAIR_NUMBER(at)), \ + (win)->_attrs = NCURSES_CAST(attr_t, at), \ + OK) \ + : ERR) +#else +#define wattrset(win,at) \ + (NCURSES_OK_ADDR(win) \ + ? ((win)->_attrs = NCURSES_CAST(attr_t, at), \ + OK) \ + : ERR) +#endif +#endif /* NCURSES_WATTR_MACROS */ +#endif /* NCURSES_OPAQUE */ + +#define scroll(win) wscrl(win,1) + +#define touchwin(win) wtouchln((win), 0, getmaxy(win), 1) +#define touchline(win, s, c) wtouchln((win), s, c, 1) +#define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0) + +#define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0) +#define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br) +#define hline(ch, n) whline(stdscr, ch, (n)) +#define vline(ch, n) wvline(stdscr, ch, (n)) + +#define winstr(w, s) winnstr(w, s, -1) +#define winchstr(w, s) winchnstr(w, s, -1) +#define winsstr(w, s) winsnstr(w, s, -1) + +#if !NCURSES_OPAQUE +#define redrawwin(win) wredrawln(win, 0, (NCURSES_OK_ADDR(win) ? (win)->_maxy+1 : -1)) +#endif /* NCURSES_OPAQUE */ + +#define waddstr(win,str) waddnstr(win,str,-1) +#define waddchstr(win,str) waddchnstr(win,str,-1) + +/* + * These apply to the first 256 color pairs. + */ +#define COLOR_PAIR(n) (NCURSES_BITS((n), 0) & A_COLOR) +#define PAIR_NUMBER(a) (NCURSES_CAST(int,((NCURSES_CAST(unsigned long,(a)) & A_COLOR) >> NCURSES_ATTR_SHIFT))) + +/* + * pseudo functions for standard screen + */ + +#define addch(ch) waddch(stdscr,(ch)) +#define addchnstr(str,n) waddchnstr(stdscr,(str),(n)) +#define addchstr(str) waddchstr(stdscr,(str)) +#define addnstr(str,n) waddnstr(stdscr,(str),(n)) +#define addstr(str) waddnstr(stdscr,(str),-1) +#define attr_get(ap,cp,o) wattr_get(stdscr,(ap),(cp),(o)) +#define attr_off(a,o) wattr_off(stdscr,(a),(o)) +#define attr_on(a,o) wattr_on(stdscr,(a),(o)) +#define attr_set(a,c,o) wattr_set(stdscr,(a),(c),(o)) +#define attroff(at) wattroff(stdscr,(at)) +#define attron(at) wattron(stdscr,(at)) +#define attrset(at) wattrset(stdscr,(at)) +#define bkgd(ch) wbkgd(stdscr,(ch)) +#define bkgdset(ch) wbkgdset(stdscr,(ch)) +#define chgat(n,a,c,o) wchgat(stdscr,(n),(a),(c),(o)) +#define clear() wclear(stdscr) +#define clrtobot() wclrtobot(stdscr) +#define clrtoeol() wclrtoeol(stdscr) +#define color_set(c,o) wcolor_set(stdscr,(c),(o)) +#define delch() wdelch(stdscr) +#define deleteln() winsdelln(stdscr,-1) +#define echochar(c) wechochar(stdscr,(c)) +#define erase() werase(stdscr) +#define getch() wgetch(stdscr) +#define getstr(str) wgetstr(stdscr,(str)) +#define inch() winch(stdscr) +#define inchnstr(s,n) winchnstr(stdscr,(s),(n)) +#define inchstr(s) winchstr(stdscr,(s)) +#define innstr(s,n) winnstr(stdscr,(s),(n)) +#define insch(c) winsch(stdscr,(c)) +#define insdelln(n) winsdelln(stdscr,(n)) +#define insertln() winsdelln(stdscr,1) +#define insnstr(s,n) winsnstr(stdscr,(s),(n)) +#define insstr(s) winsstr(stdscr,(s)) +#define instr(s) winstr(stdscr,(s)) +#define move(y,x) wmove(stdscr,(y),(x)) +#define refresh() wrefresh(stdscr) +#define scrl(n) wscrl(stdscr,(n)) +#define setscrreg(t,b) wsetscrreg(stdscr,(t),(b)) +#define standend() wstandend(stdscr) +#define standout() wstandout(stdscr) +#define timeout(delay) wtimeout(stdscr,(delay)) +#define wdeleteln(win) winsdelln(win,-1) +#define winsertln(win) winsdelln(win,1) + +/* + * mv functions + */ + +#define mvwaddch(win,y,x,ch) (wmove((win),(y),(x)) == ERR ? ERR : waddch((win),(ch))) +#define mvwaddchnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),(n))) +#define mvwaddchstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddchnstr((win),(str),-1)) +#define mvwaddnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),(n))) +#define mvwaddstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : waddnstr((win),(str),-1)) +#define mvwchgat(win,y,x,n,a,c,o) (wmove((win),(y),(x)) == ERR ? ERR : wchgat((win),(n),(a),(c),(o))) +#define mvwdelch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wdelch(win)) +#define mvwgetch(win,y,x) (wmove((win),(y),(x)) == ERR ? ERR : wgetch(win)) +#define mvwgetnstr(win,y,x,str,n) (wmove((win),(y),(x)) == ERR ? ERR : wgetnstr((win),(str),(n))) +#define mvwgetstr(win,y,x,str) (wmove((win),(y),(x)) == ERR ? ERR : wgetstr((win),(str))) +#define mvwhline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : whline((win),(c),(n))) +#define mvwinch(win,y,x) (wmove((win),(y),(x)) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win)) +#define mvwinchnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winchnstr((win),(s),(n))) +#define mvwinchstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winchstr((win),(s))) +#define mvwinnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winnstr((win),(s),(n))) +#define mvwinsch(win,y,x,c) (wmove((win),(y),(x)) == ERR ? ERR : winsch((win),(c))) +#define mvwinsnstr(win,y,x,s,n) (wmove((win),(y),(x)) == ERR ? ERR : winsnstr((win),(s),(n))) +#define mvwinsstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winsstr((win),(s))) +#define mvwinstr(win,y,x,s) (wmove((win),(y),(x)) == ERR ? ERR : winstr((win),(s))) +#define mvwvline(win,y,x,c,n) (wmove((win),(y),(x)) == ERR ? ERR : wvline((win),(c),(n))) + +#define mvaddch(y,x,ch) mvwaddch(stdscr,(y),(x),(ch)) +#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,(y),(x),(str),(n)) +#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,(y),(x),(str)) +#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,(y),(x),(str),(n)) +#define mvaddstr(y,x,str) mvwaddstr(stdscr,(y),(x),(str)) +#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,(y),(x),(n),(a),(c),(o)) +#define mvdelch(y,x) mvwdelch(stdscr,(y),(x)) +#define mvgetch(y,x) mvwgetch(stdscr,(y),(x)) +#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,(y),(x),(str),(n)) +#define mvgetstr(y,x,str) mvwgetstr(stdscr,(y),(x),(str)) +#define mvhline(y,x,c,n) mvwhline(stdscr,(y),(x),(c),(n)) +#define mvinch(y,x) mvwinch(stdscr,(y),(x)) +#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,(y),(x),(s),(n)) +#define mvinchstr(y,x,s) mvwinchstr(stdscr,(y),(x),(s)) +#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,(y),(x),(s),(n)) +#define mvinsch(y,x,c) mvwinsch(stdscr,(y),(x),(c)) +#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,(y),(x),(s),(n)) +#define mvinsstr(y,x,s) mvwinsstr(stdscr,(y),(x),(s)) +#define mvinstr(y,x,s) mvwinstr(stdscr,(y),(x),(s)) +#define mvvline(y,x,c,n) mvwvline(stdscr,(y),(x),(c),(n)) + +/* + * Some wide-character functions can be implemented without the extensions. + */ +#if !NCURSES_OPAQUE +#define getbkgd(win) (NCURSES_OK_ADDR(win) ? ((win)->_bkgd) : 0) +#endif /* NCURSES_OPAQUE */ + +#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a)) +#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a)) + +#if !NCURSES_OPAQUE +#if NCURSES_WATTR_MACROS +#if NCURSES_WIDECHAR && 0 +#define wattr_set(win,a,p,opts) \ + (NCURSES_OK_ADDR(win) \ + ? ((void)((win)->_attrs = ((a) & ~A_COLOR), \ + (win)->_color = (opts) ? *(int *)(opts) : (p)), \ + OK) \ + : ERR) +#define wattr_get(win,a,p,opts) \ + (NCURSES_OK_ADDR(win) \ + ? ((void)(NCURSES_OK_ADDR(a) \ + ? (*(a) = (win)->_attrs) \ + : OK), \ + (void)(NCURSES_OK_ADDR(p) \ + ? (*(p) = (NCURSES_PAIRS_T) (win)->_color) \ + : OK), \ + (void)(NCURSES_OK_ADDR(opts) \ + ? (*(int *)(opts) = (win)->_color) \ + : OK), \ + OK) \ + : ERR) +#else /* !(NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ +#define wattr_set(win,a,p,opts) \ + (NCURSES_OK_ADDR(win) \ + ? ((void)((win)->_attrs = (((a) & ~A_COLOR) | \ + (attr_t)COLOR_PAIR(p))), \ + OK) \ + : ERR) +#define wattr_get(win,a,p,opts) \ + (NCURSES_OK_ADDR(win) \ + ? ((void)(NCURSES_OK_ADDR(a) \ + ? (*(a) = (win)->_attrs) \ + : OK), \ + (void)(NCURSES_OK_ADDR(p) \ + ? (*(p) = (NCURSES_PAIRS_T) PAIR_NUMBER((win)->_attrs)) \ + : OK), \ + OK) \ + : ERR) +#endif /* (NCURSES_WIDECHAR && NCURSES_EXE_COLORS) */ +#endif /* NCURSES_WATTR_MACROS */ +#endif /* NCURSES_OPAQUE */ + +/* + * X/Open curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use + * varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to + * use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already + * use stdarg.h, so... + */ +/* define vw_printw vwprintw */ +/* define vw_scanw vwscanw */ + +/* + * Export fallback function for use in C++ binding. + */ +#if !1 +#define vsscanf(a,b,c) _nc_vsscanf(a,b,c) +NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list); +#endif + +/* + * These macros are extensions - not in X/Open Curses. + */ +#if 1 +#if !NCURSES_OPAQUE +#define is_cleared(win) (NCURSES_OK_ADDR(win) ? (win)->_clear : FALSE) +#define is_idcok(win) (NCURSES_OK_ADDR(win) ? (win)->_idcok : FALSE) +#define is_idlok(win) (NCURSES_OK_ADDR(win) ? (win)->_idlok : FALSE) +#define is_immedok(win) (NCURSES_OK_ADDR(win) ? (win)->_immed : FALSE) +#define is_keypad(win) (NCURSES_OK_ADDR(win) ? (win)->_use_keypad : FALSE) +#define is_leaveok(win) (NCURSES_OK_ADDR(win) ? (win)->_leaveok : FALSE) +#define is_nodelay(win) (NCURSES_OK_ADDR(win) ? ((win)->_delay == 0) : FALSE) +#define is_notimeout(win) (NCURSES_OK_ADDR(win) ? (win)->_notimeout : FALSE) +#define is_pad(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _ISPAD) != 0 : FALSE) +#define is_scrollok(win) (NCURSES_OK_ADDR(win) ? (win)->_scroll : FALSE) +#define is_subwin(win) (NCURSES_OK_ADDR(win) ? ((win)->_flags & _SUBWIN) != 0 : FALSE) +#define is_syncok(win) (NCURSES_OK_ADDR(win) ? (win)->_sync : FALSE) +#define wgetdelay(win) (NCURSES_OK_ADDR(win) ? (win)->_delay : 0) +#define wgetparent(win) (NCURSES_OK_ADDR(win) ? (win)->_parent : 0) +#define wgetscrreg(win,t,b) (NCURSES_OK_ADDR(win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR) +#endif +#endif + +/* + * X/Open says this returns a bool; SVr4 also checked for out-of-range line. + * The macro provides compatibility: + */ +#define is_linetouched(w,l) ((!(w) || ((l) > getmaxy(w)) || ((l) < 0)) ? ERR : (is_linetouched)((w),(l))) + +#endif /* NCURSES_NOMACROS */ + +/* + * Public variables. + * + * Notes: + * a. ESCDELAY was an undocumented feature under AIX curses. + * It gives the ESC expire time in milliseconds. + * b. ttytype is needed for backward compatibility + */ +#if NCURSES_REENTRANT + +NCURSES_WRAPPED_VAR(WINDOW *, curscr); +NCURSES_WRAPPED_VAR(WINDOW *, newscr); +NCURSES_WRAPPED_VAR(WINDOW *, stdscr); +NCURSES_WRAPPED_VAR(char *, ttytype); +NCURSES_WRAPPED_VAR(int, COLORS); +NCURSES_WRAPPED_VAR(int, COLOR_PAIRS); +NCURSES_WRAPPED_VAR(int, COLS); +NCURSES_WRAPPED_VAR(int, ESCDELAY); +NCURSES_WRAPPED_VAR(int, LINES); +NCURSES_WRAPPED_VAR(int, TABSIZE); + +#define curscr NCURSES_PUBLIC_VAR(curscr()) +#define newscr NCURSES_PUBLIC_VAR(newscr()) +#define stdscr NCURSES_PUBLIC_VAR(stdscr()) +#define ttytype NCURSES_PUBLIC_VAR(ttytype()) +#define COLORS NCURSES_PUBLIC_VAR(COLORS()) +#define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS()) +#define COLS NCURSES_PUBLIC_VAR(COLS()) +#define ESCDELAY NCURSES_PUBLIC_VAR(ESCDELAY()) +#define LINES NCURSES_PUBLIC_VAR(LINES()) +#define TABSIZE NCURSES_PUBLIC_VAR(TABSIZE()) + +#else + +extern NCURSES_EXPORT_VAR(WINDOW *) curscr; +extern NCURSES_EXPORT_VAR(WINDOW *) newscr; +extern NCURSES_EXPORT_VAR(WINDOW *) stdscr; +extern NCURSES_EXPORT_VAR(char) ttytype[]; +extern NCURSES_EXPORT_VAR(int) COLORS; +extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS; +extern NCURSES_EXPORT_VAR(int) COLS; +extern NCURSES_EXPORT_VAR(int) ESCDELAY; +extern NCURSES_EXPORT_VAR(int) LINES; +extern NCURSES_EXPORT_VAR(int) TABSIZE; + +#endif + +/* + * Pseudo-character tokens outside ASCII range. The curses wgetch() function + * will return any given one of these only if the corresponding k- capability + * is defined in your terminal's terminfo entry. + * + * Some keys (KEY_A1, etc) are arranged like this: + * a1 up a3 + * left b2 right + * c1 down c3 + * + * A few key codes do not depend upon the terminfo entry. + */ +#define KEY_CODE_YES 0400 /* A wchar_t contains a key code */ +#define KEY_MIN 0401 /* Minimum curses key */ +#define KEY_BREAK 0401 /* Break key (unreliable) */ +#define KEY_SRESET 0530 /* Soft (partial) reset (unreliable) */ +#define KEY_RESET 0531 /* Reset or hard reset (unreliable) */ +/* + * These definitions were generated by ./MKkey_defs.sh ./Caps ./Caps-ncurses + */ +#define KEY_DOWN 0402 /* down-arrow key */ +#define KEY_UP 0403 /* up-arrow key */ +#define KEY_LEFT 0404 /* left-arrow key */ +#define KEY_RIGHT 0405 /* right-arrow key */ +#define KEY_HOME 0406 /* home key */ +#define KEY_BACKSPACE 0407 /* backspace key */ +#define KEY_F0 0410 /* Function keys. Space for 64 */ +#define KEY_F(n) (KEY_F0+(n)) /* Value of function key n */ +#define KEY_DL 0510 /* delete-line key */ +#define KEY_IL 0511 /* insert-line key */ +#define KEY_DC 0512 /* delete-character key */ +#define KEY_IC 0513 /* insert-character key */ +#define KEY_EIC 0514 /* sent by rmir or smir in insert mode */ +#define KEY_CLEAR 0515 /* clear-screen or erase key */ +#define KEY_EOS 0516 /* clear-to-end-of-screen key */ +#define KEY_EOL 0517 /* clear-to-end-of-line key */ +#define KEY_SF 0520 /* scroll-forward key */ +#define KEY_SR 0521 /* scroll-backward key */ +#define KEY_NPAGE 0522 /* next-page key */ +#define KEY_PPAGE 0523 /* previous-page key */ +#define KEY_STAB 0524 /* set-tab key */ +#define KEY_CTAB 0525 /* clear-tab key */ +#define KEY_CATAB 0526 /* clear-all-tabs key */ +#define KEY_ENTER 0527 /* enter/send key */ +#define KEY_PRINT 0532 /* print key */ +#define KEY_LL 0533 /* lower-left key (home down) */ +#define KEY_A1 0534 /* upper left of keypad */ +#define KEY_A3 0535 /* upper right of keypad */ +#define KEY_B2 0536 /* center of keypad */ +#define KEY_C1 0537 /* lower left of keypad */ +#define KEY_C3 0540 /* lower right of keypad */ +#define KEY_BTAB 0541 /* back-tab key */ +#define KEY_BEG 0542 /* begin key */ +#define KEY_CANCEL 0543 /* cancel key */ +#define KEY_CLOSE 0544 /* close key */ +#define KEY_COMMAND 0545 /* command key */ +#define KEY_COPY 0546 /* copy key */ +#define KEY_CREATE 0547 /* create key */ +#define KEY_END 0550 /* end key */ +#define KEY_EXIT 0551 /* exit key */ +#define KEY_FIND 0552 /* find key */ +#define KEY_HELP 0553 /* help key */ +#define KEY_MARK 0554 /* mark key */ +#define KEY_MESSAGE 0555 /* message key */ +#define KEY_MOVE 0556 /* move key */ +#define KEY_NEXT 0557 /* next key */ +#define KEY_OPEN 0560 /* open key */ +#define KEY_OPTIONS 0561 /* options key */ +#define KEY_PREVIOUS 0562 /* previous key */ +#define KEY_REDO 0563 /* redo key */ +#define KEY_REFERENCE 0564 /* reference key */ +#define KEY_REFRESH 0565 /* refresh key */ +#define KEY_REPLACE 0566 /* replace key */ +#define KEY_RESTART 0567 /* restart key */ +#define KEY_RESUME 0570 /* resume key */ +#define KEY_SAVE 0571 /* save key */ +#define KEY_SBEG 0572 /* shifted begin key */ +#define KEY_SCANCEL 0573 /* shifted cancel key */ +#define KEY_SCOMMAND 0574 /* shifted command key */ +#define KEY_SCOPY 0575 /* shifted copy key */ +#define KEY_SCREATE 0576 /* shifted create key */ +#define KEY_SDC 0577 /* shifted delete-character key */ +#define KEY_SDL 0600 /* shifted delete-line key */ +#define KEY_SELECT 0601 /* select key */ +#define KEY_SEND 0602 /* shifted end key */ +#define KEY_SEOL 0603 /* shifted clear-to-end-of-line key */ +#define KEY_SEXIT 0604 /* shifted exit key */ +#define KEY_SFIND 0605 /* shifted find key */ +#define KEY_SHELP 0606 /* shifted help key */ +#define KEY_SHOME 0607 /* shifted home key */ +#define KEY_SIC 0610 /* shifted insert-character key */ +#define KEY_SLEFT 0611 /* shifted left-arrow key */ +#define KEY_SMESSAGE 0612 /* shifted message key */ +#define KEY_SMOVE 0613 /* shifted move key */ +#define KEY_SNEXT 0614 /* shifted next key */ +#define KEY_SOPTIONS 0615 /* shifted options key */ +#define KEY_SPREVIOUS 0616 /* shifted previous key */ +#define KEY_SPRINT 0617 /* shifted print key */ +#define KEY_SREDO 0620 /* shifted redo key */ +#define KEY_SREPLACE 0621 /* shifted replace key */ +#define KEY_SRIGHT 0622 /* shifted right-arrow key */ +#define KEY_SRSUME 0623 /* shifted resume key */ +#define KEY_SSAVE 0624 /* shifted save key */ +#define KEY_SSUSPEND 0625 /* shifted suspend key */ +#define KEY_SUNDO 0626 /* shifted undo key */ +#define KEY_SUSPEND 0627 /* suspend key */ +#define KEY_UNDO 0630 /* undo key */ +#define KEY_MOUSE 0631 /* Mouse event has occurred */ + +#ifdef NCURSES_EXT_FUNCS +#define KEY_RESIZE 0632 /* Terminal resize event */ +#endif + +#define KEY_MAX 0777 /* Maximum key value is 0632 */ +/* $Id: curses.tail,v 1.26 2021/03/20 15:49:25 tom Exp $ */ +/* + * vile:cmode: + * This file is part of ncurses, designed to be appended after curses.h.in + * (see that file for the relevant copyright). + */ + +/* mouse interface */ + +#if NCURSES_MOUSE_VERSION > 1 +#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 5)) +#else +#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 6)) +#endif + +#define NCURSES_BUTTON_RELEASED 001L +#define NCURSES_BUTTON_PRESSED 002L +#define NCURSES_BUTTON_CLICKED 004L +#define NCURSES_DOUBLE_CLICKED 010L +#define NCURSES_TRIPLE_CLICKED 020L +#define NCURSES_RESERVED_EVENT 040L + +/* event masks */ +#define BUTTON1_RELEASED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED) +#define BUTTON1_PRESSED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED) +#define BUTTON1_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_CLICKED) +#define BUTTON1_DOUBLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED) +#define BUTTON1_TRIPLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED) + +#define BUTTON2_RELEASED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_RELEASED) +#define BUTTON2_PRESSED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_PRESSED) +#define BUTTON2_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_CLICKED) +#define BUTTON2_DOUBLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_DOUBLE_CLICKED) +#define BUTTON2_TRIPLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_TRIPLE_CLICKED) + +#define BUTTON3_RELEASED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_RELEASED) +#define BUTTON3_PRESSED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_PRESSED) +#define BUTTON3_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_CLICKED) +#define BUTTON3_DOUBLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_DOUBLE_CLICKED) +#define BUTTON3_TRIPLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_TRIPLE_CLICKED) + +#define BUTTON4_RELEASED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_RELEASED) +#define BUTTON4_PRESSED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_PRESSED) +#define BUTTON4_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_CLICKED) +#define BUTTON4_DOUBLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_DOUBLE_CLICKED) +#define BUTTON4_TRIPLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_TRIPLE_CLICKED) + +/* + * In 32 bits the version-1 scheme does not provide enough space for a 5th + * button, unless we choose to change the ABI by omitting the reserved-events. + */ +#if NCURSES_MOUSE_VERSION > 1 + +#define BUTTON5_RELEASED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED) +#define BUTTON5_PRESSED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_PRESSED) +#define BUTTON5_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED) +#define BUTTON5_DOUBLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED) +#define BUTTON5_TRIPLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED) + +#define BUTTON_CTRL NCURSES_MOUSE_MASK(6, 0001L) +#define BUTTON_SHIFT NCURSES_MOUSE_MASK(6, 0002L) +#define BUTTON_ALT NCURSES_MOUSE_MASK(6, 0004L) +#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(6, 0010L) + +#else + +#define BUTTON1_RESERVED_EVENT NCURSES_MOUSE_MASK(1, NCURSES_RESERVED_EVENT) +#define BUTTON2_RESERVED_EVENT NCURSES_MOUSE_MASK(2, NCURSES_RESERVED_EVENT) +#define BUTTON3_RESERVED_EVENT NCURSES_MOUSE_MASK(3, NCURSES_RESERVED_EVENT) +#define BUTTON4_RESERVED_EVENT NCURSES_MOUSE_MASK(4, NCURSES_RESERVED_EVENT) + +#define BUTTON_CTRL NCURSES_MOUSE_MASK(5, 0001L) +#define BUTTON_SHIFT NCURSES_MOUSE_MASK(5, 0002L) +#define BUTTON_ALT NCURSES_MOUSE_MASK(5, 0004L) +#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(5, 0010L) + +#endif + +#define ALL_MOUSE_EVENTS (REPORT_MOUSE_POSITION - 1) + +/* macros to extract single event-bits from masks */ +#define BUTTON_RELEASE(e, x) ((e) & NCURSES_MOUSE_MASK(x, 001)) +#define BUTTON_PRESS(e, x) ((e) & NCURSES_MOUSE_MASK(x, 002)) +#define BUTTON_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 004)) +#define BUTTON_DOUBLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 010)) +#define BUTTON_TRIPLE_CLICK(e, x) ((e) & NCURSES_MOUSE_MASK(x, 020)) +#define BUTTON_RESERVED_EVENT(e, x) ((e) & NCURSES_MOUSE_MASK(x, 040)) + +typedef struct +{ + short id; /* ID to distinguish multiple devices */ + int x, y, z; /* event coordinates (character-cell) */ + mmask_t bstate; /* button state bits */ +} +MEVENT; + +extern NCURSES_EXPORT(bool) has_mouse(void); +extern NCURSES_EXPORT(int) getmouse (MEVENT *); +extern NCURSES_EXPORT(int) ungetmouse (MEVENT *); +extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *); +extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int); +extern NCURSES_EXPORT(int) mouseinterval (int); +extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW*, int*, int*, bool); +extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* generated */ + +#if NCURSES_SP_FUNCS +extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_mouse) (SCREEN*); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(getmouse) (SCREEN*, MEVENT *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetmouse) (SCREEN*,MEVENT *); +extern NCURSES_EXPORT(mmask_t) NCURSES_SP_NAME(mousemask) (SCREEN*, mmask_t, mmask_t *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mouseinterval) (SCREEN*, int); +#endif + +#ifndef NCURSES_NOMACROS +#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen) +#endif + +/* other non-XSI functions */ + +extern NCURSES_EXPORT(int) mcprint (char *, int); /* direct data to printer */ +extern NCURSES_EXPORT(int) has_key (int); /* do we have given key? */ + +#if NCURSES_SP_FUNCS +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(has_key) (SCREEN*, int); /* do we have given key? */ +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mcprint) (SCREEN*, char *, int); /* direct data to printer */ +#endif + +/* Debugging : use with libncurses_g.a */ + +extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2); +extern NCURSES_EXPORT(char *) _traceattr (attr_t); +extern NCURSES_EXPORT(char *) _traceattr2 (int, chtype); +extern NCURSES_EXPORT(char *) _tracechar (int); +extern NCURSES_EXPORT(char *) _tracechtype (chtype); +extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype); +#if NCURSES_WIDECHAR +#define _tracech_t _tracecchar_t +extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *); +#define _tracech_t2 _tracecchar_t2 +extern NCURSES_EXPORT(char *) _tracecchar_t2 (int, const cchar_t *); +#else +#define _tracech_t _tracechtype +#define _tracech_t2 _tracechtype2 +#endif +extern NCURSES_EXPORT(void) trace (const unsigned) GCC_DEPRECATED("use curses_trace"); +extern NCURSES_EXPORT(unsigned) curses_trace (const unsigned); + +/* trace masks */ +#define TRACE_DISABLE 0x0000 /* turn off tracing */ +#define TRACE_TIMES 0x0001 /* trace user and system times of updates */ +#define TRACE_TPUTS 0x0002 /* trace tputs calls */ +#define TRACE_UPDATE 0x0004 /* trace update actions, old & new screens */ +#define TRACE_MOVE 0x0008 /* trace cursor moves and scrolls */ +#define TRACE_CHARPUT 0x0010 /* trace all character outputs */ +#define TRACE_ORDINARY 0x001F /* trace all update actions */ +#define TRACE_CALLS 0x0020 /* trace all curses calls */ +#define TRACE_VIRTPUT 0x0040 /* trace virtual character puts */ +#define TRACE_IEVENT 0x0080 /* trace low-level input processing */ +#define TRACE_BITS 0x0100 /* trace state of TTY control bits */ +#define TRACE_ICALLS 0x0200 /* trace internal/nested calls */ +#define TRACE_CCALLS 0x0400 /* trace per-character calls */ +#define TRACE_DATABASE 0x0800 /* trace read/write of terminfo/termcap data */ +#define TRACE_ATTRS 0x1000 /* trace attribute updates */ + +#define TRACE_SHIFT 13 /* number of bits in the trace masks */ +#define TRACE_MAXIMUM ((1 << TRACE_SHIFT) - 1) /* maximum trace level */ + +#if defined(TRACE) || defined(NCURSES_TEST) +extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable; /* enable optimizations */ +extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *); +#define OPTIMIZE_MVCUR 0x01 /* cursor movement optimization */ +#define OPTIMIZE_HASHMAP 0x02 /* diff hashing to detect scrolls */ +#define OPTIMIZE_SCROLL 0x04 /* scroll optimization */ +#define OPTIMIZE_ALL 0xff /* enable all optimizations (dflt) */ +#endif + +extern GCC_NORETURN NCURSES_EXPORT(void) exit_curses (int); + +#include + +#ifdef __cplusplus + +#ifndef NCURSES_NOMACROS + +/* these names conflict with STL */ +#undef box +#undef clear +#undef erase +#undef move +#undef refresh + +#endif /* NCURSES_NOMACROS */ + +} +#endif + +#endif /* __NCURSES_H */ diff --git a/code/application/source/sf_app/tools/blue/include/ncurses_dll.h b/code/application/source/sf_app/tools/blue/include/ncurses_dll.h new file mode 100644 index 000000000..0ffd8667d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/ncurses_dll.h @@ -0,0 +1,99 @@ +/**************************************************************************** + * Copyright 2018,2020 Thomas E. Dickey * + * Copyright 2009,2014 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ +/* $Id: ncurses_dll.h.in,v 1.17 2020/09/05 17:58:47 juergen Exp $ */ + +#ifndef NCURSES_DLL_H_incl +#define NCURSES_DLL_H_incl 1 + +/* + * MinGW gcc (unlike MSYS2 and Cygwin) should define _WIN32 and possibly _WIN64. + */ +#if defined(__MINGW64__) + +#ifndef _WIN64 +#define _WIN64 1 +#endif + +#elif defined(__MINGW32__) + +#ifndef _WIN32 +#define _WIN32 1 +#endif + +/* 2014-08-02 workaround for broken MinGW compiler. + * Oddly, only TRACE is mapped to trace - the other -D's are okay. + * suggest TDM as an alternative. + */ +#if (__GNUC__ == 4) && (__GNUC_MINOR__ == 8) + +#ifdef trace +#undef trace +#define TRACE +#endif + +#endif /* broken compiler */ + +#endif /* MingW */ + +/* + * For reentrant code, we map the various global variables into SCREEN by + * using functions to access them. + */ +#define NCURSES_PUBLIC_VAR(name) _nc_##name + +#if defined(BUILDING_NCURSES) +# define NCURSES_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT +#else +# define NCURSES_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT +#endif + +#define NCURSES_WRAPPED_VAR(type,name) extern NCURSES_IMPEXP type NCURSES_PUBLIC_VAR(name)(void) + +#define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API +#define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type + +/* + * These symbols hide dllimport/dllexport, for compilers which care about it. + */ +#if defined(__CYGWIN__) || (defined(_WIN32) || defined(_WIN64)) +# if defined(NCURSES_STATIC) /* "static" here only implies "not-a-DLL" */ +# define NCURSES_EXPORT_GENERAL_IMPORT +# define NCURSES_EXPORT_GENERAL_EXPORT +# else +# define NCURSES_EXPORT_GENERAL_IMPORT __declspec(dllimport) +# define NCURSES_EXPORT_GENERAL_EXPORT __declspec(dllexport) +# endif +# define NCURSES_API __cdecl +#else +# define NCURSES_EXPORT_GENERAL_IMPORT +# define NCURSES_EXPORT_GENERAL_EXPORT +# define NCURSES_API /* FIXME: __attribute__ ((cdecl)) is only available on x86 */ +#endif + +#endif /* NCURSES_DLL_H_incl */ diff --git a/code/application/source/sf_app/tools/blue/include/panel.h b/code/application/source/sf_app/tools/blue/include/panel.h new file mode 100644 index 000000000..62acc8ff1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/panel.h @@ -0,0 +1,100 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1995 * + * and: Eric S. Raymond * + * and: Juergen Pfeifer 1996-1999,2008 * + ****************************************************************************/ + +/* $Id: panel.h,v 1.14 2020/07/04 20:38:43 tom Exp $ */ + +/* panel.h -- interface file for panels library */ + +#ifndef NCURSES_PANEL_H_incl +#define NCURSES_PANEL_H_incl 1 + +#include + +typedef struct panel +#if !NCURSES_OPAQUE_PANEL +{ + WINDOW *win; + struct panel *below; + struct panel *above; + NCURSES_CONST void *user; +} +#endif /* !NCURSES_OPAQUE_PANEL */ +PANEL; + +#if defined(__cplusplus) +extern "C" { +#endif + +#if defined(BUILDING_PANEL) +# define PANEL_IMPEXP NCURSES_EXPORT_GENERAL_EXPORT +#else +# define PANEL_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT +#endif + +#define PANEL_WRAPPED_VAR(type,name) extern PANEL_IMPEXP type NCURSES_PUBLIC_VAR(name)(void) + +#define PANEL_EXPORT(type) PANEL_IMPEXP type NCURSES_API +#define PANEL_EXPORT_VAR(type) PANEL_IMPEXP type + +extern PANEL_EXPORT(WINDOW*) panel_window (const PANEL *); +extern PANEL_EXPORT(void) update_panels (void); +extern PANEL_EXPORT(int) hide_panel (PANEL *); +extern PANEL_EXPORT(int) show_panel (PANEL *); +extern PANEL_EXPORT(int) del_panel (PANEL *); +extern PANEL_EXPORT(int) top_panel (PANEL *); +extern PANEL_EXPORT(int) bottom_panel (PANEL *); +extern PANEL_EXPORT(PANEL*) new_panel (WINDOW *); +extern PANEL_EXPORT(PANEL*) panel_above (const PANEL *); +extern PANEL_EXPORT(PANEL*) panel_below (const PANEL *); +extern PANEL_EXPORT(int) set_panel_userptr (PANEL *, NCURSES_CONST void *); +extern PANEL_EXPORT(NCURSES_CONST void*) panel_userptr (const PANEL *); +extern PANEL_EXPORT(int) move_panel (PANEL *, int, int); +extern PANEL_EXPORT(int) replace_panel (PANEL *,WINDOW *); +extern PANEL_EXPORT(int) panel_hidden (const PANEL *); + +#if NCURSES_SP_FUNCS +extern PANEL_EXPORT(PANEL *) ground_panel(SCREEN *); +extern PANEL_EXPORT(PANEL *) ceiling_panel(SCREEN *); + +extern PANEL_EXPORT(void) NCURSES_SP_NAME(update_panels) (SCREEN*); +#endif + +#if defined(__cplusplus) +} +#endif + +#endif /* NCURSES_PANEL_H_incl */ + +/* end of panel.h */ diff --git a/code/application/source/sf_app/tools/blue/include/pcre2.h b/code/application/source/sf_app/tools/blue/include/pcre2.h new file mode 100644 index 000000000..1cbecd0e8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/pcre2.h @@ -0,0 +1,993 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +/* This is the public header file for the PCRE library, second API, to be +#included by applications that call PCRE2 functions. + + Copyright (c) 2016-2021 University of Cambridge + +----------------------------------------------------------------------------- +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +----------------------------------------------------------------------------- +*/ + +#ifndef PCRE2_H_IDEMPOTENT_GUARD +#define PCRE2_H_IDEMPOTENT_GUARD + +/* The current PCRE version information. */ + +#define PCRE2_MAJOR 10 +#define PCRE2_MINOR 42 +#define PCRE2_PRERELEASE +#define PCRE2_DATE 2022-12-11 + +/* When an application links to a PCRE DLL in Windows, the symbols that are +imported have to be identified as such. When building PCRE2, the appropriate +export setting is defined in pcre2_internal.h, which includes this file. So we +don't change existing definitions of PCRE2_EXP_DECL. */ + +#if defined(_WIN32) && !defined(PCRE2_STATIC) +# ifndef PCRE2_EXP_DECL +# define PCRE2_EXP_DECL extern __declspec(dllimport) +# endif +#endif + +/* By default, we use the standard "extern" declarations. */ + +#ifndef PCRE2_EXP_DECL +# ifdef __cplusplus +# define PCRE2_EXP_DECL extern "C" +# else +# define PCRE2_EXP_DECL extern +# endif +#endif + +/* When compiling with the MSVC compiler, it is sometimes necessary to include +a "calling convention" before exported function names. (This is secondhand +information; I know nothing about MSVC myself). For example, something like + + void __cdecl function(....) + +might be needed. In order so make this easy, all the exported functions have +PCRE2_CALL_CONVENTION just before their names. It is rarely needed; if not +set, we ensure here that it has no effect. */ + +#ifndef PCRE2_CALL_CONVENTION +#define PCRE2_CALL_CONVENTION +#endif + +/* Have to include limits.h, stdlib.h, and inttypes.h to ensure that size_t and +uint8_t, UCHAR_MAX, etc are defined. Some systems that do have inttypes.h do +not have stdint.h, which is why we use inttypes.h, which according to the C +standard is a superset of stdint.h. If inttypes.h is not available the build +will break and the relevant values must be provided by some other means. */ + +#include +#include +#include + +/* Allow for C++ users compiling this directly. */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* The following option bits can be passed to pcre2_compile(), pcre2_match(), +or pcre2_dfa_match(). PCRE2_NO_UTF_CHECK affects only the function to which it +is passed. Put these bits at the most significant end of the options word so +others can be added next to them */ + +#define PCRE2_ANCHORED 0x80000000u +#define PCRE2_NO_UTF_CHECK 0x40000000u +#define PCRE2_ENDANCHORED 0x20000000u + +/* The following option bits can be passed only to pcre2_compile(). However, +they may affect compilation, JIT compilation, and/or interpretive execution. +The following tags indicate which: + +C alters what is compiled by pcre2_compile() +J alters what is compiled by pcre2_jit_compile() +M is inspected during pcre2_match() execution +D is inspected during pcre2_dfa_match() execution +*/ + +#define PCRE2_ALLOW_EMPTY_CLASS 0x00000001u /* C */ +#define PCRE2_ALT_BSUX 0x00000002u /* C */ +#define PCRE2_AUTO_CALLOUT 0x00000004u /* C */ +#define PCRE2_CASELESS 0x00000008u /* C */ +#define PCRE2_DOLLAR_ENDONLY 0x00000010u /* J M D */ +#define PCRE2_DOTALL 0x00000020u /* C */ +#define PCRE2_DUPNAMES 0x00000040u /* C */ +#define PCRE2_EXTENDED 0x00000080u /* C */ +#define PCRE2_FIRSTLINE 0x00000100u /* J M D */ +#define PCRE2_MATCH_UNSET_BACKREF 0x00000200u /* C J M */ +#define PCRE2_MULTILINE 0x00000400u /* C */ +#define PCRE2_NEVER_UCP 0x00000800u /* C */ +#define PCRE2_NEVER_UTF 0x00001000u /* C */ +#define PCRE2_NO_AUTO_CAPTURE 0x00002000u /* C */ +#define PCRE2_NO_AUTO_POSSESS 0x00004000u /* C */ +#define PCRE2_NO_DOTSTAR_ANCHOR 0x00008000u /* C */ +#define PCRE2_NO_START_OPTIMIZE 0x00010000u /* J M D */ +#define PCRE2_UCP 0x00020000u /* C J M D */ +#define PCRE2_UNGREEDY 0x00040000u /* C */ +#define PCRE2_UTF 0x00080000u /* C J M D */ +#define PCRE2_NEVER_BACKSLASH_C 0x00100000u /* C */ +#define PCRE2_ALT_CIRCUMFLEX 0x00200000u /* J M D */ +#define PCRE2_ALT_VERBNAMES 0x00400000u /* C */ +#define PCRE2_USE_OFFSET_LIMIT 0x00800000u /* J M D */ +#define PCRE2_EXTENDED_MORE 0x01000000u /* C */ +#define PCRE2_LITERAL 0x02000000u /* C */ +#define PCRE2_MATCH_INVALID_UTF 0x04000000u /* J M D */ + +/* An additional compile options word is available in the compile context. */ + +#define PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES 0x00000001u /* C */ +#define PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL 0x00000002u /* C */ +#define PCRE2_EXTRA_MATCH_WORD 0x00000004u /* C */ +#define PCRE2_EXTRA_MATCH_LINE 0x00000008u /* C */ +#define PCRE2_EXTRA_ESCAPED_CR_IS_LF 0x00000010u /* C */ +#define PCRE2_EXTRA_ALT_BSUX 0x00000020u /* C */ +#define PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK 0x00000040u /* C */ + +/* These are for pcre2_jit_compile(). */ + +#define PCRE2_JIT_COMPLETE 0x00000001u /* For full matching */ +#define PCRE2_JIT_PARTIAL_SOFT 0x00000002u +#define PCRE2_JIT_PARTIAL_HARD 0x00000004u +#define PCRE2_JIT_INVALID_UTF 0x00000100u + +/* These are for pcre2_match(), pcre2_dfa_match(), pcre2_jit_match(), and +pcre2_substitute(). Some are allowed only for one of the functions, and in +these cases it is noted below. Note that PCRE2_ANCHORED, PCRE2_ENDANCHORED and +PCRE2_NO_UTF_CHECK can also be passed to these functions (though +pcre2_jit_match() ignores the latter since it bypasses all sanity checks). */ + +#define PCRE2_NOTBOL 0x00000001u +#define PCRE2_NOTEOL 0x00000002u +#define PCRE2_NOTEMPTY 0x00000004u /* ) These two must be kept */ +#define PCRE2_NOTEMPTY_ATSTART 0x00000008u /* ) adjacent to each other. */ +#define PCRE2_PARTIAL_SOFT 0x00000010u +#define PCRE2_PARTIAL_HARD 0x00000020u +#define PCRE2_DFA_RESTART 0x00000040u /* pcre2_dfa_match() only */ +#define PCRE2_DFA_SHORTEST 0x00000080u /* pcre2_dfa_match() only */ +#define PCRE2_SUBSTITUTE_GLOBAL 0x00000100u /* pcre2_substitute() only */ +#define PCRE2_SUBSTITUTE_EXTENDED 0x00000200u /* pcre2_substitute() only */ +#define PCRE2_SUBSTITUTE_UNSET_EMPTY 0x00000400u /* pcre2_substitute() only */ +#define PCRE2_SUBSTITUTE_UNKNOWN_UNSET 0x00000800u /* pcre2_substitute() only */ +#define PCRE2_SUBSTITUTE_OVERFLOW_LENGTH 0x00001000u /* pcre2_substitute() only */ +#define PCRE2_NO_JIT 0x00002000u /* Not for pcre2_dfa_match() */ +#define PCRE2_COPY_MATCHED_SUBJECT 0x00004000u +#define PCRE2_SUBSTITUTE_LITERAL 0x00008000u /* pcre2_substitute() only */ +#define PCRE2_SUBSTITUTE_MATCHED 0x00010000u /* pcre2_substitute() only */ +#define PCRE2_SUBSTITUTE_REPLACEMENT_ONLY 0x00020000u /* pcre2_substitute() only */ + +/* Options for pcre2_pattern_convert(). */ + +#define PCRE2_CONVERT_UTF 0x00000001u +#define PCRE2_CONVERT_NO_UTF_CHECK 0x00000002u +#define PCRE2_CONVERT_POSIX_BASIC 0x00000004u +#define PCRE2_CONVERT_POSIX_EXTENDED 0x00000008u +#define PCRE2_CONVERT_GLOB 0x00000010u +#define PCRE2_CONVERT_GLOB_NO_WILD_SEPARATOR 0x00000030u +#define PCRE2_CONVERT_GLOB_NO_STARSTAR 0x00000050u + +/* Newline and \R settings, for use in compile contexts. The newline values +must be kept in step with values set in config.h and both sets must all be +greater than zero. */ + +#define PCRE2_NEWLINE_CR 1 +#define PCRE2_NEWLINE_LF 2 +#define PCRE2_NEWLINE_CRLF 3 +#define PCRE2_NEWLINE_ANY 4 +#define PCRE2_NEWLINE_ANYCRLF 5 +#define PCRE2_NEWLINE_NUL 6 + +#define PCRE2_BSR_UNICODE 1 +#define PCRE2_BSR_ANYCRLF 2 + +/* Error codes for pcre2_compile(). Some of these are also used by +pcre2_pattern_convert(). */ + +#define PCRE2_ERROR_END_BACKSLASH 101 +#define PCRE2_ERROR_END_BACKSLASH_C 102 +#define PCRE2_ERROR_UNKNOWN_ESCAPE 103 +#define PCRE2_ERROR_QUANTIFIER_OUT_OF_ORDER 104 +#define PCRE2_ERROR_QUANTIFIER_TOO_BIG 105 +#define PCRE2_ERROR_MISSING_SQUARE_BRACKET 106 +#define PCRE2_ERROR_ESCAPE_INVALID_IN_CLASS 107 +#define PCRE2_ERROR_CLASS_RANGE_ORDER 108 +#define PCRE2_ERROR_QUANTIFIER_INVALID 109 +#define PCRE2_ERROR_INTERNAL_UNEXPECTED_REPEAT 110 +#define PCRE2_ERROR_INVALID_AFTER_PARENS_QUERY 111 +#define PCRE2_ERROR_POSIX_CLASS_NOT_IN_CLASS 112 +#define PCRE2_ERROR_POSIX_NO_SUPPORT_COLLATING 113 +#define PCRE2_ERROR_MISSING_CLOSING_PARENTHESIS 114 +#define PCRE2_ERROR_BAD_SUBPATTERN_REFERENCE 115 +#define PCRE2_ERROR_NULL_PATTERN 116 +#define PCRE2_ERROR_BAD_OPTIONS 117 +#define PCRE2_ERROR_MISSING_COMMENT_CLOSING 118 +#define PCRE2_ERROR_PARENTHESES_NEST_TOO_DEEP 119 +#define PCRE2_ERROR_PATTERN_TOO_LARGE 120 +#define PCRE2_ERROR_HEAP_FAILED 121 +#define PCRE2_ERROR_UNMATCHED_CLOSING_PARENTHESIS 122 +#define PCRE2_ERROR_INTERNAL_CODE_OVERFLOW 123 +#define PCRE2_ERROR_MISSING_CONDITION_CLOSING 124 +#define PCRE2_ERROR_LOOKBEHIND_NOT_FIXED_LENGTH 125 +#define PCRE2_ERROR_ZERO_RELATIVE_REFERENCE 126 +#define PCRE2_ERROR_TOO_MANY_CONDITION_BRANCHES 127 +#define PCRE2_ERROR_CONDITION_ASSERTION_EXPECTED 128 +#define PCRE2_ERROR_BAD_RELATIVE_REFERENCE 129 +#define PCRE2_ERROR_UNKNOWN_POSIX_CLASS 130 +#define PCRE2_ERROR_INTERNAL_STUDY_ERROR 131 +#define PCRE2_ERROR_UNICODE_NOT_SUPPORTED 132 +#define PCRE2_ERROR_PARENTHESES_STACK_CHECK 133 +#define PCRE2_ERROR_CODE_POINT_TOO_BIG 134 +#define PCRE2_ERROR_LOOKBEHIND_TOO_COMPLICATED 135 +#define PCRE2_ERROR_LOOKBEHIND_INVALID_BACKSLASH_C 136 +#define PCRE2_ERROR_UNSUPPORTED_ESCAPE_SEQUENCE 137 +#define PCRE2_ERROR_CALLOUT_NUMBER_TOO_BIG 138 +#define PCRE2_ERROR_MISSING_CALLOUT_CLOSING 139 +#define PCRE2_ERROR_ESCAPE_INVALID_IN_VERB 140 +#define PCRE2_ERROR_UNRECOGNIZED_AFTER_QUERY_P 141 +#define PCRE2_ERROR_MISSING_NAME_TERMINATOR 142 +#define PCRE2_ERROR_DUPLICATE_SUBPATTERN_NAME 143 +#define PCRE2_ERROR_INVALID_SUBPATTERN_NAME 144 +#define PCRE2_ERROR_UNICODE_PROPERTIES_UNAVAILABLE 145 +#define PCRE2_ERROR_MALFORMED_UNICODE_PROPERTY 146 +#define PCRE2_ERROR_UNKNOWN_UNICODE_PROPERTY 147 +#define PCRE2_ERROR_SUBPATTERN_NAME_TOO_LONG 148 +#define PCRE2_ERROR_TOO_MANY_NAMED_SUBPATTERNS 149 +#define PCRE2_ERROR_CLASS_INVALID_RANGE 150 +#define PCRE2_ERROR_OCTAL_BYTE_TOO_BIG 151 +#define PCRE2_ERROR_INTERNAL_OVERRAN_WORKSPACE 152 +#define PCRE2_ERROR_INTERNAL_MISSING_SUBPATTERN 153 +#define PCRE2_ERROR_DEFINE_TOO_MANY_BRANCHES 154 +#define PCRE2_ERROR_BACKSLASH_O_MISSING_BRACE 155 +#define PCRE2_ERROR_INTERNAL_UNKNOWN_NEWLINE 156 +#define PCRE2_ERROR_BACKSLASH_G_SYNTAX 157 +#define PCRE2_ERROR_PARENS_QUERY_R_MISSING_CLOSING 158 +/* Error 159 is obsolete and should now never occur */ +#define PCRE2_ERROR_VERB_ARGUMENT_NOT_ALLOWED 159 +#define PCRE2_ERROR_VERB_UNKNOWN 160 +#define PCRE2_ERROR_SUBPATTERN_NUMBER_TOO_BIG 161 +#define PCRE2_ERROR_SUBPATTERN_NAME_EXPECTED 162 +#define PCRE2_ERROR_INTERNAL_PARSED_OVERFLOW 163 +#define PCRE2_ERROR_INVALID_OCTAL 164 +#define PCRE2_ERROR_SUBPATTERN_NAMES_MISMATCH 165 +#define PCRE2_ERROR_MARK_MISSING_ARGUMENT 166 +#define PCRE2_ERROR_INVALID_HEXADECIMAL 167 +#define PCRE2_ERROR_BACKSLASH_C_SYNTAX 168 +#define PCRE2_ERROR_BACKSLASH_K_SYNTAX 169 +#define PCRE2_ERROR_INTERNAL_BAD_CODE_LOOKBEHINDS 170 +#define PCRE2_ERROR_BACKSLASH_N_IN_CLASS 171 +#define PCRE2_ERROR_CALLOUT_STRING_TOO_LONG 172 +#define PCRE2_ERROR_UNICODE_DISALLOWED_CODE_POINT 173 +#define PCRE2_ERROR_UTF_IS_DISABLED 174 +#define PCRE2_ERROR_UCP_IS_DISABLED 175 +#define PCRE2_ERROR_VERB_NAME_TOO_LONG 176 +#define PCRE2_ERROR_BACKSLASH_U_CODE_POINT_TOO_BIG 177 +#define PCRE2_ERROR_MISSING_OCTAL_OR_HEX_DIGITS 178 +#define PCRE2_ERROR_VERSION_CONDITION_SYNTAX 179 +#define PCRE2_ERROR_INTERNAL_BAD_CODE_AUTO_POSSESS 180 +#define PCRE2_ERROR_CALLOUT_NO_STRING_DELIMITER 181 +#define PCRE2_ERROR_CALLOUT_BAD_STRING_DELIMITER 182 +#define PCRE2_ERROR_BACKSLASH_C_CALLER_DISABLED 183 +#define PCRE2_ERROR_QUERY_BARJX_NEST_TOO_DEEP 184 +#define PCRE2_ERROR_BACKSLASH_C_LIBRARY_DISABLED 185 +#define PCRE2_ERROR_PATTERN_TOO_COMPLICATED 186 +#define PCRE2_ERROR_LOOKBEHIND_TOO_LONG 187 +#define PCRE2_ERROR_PATTERN_STRING_TOO_LONG 188 +#define PCRE2_ERROR_INTERNAL_BAD_CODE 189 +#define PCRE2_ERROR_INTERNAL_BAD_CODE_IN_SKIP 190 +#define PCRE2_ERROR_NO_SURROGATES_IN_UTF16 191 +#define PCRE2_ERROR_BAD_LITERAL_OPTIONS 192 +#define PCRE2_ERROR_SUPPORTED_ONLY_IN_UNICODE 193 +#define PCRE2_ERROR_INVALID_HYPHEN_IN_OPTIONS 194 +#define PCRE2_ERROR_ALPHA_ASSERTION_UNKNOWN 195 +#define PCRE2_ERROR_SCRIPT_RUN_NOT_AVAILABLE 196 +#define PCRE2_ERROR_TOO_MANY_CAPTURES 197 +#define PCRE2_ERROR_CONDITION_ATOMIC_ASSERTION_EXPECTED 198 +#define PCRE2_ERROR_BACKSLASH_K_IN_LOOKAROUND 199 + + +/* "Expected" matching error codes: no match and partial match. */ + +#define PCRE2_ERROR_NOMATCH (-1) +#define PCRE2_ERROR_PARTIAL (-2) + +/* Error codes for UTF-8 validity checks */ + +#define PCRE2_ERROR_UTF8_ERR1 (-3) +#define PCRE2_ERROR_UTF8_ERR2 (-4) +#define PCRE2_ERROR_UTF8_ERR3 (-5) +#define PCRE2_ERROR_UTF8_ERR4 (-6) +#define PCRE2_ERROR_UTF8_ERR5 (-7) +#define PCRE2_ERROR_UTF8_ERR6 (-8) +#define PCRE2_ERROR_UTF8_ERR7 (-9) +#define PCRE2_ERROR_UTF8_ERR8 (-10) +#define PCRE2_ERROR_UTF8_ERR9 (-11) +#define PCRE2_ERROR_UTF8_ERR10 (-12) +#define PCRE2_ERROR_UTF8_ERR11 (-13) +#define PCRE2_ERROR_UTF8_ERR12 (-14) +#define PCRE2_ERROR_UTF8_ERR13 (-15) +#define PCRE2_ERROR_UTF8_ERR14 (-16) +#define PCRE2_ERROR_UTF8_ERR15 (-17) +#define PCRE2_ERROR_UTF8_ERR16 (-18) +#define PCRE2_ERROR_UTF8_ERR17 (-19) +#define PCRE2_ERROR_UTF8_ERR18 (-20) +#define PCRE2_ERROR_UTF8_ERR19 (-21) +#define PCRE2_ERROR_UTF8_ERR20 (-22) +#define PCRE2_ERROR_UTF8_ERR21 (-23) + +/* Error codes for UTF-16 validity checks */ + +#define PCRE2_ERROR_UTF16_ERR1 (-24) +#define PCRE2_ERROR_UTF16_ERR2 (-25) +#define PCRE2_ERROR_UTF16_ERR3 (-26) + +/* Error codes for UTF-32 validity checks */ + +#define PCRE2_ERROR_UTF32_ERR1 (-27) +#define PCRE2_ERROR_UTF32_ERR2 (-28) + +/* Miscellaneous error codes for pcre2[_dfa]_match(), substring extraction +functions, context functions, and serializing functions. They are in numerical +order. Originally they were in alphabetical order too, but now that PCRE2 is +released, the numbers must not be changed. */ + +#define PCRE2_ERROR_BADDATA (-29) +#define PCRE2_ERROR_MIXEDTABLES (-30) /* Name was changed */ +#define PCRE2_ERROR_BADMAGIC (-31) +#define PCRE2_ERROR_BADMODE (-32) +#define PCRE2_ERROR_BADOFFSET (-33) +#define PCRE2_ERROR_BADOPTION (-34) +#define PCRE2_ERROR_BADREPLACEMENT (-35) +#define PCRE2_ERROR_BADUTFOFFSET (-36) +#define PCRE2_ERROR_CALLOUT (-37) /* Never used by PCRE2 itself */ +#define PCRE2_ERROR_DFA_BADRESTART (-38) +#define PCRE2_ERROR_DFA_RECURSE (-39) +#define PCRE2_ERROR_DFA_UCOND (-40) +#define PCRE2_ERROR_DFA_UFUNC (-41) +#define PCRE2_ERROR_DFA_UITEM (-42) +#define PCRE2_ERROR_DFA_WSSIZE (-43) +#define PCRE2_ERROR_INTERNAL (-44) +#define PCRE2_ERROR_JIT_BADOPTION (-45) +#define PCRE2_ERROR_JIT_STACKLIMIT (-46) +#define PCRE2_ERROR_MATCHLIMIT (-47) +#define PCRE2_ERROR_NOMEMORY (-48) +#define PCRE2_ERROR_NOSUBSTRING (-49) +#define PCRE2_ERROR_NOUNIQUESUBSTRING (-50) +#define PCRE2_ERROR_NULL (-51) +#define PCRE2_ERROR_RECURSELOOP (-52) +#define PCRE2_ERROR_DEPTHLIMIT (-53) +#define PCRE2_ERROR_RECURSIONLIMIT (-53) /* Obsolete synonym */ +#define PCRE2_ERROR_UNAVAILABLE (-54) +#define PCRE2_ERROR_UNSET (-55) +#define PCRE2_ERROR_BADOFFSETLIMIT (-56) +#define PCRE2_ERROR_BADREPESCAPE (-57) +#define PCRE2_ERROR_REPMISSINGBRACE (-58) +#define PCRE2_ERROR_BADSUBSTITUTION (-59) +#define PCRE2_ERROR_BADSUBSPATTERN (-60) +#define PCRE2_ERROR_TOOMANYREPLACE (-61) +#define PCRE2_ERROR_BADSERIALIZEDDATA (-62) +#define PCRE2_ERROR_HEAPLIMIT (-63) +#define PCRE2_ERROR_CONVERT_SYNTAX (-64) +#define PCRE2_ERROR_INTERNAL_DUPMATCH (-65) +#define PCRE2_ERROR_DFA_UINVALID_UTF (-66) + + +/* Request types for pcre2_pattern_info() */ + +#define PCRE2_INFO_ALLOPTIONS 0 +#define PCRE2_INFO_ARGOPTIONS 1 +#define PCRE2_INFO_BACKREFMAX 2 +#define PCRE2_INFO_BSR 3 +#define PCRE2_INFO_CAPTURECOUNT 4 +#define PCRE2_INFO_FIRSTCODEUNIT 5 +#define PCRE2_INFO_FIRSTCODETYPE 6 +#define PCRE2_INFO_FIRSTBITMAP 7 +#define PCRE2_INFO_HASCRORLF 8 +#define PCRE2_INFO_JCHANGED 9 +#define PCRE2_INFO_JITSIZE 10 +#define PCRE2_INFO_LASTCODEUNIT 11 +#define PCRE2_INFO_LASTCODETYPE 12 +#define PCRE2_INFO_MATCHEMPTY 13 +#define PCRE2_INFO_MATCHLIMIT 14 +#define PCRE2_INFO_MAXLOOKBEHIND 15 +#define PCRE2_INFO_MINLENGTH 16 +#define PCRE2_INFO_NAMECOUNT 17 +#define PCRE2_INFO_NAMEENTRYSIZE 18 +#define PCRE2_INFO_NAMETABLE 19 +#define PCRE2_INFO_NEWLINE 20 +#define PCRE2_INFO_DEPTHLIMIT 21 +#define PCRE2_INFO_RECURSIONLIMIT 21 /* Obsolete synonym */ +#define PCRE2_INFO_SIZE 22 +#define PCRE2_INFO_HASBACKSLASHC 23 +#define PCRE2_INFO_FRAMESIZE 24 +#define PCRE2_INFO_HEAPLIMIT 25 +#define PCRE2_INFO_EXTRAOPTIONS 26 + +/* Request types for pcre2_config(). */ + +#define PCRE2_CONFIG_BSR 0 +#define PCRE2_CONFIG_JIT 1 +#define PCRE2_CONFIG_JITTARGET 2 +#define PCRE2_CONFIG_LINKSIZE 3 +#define PCRE2_CONFIG_MATCHLIMIT 4 +#define PCRE2_CONFIG_NEWLINE 5 +#define PCRE2_CONFIG_PARENSLIMIT 6 +#define PCRE2_CONFIG_DEPTHLIMIT 7 +#define PCRE2_CONFIG_RECURSIONLIMIT 7 /* Obsolete synonym */ +#define PCRE2_CONFIG_STACKRECURSE 8 /* Obsolete */ +#define PCRE2_CONFIG_UNICODE 9 +#define PCRE2_CONFIG_UNICODE_VERSION 10 +#define PCRE2_CONFIG_VERSION 11 +#define PCRE2_CONFIG_HEAPLIMIT 12 +#define PCRE2_CONFIG_NEVER_BACKSLASH_C 13 +#define PCRE2_CONFIG_COMPILED_WIDTHS 14 +#define PCRE2_CONFIG_TABLES_LENGTH 15 + + +/* Types for code units in patterns and subject strings. */ + +typedef uint8_t PCRE2_UCHAR8; +typedef uint16_t PCRE2_UCHAR16; +typedef uint32_t PCRE2_UCHAR32; + +typedef const PCRE2_UCHAR8 *PCRE2_SPTR8; +typedef const PCRE2_UCHAR16 *PCRE2_SPTR16; +typedef const PCRE2_UCHAR32 *PCRE2_SPTR32; + +/* The PCRE2_SIZE type is used for all string lengths and offsets in PCRE2, +including pattern offsets for errors and subject offsets after a match. We +define special values to indicate zero-terminated strings and unset offsets in +the offset vector (ovector). */ + +#define PCRE2_SIZE size_t +#define PCRE2_SIZE_MAX SIZE_MAX +#define PCRE2_ZERO_TERMINATED (~(PCRE2_SIZE)0) +#define PCRE2_UNSET (~(PCRE2_SIZE)0) + +/* Generic types for opaque structures and JIT callback functions. These +declarations are defined in a macro that is expanded for each width later. */ + +#define PCRE2_TYPES_LIST \ +struct pcre2_real_general_context; \ +typedef struct pcre2_real_general_context pcre2_general_context; \ +\ +struct pcre2_real_compile_context; \ +typedef struct pcre2_real_compile_context pcre2_compile_context; \ +\ +struct pcre2_real_match_context; \ +typedef struct pcre2_real_match_context pcre2_match_context; \ +\ +struct pcre2_real_convert_context; \ +typedef struct pcre2_real_convert_context pcre2_convert_context; \ +\ +struct pcre2_real_code; \ +typedef struct pcre2_real_code pcre2_code; \ +\ +struct pcre2_real_match_data; \ +typedef struct pcre2_real_match_data pcre2_match_data; \ +\ +struct pcre2_real_jit_stack; \ +typedef struct pcre2_real_jit_stack pcre2_jit_stack; \ +\ +typedef pcre2_jit_stack *(*pcre2_jit_callback)(void *); + + +/* The structures for passing out data via callout functions. We use structures +so that new fields can be added on the end in future versions, without changing +the API of the function, thereby allowing old clients to work without +modification. Define the generic versions in a macro; the width-specific +versions are generated from this macro below. */ + +/* Flags for the callout_flags field. These are cleared after a callout. */ + +#define PCRE2_CALLOUT_STARTMATCH 0x00000001u /* Set for each bumpalong */ +#define PCRE2_CALLOUT_BACKTRACK 0x00000002u /* Set after a backtrack */ + +#define PCRE2_STRUCTURE_LIST \ +typedef struct pcre2_callout_block { \ + uint32_t version; /* Identifies version of block */ \ + /* ------------------------ Version 0 ------------------------------- */ \ + uint32_t callout_number; /* Number compiled into pattern */ \ + uint32_t capture_top; /* Max current capture */ \ + uint32_t capture_last; /* Most recently closed capture */ \ + PCRE2_SIZE *offset_vector; /* The offset vector */ \ + PCRE2_SPTR mark; /* Pointer to current mark or NULL */ \ + PCRE2_SPTR subject; /* The subject being matched */ \ + PCRE2_SIZE subject_length; /* The length of the subject */ \ + PCRE2_SIZE start_match; /* Offset to start of this match attempt */ \ + PCRE2_SIZE current_position; /* Where we currently are in the subject */ \ + PCRE2_SIZE pattern_position; /* Offset to next item in the pattern */ \ + PCRE2_SIZE next_item_length; /* Length of next item in the pattern */ \ + /* ------------------- Added for Version 1 -------------------------- */ \ + PCRE2_SIZE callout_string_offset; /* Offset to string within pattern */ \ + PCRE2_SIZE callout_string_length; /* Length of string compiled into pattern */ \ + PCRE2_SPTR callout_string; /* String compiled into pattern */ \ + /* ------------------- Added for Version 2 -------------------------- */ \ + uint32_t callout_flags; /* See above for list */ \ + /* ------------------------------------------------------------------ */ \ +} pcre2_callout_block; \ +\ +typedef struct pcre2_callout_enumerate_block { \ + uint32_t version; /* Identifies version of block */ \ + /* ------------------------ Version 0 ------------------------------- */ \ + PCRE2_SIZE pattern_position; /* Offset to next item in the pattern */ \ + PCRE2_SIZE next_item_length; /* Length of next item in the pattern */ \ + uint32_t callout_number; /* Number compiled into pattern */ \ + PCRE2_SIZE callout_string_offset; /* Offset to string within pattern */ \ + PCRE2_SIZE callout_string_length; /* Length of string compiled into pattern */ \ + PCRE2_SPTR callout_string; /* String compiled into pattern */ \ + /* ------------------------------------------------------------------ */ \ +} pcre2_callout_enumerate_block; \ +\ +typedef struct pcre2_substitute_callout_block { \ + uint32_t version; /* Identifies version of block */ \ + /* ------------------------ Version 0 ------------------------------- */ \ + PCRE2_SPTR input; /* Pointer to input subject string */ \ + PCRE2_SPTR output; /* Pointer to output buffer */ \ + PCRE2_SIZE output_offsets[2]; /* Changed portion of the output */ \ + PCRE2_SIZE *ovector; /* Pointer to current ovector */ \ + uint32_t oveccount; /* Count of pairs set in ovector */ \ + uint32_t subscount; /* Substitution number */ \ + /* ------------------------------------------------------------------ */ \ +} pcre2_substitute_callout_block; + + +/* List the generic forms of all other functions in macros, which will be +expanded for each width below. Start with functions that give general +information. */ + +#define PCRE2_GENERAL_INFO_FUNCTIONS \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION pcre2_config(uint32_t, void *); + + +/* Functions for manipulating contexts. */ + +#define PCRE2_GENERAL_CONTEXT_FUNCTIONS \ +PCRE2_EXP_DECL pcre2_general_context *PCRE2_CALL_CONVENTION \ + pcre2_general_context_copy(pcre2_general_context *); \ +PCRE2_EXP_DECL pcre2_general_context *PCRE2_CALL_CONVENTION \ + pcre2_general_context_create(void *(*)(PCRE2_SIZE, void *), \ + void (*)(void *, void *), void *); \ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_general_context_free(pcre2_general_context *); + +#define PCRE2_COMPILE_CONTEXT_FUNCTIONS \ +PCRE2_EXP_DECL pcre2_compile_context *PCRE2_CALL_CONVENTION \ + pcre2_compile_context_copy(pcre2_compile_context *); \ +PCRE2_EXP_DECL pcre2_compile_context *PCRE2_CALL_CONVENTION \ + pcre2_compile_context_create(pcre2_general_context *);\ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_compile_context_free(pcre2_compile_context *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_bsr(pcre2_compile_context *, uint32_t); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_character_tables(pcre2_compile_context *, const uint8_t *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_compile_extra_options(pcre2_compile_context *, uint32_t); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_max_pattern_length(pcre2_compile_context *, PCRE2_SIZE); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_newline(pcre2_compile_context *, uint32_t); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_parens_nest_limit(pcre2_compile_context *, uint32_t); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_compile_recursion_guard(pcre2_compile_context *, \ + int (*)(uint32_t, void *), void *); + +#define PCRE2_MATCH_CONTEXT_FUNCTIONS \ +PCRE2_EXP_DECL pcre2_match_context *PCRE2_CALL_CONVENTION \ + pcre2_match_context_copy(pcre2_match_context *); \ +PCRE2_EXP_DECL pcre2_match_context *PCRE2_CALL_CONVENTION \ + pcre2_match_context_create(pcre2_general_context *); \ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_match_context_free(pcre2_match_context *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_callout(pcre2_match_context *, \ + int (*)(pcre2_callout_block *, void *), void *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_substitute_callout(pcre2_match_context *, \ + int (*)(pcre2_substitute_callout_block *, void *), void *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_depth_limit(pcre2_match_context *, uint32_t); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_heap_limit(pcre2_match_context *, uint32_t); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_match_limit(pcre2_match_context *, uint32_t); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_offset_limit(pcre2_match_context *, PCRE2_SIZE); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_recursion_limit(pcre2_match_context *, uint32_t); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_recursion_memory_management(pcre2_match_context *, \ + void *(*)(PCRE2_SIZE, void *), void (*)(void *, void *), void *); + +#define PCRE2_CONVERT_CONTEXT_FUNCTIONS \ +PCRE2_EXP_DECL pcre2_convert_context *PCRE2_CALL_CONVENTION \ + pcre2_convert_context_copy(pcre2_convert_context *); \ +PCRE2_EXP_DECL pcre2_convert_context *PCRE2_CALL_CONVENTION \ + pcre2_convert_context_create(pcre2_general_context *); \ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_convert_context_free(pcre2_convert_context *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_glob_escape(pcre2_convert_context *, uint32_t); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_set_glob_separator(pcre2_convert_context *, uint32_t); + + +/* Functions concerned with compiling a pattern to PCRE internal code. */ + +#define PCRE2_COMPILE_FUNCTIONS \ +PCRE2_EXP_DECL pcre2_code *PCRE2_CALL_CONVENTION \ + pcre2_compile(PCRE2_SPTR, PCRE2_SIZE, uint32_t, int *, PCRE2_SIZE *, \ + pcre2_compile_context *); \ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_code_free(pcre2_code *); \ +PCRE2_EXP_DECL pcre2_code *PCRE2_CALL_CONVENTION \ + pcre2_code_copy(const pcre2_code *); \ +PCRE2_EXP_DECL pcre2_code *PCRE2_CALL_CONVENTION \ + pcre2_code_copy_with_tables(const pcre2_code *); + + +/* Functions that give information about a compiled pattern. */ + +#define PCRE2_PATTERN_INFO_FUNCTIONS \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_pattern_info(const pcre2_code *, uint32_t, void *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_callout_enumerate(const pcre2_code *, \ + int (*)(pcre2_callout_enumerate_block *, void *), void *); + + +/* Functions for running a match and inspecting the result. */ + +#define PCRE2_MATCH_FUNCTIONS \ +PCRE2_EXP_DECL pcre2_match_data *PCRE2_CALL_CONVENTION \ + pcre2_match_data_create(uint32_t, pcre2_general_context *); \ +PCRE2_EXP_DECL pcre2_match_data *PCRE2_CALL_CONVENTION \ + pcre2_match_data_create_from_pattern(const pcre2_code *, \ + pcre2_general_context *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_dfa_match(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \ + uint32_t, pcre2_match_data *, pcre2_match_context *, int *, PCRE2_SIZE); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_match(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \ + uint32_t, pcre2_match_data *, pcre2_match_context *); \ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_match_data_free(pcre2_match_data *); \ +PCRE2_EXP_DECL PCRE2_SPTR PCRE2_CALL_CONVENTION \ + pcre2_get_mark(pcre2_match_data *); \ +PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \ + pcre2_get_match_data_size(pcre2_match_data *); \ +PCRE2_EXP_DECL uint32_t PCRE2_CALL_CONVENTION \ + pcre2_get_ovector_count(pcre2_match_data *); \ +PCRE2_EXP_DECL PCRE2_SIZE *PCRE2_CALL_CONVENTION \ + pcre2_get_ovector_pointer(pcre2_match_data *); \ +PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \ + pcre2_get_startchar(pcre2_match_data *); + + +/* Convenience functions for handling matched substrings. */ + +#define PCRE2_SUBSTRING_FUNCTIONS \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_substring_copy_byname(pcre2_match_data *, PCRE2_SPTR, PCRE2_UCHAR *, \ + PCRE2_SIZE *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_substring_copy_bynumber(pcre2_match_data *, uint32_t, PCRE2_UCHAR *, \ + PCRE2_SIZE *); \ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_substring_free(PCRE2_UCHAR *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_substring_get_byname(pcre2_match_data *, PCRE2_SPTR, PCRE2_UCHAR **, \ + PCRE2_SIZE *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_substring_get_bynumber(pcre2_match_data *, uint32_t, PCRE2_UCHAR **, \ + PCRE2_SIZE *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_substring_length_byname(pcre2_match_data *, PCRE2_SPTR, PCRE2_SIZE *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_substring_length_bynumber(pcre2_match_data *, uint32_t, PCRE2_SIZE *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_substring_nametable_scan(const pcre2_code *, PCRE2_SPTR, PCRE2_SPTR *, \ + PCRE2_SPTR *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_substring_number_from_name(const pcre2_code *, PCRE2_SPTR); \ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_substring_list_free(PCRE2_SPTR *); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_substring_list_get(pcre2_match_data *, PCRE2_UCHAR ***, PCRE2_SIZE **); + +/* Functions for serializing / deserializing compiled patterns. */ + +#define PCRE2_SERIALIZE_FUNCTIONS \ +PCRE2_EXP_DECL int32_t PCRE2_CALL_CONVENTION \ + pcre2_serialize_encode(const pcre2_code **, int32_t, uint8_t **, \ + PCRE2_SIZE *, pcre2_general_context *); \ +PCRE2_EXP_DECL int32_t PCRE2_CALL_CONVENTION \ + pcre2_serialize_decode(pcre2_code **, int32_t, const uint8_t *, \ + pcre2_general_context *); \ +PCRE2_EXP_DECL int32_t PCRE2_CALL_CONVENTION \ + pcre2_serialize_get_number_of_codes(const uint8_t *); \ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_serialize_free(uint8_t *); + + +/* Convenience function for match + substitute. */ + +#define PCRE2_SUBSTITUTE_FUNCTION \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_substitute(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \ + uint32_t, pcre2_match_data *, pcre2_match_context *, PCRE2_SPTR, \ + PCRE2_SIZE, PCRE2_UCHAR *, PCRE2_SIZE *); + + +/* Functions for converting pattern source strings. */ + +#define PCRE2_CONVERT_FUNCTIONS \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_pattern_convert(PCRE2_SPTR, PCRE2_SIZE, uint32_t, PCRE2_UCHAR **, \ + PCRE2_SIZE *, pcre2_convert_context *); \ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_converted_pattern_free(PCRE2_UCHAR *); + + +/* Functions for JIT processing */ + +#define PCRE2_JIT_FUNCTIONS \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_jit_compile(pcre2_code *, uint32_t); \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_jit_match(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \ + uint32_t, pcre2_match_data *, pcre2_match_context *); \ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_jit_free_unused_memory(pcre2_general_context *); \ +PCRE2_EXP_DECL pcre2_jit_stack *PCRE2_CALL_CONVENTION \ + pcre2_jit_stack_create(PCRE2_SIZE, PCRE2_SIZE, pcre2_general_context *); \ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_jit_stack_assign(pcre2_match_context *, pcre2_jit_callback, void *); \ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_jit_stack_free(pcre2_jit_stack *); + + +/* Other miscellaneous functions. */ + +#define PCRE2_OTHER_FUNCTIONS \ +PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ + pcre2_get_error_message(int, PCRE2_UCHAR *, PCRE2_SIZE); \ +PCRE2_EXP_DECL const uint8_t *PCRE2_CALL_CONVENTION \ + pcre2_maketables(pcre2_general_context *); \ +PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ + pcre2_maketables_free(pcre2_general_context *, const uint8_t *); + +/* Define macros that generate width-specific names from generic versions. The +three-level macro scheme is necessary to get the macros expanded when we want +them to be. First we get the width from PCRE2_LOCAL_WIDTH, which is used for +generating three versions of everything below. After that, PCRE2_SUFFIX will be +re-defined to use PCRE2_CODE_UNIT_WIDTH, for use when macros such as +pcre2_compile are called by application code. */ + +#define PCRE2_JOIN(a,b) a ## b +#define PCRE2_GLUE(a,b) PCRE2_JOIN(a,b) +#define PCRE2_SUFFIX(a) PCRE2_GLUE(a,PCRE2_LOCAL_WIDTH) + + +/* Data types */ + +#define PCRE2_UCHAR PCRE2_SUFFIX(PCRE2_UCHAR) +#define PCRE2_SPTR PCRE2_SUFFIX(PCRE2_SPTR) + +#define pcre2_code PCRE2_SUFFIX(pcre2_code_) +#define pcre2_jit_callback PCRE2_SUFFIX(pcre2_jit_callback_) +#define pcre2_jit_stack PCRE2_SUFFIX(pcre2_jit_stack_) + +#define pcre2_real_code PCRE2_SUFFIX(pcre2_real_code_) +#define pcre2_real_general_context PCRE2_SUFFIX(pcre2_real_general_context_) +#define pcre2_real_compile_context PCRE2_SUFFIX(pcre2_real_compile_context_) +#define pcre2_real_convert_context PCRE2_SUFFIX(pcre2_real_convert_context_) +#define pcre2_real_match_context PCRE2_SUFFIX(pcre2_real_match_context_) +#define pcre2_real_jit_stack PCRE2_SUFFIX(pcre2_real_jit_stack_) +#define pcre2_real_match_data PCRE2_SUFFIX(pcre2_real_match_data_) + + +/* Data blocks */ + +#define pcre2_callout_block PCRE2_SUFFIX(pcre2_callout_block_) +#define pcre2_callout_enumerate_block PCRE2_SUFFIX(pcre2_callout_enumerate_block_) +#define pcre2_substitute_callout_block PCRE2_SUFFIX(pcre2_substitute_callout_block_) +#define pcre2_general_context PCRE2_SUFFIX(pcre2_general_context_) +#define pcre2_compile_context PCRE2_SUFFIX(pcre2_compile_context_) +#define pcre2_convert_context PCRE2_SUFFIX(pcre2_convert_context_) +#define pcre2_match_context PCRE2_SUFFIX(pcre2_match_context_) +#define pcre2_match_data PCRE2_SUFFIX(pcre2_match_data_) + + +/* Functions: the complete list in alphabetical order */ + +#define pcre2_callout_enumerate PCRE2_SUFFIX(pcre2_callout_enumerate_) +#define pcre2_code_copy PCRE2_SUFFIX(pcre2_code_copy_) +#define pcre2_code_copy_with_tables PCRE2_SUFFIX(pcre2_code_copy_with_tables_) +#define pcre2_code_free PCRE2_SUFFIX(pcre2_code_free_) +#define pcre2_compile PCRE2_SUFFIX(pcre2_compile_) +#define pcre2_compile_context_copy PCRE2_SUFFIX(pcre2_compile_context_copy_) +#define pcre2_compile_context_create PCRE2_SUFFIX(pcre2_compile_context_create_) +#define pcre2_compile_context_free PCRE2_SUFFIX(pcre2_compile_context_free_) +#define pcre2_config PCRE2_SUFFIX(pcre2_config_) +#define pcre2_convert_context_copy PCRE2_SUFFIX(pcre2_convert_context_copy_) +#define pcre2_convert_context_create PCRE2_SUFFIX(pcre2_convert_context_create_) +#define pcre2_convert_context_free PCRE2_SUFFIX(pcre2_convert_context_free_) +#define pcre2_converted_pattern_free PCRE2_SUFFIX(pcre2_converted_pattern_free_) +#define pcre2_dfa_match PCRE2_SUFFIX(pcre2_dfa_match_) +#define pcre2_general_context_copy PCRE2_SUFFIX(pcre2_general_context_copy_) +#define pcre2_general_context_create PCRE2_SUFFIX(pcre2_general_context_create_) +#define pcre2_general_context_free PCRE2_SUFFIX(pcre2_general_context_free_) +#define pcre2_get_error_message PCRE2_SUFFIX(pcre2_get_error_message_) +#define pcre2_get_mark PCRE2_SUFFIX(pcre2_get_mark_) +#define pcre2_get_match_data_size PCRE2_SUFFIX(pcre2_get_match_data_size_) +#define pcre2_get_ovector_pointer PCRE2_SUFFIX(pcre2_get_ovector_pointer_) +#define pcre2_get_ovector_count PCRE2_SUFFIX(pcre2_get_ovector_count_) +#define pcre2_get_startchar PCRE2_SUFFIX(pcre2_get_startchar_) +#define pcre2_jit_compile PCRE2_SUFFIX(pcre2_jit_compile_) +#define pcre2_jit_match PCRE2_SUFFIX(pcre2_jit_match_) +#define pcre2_jit_free_unused_memory PCRE2_SUFFIX(pcre2_jit_free_unused_memory_) +#define pcre2_jit_stack_assign PCRE2_SUFFIX(pcre2_jit_stack_assign_) +#define pcre2_jit_stack_create PCRE2_SUFFIX(pcre2_jit_stack_create_) +#define pcre2_jit_stack_free PCRE2_SUFFIX(pcre2_jit_stack_free_) +#define pcre2_maketables PCRE2_SUFFIX(pcre2_maketables_) +#define pcre2_maketables_free PCRE2_SUFFIX(pcre2_maketables_free_) +#define pcre2_match PCRE2_SUFFIX(pcre2_match_) +#define pcre2_match_context_copy PCRE2_SUFFIX(pcre2_match_context_copy_) +#define pcre2_match_context_create PCRE2_SUFFIX(pcre2_match_context_create_) +#define pcre2_match_context_free PCRE2_SUFFIX(pcre2_match_context_free_) +#define pcre2_match_data_create PCRE2_SUFFIX(pcre2_match_data_create_) +#define pcre2_match_data_create_from_pattern PCRE2_SUFFIX(pcre2_match_data_create_from_pattern_) +#define pcre2_match_data_free PCRE2_SUFFIX(pcre2_match_data_free_) +#define pcre2_pattern_convert PCRE2_SUFFIX(pcre2_pattern_convert_) +#define pcre2_pattern_info PCRE2_SUFFIX(pcre2_pattern_info_) +#define pcre2_serialize_decode PCRE2_SUFFIX(pcre2_serialize_decode_) +#define pcre2_serialize_encode PCRE2_SUFFIX(pcre2_serialize_encode_) +#define pcre2_serialize_free PCRE2_SUFFIX(pcre2_serialize_free_) +#define pcre2_serialize_get_number_of_codes PCRE2_SUFFIX(pcre2_serialize_get_number_of_codes_) +#define pcre2_set_bsr PCRE2_SUFFIX(pcre2_set_bsr_) +#define pcre2_set_callout PCRE2_SUFFIX(pcre2_set_callout_) +#define pcre2_set_character_tables PCRE2_SUFFIX(pcre2_set_character_tables_) +#define pcre2_set_compile_extra_options PCRE2_SUFFIX(pcre2_set_compile_extra_options_) +#define pcre2_set_compile_recursion_guard PCRE2_SUFFIX(pcre2_set_compile_recursion_guard_) +#define pcre2_set_depth_limit PCRE2_SUFFIX(pcre2_set_depth_limit_) +#define pcre2_set_glob_escape PCRE2_SUFFIX(pcre2_set_glob_escape_) +#define pcre2_set_glob_separator PCRE2_SUFFIX(pcre2_set_glob_separator_) +#define pcre2_set_heap_limit PCRE2_SUFFIX(pcre2_set_heap_limit_) +#define pcre2_set_match_limit PCRE2_SUFFIX(pcre2_set_match_limit_) +#define pcre2_set_max_pattern_length PCRE2_SUFFIX(pcre2_set_max_pattern_length_) +#define pcre2_set_newline PCRE2_SUFFIX(pcre2_set_newline_) +#define pcre2_set_parens_nest_limit PCRE2_SUFFIX(pcre2_set_parens_nest_limit_) +#define pcre2_set_offset_limit PCRE2_SUFFIX(pcre2_set_offset_limit_) +#define pcre2_set_substitute_callout PCRE2_SUFFIX(pcre2_set_substitute_callout_) +#define pcre2_substitute PCRE2_SUFFIX(pcre2_substitute_) +#define pcre2_substring_copy_byname PCRE2_SUFFIX(pcre2_substring_copy_byname_) +#define pcre2_substring_copy_bynumber PCRE2_SUFFIX(pcre2_substring_copy_bynumber_) +#define pcre2_substring_free PCRE2_SUFFIX(pcre2_substring_free_) +#define pcre2_substring_get_byname PCRE2_SUFFIX(pcre2_substring_get_byname_) +#define pcre2_substring_get_bynumber PCRE2_SUFFIX(pcre2_substring_get_bynumber_) +#define pcre2_substring_length_byname PCRE2_SUFFIX(pcre2_substring_length_byname_) +#define pcre2_substring_length_bynumber PCRE2_SUFFIX(pcre2_substring_length_bynumber_) +#define pcre2_substring_list_get PCRE2_SUFFIX(pcre2_substring_list_get_) +#define pcre2_substring_list_free PCRE2_SUFFIX(pcre2_substring_list_free_) +#define pcre2_substring_nametable_scan PCRE2_SUFFIX(pcre2_substring_nametable_scan_) +#define pcre2_substring_number_from_name PCRE2_SUFFIX(pcre2_substring_number_from_name_) + +/* Keep this old function name for backwards compatibility */ +#define pcre2_set_recursion_limit PCRE2_SUFFIX(pcre2_set_recursion_limit_) + +/* Keep this obsolete function for backwards compatibility: it is now a noop. */ +#define pcre2_set_recursion_memory_management PCRE2_SUFFIX(pcre2_set_recursion_memory_management_) + +/* Now generate all three sets of width-specific structures and function +prototypes. */ + +#define PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS \ +PCRE2_TYPES_LIST \ +PCRE2_STRUCTURE_LIST \ +PCRE2_GENERAL_INFO_FUNCTIONS \ +PCRE2_GENERAL_CONTEXT_FUNCTIONS \ +PCRE2_COMPILE_CONTEXT_FUNCTIONS \ +PCRE2_CONVERT_CONTEXT_FUNCTIONS \ +PCRE2_CONVERT_FUNCTIONS \ +PCRE2_MATCH_CONTEXT_FUNCTIONS \ +PCRE2_COMPILE_FUNCTIONS \ +PCRE2_PATTERN_INFO_FUNCTIONS \ +PCRE2_MATCH_FUNCTIONS \ +PCRE2_SUBSTRING_FUNCTIONS \ +PCRE2_SERIALIZE_FUNCTIONS \ +PCRE2_SUBSTITUTE_FUNCTION \ +PCRE2_JIT_FUNCTIONS \ +PCRE2_OTHER_FUNCTIONS + +#define PCRE2_LOCAL_WIDTH 8 +PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS +#undef PCRE2_LOCAL_WIDTH + +#define PCRE2_LOCAL_WIDTH 16 +PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS +#undef PCRE2_LOCAL_WIDTH + +#define PCRE2_LOCAL_WIDTH 32 +PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS +#undef PCRE2_LOCAL_WIDTH + +/* Undefine the list macros; they are no longer needed. */ + +#undef PCRE2_TYPES_LIST +#undef PCRE2_STRUCTURE_LIST +#undef PCRE2_GENERAL_INFO_FUNCTIONS +#undef PCRE2_GENERAL_CONTEXT_FUNCTIONS +#undef PCRE2_COMPILE_CONTEXT_FUNCTIONS +#undef PCRE2_CONVERT_CONTEXT_FUNCTIONS +#undef PCRE2_MATCH_CONTEXT_FUNCTIONS +#undef PCRE2_COMPILE_FUNCTIONS +#undef PCRE2_PATTERN_INFO_FUNCTIONS +#undef PCRE2_MATCH_FUNCTIONS +#undef PCRE2_SUBSTRING_FUNCTIONS +#undef PCRE2_SERIALIZE_FUNCTIONS +#undef PCRE2_SUBSTITUTE_FUNCTION +#undef PCRE2_JIT_FUNCTIONS +#undef PCRE2_OTHER_FUNCTIONS +#undef PCRE2_TYPES_STRUCTURES_AND_FUNCTIONS + +/* PCRE2_CODE_UNIT_WIDTH must be defined. If it is 8, 16, or 32, redefine +PCRE2_SUFFIX to use it. If it is 0, undefine the other macros and make +PCRE2_SUFFIX a no-op. Otherwise, generate an error. */ + +#undef PCRE2_SUFFIX +#ifndef PCRE2_CODE_UNIT_WIDTH +#error PCRE2_CODE_UNIT_WIDTH must be defined before including pcre2.h. +#error Use 8, 16, or 32; or 0 for a multi-width application. +#else /* PCRE2_CODE_UNIT_WIDTH is defined */ +#if PCRE2_CODE_UNIT_WIDTH == 8 || \ + PCRE2_CODE_UNIT_WIDTH == 16 || \ + PCRE2_CODE_UNIT_WIDTH == 32 +#define PCRE2_SUFFIX(a) PCRE2_GLUE(a, PCRE2_CODE_UNIT_WIDTH) +#elif PCRE2_CODE_UNIT_WIDTH == 0 +#undef PCRE2_JOIN +#undef PCRE2_GLUE +#define PCRE2_SUFFIX(a) a +#else +#error PCRE2_CODE_UNIT_WIDTH must be 0, 8, 16, or 32. +#endif +#endif /* PCRE2_CODE_UNIT_WIDTH is defined */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* PCRE2_H_IDEMPOTENT_GUARD */ + +/* End of pcre2.h */ diff --git a/code/application/source/sf_app/tools/blue/include/pcre2posix.h b/code/application/source/sf_app/tools/blue/include/pcre2posix.h new file mode 100644 index 000000000..6e3b2cff9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/pcre2posix.h @@ -0,0 +1,184 @@ +/************************************************* +* Perl-Compatible Regular Expressions * +*************************************************/ + +/* PCRE2 is a library of functions to support regular expressions whose syntax +and semantics are as close as possible to those of the Perl 5 language. This is +the public header file to be #included by applications that call PCRE2 via the +POSIX wrapper interface. + + Written by Philip Hazel + Original API code Copyright (c) 1997-2012 University of Cambridge + New API code Copyright (c) 2016-2022 University of Cambridge + +----------------------------------------------------------------------------- +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +----------------------------------------------------------------------------- +*/ + + +/* Have to include stdlib.h in order to ensure that size_t is defined. */ + +#include + +/* Allow for C++ users */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Options, mostly defined by POSIX, but with some extras. */ + +#define REG_ICASE 0x0001 /* Maps to PCRE2_CASELESS */ +#define REG_NEWLINE 0x0002 /* Maps to PCRE2_MULTILINE */ +#define REG_NOTBOL 0x0004 /* Maps to PCRE2_NOTBOL */ +#define REG_NOTEOL 0x0008 /* Maps to PCRE2_NOTEOL */ +#define REG_DOTALL 0x0010 /* NOT defined by POSIX; maps to PCRE2_DOTALL */ +#define REG_NOSUB 0x0020 /* Do not report what was matched */ +#define REG_UTF 0x0040 /* NOT defined by POSIX; maps to PCRE2_UTF */ +#define REG_STARTEND 0x0080 /* BSD feature: pass subject string by so,eo */ +#define REG_NOTEMPTY 0x0100 /* NOT defined by POSIX; maps to PCRE2_NOTEMPTY */ +#define REG_UNGREEDY 0x0200 /* NOT defined by POSIX; maps to PCRE2_UNGREEDY */ +#define REG_UCP 0x0400 /* NOT defined by POSIX; maps to PCRE2_UCP */ +#define REG_PEND 0x0800 /* GNU feature: pass end pattern by re_endp */ +#define REG_NOSPEC 0x1000 /* Maps to PCRE2_LITERAL */ + +/* This is not used by PCRE2, but by defining it we make it easier +to slot PCRE2 into existing programs that make POSIX calls. */ + +#define REG_EXTENDED 0 + +/* Error values. Not all these are relevant or used by the wrapper. */ + +enum { + REG_ASSERT = 1, /* internal error ? */ + REG_BADBR, /* invalid repeat counts in {} */ + REG_BADPAT, /* pattern error */ + REG_BADRPT, /* ? * + invalid */ + REG_EBRACE, /* unbalanced {} */ + REG_EBRACK, /* unbalanced [] */ + REG_ECOLLATE, /* collation error - not relevant */ + REG_ECTYPE, /* bad class */ + REG_EESCAPE, /* bad escape sequence */ + REG_EMPTY, /* empty expression */ + REG_EPAREN, /* unbalanced () */ + REG_ERANGE, /* bad range inside [] */ + REG_ESIZE, /* expression too big */ + REG_ESPACE, /* failed to get memory */ + REG_ESUBREG, /* bad back reference */ + REG_INVARG, /* bad argument */ + REG_NOMATCH /* match failed */ +}; + + +/* The structure representing a compiled regular expression. It is also used +for passing the pattern end pointer when REG_PEND is set. */ + +typedef struct { + void *re_pcre2_code; + void *re_match_data; + const char *re_endp; + size_t re_nsub; + size_t re_erroffset; + int re_cflags; +} regex_t; + +/* The structure in which a captured offset is returned. */ + +typedef int regoff_t; + +typedef struct { + regoff_t rm_so; + regoff_t rm_eo; +} regmatch_t; + +/* When compiling with the MSVC compiler, it is sometimes necessary to include +a "calling convention" before exported function names. (This is secondhand +information; I know nothing about MSVC myself). For example, something like + + void __cdecl function(....) + +might be needed. In order to make this easy, all the exported functions have +PCRE2_CALL_CONVENTION just before their names. It is rarely needed; if not +set, we ensure here that it has no effect. */ + +#ifndef PCRE2_CALL_CONVENTION +#define PCRE2_CALL_CONVENTION +#endif + +/* When an application links to a PCRE2 DLL in Windows, the symbols that are +imported have to be identified as such. When building PCRE2, the appropriate +export settings are needed, and are set in pcre2posix.c before including this +file. */ + +#if defined(_WIN32) && !defined(PCRE2_STATIC) && !defined(PCRE2POSIX_EXP_DECL) +# define PCRE2POSIX_EXP_DECL extern __declspec(dllimport) +# define PCRE2POSIX_EXP_DEFN __declspec(dllimport) +#endif + +/* By default, we use the standard "extern" declarations. */ + +#ifndef PCRE2POSIX_EXP_DECL +# ifdef __cplusplus +# define PCRE2POSIX_EXP_DECL extern "C" +# define PCRE2POSIX_EXP_DEFN extern "C" +# else +# define PCRE2POSIX_EXP_DECL extern +# define PCRE2POSIX_EXP_DEFN extern +# endif +#endif + +/* The functions. The actual code is in functions with pcre2_xxx names for +uniqueness. POSIX names are provided as macros for API compatibility with POSIX +regex functions. It's done this way to ensure to they are always linked from +the PCRE2 library and not by accident from elsewhere (regex_t differs in size +elsewhere). */ + +PCRE2POSIX_EXP_DECL int PCRE2_CALL_CONVENTION pcre2_regcomp(regex_t *, const char *, int); +PCRE2POSIX_EXP_DECL int PCRE2_CALL_CONVENTION pcre2_regexec(const regex_t *, const char *, size_t, + regmatch_t *, int); +PCRE2POSIX_EXP_DECL size_t PCRE2_CALL_CONVENTION pcre2_regerror(int, const regex_t *, char *, size_t); +PCRE2POSIX_EXP_DECL void PCRE2_CALL_CONVENTION pcre2_regfree(regex_t *); + +#define regcomp pcre2_regcomp +#define regexec pcre2_regexec +#define regerror pcre2_regerror +#define regfree pcre2_regfree + +/* Debian had a patch that used different names. These are now here to save +them having to maintain their own patch, but are not documented by PCRE2. */ + +#define PCRE2regcomp pcre2_regcomp +#define PCRE2regexec pcre2_regexec +#define PCRE2regerror pcre2_regerror +#define PCRE2regfree pcre2_regfree + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +/* End of pcre2posix.h */ diff --git a/code/application/source/sf_app/tools/blue/include/readline/chardefs.h b/code/application/source/sf_app/tools/blue/include/readline/chardefs.h new file mode 100644 index 000000000..24a25f1f1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/readline/chardefs.h @@ -0,0 +1,165 @@ +/* chardefs.h -- Character definitions for readline. */ + +/* Copyright (C) 1994-2021 Free Software Foundation, Inc. + + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. + + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Readline is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + +#ifndef _CHARDEFS_H_ +#define _CHARDEFS_H_ + +#include + +#if defined (HAVE_CONFIG_H) +# if defined (HAVE_STRING_H) +# include +# endif /* HAVE_STRING_H */ +# if defined (HAVE_STRINGS_H) +# include +# endif /* HAVE_STRINGS_H */ +#else +# include +#endif /* !HAVE_CONFIG_H */ + +#ifndef whitespace +#define whitespace(c) (((c) == ' ') || ((c) == '\t')) +#endif + +#ifdef CTRL +# undef CTRL +#endif +#ifdef UNCTRL +# undef UNCTRL +#endif + +/* Some character stuff. */ +#define control_character_threshold 0x020 /* Smaller than this is control. */ +#define control_character_mask 0x1f /* 0x20 - 1 */ +#define meta_character_threshold 0x07f /* Larger than this is Meta. */ +#define control_character_bit 0x40 /* 0x000000, must be off. */ +#define meta_character_bit 0x080 /* x0000000, must be on. */ +#define largest_char 255 /* Largest character value. */ + +#define CTRL_CHAR(c) ((c) < control_character_threshold && (((c) & 0x80) == 0)) +#define META_CHAR(c) ((c) > meta_character_threshold && (c) <= largest_char) + +#define CTRL(c) ((c) & control_character_mask) +#define META(c) ((c) | meta_character_bit) + +#define UNMETA(c) ((c) & (~meta_character_bit)) +#define UNCTRL(c) _rl_to_upper(((c)|control_character_bit)) + +#ifndef UCHAR_MAX +# define UCHAR_MAX 255 +#endif +#ifndef CHAR_MAX +# define CHAR_MAX 127 +#endif + +/* use this as a proxy for C89 */ +#if defined (HAVE_STDLIB_H) && defined (HAVE_STRING_H) +# define IN_CTYPE_DOMAIN(c) 1 +# define NON_NEGATIVE(c) 1 +#else +# define IN_CTYPE_DOMAIN(c) ((c) >= 0 && (c) <= CHAR_MAX) +# define NON_NEGATIVE(c) ((unsigned char)(c) == (c)) +#endif + +#if !defined (isxdigit) && !defined (HAVE_ISXDIGIT) && !defined (__cplusplus) +# define isxdigit(c) (isdigit((unsigned char)(c)) || ((c) >= 'a' && (c) <= 'f') || ((c) >= 'A' && (c) <= 'F')) +#endif + +/* Some systems define these; we want our definitions. */ +#undef ISPRINT + +/* Beware: these only work with single-byte ASCII characters. */ + +#define ISALNUM(c) (IN_CTYPE_DOMAIN (c) && isalnum ((unsigned char)c)) +#define ISALPHA(c) (IN_CTYPE_DOMAIN (c) && isalpha ((unsigned char)c)) +#define ISDIGIT(c) (IN_CTYPE_DOMAIN (c) && isdigit ((unsigned char)c)) +#define ISLOWER(c) (IN_CTYPE_DOMAIN (c) && islower ((unsigned char)c)) +#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint ((unsigned char)c)) +#define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper ((unsigned char)c)) +#define ISXDIGIT(c) (IN_CTYPE_DOMAIN (c) && isxdigit ((unsigned char)c)) + +#define _rl_lowercase_p(c) (NON_NEGATIVE(c) && ISLOWER(c)) +#define _rl_uppercase_p(c) (NON_NEGATIVE(c) && ISUPPER(c)) +#define _rl_digit_p(c) ((c) >= '0' && (c) <= '9') + +#define _rl_alphabetic_p(c) (NON_NEGATIVE(c) && ISALNUM(c)) +#define _rl_pure_alphabetic(c) (NON_NEGATIVE(c) && ISALPHA(c)) + +#ifndef _rl_to_upper +# define _rl_to_upper(c) (_rl_lowercase_p(c) ? toupper((unsigned char)(c)) : (c)) +# define _rl_to_lower(c) (_rl_uppercase_p(c) ? tolower((unsigned char)(c)) : (c)) +#endif + +#ifndef _rl_digit_value +# define _rl_digit_value(x) ((x) - '0') +#endif + +#ifndef _rl_isident +# define _rl_isident(c) (ISALNUM(c) || (c) == '_') +#endif + +#ifndef ISOCTAL +# define ISOCTAL(c) ((c) >= '0' && (c) <= '7') +#endif +#define OCTVALUE(c) ((c) - '0') + +#define HEXVALUE(c) \ + (((c) >= 'a' && (c) <= 'f') \ + ? (c)-'a'+10 \ + : (c) >= 'A' && (c) <= 'F' ? (c)-'A'+10 : (c)-'0') + +#ifndef NEWLINE +#define NEWLINE '\n' +#endif + +#ifndef RETURN +#define RETURN CTRL('M') +#endif + +#ifndef RUBOUT +#define RUBOUT 0x7f +#endif + +#ifndef TAB +#define TAB '\t' +#endif + +#ifdef ABORT_CHAR +#undef ABORT_CHAR +#endif +#define ABORT_CHAR CTRL('G') + +#ifdef PAGE +#undef PAGE +#endif +#define PAGE CTRL('L') + +#ifdef SPACE +#undef SPACE +#endif +#define SPACE ' ' /* XXX - was 0x20 */ + +#ifdef ESC +#undef ESC +#endif +#define ESC CTRL('[') + +#endif /* _CHARDEFS_H_ */ diff --git a/code/application/source/sf_app/tools/blue/include/readline/history.h b/code/application/source/sf_app/tools/blue/include/readline/history.h new file mode 100644 index 000000000..5208f9a46 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/readline/history.h @@ -0,0 +1,291 @@ +/* history.h -- the names of functions that you can call in history. */ + +/* Copyright (C) 1989-2022 Free Software Foundation, Inc. + + This file contains the GNU History Library (History), a set of + routines for managing the text of previously typed lines. + + History is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + History is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with History. If not, see . +*/ + +#ifndef _HISTORY_H_ +#define _HISTORY_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include /* XXX - for history timestamp code */ + +#if defined READLINE_LIBRARY +# include "rlstdc.h" +# include "rltypedefs.h" +#else +# include +# include +#endif + +#ifdef __STDC__ +typedef void *histdata_t; +#else +typedef char *histdata_t; +#endif + +/* Let's not step on anyone else's define for now, since we don't use this yet. */ +#ifndef HS_HISTORY_VERSION +# define HS_HISTORY_VERSION 0x0802 /* History 8.2 */ +#endif + +/* The structure used to store a history entry. */ +typedef struct _hist_entry { + char *line; + char *timestamp; /* char * rather than time_t for read/write */ + histdata_t data; +} HIST_ENTRY; + +/* Size of the history-library-managed space in history entry HS. */ +#define HISTENT_BYTES(hs) (strlen ((hs)->line) + strlen ((hs)->timestamp)) + +/* A structure used to pass the current state of the history stuff around. */ +typedef struct _hist_state { + HIST_ENTRY **entries; /* Pointer to the entries themselves. */ + int offset; /* The location pointer within this array. */ + int length; /* Number of elements within this array. */ + int size; /* Number of slots allocated to this array. */ + int flags; +} HISTORY_STATE; + +/* Flag values for the `flags' member of HISTORY_STATE. */ +#define HS_STIFLED 0x01 + +/* Initialization and state management. */ + +/* Begin a session in which the history functions might be used. This + just initializes the interactive variables. */ +extern void using_history (void); + +/* Return the current HISTORY_STATE of the history. */ +extern HISTORY_STATE *history_get_history_state (void); + +/* Set the state of the current history array to STATE. */ +extern void history_set_history_state (HISTORY_STATE *); + +/* Manage the history list. */ + +/* Place STRING at the end of the history list. + The associated data field (if any) is set to NULL. */ +extern void add_history (const char *); + +/* Change the timestamp associated with the most recent history entry to + STRING. */ +extern void add_history_time (const char *); + +/* Remove an entry from the history list. WHICH is the magic number that + tells us which element to delete. The elements are numbered from 0. */ +extern HIST_ENTRY *remove_history (int); + +/* Remove a set of entries from the history list: FIRST to LAST, inclusive */ +extern HIST_ENTRY **remove_history_range (int, int); + +/* Allocate a history entry consisting of STRING and TIMESTAMP and return + a pointer to it. */ +extern HIST_ENTRY *alloc_history_entry (char *, char *); + +/* Copy the history entry H, but not the (opaque) data pointer */ +extern HIST_ENTRY *copy_history_entry (HIST_ENTRY *); + +/* Free the history entry H and return any application-specific data + associated with it. */ +extern histdata_t free_history_entry (HIST_ENTRY *); + +/* Make the history entry at WHICH have LINE and DATA. This returns + the old entry so you can dispose of the data. In the case of an + invalid WHICH, a NULL pointer is returned. */ +extern HIST_ENTRY *replace_history_entry (int, const char *, histdata_t); + +/* Clear the history list and start over. */ +extern void clear_history (void); + +/* Stifle the history list, remembering only MAX number of entries. */ +extern void stifle_history (int); + +/* Stop stifling the history. This returns the previous amount the + history was stifled by. The value is positive if the history was + stifled, negative if it wasn't. */ +extern int unstifle_history (void); + +/* Return 1 if the history is stifled, 0 if it is not. */ +extern int history_is_stifled (void); + +/* Information about the history list. */ + +/* Return a NULL terminated array of HIST_ENTRY which is the current input + history. Element 0 of this list is the beginning of time. If there + is no history, return NULL. */ +extern HIST_ENTRY **history_list (void); + +/* Returns the number which says what history element we are now + looking at. */ +extern int where_history (void); + +/* Return the history entry at the current position, as determined by + history_offset. If there is no entry there, return a NULL pointer. */ +extern HIST_ENTRY *current_history (void); + +/* Return the history entry which is logically at OFFSET in the history + array. OFFSET is relative to history_base. */ +extern HIST_ENTRY *history_get (int); + +/* Return the timestamp associated with the HIST_ENTRY * passed as an + argument */ +extern time_t history_get_time (HIST_ENTRY *); + +/* Return the number of bytes that the primary history entries are using. + This just adds up the lengths of the_history->lines. */ +extern int history_total_bytes (void); + +/* Moving around the history list. */ + +/* Set the position in the history list to POS. */ +extern int history_set_pos (int); + +/* Back up history_offset to the previous history entry, and return + a pointer to that entry. If there is no previous entry, return + a NULL pointer. */ +extern HIST_ENTRY *previous_history (void); + +/* Move history_offset forward to the next item in the input_history, + and return the a pointer to that entry. If there is no next entry, + return a NULL pointer. */ +extern HIST_ENTRY *next_history (void); + +/* Searching the history list. */ + +/* Search the history for STRING, starting at history_offset. + If DIRECTION < 0, then the search is through previous entries, + else through subsequent. If the string is found, then + current_history () is the history entry, and the value of this function + is the offset in the line of that history entry that the string was + found in. Otherwise, nothing is changed, and a -1 is returned. */ +extern int history_search (const char *, int); + +/* Search the history for STRING, starting at history_offset. + The search is anchored: matching lines must begin with string. + DIRECTION is as in history_search(). */ +extern int history_search_prefix (const char *, int); + +/* Search for STRING in the history list, starting at POS, an + absolute index into the list. DIR, if negative, says to search + backwards from POS, else forwards. + Returns the absolute index of the history element where STRING + was found, or -1 otherwise. */ +extern int history_search_pos (const char *, int, int); + +/* Managing the history file. */ + +/* Add the contents of FILENAME to the history list, a line at a time. + If FILENAME is NULL, then read from ~/.history. Returns 0 if + successful, or errno if not. */ +extern int read_history (const char *); + +/* Read a range of lines from FILENAME, adding them to the history list. + Start reading at the FROM'th line and end at the TO'th. If FROM + is zero, start at the beginning. If TO is less than FROM, read + until the end of the file. If FILENAME is NULL, then read from + ~/.history. Returns 0 if successful, or errno if not. */ +extern int read_history_range (const char *, int, int); + +/* Write the current history to FILENAME. If FILENAME is NULL, + then write the history list to ~/.history. Values returned + are as in read_history (). */ +extern int write_history (const char *); + +/* Append NELEMENT entries to FILENAME. The entries appended are from + the end of the list minus NELEMENTs up to the end of the list. */ +extern int append_history (int, const char *); + +/* Truncate the history file, leaving only the last NLINES lines. */ +extern int history_truncate_file (const char *, int); + +/* History expansion. */ + +/* Expand the string STRING, placing the result into OUTPUT, a pointer + to a string. Returns: + + 0) If no expansions took place (or, if the only change in + the text was the de-slashifying of the history expansion + character) + 1) If expansions did take place + -1) If there was an error in expansion. + 2) If the returned line should just be printed. + + If an error occurred in expansion, then OUTPUT contains a descriptive + error message. */ +extern int history_expand (char *, char **); + +/* Extract a string segment consisting of the FIRST through LAST + arguments present in STRING. Arguments are broken up as in + the shell. */ +extern char *history_arg_extract (int, int, const char *); + +/* Return the text of the history event beginning at the current + offset into STRING. Pass STRING with *INDEX equal to the + history_expansion_char that begins this specification. + DELIMITING_QUOTE is a character that is allowed to end the string + specification for what to search for in addition to the normal + characters `:', ` ', `\t', `\n', and sometimes `?'. */ +extern char *get_history_event (const char *, int *, int); + +/* Return an array of tokens, much as the shell might. The tokens are + parsed out of STRING. */ +extern char **history_tokenize (const char *); + +/* Exported history variables. */ +extern int history_base; +extern int history_length; +extern int history_max_entries; +extern int history_offset; + +extern int history_lines_read_from_file; +extern int history_lines_written_to_file; + +extern char history_expansion_char; +extern char history_subst_char; +extern char *history_word_delimiters; +extern char history_comment_char; +extern char *history_no_expand_chars; +extern char *history_search_delimiter_chars; + +extern int history_quotes_inhibit_expansion; +extern int history_quoting_state; + +extern int history_write_timestamps; + +/* These two are undocumented; the second is reserved for future use */ +extern int history_multiline_entries; +extern int history_file_version; + +/* Backwards compatibility */ +extern int max_input_history; + +/* If set, this function is called to decide whether or not a particular + history expansion should be treated as a special case for the calling + application and not expanded. */ +extern rl_linebuf_func_t *history_inhibit_expansion_function; + +#ifdef __cplusplus +} +#endif + +#endif /* !_HISTORY_H_ */ diff --git a/code/application/source/sf_app/tools/blue/include/readline/keymaps.h b/code/application/source/sf_app/tools/blue/include/readline/keymaps.h new file mode 100644 index 000000000..290381483 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/readline/keymaps.h @@ -0,0 +1,100 @@ +/* keymaps.h -- Manipulation of readline keymaps. */ + +/* Copyright (C) 1987, 1989, 1992-2021 Free Software Foundation, Inc. + + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. + + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Readline is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + +#ifndef _KEYMAPS_H_ +#define _KEYMAPS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined (READLINE_LIBRARY) +# include "rlstdc.h" +# include "chardefs.h" +# include "rltypedefs.h" +#else +# include +# include +# include +#endif + +/* A keymap contains one entry for each key in the ASCII set. + Each entry consists of a type and a pointer. + FUNCTION is the address of a function to run, or the + address of a keymap to indirect through. + TYPE says which kind of thing FUNCTION is. */ +typedef struct _keymap_entry { + char type; + rl_command_func_t *function; +} KEYMAP_ENTRY; + +/* This must be large enough to hold bindings for all of the characters + in a desired character set (e.g, 128 for ASCII, 256 for ISO Latin-x, + and so on) plus one for subsequence matching. */ +#define KEYMAP_SIZE 257 +#define ANYOTHERKEY KEYMAP_SIZE-1 + +typedef KEYMAP_ENTRY KEYMAP_ENTRY_ARRAY[KEYMAP_SIZE]; +typedef KEYMAP_ENTRY *Keymap; + +/* The values that TYPE can have in a keymap entry. */ +#define ISFUNC 0 +#define ISKMAP 1 +#define ISMACR 2 + +extern KEYMAP_ENTRY_ARRAY emacs_standard_keymap, emacs_meta_keymap, emacs_ctlx_keymap; +extern KEYMAP_ENTRY_ARRAY vi_insertion_keymap, vi_movement_keymap; + +/* Return a new, empty keymap. + Free it with free() when you are done. */ +extern Keymap rl_make_bare_keymap (void); + +/* Return a new keymap which is a copy of MAP. */ +extern Keymap rl_copy_keymap (Keymap); + +/* Return a new keymap with the printing characters bound to rl_insert, + the lowercase Meta characters bound to run their equivalents, and + the Meta digits bound to produce numeric arguments. */ +extern Keymap rl_make_keymap (void); + +/* Free the storage associated with a keymap. */ +extern void rl_discard_keymap (Keymap); + +/* These functions actually appear in bind.c */ + +/* Return the keymap corresponding to a given name. Names look like + `emacs' or `emacs-meta' or `vi-insert'. */ +extern Keymap rl_get_keymap_by_name (const char *); + +/* Return the current keymap. */ +extern Keymap rl_get_keymap (void); + +/* Set the current keymap to MAP. */ +extern void rl_set_keymap (Keymap); + +/* Set the name of MAP to NAME */ +extern int rl_set_keymap_name (const char *, Keymap); + +#ifdef __cplusplus +} +#endif + +#endif /* _KEYMAPS_H_ */ diff --git a/code/application/source/sf_app/tools/blue/include/readline/readline.h b/code/application/source/sf_app/tools/blue/include/readline/readline.h new file mode 100644 index 000000000..cac269f0b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/readline/readline.h @@ -0,0 +1,986 @@ +/* Readline.h -- the names of functions callable from within readline. */ + +/* Copyright (C) 1987-2022 Free Software Foundation, Inc. + + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. + + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Readline is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + +#if !defined (_READLINE_H_) +#define _READLINE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined (READLINE_LIBRARY) +# include "rlstdc.h" +# include "rltypedefs.h" +# include "keymaps.h" +# include "tilde.h" +#else +# include +# include +# include +# include +#endif + +/* Hex-encoded Readline version number. */ +#define RL_READLINE_VERSION 0x0802 /* Readline 8.2 */ +#define RL_VERSION_MAJOR 8 +#define RL_VERSION_MINOR 2 + +/* Readline data structures. */ + +/* Maintaining the state of undo. We remember individual deletes and inserts + on a chain of things to do. */ + +/* The actions that undo knows how to undo. Notice that UNDO_DELETE means + to insert some text, and UNDO_INSERT means to delete some text. I.e., + the code tells undo what to undo, not how to undo it. */ +enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END }; + +/* What an element of THE_UNDO_LIST looks like. */ +typedef struct undo_list { + struct undo_list *next; + int start, end; /* Where the change took place. */ + char *text; /* The text to insert, if undoing a delete. */ + enum undo_code what; /* Delete, Insert, Begin, End. */ +} UNDO_LIST; + +/* The current undo list for RL_LINE_BUFFER. */ +extern UNDO_LIST *rl_undo_list; + +/* The data structure for mapping textual names to code addresses. */ +typedef struct _funmap { + const char *name; + rl_command_func_t *function; +} FUNMAP; + +extern FUNMAP **funmap; + +/* **************************************************************** */ +/* */ +/* Functions available to bind to key sequences */ +/* */ +/* **************************************************************** */ + +/* Bindable commands for numeric arguments. */ +extern int rl_digit_argument (int, int); +extern int rl_universal_argument (int, int); + +/* Bindable commands for moving the cursor. */ +extern int rl_forward_byte (int, int); +extern int rl_forward_char (int, int); +extern int rl_forward (int, int); +extern int rl_backward_byte (int, int); +extern int rl_backward_char (int, int); +extern int rl_backward (int, int); +extern int rl_beg_of_line (int, int); +extern int rl_end_of_line (int, int); +extern int rl_forward_word (int, int); +extern int rl_backward_word (int, int); +extern int rl_refresh_line (int, int); +extern int rl_clear_screen (int, int); +extern int rl_clear_display (int, int); +extern int rl_skip_csi_sequence (int, int); +extern int rl_arrow_keys (int, int); + +extern int rl_previous_screen_line (int, int); +extern int rl_next_screen_line (int, int); + +/* Bindable commands for inserting and deleting text. */ +extern int rl_insert (int, int); +extern int rl_quoted_insert (int, int); +extern int rl_tab_insert (int, int); +extern int rl_newline (int, int); +extern int rl_do_lowercase_version (int, int); +extern int rl_rubout (int, int); +extern int rl_delete (int, int); +extern int rl_rubout_or_delete (int, int); +extern int rl_delete_horizontal_space (int, int); +extern int rl_delete_or_show_completions (int, int); +extern int rl_insert_comment (int, int); + +/* Bindable commands for changing case. */ +extern int rl_upcase_word (int, int); +extern int rl_downcase_word (int, int); +extern int rl_capitalize_word (int, int); + +/* Bindable commands for transposing characters and words. */ +extern int rl_transpose_words (int, int); +extern int rl_transpose_chars (int, int); + +/* Bindable commands for searching within a line. */ +extern int rl_char_search (int, int); +extern int rl_backward_char_search (int, int); + +/* Bindable commands for readline's interface to the command history. */ +extern int rl_beginning_of_history (int, int); +extern int rl_end_of_history (int, int); +extern int rl_get_next_history (int, int); +extern int rl_get_previous_history (int, int); +extern int rl_operate_and_get_next (int, int); +extern int rl_fetch_history (int, int); + +/* Bindable commands for managing the mark and region. */ +extern int rl_set_mark (int, int); +extern int rl_exchange_point_and_mark (int, int); + +/* Bindable commands to set the editing mode (emacs or vi). */ +extern int rl_vi_editing_mode (int, int); +extern int rl_emacs_editing_mode (int, int); + +/* Bindable commands to change the insert mode (insert or overwrite) */ +extern int rl_overwrite_mode (int, int); + +/* Bindable commands for managing key bindings. */ +extern int rl_re_read_init_file (int, int); +extern int rl_dump_functions (int, int); +extern int rl_dump_macros (int, int); +extern int rl_dump_variables (int, int); + +/* Bindable commands for word completion. */ +extern int rl_complete (int, int); +extern int rl_possible_completions (int, int); +extern int rl_insert_completions (int, int); +extern int rl_old_menu_complete (int, int); +extern int rl_menu_complete (int, int); +extern int rl_backward_menu_complete (int, int); + +/* Bindable commands for killing and yanking text, and managing the kill ring. */ +extern int rl_kill_word (int, int); +extern int rl_backward_kill_word (int, int); +extern int rl_kill_line (int, int); +extern int rl_backward_kill_line (int, int); +extern int rl_kill_full_line (int, int); +extern int rl_unix_word_rubout (int, int); +extern int rl_unix_filename_rubout (int, int); +extern int rl_unix_line_discard (int, int); +extern int rl_copy_region_to_kill (int, int); +extern int rl_kill_region (int, int); +extern int rl_copy_forward_word (int, int); +extern int rl_copy_backward_word (int, int); +extern int rl_yank (int, int); +extern int rl_yank_pop (int, int); +extern int rl_yank_nth_arg (int, int); +extern int rl_yank_last_arg (int, int); +extern int rl_bracketed_paste_begin (int, int); +/* Not available unless _WIN32 is defined. */ +#if defined (_WIN32) +extern int rl_paste_from_clipboard (int, int); +#endif + +/* Bindable commands for incremental searching. */ +extern int rl_reverse_search_history (int, int); +extern int rl_forward_search_history (int, int); + +/* Bindable keyboard macro commands. */ +extern int rl_start_kbd_macro (int, int); +extern int rl_end_kbd_macro (int, int); +extern int rl_call_last_kbd_macro (int, int); +extern int rl_print_last_kbd_macro (int, int); + +/* Bindable undo commands. */ +extern int rl_revert_line (int, int); +extern int rl_undo_command (int, int); + +/* Bindable tilde expansion commands. */ +extern int rl_tilde_expand (int, int); + +/* Bindable terminal control commands. */ +extern int rl_restart_output (int, int); +extern int rl_stop_output (int, int); + +/* Miscellaneous bindable commands. */ +extern int rl_abort (int, int); +extern int rl_tty_status (int, int); + +/* Bindable commands for incremental and non-incremental history searching. */ +extern int rl_history_search_forward (int, int); +extern int rl_history_search_backward (int, int); +extern int rl_history_substr_search_forward (int, int); +extern int rl_history_substr_search_backward (int, int); +extern int rl_noninc_forward_search (int, int); +extern int rl_noninc_reverse_search (int, int); +extern int rl_noninc_forward_search_again (int, int); +extern int rl_noninc_reverse_search_again (int, int); + +/* Bindable command used when inserting a matching close character. */ +extern int rl_insert_close (int, int); + +/* Not available unless READLINE_CALLBACKS is defined. */ +extern void rl_callback_handler_install (const char *, rl_vcpfunc_t *); +extern void rl_callback_read_char (void); +extern void rl_callback_handler_remove (void); +extern void rl_callback_sigcleanup (void); + +/* Things for vi mode. Not available unless readline is compiled -DVI_MODE. */ +/* VI-mode bindable commands. */ +extern int rl_vi_redo (int, int); +extern int rl_vi_undo (int, int); +extern int rl_vi_yank_arg (int, int); +extern int rl_vi_fetch_history (int, int); +extern int rl_vi_search_again (int, int); +extern int rl_vi_search (int, int); +extern int rl_vi_complete (int, int); +extern int rl_vi_tilde_expand (int, int); +extern int rl_vi_prev_word (int, int); +extern int rl_vi_next_word (int, int); +extern int rl_vi_end_word (int, int); +extern int rl_vi_insert_beg (int, int); +extern int rl_vi_append_mode (int, int); +extern int rl_vi_append_eol (int, int); +extern int rl_vi_eof_maybe (int, int); +extern int rl_vi_insertion_mode (int, int); +extern int rl_vi_insert_mode (int, int); +extern int rl_vi_movement_mode (int, int); +extern int rl_vi_arg_digit (int, int); +extern int rl_vi_change_case (int, int); +extern int rl_vi_put (int, int); +extern int rl_vi_column (int, int); +extern int rl_vi_delete_to (int, int); +extern int rl_vi_change_to (int, int); +extern int rl_vi_yank_to (int, int); +extern int rl_vi_yank_pop (int, int); +extern int rl_vi_rubout (int, int); +extern int rl_vi_delete (int, int); +extern int rl_vi_back_to_indent (int, int); +extern int rl_vi_unix_word_rubout (int, int); +extern int rl_vi_first_print (int, int); +extern int rl_vi_char_search (int, int); +extern int rl_vi_match (int, int); +extern int rl_vi_change_char (int, int); +extern int rl_vi_subst (int, int); +extern int rl_vi_overstrike (int, int); +extern int rl_vi_overstrike_delete (int, int); +extern int rl_vi_replace (int, int); +extern int rl_vi_set_mark (int, int); +extern int rl_vi_goto_mark (int, int); + +/* VI-mode utility functions. */ +extern int rl_vi_check (void); +extern int rl_vi_domove (int, int *); +extern int rl_vi_bracktype (int); + +extern void rl_vi_start_inserting (int, int, int); + +/* VI-mode pseudo-bindable commands, used as utility functions. */ +extern int rl_vi_fWord (int, int); +extern int rl_vi_bWord (int, int); +extern int rl_vi_eWord (int, int); +extern int rl_vi_fword (int, int); +extern int rl_vi_bword (int, int); +extern int rl_vi_eword (int, int); + +/* **************************************************************** */ +/* */ +/* Well Published Functions */ +/* */ +/* **************************************************************** */ + +/* Readline functions. */ +/* Read a line of input. Prompt with PROMPT. A NULL PROMPT means none. */ +extern char *readline (const char *); + +extern int rl_set_prompt (const char *); +extern int rl_expand_prompt (char *); + +extern int rl_initialize (void); + +/* Undocumented; unused by readline */ +extern int rl_discard_argument (void); + +/* Utility functions to bind keys to readline commands. */ +extern int rl_add_defun (const char *, rl_command_func_t *, int); +extern int rl_bind_key (int, rl_command_func_t *); +extern int rl_bind_key_in_map (int, rl_command_func_t *, Keymap); +extern int rl_unbind_key (int); +extern int rl_unbind_key_in_map (int, Keymap); +extern int rl_bind_key_if_unbound (int, rl_command_func_t *); +extern int rl_bind_key_if_unbound_in_map (int, rl_command_func_t *, Keymap); +extern int rl_unbind_function_in_map (rl_command_func_t *, Keymap); +extern int rl_unbind_command_in_map (const char *, Keymap); +extern int rl_bind_keyseq (const char *, rl_command_func_t *); +extern int rl_bind_keyseq_in_map (const char *, rl_command_func_t *, Keymap); +extern int rl_bind_keyseq_if_unbound (const char *, rl_command_func_t *); +extern int rl_bind_keyseq_if_unbound_in_map (const char *, rl_command_func_t *, Keymap); +extern int rl_generic_bind (int, const char *, char *, Keymap); + +extern char *rl_variable_value (const char *); +extern int rl_variable_bind (const char *, const char *); + +/* Backwards compatibility, use rl_bind_keyseq_in_map instead. */ +extern int rl_set_key (const char *, rl_command_func_t *, Keymap); + +/* Backwards compatibility, use rl_generic_bind instead. */ +extern int rl_macro_bind (const char *, const char *, Keymap); + +/* Undocumented in the texinfo manual; not really useful to programs. */ +extern int rl_translate_keyseq (const char *, char *, int *); +extern char *rl_untranslate_keyseq (int); + +extern rl_command_func_t *rl_named_function (const char *); +extern rl_command_func_t *rl_function_of_keyseq (const char *, Keymap, int *); +extern rl_command_func_t *rl_function_of_keyseq_len (const char *, size_t, Keymap, int *); +extern int rl_trim_arg_from_keyseq (const char *, size_t, Keymap); + +extern void rl_list_funmap_names (void); +extern char **rl_invoking_keyseqs_in_map (rl_command_func_t *, Keymap); +extern char **rl_invoking_keyseqs (rl_command_func_t *); + +extern void rl_function_dumper (int); +extern void rl_macro_dumper (int); +extern void rl_variable_dumper (int); + +extern int rl_read_init_file (const char *); +extern int rl_parse_and_bind (char *); + +/* Functions for manipulating keymaps. */ +extern Keymap rl_make_bare_keymap (void); +extern int rl_empty_keymap (Keymap); +extern Keymap rl_copy_keymap (Keymap); +extern Keymap rl_make_keymap (void); +extern void rl_discard_keymap (Keymap); +extern void rl_free_keymap (Keymap); + +extern Keymap rl_get_keymap_by_name (const char *); +extern char *rl_get_keymap_name (Keymap); +extern void rl_set_keymap (Keymap); +extern Keymap rl_get_keymap (void); + +extern int rl_set_keymap_name (const char *, Keymap); + +/* Undocumented; used internally only. */ +extern void rl_set_keymap_from_edit_mode (void); +extern char *rl_get_keymap_name_from_edit_mode (void); + +/* Functions for manipulating the funmap, which maps command names to functions. */ +extern int rl_add_funmap_entry (const char *, rl_command_func_t *); +extern const char **rl_funmap_names (void); +/* Undocumented, only used internally -- there is only one funmap, and this + function may be called only once. */ +extern void rl_initialize_funmap (void); + +/* Utility functions for managing keyboard macros. */ +extern void rl_push_macro_input (char *); + +/* Functions for undoing, from undo.c */ +extern void rl_add_undo (enum undo_code, int, int, char *); +extern void rl_free_undo_list (void); +extern int rl_do_undo (void); +extern int rl_begin_undo_group (void); +extern int rl_end_undo_group (void); +extern int rl_modifying (int, int); + +/* Functions for redisplay. */ +extern void rl_redisplay (void); +extern int rl_on_new_line (void); +extern int rl_on_new_line_with_prompt (void); +extern int rl_forced_update_display (void); +extern int rl_clear_visible_line (void); +extern int rl_clear_message (void); +extern int rl_reset_line_state (void); +extern int rl_crlf (void); + +/* Functions to manage the mark and region, especially the notion of an + active mark and an active region. */ +extern void rl_keep_mark_active (void); + +extern void rl_activate_mark (void); +extern void rl_deactivate_mark (void); +extern int rl_mark_active_p (void); + +#if defined (USE_VARARGS) && defined (PREFER_STDARG) +extern int rl_message (const char *, ...) __attribute__((__format__ (printf, 1, 2))); +#else +extern int rl_message (); +#endif + +extern int rl_show_char (int); + +/* Undocumented in texinfo manual. */ +extern int rl_character_len (int, int); +extern void rl_redraw_prompt_last_line (void); + +/* Save and restore internal prompt redisplay information. */ +extern void rl_save_prompt (void); +extern void rl_restore_prompt (void); + +/* Modifying text. */ +extern void rl_replace_line (const char *, int); +extern int rl_insert_text (const char *); +extern int rl_delete_text (int, int); +extern int rl_kill_text (int, int); +extern char *rl_copy_text (int, int); + +/* Terminal and tty mode management. */ +extern void rl_prep_terminal (int); +extern void rl_deprep_terminal (void); +extern void rl_tty_set_default_bindings (Keymap); +extern void rl_tty_unset_default_bindings (Keymap); + +extern int rl_tty_set_echoing (int); +extern int rl_reset_terminal (const char *); +extern void rl_resize_terminal (void); +extern void rl_set_screen_size (int, int); +extern void rl_get_screen_size (int *, int *); +extern void rl_reset_screen_size (void); + +extern char *rl_get_termcap (const char *); + +/* Functions for character input. */ +extern int rl_stuff_char (int); +extern int rl_execute_next (int); +extern int rl_clear_pending_input (void); +extern int rl_read_key (void); +extern int rl_getc (FILE *); +extern int rl_set_keyboard_input_timeout (int); + +/* Functions to set and reset timeouts. */ +extern int rl_set_timeout (unsigned int, unsigned int); +extern int rl_timeout_remaining (unsigned int *, unsigned int *); + +#undef rl_clear_timeout +#define rl_clear_timeout() rl_set_timeout (0, 0) + +/* `Public' utility functions . */ +extern void rl_extend_line_buffer (int); +extern int rl_ding (void); +extern int rl_alphabetic (int); +extern void rl_free (void *); + +/* Readline signal handling, from signals.c */ +extern int rl_set_signals (void); +extern int rl_clear_signals (void); +extern void rl_cleanup_after_signal (void); +extern void rl_reset_after_signal (void); +extern void rl_free_line_state (void); + +extern int rl_pending_signal (void); +extern void rl_check_signals (void); + +extern void rl_echo_signal_char (int); + +extern int rl_set_paren_blink_timeout (int); + +/* History management functions. */ + +extern void rl_clear_history (void); + +/* Undocumented. */ +extern int rl_maybe_save_line (void); +extern int rl_maybe_unsave_line (void); +extern int rl_maybe_replace_line (void); + +/* Completion functions. */ +extern int rl_complete_internal (int); +extern void rl_display_match_list (char **, int, int); + +extern char **rl_completion_matches (const char *, rl_compentry_func_t *); +extern char *rl_username_completion_function (const char *, int); +extern char *rl_filename_completion_function (const char *, int); + +extern int rl_completion_mode (rl_command_func_t *); + +#if 0 +/* Backwards compatibility (compat.c). These will go away sometime. */ +extern void free_undo_list (void); +extern int maybe_save_line (void); +extern int maybe_unsave_line (void); +extern int maybe_replace_line (void); + +extern int ding (void); +extern int alphabetic (int); +extern int crlf (void); + +extern char **completion_matches (char *, rl_compentry_func_t *); +extern char *username_completion_function (const char *, int); +extern char *filename_completion_function (const char *, int); +#endif + +/* **************************************************************** */ +/* */ +/* Well Published Variables */ +/* */ +/* **************************************************************** */ + +/* The version of this incarnation of the readline library. */ +extern const char *rl_library_version; /* e.g., "4.2" */ +extern int rl_readline_version; /* e.g., 0x0402 */ + +/* True if this is real GNU readline. */ +extern int rl_gnu_readline_p; + +/* Flags word encapsulating the current readline state. */ +extern unsigned long rl_readline_state; + +/* Says which editing mode readline is currently using. 1 means emacs mode; + 0 means vi mode. */ +extern int rl_editing_mode; + +/* Insert or overwrite mode for emacs mode. 1 means insert mode; 0 means + overwrite mode. Reset to insert mode on each input line. */ +extern int rl_insert_mode; + +/* The name of the calling program. You should initialize this to + whatever was in argv[0]. It is used when parsing conditionals. */ +extern const char *rl_readline_name; + +/* The prompt readline uses. This is set from the argument to + readline (), and should not be assigned to directly. */ +extern char *rl_prompt; + +/* The prompt string that is actually displayed by rl_redisplay. Public so + applications can more easily supply their own redisplay functions. */ +extern char *rl_display_prompt; + +/* The line buffer that is in use. */ +extern char *rl_line_buffer; + +/* The location of point, and end. */ +extern int rl_point; +extern int rl_end; + +/* The mark, or saved cursor position. */ +extern int rl_mark; + +/* Flag to indicate that readline has finished with the current input + line and should return it. */ +extern int rl_done; + +/* Flag to indicate that readline has read an EOF character or read has + returned 0 or error, and is returning a NULL line as a result. */ +extern int rl_eof_found; + +/* If set to a character value, that will be the next keystroke read. */ +extern int rl_pending_input; + +/* Non-zero if we called this function from _rl_dispatch(). It's present + so functions can find out whether they were called from a key binding + or directly from an application. */ +extern int rl_dispatching; + +/* Non-zero if the user typed a numeric argument before executing the + current function. */ +extern int rl_explicit_arg; + +/* The current value of the numeric argument specified by the user. */ +extern int rl_numeric_arg; + +/* The address of the last command function Readline executed. */ +extern rl_command_func_t *rl_last_func; + +/* The name of the terminal to use. */ +extern const char *rl_terminal_name; + +/* The input and output streams. */ +extern FILE *rl_instream; +extern FILE *rl_outstream; + +/* If non-zero, Readline gives values of LINES and COLUMNS from the environment + greater precedence than values fetched from the kernel when computing the + screen dimensions. */ +extern int rl_prefer_env_winsize; + +/* If non-zero, then this is the address of a function to call just + before readline_internal () prints the first prompt. */ +extern rl_hook_func_t *rl_startup_hook; + +/* If non-zero, this is the address of a function to call just before + readline_internal_setup () returns and readline_internal starts + reading input characters. */ +extern rl_hook_func_t *rl_pre_input_hook; + +/* The address of a function to call periodically while Readline is + awaiting character input, or NULL, for no event handling. */ +extern rl_hook_func_t *rl_event_hook; + +/* The address of a function to call if a read is interrupted by a signal. */ +extern rl_hook_func_t *rl_signal_event_hook; + +extern rl_hook_func_t *rl_timeout_event_hook; + +/* The address of a function to call if Readline needs to know whether or not + there is data available from the current input source. */ +extern rl_hook_func_t *rl_input_available_hook; + +/* The address of the function to call to fetch a character from the current + Readline input stream */ +extern rl_getc_func_t *rl_getc_function; + +extern rl_voidfunc_t *rl_redisplay_function; + +extern rl_vintfunc_t *rl_prep_term_function; +extern rl_voidfunc_t *rl_deprep_term_function; + +/* Dispatch variables. */ +extern Keymap rl_executing_keymap; +extern Keymap rl_binding_keymap; + +extern int rl_executing_key; +extern char *rl_executing_keyseq; +extern int rl_key_sequence_length; + +/* Display variables. */ +/* If non-zero, readline will erase the entire line, including any prompt, + if the only thing typed on an otherwise-blank line is something bound to + rl_newline. */ +extern int rl_erase_empty_line; + +/* If non-zero, the application has already printed the prompt (rl_prompt) + before calling readline, so readline should not output it the first time + redisplay is done. */ +extern int rl_already_prompted; + +/* A non-zero value means to read only this many characters rather than + up to a character bound to accept-line. */ +extern int rl_num_chars_to_read; + +/* The text of a currently-executing keyboard macro. */ +extern char *rl_executing_macro; + +/* Variables to control readline signal handling. */ +/* If non-zero, readline will install its own signal handlers for + SIGINT, SIGTERM, SIGQUIT, SIGALRM, SIGTSTP, SIGTTIN, and SIGTTOU. */ +extern int rl_catch_signals; + +/* If non-zero, readline will install a signal handler for SIGWINCH + that also attempts to call any calling application's SIGWINCH signal + handler. Note that the terminal is not cleaned up before the + application's signal handler is called; use rl_cleanup_after_signal() + to do that. */ +extern int rl_catch_sigwinch; + +/* If non-zero, the readline SIGWINCH handler will modify LINES and + COLUMNS in the environment. */ +extern int rl_change_environment; + +/* Completion variables. */ +/* Pointer to the generator function for completion_matches (). + NULL means to use rl_filename_completion_function (), the default + filename completer. */ +extern rl_compentry_func_t *rl_completion_entry_function; + +/* Optional generator for menu completion. Default is + rl_completion_entry_function (rl_filename_completion_function). */ +extern rl_compentry_func_t *rl_menu_completion_entry_function; + +/* If rl_ignore_some_completions_function is non-NULL it is the address + of a function to call after all of the possible matches have been + generated, but before the actual completion is done to the input line. + The function is called with one argument; a NULL terminated array + of (char *). If your function removes any of the elements, they + must be free()'ed. */ +extern rl_compignore_func_t *rl_ignore_some_completions_function; + +/* Pointer to alternative function to create matches. + Function is called with TEXT, START, and END. + START and END are indices in RL_LINE_BUFFER saying what the boundaries + of TEXT are. + If this function exists and returns NULL then call the value of + rl_completion_entry_function to try to match, otherwise use the + array of strings returned. */ +extern rl_completion_func_t *rl_attempted_completion_function; + +/* The basic list of characters that signal a break between words for the + completer routine. The initial contents of this variable is what + breaks words in the shell, i.e. "n\"\\'`@$>". */ +extern const char *rl_basic_word_break_characters; + +/* The list of characters that signal a break between words for + rl_complete_internal. The default list is the contents of + rl_basic_word_break_characters. */ +extern const char *rl_completer_word_break_characters; + +/* Hook function to allow an application to set the completion word + break characters before readline breaks up the line. Allows + position-dependent word break characters. */ +extern rl_cpvfunc_t *rl_completion_word_break_hook; + +/* List of characters which can be used to quote a substring of the line. + Completion occurs on the entire substring, and within the substring + rl_completer_word_break_characters are treated as any other character, + unless they also appear within this list. */ +extern const char *rl_completer_quote_characters; + +/* List of quote characters which cause a word break. */ +extern const char *rl_basic_quote_characters; + +/* List of characters that need to be quoted in filenames by the completer. */ +extern const char *rl_filename_quote_characters; + +/* List of characters that are word break characters, but should be left + in TEXT when it is passed to the completion function. The shell uses + this to help determine what kind of completing to do. */ +extern const char *rl_special_prefixes; + +/* If non-zero, then this is the address of a function to call when + completing on a directory name. The function is called with + the address of a string (the current directory name) as an arg. It + changes what is displayed when the possible completions are printed + or inserted. The directory completion hook should perform + any necessary dequoting. This function should return 1 if it modifies + the directory name pointer passed as an argument. If the directory + completion hook returns 0, it should not modify the directory name + pointer passed as an argument. */ +extern rl_icppfunc_t *rl_directory_completion_hook; + +/* If non-zero, this is the address of a function to call when completing + a directory name. This function takes the address of the directory name + to be modified as an argument. Unlike rl_directory_completion_hook, it + only modifies the directory name used in opendir(2), not what is displayed + when the possible completions are printed or inserted. If set, it takes + precedence over rl_directory_completion_hook. The directory rewrite + hook should perform any necessary dequoting. This function has the same + return value properties as the directory_completion_hook. + + I'm not happy with how this works yet, so it's undocumented. I'm trying + it in bash to see how well it goes. */ +extern rl_icppfunc_t *rl_directory_rewrite_hook; + +/* If non-zero, this is the address of a function for the completer to call + before deciding which character to append to a completed name. It should + modify the directory name passed as an argument if appropriate, and return + non-zero if it modifies the name. This should not worry about dequoting + the filename; that has already happened by the time it gets here. */ +extern rl_icppfunc_t *rl_filename_stat_hook; + +/* If non-zero, this is the address of a function to call when reading + directory entries from the filesystem for completion and comparing + them to the partial word to be completed. The function should + either return its first argument (if no conversion takes place) or + newly-allocated memory. This can, for instance, convert filenames + between character sets for comparison against what's typed at the + keyboard. The returned value is what is added to the list of + matches. The second argument is the length of the filename to be + converted. */ +extern rl_dequote_func_t *rl_filename_rewrite_hook; + +/* Backwards compatibility with previous versions of readline. */ +#define rl_symbolic_link_hook rl_directory_completion_hook + +/* If non-zero, then this is the address of a function to call when + completing a word would normally display the list of possible matches. + This function is called instead of actually doing the display. + It takes three arguments: (char **matches, int num_matches, int max_length) + where MATCHES is the array of strings that matched, NUM_MATCHES is the + number of strings in that array, and MAX_LENGTH is the length of the + longest string in that array. */ +extern rl_compdisp_func_t *rl_completion_display_matches_hook; + +/* Non-zero means that the results of the matches are to be treated + as filenames. This is ALWAYS zero on entry, and can only be changed + within a completion entry finder function. */ +extern int rl_filename_completion_desired; + +/* Non-zero means that the results of the matches are to be quoted using + double quotes (or an application-specific quoting mechanism) if the + filename contains any characters in rl_word_break_chars. This is + ALWAYS non-zero on entry, and can only be changed within a completion + entry finder function. */ +extern int rl_filename_quoting_desired; + +/* Set to a function to quote a filename in an application-specific fashion. + Called with the text to quote, the type of match found (single or multiple) + and a pointer to the quoting character to be used, which the function can + reset if desired. */ +extern rl_quote_func_t *rl_filename_quoting_function; + +/* Function to call to remove quoting characters from a filename. Called + before completion is attempted, so the embedded quotes do not interfere + with matching names in the file system. */ +extern rl_dequote_func_t *rl_filename_dequoting_function; + +/* Function to call to decide whether or not a word break character is + quoted. If a character is quoted, it does not break words for the + completer. */ +extern rl_linebuf_func_t *rl_char_is_quoted_p; + +/* Non-zero means to suppress normal filename completion after the + user-specified completion function has been called. */ +extern int rl_attempted_completion_over; + +/* Set to a character describing the type of completion being attempted by + rl_complete_internal; available for use by application completion + functions. */ +extern int rl_completion_type; + +/* Set to the last key used to invoke one of the completion functions */ +extern int rl_completion_invoking_key; + +/* Up to this many items will be displayed in response to a + possible-completions call. After that, we ask the user if she + is sure she wants to see them all. The default value is 100. */ +extern int rl_completion_query_items; + +/* Character appended to completed words when at the end of the line. The + default is a space. Nothing is added if this is '\0'. */ +extern int rl_completion_append_character; + +/* If set to non-zero by an application completion function, + rl_completion_append_character will not be appended. */ +extern int rl_completion_suppress_append; + +/* Set to any quote character readline thinks it finds before any application + completion function is called. */ +extern int rl_completion_quote_character; + +/* Set to a non-zero value if readline found quoting anywhere in the word to + be completed; set before any application completion function is called. */ +extern int rl_completion_found_quote; + +/* If non-zero, the completion functions don't append any closing quote. + This is set to 0 by rl_complete_internal and may be changed by an + application-specific completion function. */ +extern int rl_completion_suppress_quote; + +/* If non-zero, readline will sort the completion matches. On by default. */ +extern int rl_sort_completion_matches; + +/* If non-zero, a slash will be appended to completed filenames that are + symbolic links to directory names, subject to the value of the + mark-directories variable (which is user-settable). This exists so + that application completion functions can override the user's preference + (set via the mark-symlinked-directories variable) if appropriate. + It's set to the value of _rl_complete_mark_symlink_dirs in + rl_complete_internal before any application-specific completion + function is called, so without that function doing anything, the user's + preferences are honored. */ +extern int rl_completion_mark_symlink_dirs; + +/* If non-zero, then disallow duplicates in the matches. */ +extern int rl_ignore_completion_duplicates; + +/* If this is non-zero, completion is (temporarily) inhibited, and the + completion character will be inserted as any other. */ +extern int rl_inhibit_completion; + +/* Applications can set this to non-zero to have readline's signal handlers + installed during the entire duration of reading a complete line, as in + readline-6.2. This should be used with care, because it can result in + readline receiving signals and not handling them until it's called again + via rl_callback_read_char, thereby stealing them from the application. + By default, signal handlers are only active while readline is active. */ +extern int rl_persistent_signal_handlers; + +/* Input error; can be returned by (*rl_getc_function) if readline is reading + a top-level command (RL_ISSTATE (RL_STATE_READCMD)). */ +#define READERR (-2) + +/* Definitions available for use by readline clients. */ +#define RL_PROMPT_START_IGNORE '\001' +#define RL_PROMPT_END_IGNORE '\002' + +/* Possible values for do_replace argument to rl_filename_quoting_function, + called by rl_complete_internal. */ +#define NO_MATCH 0 +#define SINGLE_MATCH 1 +#define MULT_MATCH 2 + +/* Possible state values for rl_readline_state */ +#define RL_STATE_NONE 0x000000 /* no state; before first call */ + +#define RL_STATE_INITIALIZING 0x0000001 /* initializing */ +#define RL_STATE_INITIALIZED 0x0000002 /* initialization done */ +#define RL_STATE_TERMPREPPED 0x0000004 /* terminal is prepped */ +#define RL_STATE_READCMD 0x0000008 /* reading a command key */ +#define RL_STATE_METANEXT 0x0000010 /* reading input after ESC */ +#define RL_STATE_DISPATCHING 0x0000020 /* dispatching to a command */ +#define RL_STATE_MOREINPUT 0x0000040 /* reading more input in a command function */ +#define RL_STATE_ISEARCH 0x0000080 /* doing incremental search */ +#define RL_STATE_NSEARCH 0x0000100 /* doing non-inc search */ +#define RL_STATE_SEARCH 0x0000200 /* doing a history search */ +#define RL_STATE_NUMERICARG 0x0000400 /* reading numeric argument */ +#define RL_STATE_MACROINPUT 0x0000800 /* getting input from a macro */ +#define RL_STATE_MACRODEF 0x0001000 /* defining keyboard macro */ +#define RL_STATE_OVERWRITE 0x0002000 /* overwrite mode */ +#define RL_STATE_COMPLETING 0x0004000 /* doing completion */ +#define RL_STATE_SIGHANDLER 0x0008000 /* in readline sighandler */ +#define RL_STATE_UNDOING 0x0010000 /* doing an undo */ +#define RL_STATE_INPUTPENDING 0x0020000 /* rl_execute_next called */ +#define RL_STATE_TTYCSAVED 0x0040000 /* tty special chars saved */ +#define RL_STATE_CALLBACK 0x0080000 /* using the callback interface */ +#define RL_STATE_VIMOTION 0x0100000 /* reading vi motion arg */ +#define RL_STATE_MULTIKEY 0x0200000 /* reading multiple-key command */ +#define RL_STATE_VICMDONCE 0x0400000 /* entered vi command mode at least once */ +#define RL_STATE_CHARSEARCH 0x0800000 /* vi mode char search */ +#define RL_STATE_REDISPLAYING 0x1000000 /* updating terminal display */ + +#define RL_STATE_DONE 0x2000000 /* done; accepted line */ +#define RL_STATE_TIMEOUT 0x4000000 /* done; timed out */ +#define RL_STATE_EOF 0x8000000 /* done; got eof on read */ + +#define RL_SETSTATE(x) (rl_readline_state |= (x)) +#define RL_UNSETSTATE(x) (rl_readline_state &= ~(x)) +#define RL_ISSTATE(x) (rl_readline_state & (x)) + +struct readline_state { + /* line state */ + int point; + int end; + int mark; + int buflen; + char *buffer; + UNDO_LIST *ul; + char *prompt; + + /* global state */ + int rlstate; + int done; + Keymap kmap; + + /* input state */ + rl_command_func_t *lastfunc; + int insmode; + int edmode; + char *kseq; + int kseqlen; + + int pendingin; + FILE *inf; + FILE *outf; + char *macro; + + /* signal state */ + int catchsigs; + int catchsigwinch; + + /* search state */ + + /* completion state */ + rl_compentry_func_t *entryfunc; + rl_compentry_func_t *menuentryfunc; + rl_compignore_func_t *ignorefunc; + rl_completion_func_t *attemptfunc; + const char *wordbreakchars; + + /* options state */ + + /* hook state */ + + /* reserved for future expansion, so the struct size doesn't change */ + char reserved[64]; +}; + +extern int rl_save_state (struct readline_state *); +extern int rl_restore_state (struct readline_state *); + +#ifdef __cplusplus +} +#endif + +#endif /* _READLINE_H_ */ diff --git a/code/application/source/sf_app/tools/blue/include/readline/rlconf.h b/code/application/source/sf_app/tools/blue/include/readline/rlconf.h new file mode 100644 index 000000000..b6d6a2f12 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/readline/rlconf.h @@ -0,0 +1,79 @@ +/* rlconf.h -- readline configuration definitions */ + +/* Copyright (C) 1992-2015 Free Software Foundation, Inc. + + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. + + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Readline is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + +#if !defined (_RLCONF_H_) +#define _RLCONF_H_ + +/* Define this if you want the vi-mode editing available. */ +#define VI_MODE + +/* Define this to get an indication of file type when listing completions. */ +#define VISIBLE_STATS + +/* Define this to get support for colors when listing completions and in + other places. */ +#define COLOR_SUPPORT + +/* This definition is needed by readline.c, rltty.c, and signals.c. */ +/* If on, then readline handles signals in a way that doesn't suck. */ +#define HANDLE_SIGNALS + +/* Ugly but working hack for binding prefix meta. */ +#define PREFIX_META_HACK + +/* The next-to-last-ditch effort file name for a user-specific init file. */ +#define DEFAULT_INPUTRC "~/.inputrc" + +/* The ultimate last-ditch filename for an init file -- system-wide. */ +#define SYS_INPUTRC "/etc/inputrc" + +/* If defined, expand tabs to spaces. */ +#define DISPLAY_TABS + +/* If defined, use the terminal escape sequence to move the cursor forward + over a character when updating the line rather than rewriting it. */ +/* #define HACK_TERMCAP_MOTION */ + +/* The string inserted by the `insert comment' command. */ +#define RL_COMMENT_BEGIN_DEFAULT "#" + +/* Define this if you want code that allows readline to be used in an + X `callback' style. */ +#define READLINE_CALLBACKS + +/* Define this if you want the cursor to indicate insert or overwrite mode. */ +/* #define CURSOR_MODE */ + +/* Define this if you want to enable code that talks to the Linux kernel + tty auditing system. */ +/* #define ENABLE_TTY_AUDIT_SUPPORT */ + +/* Defaults for the various editing mode indicators, inserted at the beginning + of the last (maybe only) line of the prompt if show-mode-in-prompt is on */ +#define RL_EMACS_MODESTR_DEFAULT "@" +#define RL_EMACS_MODESTR_DEFLEN 1 + +#define RL_VI_INS_MODESTR_DEFAULT "(ins)" +#define RL_VI_INS_MODESTR_DEFLEN 5 +#define RL_VI_CMD_MODESTR_DEFAULT "(cmd)" +#define RL_VI_CMD_MODESTR_DEFLEN 5 + +#endif /* _RLCONF_H_ */ diff --git a/code/application/source/sf_app/tools/blue/include/readline/rlstdc.h b/code/application/source/sf_app/tools/blue/include/readline/rlstdc.h new file mode 100644 index 000000000..2aaa30bab --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/readline/rlstdc.h @@ -0,0 +1,57 @@ +/* stdc.h -- macros to make source compile on both ANSI C and K&R C compilers. */ + +/* Copyright (C) 1993-2009 Free Software Foundation, Inc. + + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. + + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Readline is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + +#if !defined (_RL_STDC_H_) +#define _RL_STDC_H_ + +/* Adapted from BSD /usr/include/sys/cdefs.h. */ + +/* A function can be defined using prototypes and compile on both ANSI C + and traditional C compilers with something like this: + extern char *func PARAMS((char *, char *, int)); */ + +#if !defined (PARAMS) +# if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus) +# define PARAMS(protos) protos +# else +# define PARAMS(protos) () +# endif +#endif + +#ifndef __attribute__ +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) +# define __attribute__(x) +# endif +#endif + +/* Moved from config.h.in because readline.h:rl_message depends on these + defines. */ +#if defined (__STDC__) && defined (HAVE_STDARG_H) +# define PREFER_STDARG +# define USE_VARARGS +#else +# if defined (HAVE_VARARGS_H) +# define PREFER_VARARGS +# define USE_VARARGS +# endif +#endif + +#endif /* !_RL_STDC_H_ */ diff --git a/code/application/source/sf_app/tools/blue/include/readline/rltypedefs.h b/code/application/source/sf_app/tools/blue/include/readline/rltypedefs.h new file mode 100644 index 000000000..163654921 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/readline/rltypedefs.h @@ -0,0 +1,100 @@ +/* rltypedefs.h -- Type declarations for readline functions. */ + +/* Copyright (C) 2000-2021 Free Software Foundation, Inc. + + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. + + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Readline is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + +#ifndef _RL_TYPEDEFS_H_ +#define _RL_TYPEDEFS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Old-style, attempt to mark as deprecated in some way people will notice. */ + +#if !defined (_FUNCTION_DEF) +# define _FUNCTION_DEF + +#if defined(__GNUC__) || defined(__clang__) +typedef int Function () __attribute__((deprecated)); +typedef void VFunction () __attribute__((deprecated)); +typedef char *CPFunction () __attribute__((deprecated)); +typedef char **CPPFunction () __attribute__((deprecated)); +#else +typedef int Function (); +typedef void VFunction (); +typedef char *CPFunction (); +typedef char **CPPFunction (); +#endif + +#endif /* _FUNCTION_DEF */ + +/* New style. */ + +#if !defined (_RL_FUNCTION_TYPEDEF) +# define _RL_FUNCTION_TYPEDEF + +/* Bindable functions */ +typedef int rl_command_func_t (int, int); + +/* Typedefs for the completion system */ +typedef char *rl_compentry_func_t (const char *, int); +typedef char **rl_completion_func_t (const char *, int, int); + +typedef char *rl_quote_func_t (char *, int, char *); +typedef char *rl_dequote_func_t (char *, int); + +typedef int rl_compignore_func_t (char **); + +typedef void rl_compdisp_func_t (char **, int, int); + +/* Type for input and pre-read hook functions like rl_event_hook */ +typedef int rl_hook_func_t (void); + +/* Input function type */ +typedef int rl_getc_func_t (FILE *); + +/* Generic function that takes a character buffer (which could be the readline + line buffer) and an index into it (which could be rl_point) and returns + an int. */ +typedef int rl_linebuf_func_t (char *, int); + +/* `Generic' function pointer typedefs */ +typedef int rl_intfunc_t (int); +#define rl_ivoidfunc_t rl_hook_func_t +typedef int rl_icpfunc_t (char *); +typedef int rl_icppfunc_t (char **); + +typedef void rl_voidfunc_t (void); +typedef void rl_vintfunc_t (int); +typedef void rl_vcpfunc_t (char *); +typedef void rl_vcppfunc_t (char **); + +typedef char *rl_cpvfunc_t (void); +typedef char *rl_cpifunc_t (int); +typedef char *rl_cpcpfunc_t (char *); +typedef char *rl_cpcppfunc_t (char **); + +#endif /* _RL_FUNCTION_TYPEDEF */ + +#ifdef __cplusplus +} +#endif + +#endif /* _RL_TYPEDEFS_H_ */ diff --git a/code/application/source/sf_app/tools/blue/include/readline/tilde.h b/code/application/source/sf_app/tools/blue/include/readline/tilde.h new file mode 100644 index 000000000..bc8022afc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/readline/tilde.h @@ -0,0 +1,68 @@ +/* tilde.h: Externally available variables and function in libtilde.a. */ + +/* Copyright (C) 1992-2009,2021 Free Software Foundation, Inc. + + This file contains the Readline Library (Readline), a set of + routines for providing Emacs style line input to programs that ask + for it. + + Readline is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Readline is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Readline. If not, see . +*/ + +#if !defined (_TILDE_H_) +# define _TILDE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef char *tilde_hook_func_t (char *); + +/* If non-null, this contains the address of a function that the application + wants called before trying the standard tilde expansions. The function + is called with the text sans tilde, and returns a malloc()'ed string + which is the expansion, or a NULL pointer if the expansion fails. */ +extern tilde_hook_func_t *tilde_expansion_preexpansion_hook; + +/* If non-null, this contains the address of a function to call if the + standard meaning for expanding a tilde fails. The function is called + with the text (sans tilde, as in "foo"), and returns a malloc()'ed string + which is the expansion, or a NULL pointer if there is no expansion. */ +extern tilde_hook_func_t *tilde_expansion_failure_hook; + +/* When non-null, this is a NULL terminated array of strings which + are duplicates for a tilde prefix. Bash uses this to expand + `=~' and `:~'. */ +extern char **tilde_additional_prefixes; + +/* When non-null, this is a NULL terminated array of strings which match + the end of a username, instead of just "/". Bash sets this to + `:' and `=~'. */ +extern char **tilde_additional_suffixes; + +/* Return a new string which is the result of tilde expanding STRING. */ +extern char *tilde_expand (const char *); + +/* Do the work of tilde expansion on FILENAME. FILENAME starts with a + tilde. If there is no expansion, call tilde_expansion_failure_hook. */ +extern char *tilde_expand_word (const char *); + +/* Find the portion of the string beginning with ~ that should be expanded. */ +extern char *tilde_find_word (const char *, int, int *); + +#ifdef __cplusplus +} +#endif + +#endif /* _TILDE_H_ */ diff --git a/code/application/source/sf_app/tools/blue/include/term.h b/code/application/source/sf_app/tools/blue/include/term.h new file mode 100644 index 000000000..b08d25021 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/term.h @@ -0,0 +1,874 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2013,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/****************************************************************************/ +/* Author: Zeyd M. Ben-Halim 1992,1995 */ +/* and: Eric S. Raymond */ +/* and: Thomas E. Dickey 1995-on */ +/****************************************************************************/ + +/* $Id: MKterm.h.awk.in,v 1.82 2021/09/24 17:02:46 tom Exp $ */ + +/* +** term.h -- Definition of struct term +*/ + +#ifndef NCURSES_TERM_H_incl +#define NCURSES_TERM_H_incl 1 + +#undef NCURSES_VERSION +#define NCURSES_VERSION "6.3" + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* Make this file self-contained by providing defaults for the HAVE_TERMIO[S]_H + * definition (based on the system for which this was configured). + */ + +#ifndef __NCURSES_H + +typedef struct screen SCREEN; + +#if 1 +#undef NCURSES_SP_FUNCS +#define NCURSES_SP_FUNCS 20211021 +#undef NCURSES_SP_NAME +#define NCURSES_SP_NAME(name) name##_sp + +/* Define the sp-funcs helper function */ +#undef NCURSES_SP_OUTC +#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC) +typedef int (*NCURSES_SP_OUTC)(SCREEN*, int); +#endif + +#endif /* __NCURSES_H */ + +#undef NCURSES_CONST +#define NCURSES_CONST const + +#undef NCURSES_SBOOL +#define NCURSES_SBOOL char + +#undef NCURSES_USE_DATABASE +#define NCURSES_USE_DATABASE 1 + +#undef NCURSES_USE_TERMCAP +#define NCURSES_USE_TERMCAP 0 + +#undef NCURSES_XNAMES +#define NCURSES_XNAMES 1 + +/* We will use these symbols to hide differences between + * termios/termio/sgttyb interfaces. + */ +#undef TTY +#undef SET_TTY +#undef GET_TTY + +/* Assume POSIX termio if we have the header and function */ +/* #if HAVE_TERMIOS_H && HAVE_TCGETATTR */ +#if 1 && 1 + +#undef TERMIOS +#define TERMIOS 1 + +#include +#define TTY struct termios + +#else /* !HAVE_TERMIOS_H */ + +/* #if HAVE_TERMIO_H */ +#if 1 + +#undef TERMIOS +#define TERMIOS 1 + +#include +#define TTY struct termio + +#else /* !HAVE_TERMIO_H */ + +#if (defined(_WIN32) || defined(_WIN64)) +#if 0 +#include +#define TTY struct winconmode +#else +#include +#define TTY struct termios +#endif +#else +#undef TERMIOS +#include +#include +#define TTY struct sgttyb +#endif /* MINGW32 */ +#endif /* HAVE_TERMIO_H */ + +#endif /* HAVE_TERMIOS_H */ + +#ifdef TERMIOS +#define GET_TTY(fd, buf) tcgetattr(fd, buf) +#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf) +#elif 0 && (defined(_WIN32) || defined(_WIN64)) +#define GET_TTY(fd, buf) _nc_console_getmode(_nc_console_fd2handle(fd),buf) +#define SET_TTY(fd, buf) _nc_console_setmode(_nc_console_fd2handle(fd),buf) +#else +#define GET_TTY(fd, buf) gtty(fd, buf) +#define SET_TTY(fd, buf) stty(fd, buf) +#endif + +#ifndef GCC_NORETURN +#define GCC_NORETURN /* nothing */ +#endif + +#define NAMESIZE 256 + +/* The cast works because TERMTYPE is the first data in TERMINAL */ +#define CUR ((TERMTYPE *)(cur_term))-> + +#define auto_left_margin CUR Booleans[0] +#define auto_right_margin CUR Booleans[1] +#define no_esc_ctlc CUR Booleans[2] +#define ceol_standout_glitch CUR Booleans[3] +#define eat_newline_glitch CUR Booleans[4] +#define erase_overstrike CUR Booleans[5] +#define generic_type CUR Booleans[6] +#define hard_copy CUR Booleans[7] +#define has_meta_key CUR Booleans[8] +#define has_status_line CUR Booleans[9] +#define insert_null_glitch CUR Booleans[10] +#define memory_above CUR Booleans[11] +#define memory_below CUR Booleans[12] +#define move_insert_mode CUR Booleans[13] +#define move_standout_mode CUR Booleans[14] +#define over_strike CUR Booleans[15] +#define status_line_esc_ok CUR Booleans[16] +#define dest_tabs_magic_smso CUR Booleans[17] +#define tilde_glitch CUR Booleans[18] +#define transparent_underline CUR Booleans[19] +#define xon_xoff CUR Booleans[20] +#define needs_xon_xoff CUR Booleans[21] +#define prtr_silent CUR Booleans[22] +#define hard_cursor CUR Booleans[23] +#define non_rev_rmcup CUR Booleans[24] +#define no_pad_char CUR Booleans[25] +#define non_dest_scroll_region CUR Booleans[26] +#define can_change CUR Booleans[27] +#define back_color_erase CUR Booleans[28] +#define hue_lightness_saturation CUR Booleans[29] +#define col_addr_glitch CUR Booleans[30] +#define cr_cancels_micro_mode CUR Booleans[31] +#define has_print_wheel CUR Booleans[32] +#define row_addr_glitch CUR Booleans[33] +#define semi_auto_right_margin CUR Booleans[34] +#define cpi_changes_res CUR Booleans[35] +#define lpi_changes_res CUR Booleans[36] +#define columns CUR Numbers[0] +#define init_tabs CUR Numbers[1] +#define lines CUR Numbers[2] +#define lines_of_memory CUR Numbers[3] +#define magic_cookie_glitch CUR Numbers[4] +#define padding_baud_rate CUR Numbers[5] +#define virtual_terminal CUR Numbers[6] +#define width_status_line CUR Numbers[7] +#define num_labels CUR Numbers[8] +#define label_height CUR Numbers[9] +#define label_width CUR Numbers[10] +#define max_attributes CUR Numbers[11] +#define maximum_windows CUR Numbers[12] +#define max_colors CUR Numbers[13] +#define max_pairs CUR Numbers[14] +#define no_color_video CUR Numbers[15] +#define buffer_capacity CUR Numbers[16] +#define dot_vert_spacing CUR Numbers[17] +#define dot_horz_spacing CUR Numbers[18] +#define max_micro_address CUR Numbers[19] +#define max_micro_jump CUR Numbers[20] +#define micro_col_size CUR Numbers[21] +#define micro_line_size CUR Numbers[22] +#define number_of_pins CUR Numbers[23] +#define output_res_char CUR Numbers[24] +#define output_res_line CUR Numbers[25] +#define output_res_horz_inch CUR Numbers[26] +#define output_res_vert_inch CUR Numbers[27] +#define print_rate CUR Numbers[28] +#define wide_char_size CUR Numbers[29] +#define buttons CUR Numbers[30] +#define bit_image_entwining CUR Numbers[31] +#define bit_image_type CUR Numbers[32] +#define back_tab CUR Strings[0] +#define bell CUR Strings[1] +#define carriage_return CUR Strings[2] +#define change_scroll_region CUR Strings[3] +#define clear_all_tabs CUR Strings[4] +#define clear_screen CUR Strings[5] +#define clr_eol CUR Strings[6] +#define clr_eos CUR Strings[7] +#define column_address CUR Strings[8] +#define command_character CUR Strings[9] +#define cursor_address CUR Strings[10] +#define cursor_down CUR Strings[11] +#define cursor_home CUR Strings[12] +#define cursor_invisible CUR Strings[13] +#define cursor_left CUR Strings[14] +#define cursor_mem_address CUR Strings[15] +#define cursor_normal CUR Strings[16] +#define cursor_right CUR Strings[17] +#define cursor_to_ll CUR Strings[18] +#define cursor_up CUR Strings[19] +#define cursor_visible CUR Strings[20] +#define delete_character CUR Strings[21] +#define delete_line CUR Strings[22] +#define dis_status_line CUR Strings[23] +#define down_half_line CUR Strings[24] +#define enter_alt_charset_mode CUR Strings[25] +#define enter_blink_mode CUR Strings[26] +#define enter_bold_mode CUR Strings[27] +#define enter_ca_mode CUR Strings[28] +#define enter_delete_mode CUR Strings[29] +#define enter_dim_mode CUR Strings[30] +#define enter_insert_mode CUR Strings[31] +#define enter_secure_mode CUR Strings[32] +#define enter_protected_mode CUR Strings[33] +#define enter_reverse_mode CUR Strings[34] +#define enter_standout_mode CUR Strings[35] +#define enter_underline_mode CUR Strings[36] +#define erase_chars CUR Strings[37] +#define exit_alt_charset_mode CUR Strings[38] +#define exit_attribute_mode CUR Strings[39] +#define exit_ca_mode CUR Strings[40] +#define exit_delete_mode CUR Strings[41] +#define exit_insert_mode CUR Strings[42] +#define exit_standout_mode CUR Strings[43] +#define exit_underline_mode CUR Strings[44] +#define flash_screen CUR Strings[45] +#define form_feed CUR Strings[46] +#define from_status_line CUR Strings[47] +#define init_1string CUR Strings[48] +#define init_2string CUR Strings[49] +#define init_3string CUR Strings[50] +#define init_file CUR Strings[51] +#define insert_character CUR Strings[52] +#define insert_line CUR Strings[53] +#define insert_padding CUR Strings[54] +#define key_backspace CUR Strings[55] +#define key_catab CUR Strings[56] +#define key_clear CUR Strings[57] +#define key_ctab CUR Strings[58] +#define key_dc CUR Strings[59] +#define key_dl CUR Strings[60] +#define key_down CUR Strings[61] +#define key_eic CUR Strings[62] +#define key_eol CUR Strings[63] +#define key_eos CUR Strings[64] +#define key_f0 CUR Strings[65] +#define key_f1 CUR Strings[66] +#define key_f10 CUR Strings[67] +#define key_f2 CUR Strings[68] +#define key_f3 CUR Strings[69] +#define key_f4 CUR Strings[70] +#define key_f5 CUR Strings[71] +#define key_f6 CUR Strings[72] +#define key_f7 CUR Strings[73] +#define key_f8 CUR Strings[74] +#define key_f9 CUR Strings[75] +#define key_home CUR Strings[76] +#define key_ic CUR Strings[77] +#define key_il CUR Strings[78] +#define key_left CUR Strings[79] +#define key_ll CUR Strings[80] +#define key_npage CUR Strings[81] +#define key_ppage CUR Strings[82] +#define key_right CUR Strings[83] +#define key_sf CUR Strings[84] +#define key_sr CUR Strings[85] +#define key_stab CUR Strings[86] +#define key_up CUR Strings[87] +#define keypad_local CUR Strings[88] +#define keypad_xmit CUR Strings[89] +#define lab_f0 CUR Strings[90] +#define lab_f1 CUR Strings[91] +#define lab_f10 CUR Strings[92] +#define lab_f2 CUR Strings[93] +#define lab_f3 CUR Strings[94] +#define lab_f4 CUR Strings[95] +#define lab_f5 CUR Strings[96] +#define lab_f6 CUR Strings[97] +#define lab_f7 CUR Strings[98] +#define lab_f8 CUR Strings[99] +#define lab_f9 CUR Strings[100] +#define meta_off CUR Strings[101] +#define meta_on CUR Strings[102] +#define newline CUR Strings[103] +#define pad_char CUR Strings[104] +#define parm_dch CUR Strings[105] +#define parm_delete_line CUR Strings[106] +#define parm_down_cursor CUR Strings[107] +#define parm_ich CUR Strings[108] +#define parm_index CUR Strings[109] +#define parm_insert_line CUR Strings[110] +#define parm_left_cursor CUR Strings[111] +#define parm_right_cursor CUR Strings[112] +#define parm_rindex CUR Strings[113] +#define parm_up_cursor CUR Strings[114] +#define pkey_key CUR Strings[115] +#define pkey_local CUR Strings[116] +#define pkey_xmit CUR Strings[117] +#define print_screen CUR Strings[118] +#define prtr_off CUR Strings[119] +#define prtr_on CUR Strings[120] +#define repeat_char CUR Strings[121] +#define reset_1string CUR Strings[122] +#define reset_2string CUR Strings[123] +#define reset_3string CUR Strings[124] +#define reset_file CUR Strings[125] +#define restore_cursor CUR Strings[126] +#define row_address CUR Strings[127] +#define save_cursor CUR Strings[128] +#define scroll_forward CUR Strings[129] +#define scroll_reverse CUR Strings[130] +#define set_attributes CUR Strings[131] +#define set_tab CUR Strings[132] +#define set_window CUR Strings[133] +#define tab CUR Strings[134] +#define to_status_line CUR Strings[135] +#define underline_char CUR Strings[136] +#define up_half_line CUR Strings[137] +#define init_prog CUR Strings[138] +#define key_a1 CUR Strings[139] +#define key_a3 CUR Strings[140] +#define key_b2 CUR Strings[141] +#define key_c1 CUR Strings[142] +#define key_c3 CUR Strings[143] +#define prtr_non CUR Strings[144] +#define char_padding CUR Strings[145] +#define acs_chars CUR Strings[146] +#define plab_norm CUR Strings[147] +#define key_btab CUR Strings[148] +#define enter_xon_mode CUR Strings[149] +#define exit_xon_mode CUR Strings[150] +#define enter_am_mode CUR Strings[151] +#define exit_am_mode CUR Strings[152] +#define xon_character CUR Strings[153] +#define xoff_character CUR Strings[154] +#define ena_acs CUR Strings[155] +#define label_on CUR Strings[156] +#define label_off CUR Strings[157] +#define key_beg CUR Strings[158] +#define key_cancel CUR Strings[159] +#define key_close CUR Strings[160] +#define key_command CUR Strings[161] +#define key_copy CUR Strings[162] +#define key_create CUR Strings[163] +#define key_end CUR Strings[164] +#define key_enter CUR Strings[165] +#define key_exit CUR Strings[166] +#define key_find CUR Strings[167] +#define key_help CUR Strings[168] +#define key_mark CUR Strings[169] +#define key_message CUR Strings[170] +#define key_move CUR Strings[171] +#define key_next CUR Strings[172] +#define key_open CUR Strings[173] +#define key_options CUR Strings[174] +#define key_previous CUR Strings[175] +#define key_print CUR Strings[176] +#define key_redo CUR Strings[177] +#define key_reference CUR Strings[178] +#define key_refresh CUR Strings[179] +#define key_replace CUR Strings[180] +#define key_restart CUR Strings[181] +#define key_resume CUR Strings[182] +#define key_save CUR Strings[183] +#define key_suspend CUR Strings[184] +#define key_undo CUR Strings[185] +#define key_sbeg CUR Strings[186] +#define key_scancel CUR Strings[187] +#define key_scommand CUR Strings[188] +#define key_scopy CUR Strings[189] +#define key_screate CUR Strings[190] +#define key_sdc CUR Strings[191] +#define key_sdl CUR Strings[192] +#define key_select CUR Strings[193] +#define key_send CUR Strings[194] +#define key_seol CUR Strings[195] +#define key_sexit CUR Strings[196] +#define key_sfind CUR Strings[197] +#define key_shelp CUR Strings[198] +#define key_shome CUR Strings[199] +#define key_sic CUR Strings[200] +#define key_sleft CUR Strings[201] +#define key_smessage CUR Strings[202] +#define key_smove CUR Strings[203] +#define key_snext CUR Strings[204] +#define key_soptions CUR Strings[205] +#define key_sprevious CUR Strings[206] +#define key_sprint CUR Strings[207] +#define key_sredo CUR Strings[208] +#define key_sreplace CUR Strings[209] +#define key_sright CUR Strings[210] +#define key_srsume CUR Strings[211] +#define key_ssave CUR Strings[212] +#define key_ssuspend CUR Strings[213] +#define key_sundo CUR Strings[214] +#define req_for_input CUR Strings[215] +#define key_f11 CUR Strings[216] +#define key_f12 CUR Strings[217] +#define key_f13 CUR Strings[218] +#define key_f14 CUR Strings[219] +#define key_f15 CUR Strings[220] +#define key_f16 CUR Strings[221] +#define key_f17 CUR Strings[222] +#define key_f18 CUR Strings[223] +#define key_f19 CUR Strings[224] +#define key_f20 CUR Strings[225] +#define key_f21 CUR Strings[226] +#define key_f22 CUR Strings[227] +#define key_f23 CUR Strings[228] +#define key_f24 CUR Strings[229] +#define key_f25 CUR Strings[230] +#define key_f26 CUR Strings[231] +#define key_f27 CUR Strings[232] +#define key_f28 CUR Strings[233] +#define key_f29 CUR Strings[234] +#define key_f30 CUR Strings[235] +#define key_f31 CUR Strings[236] +#define key_f32 CUR Strings[237] +#define key_f33 CUR Strings[238] +#define key_f34 CUR Strings[239] +#define key_f35 CUR Strings[240] +#define key_f36 CUR Strings[241] +#define key_f37 CUR Strings[242] +#define key_f38 CUR Strings[243] +#define key_f39 CUR Strings[244] +#define key_f40 CUR Strings[245] +#define key_f41 CUR Strings[246] +#define key_f42 CUR Strings[247] +#define key_f43 CUR Strings[248] +#define key_f44 CUR Strings[249] +#define key_f45 CUR Strings[250] +#define key_f46 CUR Strings[251] +#define key_f47 CUR Strings[252] +#define key_f48 CUR Strings[253] +#define key_f49 CUR Strings[254] +#define key_f50 CUR Strings[255] +#define key_f51 CUR Strings[256] +#define key_f52 CUR Strings[257] +#define key_f53 CUR Strings[258] +#define key_f54 CUR Strings[259] +#define key_f55 CUR Strings[260] +#define key_f56 CUR Strings[261] +#define key_f57 CUR Strings[262] +#define key_f58 CUR Strings[263] +#define key_f59 CUR Strings[264] +#define key_f60 CUR Strings[265] +#define key_f61 CUR Strings[266] +#define key_f62 CUR Strings[267] +#define key_f63 CUR Strings[268] +#define clr_bol CUR Strings[269] +#define clear_margins CUR Strings[270] +#define set_left_margin CUR Strings[271] +#define set_right_margin CUR Strings[272] +#define label_format CUR Strings[273] +#define set_clock CUR Strings[274] +#define display_clock CUR Strings[275] +#define remove_clock CUR Strings[276] +#define create_window CUR Strings[277] +#define goto_window CUR Strings[278] +#define hangup CUR Strings[279] +#define dial_phone CUR Strings[280] +#define quick_dial CUR Strings[281] +#define tone CUR Strings[282] +#define pulse CUR Strings[283] +#define flash_hook CUR Strings[284] +#define fixed_pause CUR Strings[285] +#define wait_tone CUR Strings[286] +#define user0 CUR Strings[287] +#define user1 CUR Strings[288] +#define user2 CUR Strings[289] +#define user3 CUR Strings[290] +#define user4 CUR Strings[291] +#define user5 CUR Strings[292] +#define user6 CUR Strings[293] +#define user7 CUR Strings[294] +#define user8 CUR Strings[295] +#define user9 CUR Strings[296] +#define orig_pair CUR Strings[297] +#define orig_colors CUR Strings[298] +#define initialize_color CUR Strings[299] +#define initialize_pair CUR Strings[300] +#define set_color_pair CUR Strings[301] +#define set_foreground CUR Strings[302] +#define set_background CUR Strings[303] +#define change_char_pitch CUR Strings[304] +#define change_line_pitch CUR Strings[305] +#define change_res_horz CUR Strings[306] +#define change_res_vert CUR Strings[307] +#define define_char CUR Strings[308] +#define enter_doublewide_mode CUR Strings[309] +#define enter_draft_quality CUR Strings[310] +#define enter_italics_mode CUR Strings[311] +#define enter_leftward_mode CUR Strings[312] +#define enter_micro_mode CUR Strings[313] +#define enter_near_letter_quality CUR Strings[314] +#define enter_normal_quality CUR Strings[315] +#define enter_shadow_mode CUR Strings[316] +#define enter_subscript_mode CUR Strings[317] +#define enter_superscript_mode CUR Strings[318] +#define enter_upward_mode CUR Strings[319] +#define exit_doublewide_mode CUR Strings[320] +#define exit_italics_mode CUR Strings[321] +#define exit_leftward_mode CUR Strings[322] +#define exit_micro_mode CUR Strings[323] +#define exit_shadow_mode CUR Strings[324] +#define exit_subscript_mode CUR Strings[325] +#define exit_superscript_mode CUR Strings[326] +#define exit_upward_mode CUR Strings[327] +#define micro_column_address CUR Strings[328] +#define micro_down CUR Strings[329] +#define micro_left CUR Strings[330] +#define micro_right CUR Strings[331] +#define micro_row_address CUR Strings[332] +#define micro_up CUR Strings[333] +#define order_of_pins CUR Strings[334] +#define parm_down_micro CUR Strings[335] +#define parm_left_micro CUR Strings[336] +#define parm_right_micro CUR Strings[337] +#define parm_up_micro CUR Strings[338] +#define select_char_set CUR Strings[339] +#define set_bottom_margin CUR Strings[340] +#define set_bottom_margin_parm CUR Strings[341] +#define set_left_margin_parm CUR Strings[342] +#define set_right_margin_parm CUR Strings[343] +#define set_top_margin CUR Strings[344] +#define set_top_margin_parm CUR Strings[345] +#define start_bit_image CUR Strings[346] +#define start_char_set_def CUR Strings[347] +#define stop_bit_image CUR Strings[348] +#define stop_char_set_def CUR Strings[349] +#define subscript_characters CUR Strings[350] +#define superscript_characters CUR Strings[351] +#define these_cause_cr CUR Strings[352] +#define zero_motion CUR Strings[353] +#define char_set_names CUR Strings[354] +#define key_mouse CUR Strings[355] +#define mouse_info CUR Strings[356] +#define req_mouse_pos CUR Strings[357] +#define get_mouse CUR Strings[358] +#define set_a_foreground CUR Strings[359] +#define set_a_background CUR Strings[360] +#define pkey_plab CUR Strings[361] +#define device_type CUR Strings[362] +#define code_set_init CUR Strings[363] +#define set0_des_seq CUR Strings[364] +#define set1_des_seq CUR Strings[365] +#define set2_des_seq CUR Strings[366] +#define set3_des_seq CUR Strings[367] +#define set_lr_margin CUR Strings[368] +#define set_tb_margin CUR Strings[369] +#define bit_image_repeat CUR Strings[370] +#define bit_image_newline CUR Strings[371] +#define bit_image_carriage_return CUR Strings[372] +#define color_names CUR Strings[373] +#define define_bit_image_region CUR Strings[374] +#define end_bit_image_region CUR Strings[375] +#define set_color_band CUR Strings[376] +#define set_page_length CUR Strings[377] +#define display_pc_char CUR Strings[378] +#define enter_pc_charset_mode CUR Strings[379] +#define exit_pc_charset_mode CUR Strings[380] +#define enter_scancode_mode CUR Strings[381] +#define exit_scancode_mode CUR Strings[382] +#define pc_term_options CUR Strings[383] +#define scancode_escape CUR Strings[384] +#define alt_scancode_esc CUR Strings[385] +#define enter_horizontal_hl_mode CUR Strings[386] +#define enter_left_hl_mode CUR Strings[387] +#define enter_low_hl_mode CUR Strings[388] +#define enter_right_hl_mode CUR Strings[389] +#define enter_top_hl_mode CUR Strings[390] +#define enter_vertical_hl_mode CUR Strings[391] +#define set_a_attributes CUR Strings[392] +#define set_pglen_inch CUR Strings[393] + +#define BOOLWRITE 37 +#define NUMWRITE 33 +#define STRWRITE 394 + +/* older synonyms for some capabilities */ +#define beehive_glitch no_esc_ctlc +#define teleray_glitch dest_tabs_magic_smso + +/* HPUX-11 uses this name rather than the standard one */ +#ifndef micro_char_size +#define micro_char_size micro_col_size +#endif + +#ifdef __INTERNAL_CAPS_VISIBLE +#define termcap_init2 CUR Strings[394] +#define termcap_reset CUR Strings[395] +#define magic_cookie_glitch_ul CUR Numbers[33] +#define backspaces_with_bs CUR Booleans[37] +#define crt_no_scrolling CUR Booleans[38] +#define no_correctly_working_cr CUR Booleans[39] +#define carriage_return_delay CUR Numbers[34] +#define new_line_delay CUR Numbers[35] +#define linefeed_if_not_lf CUR Strings[396] +#define backspace_if_not_bs CUR Strings[397] +#define gnu_has_meta_key CUR Booleans[40] +#define linefeed_is_newline CUR Booleans[41] +#define backspace_delay CUR Numbers[36] +#define horizontal_tab_delay CUR Numbers[37] +#define number_of_function_keys CUR Numbers[38] +#define other_non_function_keys CUR Strings[398] +#define arrow_key_map CUR Strings[399] +#define has_hardware_tabs CUR Booleans[42] +#define return_does_clr_eol CUR Booleans[43] +#define acs_ulcorner CUR Strings[400] +#define acs_llcorner CUR Strings[401] +#define acs_urcorner CUR Strings[402] +#define acs_lrcorner CUR Strings[403] +#define acs_ltee CUR Strings[404] +#define acs_rtee CUR Strings[405] +#define acs_btee CUR Strings[406] +#define acs_ttee CUR Strings[407] +#define acs_hline CUR Strings[408] +#define acs_vline CUR Strings[409] +#define acs_plus CUR Strings[410] +#define memory_lock CUR Strings[411] +#define memory_unlock CUR Strings[412] +#define box_chars_1 CUR Strings[413] +#endif /* __INTERNAL_CAPS_VISIBLE */ + + +/* + * Predefined terminfo array sizes + */ +#define BOOLCOUNT 44 +#define NUMCOUNT 39 +#define STRCOUNT 414 + +/* used by code for comparing entries */ +#define acs_chars_index 146 + +typedef struct termtype { /* in-core form of terminfo data */ + char *term_names; /* str_table offset of term names */ + char *str_table; /* pointer to string table */ + NCURSES_SBOOL *Booleans; /* array of boolean values */ + short *Numbers; /* array of integer values */ + char **Strings; /* array of string offsets */ + +#if NCURSES_XNAMES + char *ext_str_table; /* pointer to extended string table */ + char **ext_Names; /* corresponding names */ + + unsigned short num_Booleans;/* count total Booleans */ + unsigned short num_Numbers; /* count total Numbers */ + unsigned short num_Strings; /* count total Strings */ + + unsigned short ext_Booleans;/* count extensions to Booleans */ + unsigned short ext_Numbers; /* count extensions to Numbers */ + unsigned short ext_Strings; /* count extensions to Strings */ +#endif /* NCURSES_XNAMES */ + +} TERMTYPE; + +/* + * The only reason these structures are visible is for read-only use. + * Programs which modify the data are not, never were, portable across + * curses implementations. + * + * The first field in TERMINAL is used in macros. + * The remaining fields are private. + */ +#ifdef NCURSES_INTERNALS + +#undef TERMINAL +#define TERMINAL struct term +TERMINAL; + +#undef TERMTYPE2 +#define TERMTYPE2 TERMTYPE +#else + +typedef struct term { /* describe an actual terminal */ + TERMTYPE type; /* terminal type description */ +} TERMINAL; + +#endif /* NCURSES_INTERNALS */ + + +#if 0 && !0 +extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term; +#elif 0 +NCURSES_WRAPPED_VAR(TERMINAL *, cur_term); +#define cur_term NCURSES_PUBLIC_VAR(cur_term()) +#else +extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term; +#endif + +#if 0 || 0 +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolnames); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolcodes); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolfnames); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numnames); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numcodes); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numfnames); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strnames); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes); +NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames); + +#define boolnames NCURSES_PUBLIC_VAR(boolnames()) +#define boolcodes NCURSES_PUBLIC_VAR(boolcodes()) +#define boolfnames NCURSES_PUBLIC_VAR(boolfnames()) +#define numnames NCURSES_PUBLIC_VAR(numnames()) +#define numcodes NCURSES_PUBLIC_VAR(numcodes()) +#define numfnames NCURSES_PUBLIC_VAR(numfnames()) +#define strnames NCURSES_PUBLIC_VAR(strnames()) +#define strcodes NCURSES_PUBLIC_VAR(strcodes()) +#define strfnames NCURSES_PUBLIC_VAR(strfnames()) + +#else + +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[]; +extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[]; + +#endif + +/* + * These entrypoints are used only by the ncurses utilities such as tic. + */ +#ifdef NCURSES_INTERNALS + +extern NCURSES_EXPORT(int) _nc_set_tty_mode (TTY *buf); +extern NCURSES_EXPORT(int) _nc_read_entry2 (const char * const, char * const, TERMTYPE2 *const); +extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE2 *); +extern NCURSES_EXPORT(int) _nc_read_termtype (TERMTYPE2 *, char *, int); +extern NCURSES_EXPORT(char *) _nc_first_name (const char *const); +extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const); +extern NCURSES_EXPORT(char *) _nc_tiparm(int, const char *, ...); + +#endif /* NCURSES_INTERNALS */ + + +/* + * These entrypoints are used by tack 1.07. + */ +extern NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *); +extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const); + +/* + * Normal entry points + */ +extern NCURSES_EXPORT(TERMINAL *) set_curterm (TERMINAL *); +extern NCURSES_EXPORT(int) del_curterm (TERMINAL *); + +/* miscellaneous entry points */ +extern NCURSES_EXPORT(int) restartterm (NCURSES_CONST char *, int, int *); +extern NCURSES_EXPORT(int) setupterm (const char *,int,int *); + +/* terminfo entry points, also declared in curses.h */ +#if !defined(__NCURSES_H) +extern NCURSES_EXPORT(char *) tigetstr (const char *); +extern NCURSES_EXPORT_VAR(char) ttytype[]; +extern NCURSES_EXPORT(int) putp (const char *); +extern NCURSES_EXPORT(int) tigetflag (const char *); +extern NCURSES_EXPORT(int) tigetnum (const char *); + +#if 1 /* NCURSES_TPARM_VARARGS */ +extern NCURSES_EXPORT(char *) tparm (const char *, ...); /* special */ +#else +extern NCURSES_EXPORT(char *) tparm (const char *, long,long,long,long,long,long,long,long,long); /* special */ +#endif + +extern NCURSES_EXPORT(char *) tiparm (const char *, ...); /* special */ + +#endif /* __NCURSES_H */ + +/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */ +#if !defined(NCURSES_TERMCAP_H_incl) +extern NCURSES_EXPORT(char *) tgetstr (const char *, char **); +extern NCURSES_EXPORT(char *) tgoto (const char *, int, int); +extern NCURSES_EXPORT(int) tgetent (char *, const char *); +extern NCURSES_EXPORT(int) tgetflag (const char *); +extern NCURSES_EXPORT(int) tgetnum (const char *); +extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int)); +#endif /* NCURSES_TERMCAP_H_incl */ + +/* + * Include curses.h before term.h to enable these extensions. + */ +#if defined(NCURSES_SP_FUNCS) && (NCURSES_SP_FUNCS != 0) + +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tigetstr) (SCREEN*, const char *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(putp) (SCREEN*, const char *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tigetflag) (SCREEN*, const char *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tigetnum) (SCREEN*, const char *); + +#if 1 /* NCURSES_TPARM_VARARGS */ +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm) (SCREEN*, const char *, ...); /* special */ +#else +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tparm) (SCREEN*, const char *, long,long,long,long,long,long,long,long,long); /* special */ +#endif + +/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */ +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tgetstr) (SCREEN*, const char *, char **); +extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(tgoto) (SCREEN*, const char *, int, int); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetent) (SCREEN*, char *, const char *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetflag) (SCREEN*, const char *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tgetnum) (SCREEN*, const char *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(tputs) (SCREEN*, const char *, int, NCURSES_SP_OUTC); + +extern NCURSES_EXPORT(TERMINAL *) NCURSES_SP_NAME(set_curterm) (SCREEN*, TERMINAL *); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(del_curterm) (SCREEN*, TERMINAL *); + +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(restartterm) (SCREEN*, NCURSES_CONST char *, int, int *); +#endif /* NCURSES_SP_FUNCS */ + +/* + * Debugging features. + */ +extern GCC_NORETURN NCURSES_EXPORT(void) exit_terminfo(int); + +#ifdef __cplusplus +} +#endif + +#endif /* NCURSES_TERM_H_incl */ diff --git a/code/application/source/sf_app/tools/blue/include/termcap.h b/code/application/source/sf_app/tools/blue/include/termcap.h new file mode 100644 index 000000000..ea8e5eeeb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/termcap.h @@ -0,0 +1,73 @@ +/**************************************************************************** + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2000,2001 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* $Id: termcap.h.in,v 1.20 2021/06/17 21:26:02 tom Exp $ */ + +#ifndef NCURSES_TERMCAP_H_incl +#define NCURSES_TERMCAP_H_incl 1 + +#undef NCURSES_VERSION +#define NCURSES_VERSION "6.3" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include + +#undef NCURSES_OSPEED +#define NCURSES_OSPEED short + +extern NCURSES_EXPORT_VAR(char) PC; +extern NCURSES_EXPORT_VAR(char *) UP; +extern NCURSES_EXPORT_VAR(char *) BC; +extern NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed; + +#if !defined(NCURSES_TERM_H_incl) +extern NCURSES_EXPORT(char *) tgetstr (const char *, char **); +extern NCURSES_EXPORT(char *) tgoto (const char *, int, int); +extern NCURSES_EXPORT(int) tgetent (char *, const char *); +extern NCURSES_EXPORT(int) tgetflag (const char *); +extern NCURSES_EXPORT(int) tgetnum (const char *); +extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int)); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* NCURSES_TERMCAP_H_incl */ diff --git a/code/application/source/sf_app/tools/blue/include/textstyle.h b/code/application/source/sf_app/tools/blue/include/textstyle.h new file mode 100644 index 000000000..ce0bf6e01 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/textstyle.h @@ -0,0 +1,707 @@ +/* Public API of the libtextstyle library. + Copyright (C) 2006-2007, 2019-2021 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* Written by Bruno Haible , 2006, 2019. */ + +#ifndef _TEXTSTYLE_H +#define _TEXTSTYLE_H + +#include +#include +#include +#include +#include + +/* Meta information. */ +#include + +/* ----------------------------- From ostream.h ----------------------------- */ + +/* Describes the scope of a flush operation. */ +typedef enum +{ + /* Flushes buffers in this ostream_t. + Use this value if you want to write to the underlying ostream_t. */ + FLUSH_THIS_STREAM = 0, + /* Flushes all buffers in the current process. + Use this value if you want to write to the same target through a + different file descriptor or a FILE stream. */ + FLUSH_THIS_PROCESS = 1, + /* Flushes buffers in the current process and attempts to flush the buffers + in the kernel. + Use this value so that some other process (or the kernel itself) + may write to the same target. */ + FLUSH_ALL = 2 +} ostream_flush_scope_t; + + +/* An output stream is an object to which one can feed a sequence of bytes. */ + +struct any_ostream_representation; +typedef struct any_ostream_representation * ostream_t; + +/* Functions that invoke the methods. */ +#ifdef __cplusplus +extern "C" { +#endif +extern void ostream_write_mem (ostream_t first_arg, const void *data, size_t len); +extern void ostream_flush (ostream_t first_arg, ostream_flush_scope_t scope); +extern void ostream_free (ostream_t first_arg); +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Write a string's contents to a stream. */ +extern void ostream_write_str (ostream_t stream, const char *string); + +/* Writes formatted output to a stream. + Returns the size of formatted output, or a negative value in case of an + error. */ +extern ptrdiff_t ostream_printf (ostream_t stream, const char *format, ...) +#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) || __GNUC__ > 3 + __attribute__ ((__format__ (__printf__, 2, 3))) +#endif + ; +extern ptrdiff_t ostream_vprintf (ostream_t stream, + const char *format, va_list args) +#if (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) || __GNUC__ > 3 + __attribute__ ((__format__ (__printf__, 2, 0))) +#endif + ; + +#ifdef __cplusplus +} +#endif + +/* ------------------------- From styled-ostream.h ------------------------- */ + +/* A styled output stream is an object to which one can feed a sequence of + bytes, marking some runs of text as belonging to specific CSS classes, + where the rendering of the CSS classes is defined through a CSS (cascading + style sheet). */ + +/* styled_ostream_t is a subtype of ostream_t. */ +typedef ostream_t styled_ostream_t; + +/* Functions that invoke the methods. */ +#ifdef __cplusplus +extern "C" { +#endif +extern void styled_ostream_write_mem (styled_ostream_t first_arg, const void *data, size_t len); +extern void styled_ostream_flush (styled_ostream_t first_arg, ostream_flush_scope_t scope); +extern void styled_ostream_free (styled_ostream_t first_arg); +extern void styled_ostream_begin_use_class (styled_ostream_t first_arg, const char *classname); +extern void styled_ostream_end_use_class (styled_ostream_t first_arg, const char *classname); +extern const char *styled_ostream_get_hyperlink_ref (styled_ostream_t first_arg); +extern const char *styled_ostream_get_hyperlink_id (styled_ostream_t first_arg); +extern void styled_ostream_set_hyperlink (styled_ostream_t first_arg, const char *ref, const char *id); +/* Like styled_ostream_flush (first_arg, FLUSH_THIS_STREAM), except that it + leaves the destination with the current text style enabled, instead + of with the default text style. + After calling this function, you can output strings without newlines(!) + to the underlying stream, and they will be rendered like strings passed + to 'ostream_write_mem', 'ostream_write_str', or 'ostream_write_printf'. */ +extern void styled_ostream_flush_to_current_style (styled_ostream_t stream); +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Test whether a given output stream is a styled_ostream. */ +extern bool is_instance_of_styled_ostream (ostream_t stream); + + +#ifdef __cplusplus +} +#endif + +/* -------------------------- From file-ostream.h -------------------------- */ + +/* file_ostream_t is a subtype of ostream_t. */ +typedef ostream_t file_ostream_t; + +/* Functions that invoke the methods. */ +#ifdef __cplusplus +extern "C" { +#endif +extern void file_ostream_write_mem (file_ostream_t first_arg, const void *data, size_t len); +extern void file_ostream_flush (file_ostream_t first_arg, ostream_flush_scope_t scope); +extern void file_ostream_free (file_ostream_t first_arg); +/* Accessors. */ +extern FILE *file_ostream_get_stdio_stream (file_ostream_t stream); +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Create an output stream referring to FP. + Note that the resulting stream must be closed before FP can be closed. */ +extern file_ostream_t file_ostream_create (FILE *fp); + + +/* Test whether a given output stream is a file_ostream. */ +extern bool is_instance_of_file_ostream (ostream_t stream); + + +#ifdef __cplusplus +} +#endif + +/* --------------------------- From fd-ostream.h --------------------------- */ + +/* fd_ostream_t is a subtype of ostream_t. */ +typedef ostream_t fd_ostream_t; + +/* Functions that invoke the methods. */ +#ifdef __cplusplus +extern "C" { +#endif +extern void fd_ostream_write_mem (fd_ostream_t first_arg, const void *data, size_t len); +extern void fd_ostream_flush (fd_ostream_t first_arg, ostream_flush_scope_t scope); +extern void fd_ostream_free (fd_ostream_t first_arg); +/* Accessors. */ +extern int fd_ostream_get_descriptor (fd_ostream_t stream); +extern const char *fd_ostream_get_filename (fd_ostream_t stream); +extern bool fd_ostream_is_buffered (fd_ostream_t stream); +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Create an output stream referring to the file descriptor FD. + FILENAME is used only for error messages. + Note that the resulting stream must be closed before FD can be closed. */ +extern fd_ostream_t fd_ostream_create (int fd, const char *filename, + bool buffered); + + +/* Test whether a given output stream is a fd_ostream. */ +extern bool is_instance_of_fd_ostream (ostream_t stream); + + +#ifdef __cplusplus +} +#endif + +/* -------------------------- From term-ostream.h -------------------------- */ + +/* Querying and setting of text attributes. + The stream has a notion of the current text attributes; they apply + implicitly to all following output. The attributes are automatically + reset when the stream is closed. + Note: Not all terminal types can actually render all attributes adequately. + For example, xterm cannot render POSTURE_ITALIC nor the combination of + WEIGHT_BOLD and UNDERLINE_ON. */ + +/* Colors are represented by indices >= 0 in a stream dependent format. */ +typedef int term_color_t; +/* The value -1 denotes the default (foreground or background) color. */ +enum +{ + COLOR_DEFAULT = -1 /* unknown */ +}; + +typedef enum +{ + WEIGHT_NORMAL = 0, + WEIGHT_BOLD, + WEIGHT_DEFAULT = WEIGHT_NORMAL +} term_weight_t; + +typedef enum +{ + POSTURE_NORMAL = 0, + POSTURE_ITALIC, /* same as oblique */ + POSTURE_DEFAULT = POSTURE_NORMAL +} term_posture_t; + +typedef enum +{ + UNDERLINE_OFF = 0, + UNDERLINE_ON, + UNDERLINE_DEFAULT = UNDERLINE_OFF +} term_underline_t; + +/* The amount of control to take over the underlying tty in order to avoid + garbled output on the screen, due to interleaved output of escape sequences + and output from the kernel (such as when the kernel echoes user's input + or when the kernel prints '^C' after the user pressed Ctrl-C). */ +typedef enum +{ + TTYCTL_AUTO = 0, /* Automatic best-possible choice. */ + TTYCTL_NONE, /* No control. + Result: Garbled output can occur, and the terminal can + be left in any state when the program is interrupted. */ + TTYCTL_PARTIAL, /* Signal handling. + Result: Garbled output can occur, but the terminal will + be left in the default state when the program is + interrupted. */ + TTYCTL_FULL /* Signal handling and disabling echo and flush-upon-signal. + Result: No garbled output, and the the terminal will + be left in the default state when the program is + interrupted. */ +} ttyctl_t; + +/* term_ostream_t is a subtype of ostream_t. */ +typedef ostream_t term_ostream_t; + +/* Functions that invoke the methods. */ +#ifdef __cplusplus +extern "C" { +#endif +extern void term_ostream_write_mem (term_ostream_t first_arg, const void *data, size_t len); +extern void term_ostream_flush (term_ostream_t first_arg, ostream_flush_scope_t scope); +extern void term_ostream_free (term_ostream_t first_arg); +extern term_color_t term_ostream_rgb_to_color (term_ostream_t first_arg, int red, int green, int blue); +extern term_color_t term_ostream_get_color (term_ostream_t first_arg); +extern void term_ostream_set_color (term_ostream_t first_arg, term_color_t color); +extern term_color_t term_ostream_get_bgcolor (term_ostream_t first_arg); +extern void term_ostream_set_bgcolor (term_ostream_t first_arg, term_color_t color); +extern term_weight_t term_ostream_get_weight (term_ostream_t first_arg); +extern void term_ostream_set_weight (term_ostream_t first_arg, term_weight_t weight); +extern term_posture_t term_ostream_get_posture (term_ostream_t first_arg); +extern void term_ostream_set_posture (term_ostream_t first_arg, term_posture_t posture); +extern term_underline_t term_ostream_get_underline (term_ostream_t first_arg); +extern void term_ostream_set_underline (term_ostream_t first_arg, term_underline_t underline); +extern const char *term_ostream_get_hyperlink_ref (term_ostream_t first_arg); +extern const char *term_ostream_get_hyperlink_id (term_ostream_t first_arg); +extern void term_ostream_set_hyperlink (term_ostream_t first_arg, const char *ref, const char *id); +/* Like term_ostream_flush (first_arg, FLUSH_THIS_STREAM), except that it + leaves the terminal with the current text attributes enabled, instead of + with the default text attributes. + After calling this function, you can output strings without newlines(!) + to the underlying file descriptor, and they will be rendered like strings + passed to 'ostream_write_mem', 'ostream_write_str', or + 'ostream_write_printf'. */ +extern void term_ostream_flush_to_current_style (term_ostream_t first_arg); +/* Accessors. */ +extern int term_ostream_get_descriptor (term_ostream_t stream); +extern const char *term_ostream_get_filename (term_ostream_t stream); +extern ttyctl_t term_ostream_get_tty_control (term_ostream_t stream); +extern ttyctl_t term_ostream_get_effective_tty_control (term_ostream_t stream); +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Create an output stream referring to the file descriptor FD. + FILENAME is used only for error messages. + TTY_CONTROL specifies the amount of control to take over the underlying tty. + The resulting stream will be line-buffered. + Note that the resulting stream must be closed before FD can be closed. */ +extern term_ostream_t + term_ostream_create (int fd, const char *filename, ttyctl_t tty_control); + + +/* Test whether a given output stream is a term_ostream. */ +extern bool is_instance_of_term_ostream (ostream_t stream); + + +#ifdef __cplusplus +} +#endif + +/* ------------------------- From memory-ostream.h ------------------------- */ + +/* memory_ostream_t is a subtype of ostream_t. */ +typedef ostream_t memory_ostream_t; + +/* Functions that invoke the methods. */ +#ifdef __cplusplus +extern "C" { +#endif +extern void memory_ostream_write_mem (memory_ostream_t first_arg, const void *data, size_t len); +extern void memory_ostream_flush (memory_ostream_t first_arg, ostream_flush_scope_t scope); +extern void memory_ostream_free (memory_ostream_t first_arg); +extern void memory_ostream_contents (memory_ostream_t first_arg, const void **bufp, size_t *buflenp); +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Create an output stream that accumulates the output in a memory buffer. */ +extern memory_ostream_t memory_ostream_create (void); + + +/* Test whether a given output stream is a memory_ostream. */ +extern bool is_instance_of_memory_ostream (ostream_t stream); + + +#ifdef __cplusplus +} +#endif + +/* -------------------------- From iconv-ostream.h -------------------------- */ + +#if LIBTEXTSTYLE_USES_ICONV + +/* iconv_ostream_t is a subtype of ostream_t. */ +typedef ostream_t iconv_ostream_t; + +/* Functions that invoke the methods. */ +#ifdef __cplusplus +extern "C" { +#endif +extern void iconv_ostream_write_mem (iconv_ostream_t first_arg, const void *data, size_t len); +extern void iconv_ostream_flush (iconv_ostream_t first_arg, ostream_flush_scope_t scope); +extern void iconv_ostream_free (iconv_ostream_t first_arg); +/* Accessors. */ +extern const char *iconv_ostream_get_from_encoding (iconv_ostream_t stream); +extern const char *iconv_ostream_get_to_encoding (iconv_ostream_t stream); +extern ostream_t iconv_ostream_get_destination (iconv_ostream_t stream); +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Create an output stream that converts from FROM_ENCODING to TO_ENCODING, + writing the result to DESTINATION. */ +extern iconv_ostream_t iconv_ostream_create (const char *from_encoding, + const char *to_encoding, + ostream_t destination); + + +/* Test whether a given output stream is an iconv_ostream. */ +extern bool is_instance_of_iconv_ostream (ostream_t stream); + + +#ifdef __cplusplus +} +#endif + +#endif /* LIBTEXTSTYLE_USES_ICONV */ + +/* -------------------------- From html-ostream.h -------------------------- */ + +/* html_ostream_t is a subtype of ostream_t. */ +typedef ostream_t html_ostream_t; + +/* Functions that invoke the methods. */ +#ifdef __cplusplus +extern "C" { +#endif +extern void html_ostream_write_mem (html_ostream_t first_arg, const void *data, size_t len); +extern void html_ostream_flush (html_ostream_t first_arg, ostream_flush_scope_t scope); +extern void html_ostream_free (html_ostream_t first_arg); +extern void html_ostream_begin_span (html_ostream_t first_arg, const char *classname); +extern void html_ostream_end_span (html_ostream_t first_arg, const char *classname); +extern const char *html_ostream_get_hyperlink_ref (html_ostream_t first_arg); +extern void html_ostream_set_hyperlink_ref (html_ostream_t first_arg, const char *ref); +/* Like html_ostream_flush (first_arg, FLUSH_THIS_STREAM), except that it + leaves the destination with the current text style enabled, instead + of with the default text style. + After calling this function, you can output strings without newlines(!) + to the underlying stream, and they will be rendered like strings passed + to 'ostream_write_mem', 'ostream_write_str', or 'ostream_write_printf'. */ +extern void html_ostream_flush_to_current_style (html_ostream_t stream); +/* Accessors. */ +extern ostream_t html_ostream_get_destination (html_ostream_t stream); +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Create an output stream that takes input in the UTF-8 encoding and + writes it in HTML form on DESTINATION. + This stream produces a sequence of lines. The caller is responsible + for opening the elements before and for closing them after + the use of this stream. + Note that the resulting stream must be closed before DESTINATION can be + closed. */ +extern html_ostream_t html_ostream_create (ostream_t destination); + + +/* Test whether a given output stream is a html_ostream. */ +extern bool is_instance_of_html_ostream (ostream_t stream); + + +#ifdef __cplusplus +} +#endif + +/* ----------------------- From term-styled-ostream.h ----------------------- */ + +/* term_styled_ostream_t is a subtype of styled_ostream_t. */ +typedef styled_ostream_t term_styled_ostream_t; + +/* Functions that invoke the methods. */ +#ifdef __cplusplus +extern "C" { +#endif +extern void term_styled_ostream_write_mem (term_styled_ostream_t first_arg, const void *data, size_t len); +extern void term_styled_ostream_flush (term_styled_ostream_t first_arg, ostream_flush_scope_t scope); +extern void term_styled_ostream_free (term_styled_ostream_t first_arg); +extern void term_styled_ostream_begin_use_class (term_styled_ostream_t first_arg, const char *classname); +extern void term_styled_ostream_end_use_class (term_styled_ostream_t first_arg, const char *classname); +extern const char *term_styled_ostream_get_hyperlink_ref (term_styled_ostream_t first_arg); +extern const char *term_styled_ostream_get_hyperlink_id (term_styled_ostream_t first_arg); +extern void term_styled_ostream_set_hyperlink (term_styled_ostream_t first_arg, const char *ref, const char *id); +extern void term_styled_ostream_flush_to_current_style (term_styled_ostream_t first_arg); +/* Accessors. */ +extern term_ostream_t term_styled_ostream_get_destination (term_styled_ostream_t stream); +extern const char *term_styled_ostream_get_css_filename (term_styled_ostream_t stream); +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Create an output stream referring to the file descriptor FD, styled with + the file CSS_FILENAME. + FILENAME is used only for error messages. + TTY_CONTROL specifies the amount of control to take over the underlying tty. + Note that the resulting stream must be closed before FD can be closed. + Return NULL upon failure. */ +extern term_styled_ostream_t + term_styled_ostream_create (int fd, const char *filename, + ttyctl_t tty_control, + const char *css_filename); + + +/* Test whether a given output stream is a term_styled_ostream. */ +extern bool is_instance_of_term_styled_ostream (ostream_t stream); + + +#ifdef __cplusplus +} +#endif + +/* ----------------------- From html-styled-ostream.h ----------------------- */ + +/* html_styled_ostream_t is a subtype of styled_ostream_t. */ +typedef styled_ostream_t html_styled_ostream_t; + +/* Functions that invoke the methods. */ +#ifdef __cplusplus +extern "C" { +#endif +extern void html_styled_ostream_write_mem (html_styled_ostream_t first_arg, const void *data, size_t len); +extern void html_styled_ostream_flush (html_styled_ostream_t first_arg, ostream_flush_scope_t scope); +extern void html_styled_ostream_free (html_styled_ostream_t first_arg); +extern void html_styled_ostream_begin_use_class (html_styled_ostream_t first_arg, const char *classname); +extern void html_styled_ostream_end_use_class (html_styled_ostream_t first_arg, const char *classname); +extern const char *html_styled_ostream_get_hyperlink_ref (html_styled_ostream_t first_arg); +extern const char *html_styled_ostream_get_hyperlink_id (html_styled_ostream_t first_arg); +extern void html_styled_ostream_set_hyperlink (html_styled_ostream_t first_arg, const char *ref, const char *id); +extern void html_styled_ostream_flush_to_current_style (html_styled_ostream_t first_arg); +/* Accessors. */ +extern ostream_t html_styled_ostream_get_destination (html_styled_ostream_t stream); +extern html_ostream_t html_styled_ostream_get_html_destination (html_styled_ostream_t stream); +extern const char *html_styled_ostream_get_css_filename (html_styled_ostream_t stream); +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Create an output stream that takes input in the UTF-8 encoding and + writes it in HTML form on DESTINATION, styled with the file CSS_FILENAME. + Note that the resulting stream must be closed before DESTINATION can be + closed. */ +extern html_styled_ostream_t + html_styled_ostream_create (ostream_t destination, + const char *css_filename); + + +/* Test whether a given output stream is a html_styled_ostream. */ +extern bool is_instance_of_html_styled_ostream (ostream_t stream); + + +#ifdef __cplusplus +} +#endif + +/* ----------------------- From noop-styled-ostream.h ----------------------- */ + +/* noop_styled_ostream_t is a subtype of styled_ostream_t. */ +typedef styled_ostream_t noop_styled_ostream_t; + +/* Functions that invoke the methods. */ +#ifdef __cplusplus +extern "C" { +#endif +extern void noop_styled_ostream_write_mem (noop_styled_ostream_t first_arg, const void *data, size_t len); +extern void noop_styled_ostream_flush (noop_styled_ostream_t first_arg, ostream_flush_scope_t scope); +extern void noop_styled_ostream_free (noop_styled_ostream_t first_arg); +extern void noop_styled_ostream_begin_use_class (noop_styled_ostream_t first_arg, const char *classname); +extern void noop_styled_ostream_end_use_class (noop_styled_ostream_t first_arg, const char *classname); +extern const char *noop_styled_ostream_get_hyperlink_ref (noop_styled_ostream_t first_arg); +extern const char *noop_styled_ostream_get_hyperlink_id (noop_styled_ostream_t first_arg); +extern void noop_styled_ostream_set_hyperlink (noop_styled_ostream_t first_arg, const char *ref, const char *id); +extern void noop_styled_ostream_flush_to_current_style (noop_styled_ostream_t first_arg); +/* Accessors. */ +extern ostream_t noop_styled_ostream_get_destination (noop_styled_ostream_t stream); +extern bool noop_styled_ostream_is_owning_destination (noop_styled_ostream_t stream); +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Create an output stream that delegates to DESTINATION and that supports + the styling operations as no-ops. + If PASS_OWNERSHIP is true, closing the resulting stream will automatically + close the DESTINATION. + Note that if PASS_OWNERSHIP is false, the resulting stream must be closed + before DESTINATION can be closed. */ +extern noop_styled_ostream_t + noop_styled_ostream_create (ostream_t destination, bool pass_ownership); + + +/* Test whether a given output stream is a noop_styled_ostream. */ +extern bool is_instance_of_noop_styled_ostream (ostream_t stream); + + +#ifdef __cplusplus +} +#endif + +/* ------------------------------ From color.h ------------------------------ */ + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Whether to output a test page. */ +extern LIBTEXTSTYLE_DLL_VARIABLE bool color_test_mode; + +/* Color option. */ +enum color_option { color_no, color_tty, color_yes, color_html }; +extern LIBTEXTSTYLE_DLL_VARIABLE enum color_option color_mode; + +/* Style to use when coloring. */ +extern LIBTEXTSTYLE_DLL_VARIABLE const char *style_file_name; + +/* --color argument handling. Return an error indicator. */ +extern bool handle_color_option (const char *option); + +/* --style argument handling. */ +extern void handle_style_option (const char *option); + +/* Print a color test page. */ +extern void print_color_test (void); + +/* Assign a default value to style_file_name if necessary. + STYLE_FILE_ENVVAR is an environment variable that, when set to a non-empty + value, specifies the style file to use. This environment variable is meant + to be set by the user. + STYLESDIR_ENVVAR is an environment variable that, when set to a non-empty + value, specifies the directory with the style files, or NULL. This is + necessary for running the testsuite before "make install". + STYLESDIR_AFTER_INSTALL is the directory with the style files after + "make install". + DEFAULT_STYLE_FILE is the file name of the default style file, relative to + STYLESDIR. */ +extern void style_file_prepare (const char *style_file_envvar, + const char *stylesdir_envvar, + const char *stylesdir_after_install, + const char *default_style_file); + + +#ifdef __cplusplus +} +#endif + +/* ------------------------------ From misc.h ------------------------------ */ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Create an output stream referring to the file descriptor FD, styled with + the file CSS_FILENAME if possible. + FILENAME is used only for error messages. + TTY_CONTROL specifies the amount of control to take over the underlying tty. + Note that the resulting stream must be closed before FD can be closed. */ +extern styled_ostream_t + styled_ostream_create (int fd, const char *filename, + ttyctl_t tty_control, + const char *css_filename); + +/* Set the exit value upon failure within libtextstyle. */ +extern void libtextstyle_set_failure_exit_code (int exit_code); + +#ifdef __cplusplus +} +#endif + +/* ----------------------- Exported gnulib overrides ----------------------- */ + +#if defined _WIN32 && ! defined __CYGWIN__ + +# include + +# ifdef __cplusplus +extern "C" { +# endif + +# if !((defined isatty && defined _GL_UNISTD_H) || defined GNULIB_overrides_isatty) /* don't override gnulib */ +extern int libtextstyle_isatty (int fd); +# undef isatty +# define isatty libtextstyle_isatty +# endif + +# ifdef __cplusplus +} +# endif + +#endif + +/* ------------------------------------------------------------------------- */ + +#endif /* _TEXTSTYLE_H */ diff --git a/code/application/source/sf_app/tools/blue/include/textstyle/stdbool.h b/code/application/source/sf_app/tools/blue/include/textstyle/stdbool.h new file mode 100644 index 000000000..20347b94b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/textstyle/stdbool.h @@ -0,0 +1,117 @@ +/* DO NOT EDIT! GENERATED AUTOMATICALLY! */ +#if !defined _GL_STDBOOL_H +#if (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) +#include +#else +/* Copyright (C) 2001-2003, 2006-2017, 2019 Free Software Foundation, Inc. + Written by Bruno Haible , 2001. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program; if not, see . */ + +#ifndef _TEXTSTYLE_STDBOOL_H +#define _TEXTSTYLE_STDBOOL_H + +/* ISO C 99 for platforms that lack it. */ + +/* Usage suggestions: + + Programs that use should be aware of some limitations + and standards compliance issues. + + Standards compliance: + + - must be #included before 'bool', 'false', 'true' + can be used. + + - You cannot assume that sizeof (bool) == 1. + + - Programs should not undefine the macros bool, true, and false, + as C99 lists that as an "obsolescent feature". + + Limitations of this substitute, when used in a C89 environment: + + - must be #included before the '_Bool' type can be used. + + - You cannot assume that _Bool is a typedef; it might be a macro. + + - Bit-fields of type 'bool' are not supported. Portable code + should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'. + + - In C99, casts and automatic conversions to '_Bool' or 'bool' are + performed in such a way that every nonzero value gets converted + to 'true', and zero gets converted to 'false'. This doesn't work + with this substitute. With this substitute, only the values 0 and 1 + give the expected result when converted to _Bool' or 'bool'. + + - C99 allows the use of (_Bool)0.0 in constant expressions, but + this substitute cannot always provide this property. + + Also, it is suggested that programs use 'bool' rather than '_Bool'; + this isn't required, but 'bool' is more common. */ + + +/* 7.16. Boolean type and values */ + +#ifdef __cplusplus + /* Assume the compiler has 'bool' and '_Bool'. */ +#else + /* is known to exist and work with the following compilers: + - GNU C 3.0 or newer, on any platform, + - Intel C, + - MSVC 12 (Visual Studio 2013) or newer, + - Sun C, on Solaris, if _STDC_C99 is defined, + - AIX xlc, if _ANSI_C_SOURCE is defined, + - HP C, on HP-UX 11.31 or newer. + It is know not to work with: + - Sun C, on Solaris, if __C99FEATURES__ is defined but _STDC_C99 is not, + - MIPSpro C 7.30, on IRIX. */ +# if (__GNUC__ >= 3) \ + || defined __INTEL_COMPILER \ + || (_MSC_VER >= 1800) \ + || (defined __SUNPRO_C && defined _STDC_C99) \ + || (defined _AIX && !defined __GNUC__ && defined _ANSI_C_SOURCE) \ + || defined __HP_cc + /* Assume the compiler has . */ +# include +# else + /* Need to define _Bool ourselves. As 'signed char' or as an enum type? + Use of a typedef, with SunPRO C, leads to a stupid + "warning: _Bool is a keyword in ISO C99". + Use of an enum type, with IRIX cc, leads to a stupid + "warning(1185): enumerated type mixed with another type". + Even the existence of an enum type, without a typedef, + "Invalid enumerator. (badenum)" with HP-UX cc on Tru64. + The only benefit of the enum, debuggability, is not important + with these compilers. So use 'signed char' and no enum. */ +# define _Bool signed char +# define bool _Bool +# endif +#endif + +/* The other macros must be usable in preprocessor directives. */ +#ifdef __cplusplus +# define false false +# define true true +#else +# undef false +# define false 0 +# undef true +# define true 1 +#endif + +#define __bool_true_false_are_defined 1 + +#endif /* _TEXTSTYLE_STDBOOL_H */ +#endif +#endif diff --git a/code/application/source/sf_app/tools/blue/include/textstyle/version.h b/code/application/source/sf_app/tools/blue/include/textstyle/version.h new file mode 100644 index 000000000..54a5dfb51 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/textstyle/version.h @@ -0,0 +1,44 @@ +/* Meta information about GNU libtextstyle. + Copyright (C) 2009-2010, 2019 Free Software Foundation, Inc. + Written by Bruno Haible , 2009. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +#ifndef _TEXTSTYLE_VERSION_H +#define _TEXTSTYLE_VERSION_H + +/* Get LIBTEXTSTYLE_DLL_VARIABLE. */ +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Version number: (major<<16) + (minor<<8) + subminor. */ +#define _LIBTEXTSTYLE_VERSION 0x001600 +extern LIBTEXTSTYLE_DLL_VARIABLE const int _libtextstyle_version; /* Likewise */ + + +/* 1 if libtextstyle was built with iconv support, 0 if not. */ +#define LIBTEXTSTYLE_USES_ICONV 1 + + +#ifdef __cplusplus +} +#endif + + +#endif /* _TEXTSTYLE_VERSION_H */ diff --git a/code/application/source/sf_app/tools/blue/include/textstyle/woe32dll.h b/code/application/source/sf_app/tools/blue/include/textstyle/woe32dll.h new file mode 100644 index 000000000..195f897a1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/textstyle/woe32dll.h @@ -0,0 +1,30 @@ +/* Support for variables in shared libraries on Windows platforms. + Copyright (C) 2009, 2019 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published + by the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with this program. If not, see . */ + +/* Written by Bruno Haible , 2009. */ + +#ifndef _TEXTSTYLE_WOE32DLL_H +#define _TEXTSTYLE_WOE32DLL_H + +#ifdef IN_LIBTEXTSTYLE +/* All code is collected in a single library, */ +# define LIBTEXTSTYLE_DLL_VARIABLE +#else +/* References from outside of libtextstyle. */ +# define LIBTEXTSTYLE_DLL_VARIABLE +#endif + +#endif /* _TEXTSTYLE_WOE32DLL_H */ diff --git a/code/application/source/sf_app/tools/blue/include/unctrl.h b/code/application/source/sf_app/tools/blue/include/unctrl.h new file mode 100644 index 000000000..0dd230884 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/include/unctrl.h @@ -0,0 +1,68 @@ +/**************************************************************************** + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2001,2009 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * + * copy of this software and associated documentation files (the * + * "Software"), to deal in the Software without restriction, including * + * without limitation the rights to use, copy, modify, merge, publish, * + * distribute, distribute with modifications, sublicense, and/or sell * + * copies of the Software, and to permit persons to whom the Software is * + * furnished to do so, subject to the following conditions: * + * * + * The above copyright notice and this permission notice shall be included * + * in all copies or substantial portions of the Software. * + * * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * + * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * + * * + * Except as contained in this notice, the name(s) of the above copyright * + * holders shall not be used in advertising or otherwise to promote the * + * sale, use or other dealings in this Software without prior written * + * authorization. * + ****************************************************************************/ + +/**************************************************************************** + * Author: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + ****************************************************************************/ + +/* + * unctrl.h + * + * Display a printable version of a control character. + * Control characters are displayed in caret notation (^x), DELETE is displayed + * as ^?. Printable characters are displayed as is. + */ + +/* $Id: unctrl.h.in,v 1.12 2020/02/02 23:34:34 tom Exp $ */ + +#ifndef NCURSES_UNCTRL_H_incl +#define NCURSES_UNCTRL_H_incl 1 + +#undef NCURSES_VERSION +#define NCURSES_VERSION "6.3" + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +#undef unctrl +NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype); + +#if 1 +NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(unctrl) (SCREEN*, chtype); +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* NCURSES_UNCTRL_H_incl */ diff --git a/code/application/source/sf_app/tools/blue/lib/cmake/DBus1/DBus1Config.cmake b/code/application/source/sf_app/tools/blue/lib/cmake/DBus1/DBus1Config.cmake new file mode 100644 index 000000000..0f0218500 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/cmake/DBus1/DBus1Config.cmake @@ -0,0 +1,80 @@ +# - Config file for the DBus1 package +# It defines the following variables +# DBus1_FOUND - Flag for indicating that DBus1 package has been found +# DBus1_DEFINITIONS - compile definitions for DBus1 [1] +# DBus1_INCLUDE_DIRS - include directories for DBus1 [1] +# DBus1_LIBRARIES - cmake targets to link against + +# [1] This variable is not required if DBus1_LIBRARIES is added +# to a target with target_link_libraries + +get_filename_component(DBus1_PKGCONFIG_DIR "${CMAKE_CURRENT_LIST_DIR}/../../pkgconfig" ABSOLUTE) +get_filename_component(DBus1_NEARBY_ARCH_INCLUDE_DIR "${CMAKE_CURRENT_LIST_DIR}/../../dbus-1.0/include" ABSOLUTE) +find_package(PkgConfig) +if(DEFINED ENV{PKG_CONFIG_DIR}) + set(_dbus_pkgconfig_dir "$ENV{PKG_CONFIG_DIR}") +endif() +if(DEFINED ENV{PKG_CONFIG_PATH}) + set(_dbus_pkgconfig_path "$ENV{PKG_CONFIG_PATH}") +endif() +if(DEFINED ENV{PKG_CONFIG_LIBDIR}) + set(_dbus_pkgconfig_libdir "$ENV{PKG_CONFIG_LIBDIR}") +endif() +set(ENV{PKG_CONFIG_DIR}) +set(ENV{PKG_CONFIG_PATH} ${DBus1_PKGCONFIG_DIR}) +set(ENV{PKG_CONFIG_LIBDIR} ${DBus1_PKGCONFIG_DIR}) +# for debugging +#set(ENV{PKG_CONFIG_DEBUG_SPEW} 1) +pkg_check_modules(PC_DBUS1 QUIET dbus-1) +if(DEFINED _dbus_pkgconfig_dir) + set(ENV{PKG_CONFIG_DIR} "${_dbus_pkgconfig_dir}") +else() + unset(ENV{PKG_CONFIG_DIR}) +endif() +if(DEFINED _dbus_pkgconfig_path) + set(ENV{PKG_CONFIG_PATH} "${_dbus_pkgconfig_path}") +else() + unset(ENV{PKG_CONFIG_PATH}) +endif() +if(DEFINED _dbus_pkgconfig_libdir) + set(ENV{PKG_CONFIG_LIBDIR} "${_dbus_pkgconfig_libdir}") +else() + unset(ENV{PKG_CONFIG_LIBDIR}) +endif() +unset(_dbus_pkgconfig_dir) +unset(_dbus_pkgconfig_path) +unset(_dbus_pkgconfig_libdir) +set(DBus1_DEFINITIONS ${PC_DBUS1_CFLAGS_OTHER}) + +# find the real stuff and use pkgconfig variables as hints +# because cmake provides more search options +find_path(DBus1_INCLUDE_DIR dbus/dbus.h + HINTS ${PC_DBUS1_INCLUDEDIR} ${PC_DBUS1_INCLUDE_DIRS} + PATH_SUFFIXES dbus-1.0) +find_path(DBus1_ARCH_INCLUDE_DIR dbus/dbus-arch-deps.h + PATHS ${DBus1_NEARBY_ARCH_INCLUDE_DIR} + NO_DEFAULT_PATH) +find_path(DBus1_ARCH_INCLUDE_DIR dbus/dbus-arch-deps.h + HINTS ${PC_DBUS1_INCLUDE_DIRS} + PATH_SUFFIXES dbus-1.0) +find_library(DBus1_LIBRARY NAMES ${PC_DBUS1_LIBRARIES} + HINTS ${PC_DBUS1_LIBDIR} ${PC_DBUS1_LIBRARY_DIRS}) + +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set DBus1_FOUND to TRUE +# if all listed variables are TRUE +find_package_handle_standard_args(DBus1 DEFAULT_MSG + DBus1_LIBRARY DBus1_INCLUDE_DIR DBus1_ARCH_INCLUDE_DIR) + +# make the mentioned variables only visible in cmake gui with "advanced" enabled +mark_as_advanced(DBus1_INCLUDE_DIR DBus1_LIBRARY) + +set(DBus1_LIBRARIES dbus-1) +set(DBus1_INCLUDE_DIRS "${DBus1_INCLUDE_DIR}" "${DBus1_ARCH_INCLUDE_DIR}") + +# setup imported target +add_library(dbus-1 SHARED IMPORTED) +set_property(TARGET dbus-1 APPEND PROPERTY IMPORTED_LOCATION ${DBus1_LIBRARY}) +set_property(TARGET dbus-1 APPEND PROPERTY IMPORTED_IMPLIB ${DBus1_LIBRARY}) +set_property(TARGET dbus-1 APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${DBus1_INCLUDE_DIRS}) +set_property(TARGET dbus-1 APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS ${DBus1_DEFINITIONS}) diff --git a/code/application/source/sf_app/tools/blue/lib/cmake/DBus1/DBus1ConfigVersion.cmake b/code/application/source/sf_app/tools/blue/lib/cmake/DBus1/DBus1ConfigVersion.cmake new file mode 100644 index 000000000..acb0867c6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/cmake/DBus1/DBus1ConfigVersion.cmake @@ -0,0 +1,11 @@ +set(PACKAGE_VERSION 1.15.6) + +# Check whether the requested PACKAGE_FIND_VERSION is compatible +if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif() diff --git a/code/application/source/sf_app/tools/blue/lib/cmake/expat-2.5.0/expat-config-version.cmake b/code/application/source/sf_app/tools/blue/lib/cmake/expat-2.5.0/expat-config-version.cmake new file mode 100644 index 000000000..23754ec46 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/cmake/expat-2.5.0/expat-config-version.cmake @@ -0,0 +1,70 @@ +# This is a basic version file for the Config-mode of find_package(). +# It is used by write_basic_package_version_file() as input file for configure_file() +# to create a version-file which can be installed along a config.cmake file. +# +# The created file sets PACKAGE_VERSION_EXACT if the current version string and +# the requested version string are exactly the same and it sets +# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version, +# but only if the requested major version is the same as the current one. +# The variable CVF_VERSION must be set before calling configure_file(). + + +set(PACKAGE_VERSION "2.5.0") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + + if("2.5.0" MATCHES "^([0-9]+)\\.") + set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}") + if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0) + string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}") + endif() + else() + set(CVF_VERSION_MAJOR "2.5.0") + endif() + + if(PACKAGE_FIND_VERSION_RANGE) + # both endpoints of the range must have the expected major version + math (EXPR CVF_VERSION_MAJOR_NEXT "${CVF_VERSION_MAJOR} + 1") + if (NOT PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR + OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX_MAJOR STREQUAL CVF_VERSION_MAJOR) + OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX VERSION_LESS_EQUAL CVF_VERSION_MAJOR_NEXT))) + set(PACKAGE_VERSION_COMPATIBLE FALSE) + elseif(PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR + AND ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS_EQUAL PACKAGE_FIND_VERSION_MAX) + OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MAX))) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + else() + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() + endif() +endif() + + +# if the installed project requested no architecture check, don't perform the check +if("FALSE") + return() +endif() + +# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "4" STREQUAL "") + return() +endif() + +# check that the installed version has the same 32/64bit-ness as the one which is currently searching: +if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "4") + math(EXPR installedBits "4 * 8") + set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") + set(PACKAGE_VERSION_UNSUITABLE TRUE) +endif() diff --git a/code/application/source/sf_app/tools/blue/lib/cmake/expat-2.5.0/expat-config.cmake b/code/application/source/sf_app/tools/blue/lib/cmake/expat-2.5.0/expat-config.cmake new file mode 100644 index 000000000..36a013198 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/cmake/expat-2.5.0/expat-config.cmake @@ -0,0 +1,99 @@ +# __ __ _ +# ___\ \/ /_ __ __ _| |_ +# / _ \\ /| '_ \ / _` | __| +# | __// \| |_) | (_| | |_ +# \___/_/\_\ .__/ \__,_|\__| +# |_| XML parser +# +# Copyright (c) 2019 Expat development team +# Licensed under the MIT license: +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to permit +# persons to whom the Software is furnished to do so, subject to the +# following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +# NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +# USE OR OTHER DEALINGS IN THE SOFTWARE. +# +if(NOT _expat_config_included) + # Protect against multiple inclusion + set(_expat_config_included TRUE) + + +include("${CMAKE_CURRENT_LIST_DIR}/expat.cmake") + + +####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() ####### +####### Any changes to this file will be overwritten by the next CMake run #### +####### The input file was expat-config.cmake.in ######## + +get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE) + +macro(set_and_check _var _file) + set(${_var} "${_file}") + if(NOT EXISTS "${_file}") + message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") + endif() +endmacro() + +macro(check_required_components _NAME) + foreach(comp ${${_NAME}_FIND_COMPONENTS}) + if(NOT ${_NAME}_${comp}_FOUND) + if(${_NAME}_FIND_REQUIRED_${comp}) + set(${_NAME}_FOUND FALSE) + endif() + endif() + endforeach() +endmacro() + +#################################################################################### + +# +# Supported components +# +macro(expat_register_component _NAME _AVAILABE) + set(expat_${_NAME}_FOUND ${_AVAILABE}) +endmacro() + +expat_register_component(attr_info OFF) +expat_register_component(dtd ON) +expat_register_component(large_size OFF) +expat_register_component(min_size OFF) +expat_register_component(ns ON) + +if(1024) + expat_register_component(context_bytes ON) +else() + expat_register_component(context_bytes OFF) +endif() + +if("char" STREQUAL "char") + expat_register_component(char ON) + expat_register_component(ushort OFF) + expat_register_component(wchar_t OFF) +elseif("char" STREQUAL "ushort") + expat_register_component(char OFF) + expat_register_component(ushort ON) + expat_register_component(wchar_t OFF) +elseif("char" STREQUAL "wchar_t") + expat_register_component(char OFF) + expat_register_component(ushort OFF) + expat_register_component(wchar_t ON) +endif() + +check_required_components(expat) + + +endif(NOT _expat_config_included) diff --git a/code/application/source/sf_app/tools/blue/lib/cmake/expat-2.5.0/expat-noconfig.cmake b/code/application/source/sf_app/tools/blue/lib/cmake/expat-2.5.0/expat-noconfig.cmake new file mode 100644 index 000000000..9ddda39bb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/cmake/expat-2.5.0/expat-noconfig.cmake @@ -0,0 +1,19 @@ +#---------------------------------------------------------------- +# Generated CMake target import file for configuration "NoConfig". +#---------------------------------------------------------------- + +# Commands may need to know the format version. +set(CMAKE_IMPORT_FILE_VERSION 1) + +# Import target "expat::expat" for configuration "NoConfig" +set_property(TARGET expat::expat APPEND PROPERTY IMPORTED_CONFIGURATIONS NOCONFIG) +set_target_properties(expat::expat PROPERTIES + IMPORTED_LOCATION_NOCONFIG "${_IMPORT_PREFIX}/lib/libexpat.so.1.8.10" + IMPORTED_SONAME_NOCONFIG "libexpat.so.1" + ) + +list(APPEND _cmake_import_check_targets expat::expat ) +list(APPEND _cmake_import_check_files_for_expat::expat "${_IMPORT_PREFIX}/lib/libexpat.so.1.8.10" ) + +# Commands beyond this point should not need to know the version. +set(CMAKE_IMPORT_FILE_VERSION) diff --git a/code/application/source/sf_app/tools/blue/lib/cmake/expat-2.5.0/expat.cmake b/code/application/source/sf_app/tools/blue/lib/cmake/expat-2.5.0/expat.cmake new file mode 100644 index 000000000..5eb47b980 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/cmake/expat-2.5.0/expat.cmake @@ -0,0 +1,107 @@ +# Generated by CMake + +if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8) + message(FATAL_ERROR "CMake >= 2.8.0 required") +endif() +if(CMAKE_VERSION VERSION_LESS "2.8.3") + message(FATAL_ERROR "CMake >= 2.8.3 required") +endif() +cmake_policy(PUSH) +cmake_policy(VERSION 2.8.3...3.22) +#---------------------------------------------------------------- +# Generated CMake target import file. +#---------------------------------------------------------------- + +# Commands may need to know the format version. +set(CMAKE_IMPORT_FILE_VERSION 1) + +# Protect against multiple inclusion, which would fail when already imported targets are added once more. +set(_cmake_targets_defined "") +set(_cmake_targets_not_defined "") +set(_cmake_expected_targets "") +foreach(_cmake_expected_target IN ITEMS expat::expat) + list(APPEND _cmake_expected_targets "${_cmake_expected_target}") + if(TARGET "${_cmake_expected_target}") + list(APPEND _cmake_targets_defined "${_cmake_expected_target}") + else() + list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}") + endif() +endforeach() +unset(_cmake_expected_target) +if(_cmake_targets_defined STREQUAL _cmake_expected_targets) + unset(_cmake_targets_defined) + unset(_cmake_targets_not_defined) + unset(_cmake_expected_targets) + unset(CMAKE_IMPORT_FILE_VERSION) + cmake_policy(POP) + return() +endif() +if(NOT _cmake_targets_defined STREQUAL "") + string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}") + string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}") + message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n") +endif() +unset(_cmake_targets_defined) +unset(_cmake_targets_not_defined) +unset(_cmake_expected_targets) + + +# Compute the installation prefix relative to this file. +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +if(_IMPORT_PREFIX STREQUAL "/") + set(_IMPORT_PREFIX "") +endif() + +# Create imported target expat::expat +add_library(expat::expat SHARED IMPORTED) + +set_target_properties(expat::expat PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include" + INTERFACE_LINK_LIBRARIES "m" +) + +if(CMAKE_VERSION VERSION_LESS 2.8.12) + message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.") +endif() + +# Load information for each installed configuration. +file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/expat-*.cmake") +foreach(_cmake_config_file IN LISTS _cmake_config_files) + include("${_cmake_config_file}") +endforeach() +unset(_cmake_config_file) +unset(_cmake_config_files) + +# Cleanup temporary variables. +set(_IMPORT_PREFIX) + +# Loop over all imported files and verify that they actually exist +foreach(_cmake_target IN LISTS _cmake_import_check_targets) + foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}") + if(NOT EXISTS "${_cmake_file}") + message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file + \"${_cmake_file}\" +but this file does not exist. Possible reasons include: +* The file was deleted, renamed, or moved to another location. +* An install or uninstall procedure did not complete successfully. +* The installation package was faulty and contained + \"${CMAKE_CURRENT_LIST_FILE}\" +but not all the files it references. +") + endif() + endforeach() + unset(_cmake_file) + unset("_cmake_import_check_files_for_${_cmake_target}") +endforeach() +unset(_cmake_target) +unset(_cmake_import_check_targets) + +# This file does not depend on other imported targets which have +# been exported from the same project but in a separate export set. + +# Commands beyond this point should not need to know the version. +set(CMAKE_IMPORT_FILE_VERSION) +cmake_policy(POP) diff --git a/code/application/source/sf_app/tools/blue/lib/dbus-1.0/include/dbus/dbus-arch-deps.h b/code/application/source/sf_app/tools/blue/lib/dbus-1.0/include/dbus/dbus-arch-deps.h new file mode 100644 index 000000000..d6cb8268a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/dbus-1.0/include/dbus/dbus-arch-deps.h @@ -0,0 +1,65 @@ +/* -*- mode: C; c-file-style: "gnu" -*- */ +/* dbus-arch-deps.h Header with architecture/compiler specific information, installed to libdir + * + * Copyright (C) 2003 Red Hat, Inc. + * SPDX-License-Identifier: AFL-2.0 OR GPL-2.0-or-later + * + * Licensed under the Academic Free License version 2.0 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + */ +#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION) +#error "Only can be included directly, this file may disappear or change contents." +#endif + +#ifndef DBUS_ARCH_DEPS_H +#define DBUS_ARCH_DEPS_H + +#include + +DBUS_BEGIN_DECLS + +/* D-Bus no longer supports platforms with no 64-bit integer type. */ +#define DBUS_HAVE_INT64 1 +_DBUS_GNUC_EXTENSION typedef long long dbus_int64_t; +_DBUS_GNUC_EXTENSION typedef unsigned long long dbus_uint64_t; +#define DBUS_INT64_MODIFIER "ll" + +#define DBUS_INT64_CONSTANT(val) (_DBUS_GNUC_EXTENSION (val##LL)) +#define DBUS_UINT64_CONSTANT(val) (_DBUS_GNUC_EXTENSION (val##ULL)) + +typedef int dbus_int32_t; +typedef unsigned int dbus_uint32_t; + +typedef short dbus_int16_t; +typedef unsigned short dbus_uint16_t; + +#define DBUS_SIZEOF_VOID_P 4 + +/* This is not really arch-dependent, but it's not worth + * creating an additional generated header just for this + */ +#define DBUS_MAJOR_VERSION 1 +#define DBUS_MINOR_VERSION 15 +#define DBUS_MICRO_VERSION 6 + +#define DBUS_VERSION_STRING "1.15.6" + +#define DBUS_VERSION ((1 << 16) | (15 << 8) | (6)) + +DBUS_END_DECLS + +#endif /* DBUS_ARCH_DEPS_H */ diff --git a/code/application/source/sf_app/tools/blue/lib/gettext/cldr-plurals b/code/application/source/sf_app/tools/blue/lib/gettext/cldr-plurals new file mode 100755 index 000000000..789e56caf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/gettext/cldr-plurals differ diff --git a/code/application/source/sf_app/tools/blue/lib/gettext/hostname b/code/application/source/sf_app/tools/blue/lib/gettext/hostname new file mode 100755 index 000000000..3fd26758f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/gettext/hostname differ diff --git a/code/application/source/sf_app/tools/blue/lib/gettext/project-id b/code/application/source/sf_app/tools/blue/lib/gettext/project-id new file mode 100755 index 000000000..e20bf11c4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/gettext/project-id @@ -0,0 +1,86 @@ +#!/bin/sh +# Prints a package's identification PACKAGE VERSION or PACKAGE. +# +# Copyright (C) 2001-2003, 2005, 2014 Free Software Foundation, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +want_version="$1" + +# NLS nuisances: Letter ranges are different in the Estonian locale. +LC_ALL=C + +while true; do + if test -f configure; then + package=`(grep '^PACKAGE_NAME=' configure; grep '^ *PACKAGE=' configure) | grep -v '=[ ]*$' | sed -e '1q' | sed -e 's/^[^=]*=//' | sed -e "s/^'//" -e "s/'$//"` + case "$package" in + *[\"\$\`\{\}]*) + # Some packages (gcal) retrieve the package name dynamically. + package= + ;; + esac + if test -n "$package"; then + is_gnu=`LC_ALL=C grep "GNU $package" * 2>/dev/null | grep -v '^libtool:'` + if test -n "$is_gnu"; then + package="GNU $package" + fi + if test -n "$want_version"; then + version=`(grep '^PACKAGE_VERSION=' configure; grep '^ *VERSION=' configure) | grep -v '=[ ]*$' | sed -e '1q' | sed -e 's/^[^=]*=//' | sed -e "s/^'//" -e "s/'$//"` + case "$version" in + *[\"\$\`\{\}]*) + # Some packages (gcal, gcc, clisp) retrieve the version dynamically. + version= + ;; + esac + if test -n "$version"; then + echo "$package $version" + else + echo "$package" + fi + else + echo "$package" + fi + exit 0 + fi + fi + dir=`basename "\`pwd\`"` + case "$dir" in + i18n) + # This directory name, used in GNU make, is not the top level directory. + ;; + *[A-Za-z]*[0-9]*) + package=`echo "$dir" | sed -e 's/^\([^0-9]*\)[0-9].*$/\1/' -e 's/[-_]$//'` + if test -n "$want_version"; then + version=`echo "$dir" | sed -e 's/^[^0-9]*\([0-9].*\)$/\1/'` + echo "$package $version" + else + echo "$package" + fi + exit 0 + ;; + esac + # Go to parent directory + last=`/bin/pwd` + cd .. + curr=`/bin/pwd` + if test "$last" = "$curr"; then + # Oops, didn't find the package name. + if test -n "$want_version"; then + echo "PACKAGE VERSION" + else + echo "PACKAGE" + fi + exit 0 + fi +done diff --git a/code/application/source/sf_app/tools/blue/lib/gettext/urlget b/code/application/source/sf_app/tools/blue/lib/gettext/urlget new file mode 100755 index 000000000..ed3d236b0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/gettext/urlget differ diff --git a/code/application/source/sf_app/tools/blue/lib/gettext/user-email b/code/application/source/sf_app/tools/blue/lib/gettext/user-email new file mode 100755 index 000000000..5164c668f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/gettext/user-email @@ -0,0 +1,435 @@ +#!/bin/sh +# Prints the user's email address, with confirmation from the user. +# +# Copyright (C) 2001-2003, 2005, 2013 Free Software Foundation, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Prerequisites for using ${exec_prefix}/lib and ${datarootdir}/locale. +prefix="/home/payton/blue" +exec_prefix="${prefix}" +datarootdir="${prefix}/share" +datadir="${datarootdir}" +# Set variables libdir, localedir. +libdir="${exec_prefix}/lib" +localedir="${datarootdir}/locale" + +# Support for relocatability. +if test "no" = yes; then + orig_installdir="$libdir"/gettext # see Makefile.am's install rule + # Determine curr_installdir without caring for symlinked callers. + curr_installdir=`echo "$0" | sed -e 's,/[^/]*$,,'` + curr_installdir=`cd "$curr_installdir" && pwd` + # Compute the original/current installation prefixes by stripping the + # trailing directories off the original/current installation directories. + while true; do + orig_last=`echo "$orig_installdir" | sed -n -e 's,^.*/\([^/]*\)$,\1,p'` + curr_last=`echo "$curr_installdir" | sed -n -e 's,^.*/\([^/]*\)$,\1,p'` + if test -z "$orig_last" || test -z "$curr_last"; then + break + fi + if test "$orig_last" != "$curr_last"; then + break + fi + orig_installdir=`echo "$orig_installdir" | sed -e 's,/[^/]*$,,'` + curr_installdir=`echo "$curr_installdir" | sed -e 's,/[^/]*$,,'` + done + # Now relocate the directory variables that we use. + libdir=`echo "$libdir/" | sed -e "s%^${orig_installdir}/%${curr_installdir}/%" | sed -e 's,/$,,'` + localedir=`echo "$localedir/" | sed -e "s%^${orig_installdir}/%${curr_installdir}/%" | sed -e 's,/$,,'` +fi + +# Internationalization. +. gettext.sh +TEXTDOMAIN=gettext-tools +export TEXTDOMAIN +TEXTDOMAINDIR="$localedir" +export TEXTDOMAINDIR + +# Redirect fileno 3 to interactive I/O. +exec 3>/dev/tty + +# Output a prompt. +if test $# != 0; then + echo "$1" 1>&3 +fi + +# Find the user name on the local machine. +user=`id -u -n 2>/dev/null` +if test -z "$user"; then + user="$USER" + if test -z "$user"; then + user="$LOGNAME" + if test -z "$user"; then + user=unknown + fi + fi +fi + +# Find the hostname. +# hostname on some systems (SVR3.2, old Linux) returns a bogus exit status, +# so uname gets run too, so we keep only the first line of output. +#host=`(hostname || uname -n) 2>/dev/null | sed 1q` +host=`"$libdir"/gettext/hostname --short 2>/dev/null | sed 1q` + +# Find the hostname. +hostfqdn=`"$libdir"/gettext/hostname --fqdn 2>/dev/null | sed 1q` + +# Find a list of email addresses from various mailer configuration files. +# All mailers use configuration files under $HOME. We handle them in a +# last-modified - first-priority order. +cd $HOME +files="" + +# ----------------------- BEGIN MAILER SPECIFIC CODE ----------------------- + +# Mozilla Thunderbird addresses +files="$files .thunderbird/*/prefs.js" + +# Mozilla addresses +files="$files .mozilla/*/prefs.js" + +# Netscape 4 addresses +files="$files .netscape/liprefs.js .netscape/preferences.js" + +# Netscape 3 addresses +files="$files .netscape/preferences" + +# Emacs/XEmacs rmail, Emacs/XEmacs gnus, XEmacs vm addresses +# XEmacs mew addresses +files="$files .emacs .emacs.el" + +# KDE2 addresses +files="$files .kde2/share/config/emaildefaults" + +# KDE kmail addresses +files="$files .kde2/share/config/kmailrc" + +# GNOME evolution 2 addresses +files="$files .gconf/apps/evolution/mail/%gconf.xml" + +# GNOME evolution 1 addresses +files="$files evolution/config.xmldb" + +# GNOME balsa addresses +files="$files .gnome/balsa" + +# StarOffice and OpenOffice addresses +sed_dos2unix='s/\r$//' +sed_soffice51='s,StarOffice 5\.1=\(.*\)$,\1/sofficerc,p' +sed_soffice52='s,StarOffice 5\.2=\(.*\)$,\1/user/sofficerc,p' +sed_ooffice='s,^OpenOffice[^=]*=\(.*\)$,\1/user/config/registry/instance/org/openoffice/UserProfile.xml,p' +files="$files Office51/sofficerc Office52/user/sofficerc "`sed -n -e "$sed_dos2unix" -e "$sed_soffice51" -e "$sed_soffice52" -e "$sed_ooffice" .sversionrc 2>/dev/null | sed -e 's,^file://*,/,'` + +# mutt addresses +files="$files .muttrc" + +# pine addresses +files="$files .pinerc" + +# xfmail addresses +files="$files .xfmail/.xfmailrc" + +# tkrat addresses +files="$files .ratatosk/ratatoskrc" + +# ----------------------- END MAILER SPECIFIC CODE ----------------------- + +# Expand wildcards and remove nonexistent files from the list. +nfiles="" +for file in $files; do + if test -r "$file" && test ! -d "$file"; then + nfiles="$nfiles $file" + fi +done +files="$nfiles" + +addresses="" + +if test -n "$files"; then + + for file in `ls -t $files`; do + + case "$file" in + +# ----------------------- BEGIN MAILER SPECIFIC CODE ----------------------- + + # Mozilla and Mozilla Thunderbird addresses + .mozilla/*/prefs.js | .thunderbird/*/prefs.js) + addresses="$addresses "`grep -h '^user_pref("mail\.identity\..*\.useremail", ".*");$' $file 2>/dev/null | sed -e 's/^user_pref("mail\.identity\..*\.useremail", "\(.*\)");$/\1/'` + ;; + + # Netscape 4 addresses + .netscape/liprefs.js | .netscape/preferences.js) + addresses="$addresses "`grep -h '^user_pref("mail\.identity\.useremail", ".*");$' $file 2>/dev/null | sed -e 's/^user_pref("mail\.identity\.useremail", "\(.*\)");$/\1/'` + ;; + + # Netscape 3 addresses + .netscape/preferences) + addresses="$addresses "`grep -h '^EMAIL_ADDRESS:' $file 2>/dev/null | sed -e 's/^EMAIL_ADDRESS:[ ]*//'` + ;; + + .emacs | .emacs.el) + # Emacs/XEmacs rmail, Emacs/XEmacs gnus, XEmacs vm addresses + addresses="$addresses "`grep -h '[ (]user-mail-address "[^"]*"' $file 2>/dev/null | sed -e 's/^.*[ (]user-mail-address "\([^"]*\)".*$/\1/'` + # XEmacs mew addresses + domains=`grep -h '[ (]mew-mail-domain "[^"]*"' $file 2>/dev/null | sed -e 's/^.*[ (]mew-mail-domain "\([^"]*\)".*$/\1/'` + if test -n "$domains"; then + for domain in $domains; do + addresses="$addresses ${user}@$domain" + done + fi + ;; + + # KDE2 addresses + .kde2/share/config/emaildefaults) + addresses="$addresses "`grep -h '^EmailAddress=' $file 2>/dev/null | sed -e 's/^EmailAddress=//'` + ;; + + # KDE kmail addresses + .kde2/share/config/kmailrc) + addresses="$addresses "`grep -h '^Email Address=' $file 2>/dev/null | sed -e 's/^Email Address=//'` + ;; + + # GNOME evolution 2 addresses + .gconf/apps/evolution/mail/%gconf.xml) + sedexpr0='s,^.*<addr-spec>\(.*\)</addr-spec>.*$,\1,p' + addresses="$addresses "`sed -n -e "$sedexpr0" < $file` + ;; + + # GNOME evolution 1 addresses + evolution/config.xmldb) + sedexpr0='s/^.*\(.*\).*$,\1,p' $file 2>/dev/null` + ;; + + # StarOffice addresses + # Not a typo. They really write "Adress" with a single d. + # German orthography... + */sofficerc) + addresses="$addresses "`grep -h '^User-Adress=' $file 2>/dev/null | sed -e 's/#[^#]*$//' -e 's/^.*#//'` + ;; + + # mutt addresses + .muttrc) + mutt_addresses=`grep -h '^set from="[^"]*"[ ]*$' $file 2>/dev/null | sed -e 's/^set from="\([^"]*\)"[ ]*$/\1/'` + if test -n "$mutt_addresses"; then + addresses="$addresses $mutt_addresses" + else + # mutt uses $EMAIL as fallback. + if test -n "$EMAIL"; then + addresses="$addresses $EMAIL" + fi + fi + ;; + + # pine addresses + .pinerc) + domains=`grep -h '^user-domain=' $file 2>/dev/null | sed -e 's/^user-domain=//'` + if test -n "$domains"; then + for domain in $domains; do + addresses="$addresses ${user}@$domain" + done + else + # The use-only-domain-name option is only used if the user-domain option is not present. + domains=`grep -h '^use-only-domain-name=' $file 2>/dev/null | sed -e 's/^use-only-domain-name=//'` + if test "Yes" = "$domains"; then + addresses="$addresses ${user}@"`echo "$hostfqdn" | sed -e 's/^[^.]*\.//'` + fi + fi + ;; + + # xfmail addresses + .xfmail/.xfmailrc) + addresses="$addresses "`grep -h '^from=.*<.*>' $file 2>/dev/null | sed -e 's/^.*<\([^<>]*\)>.*$/\1/'` + ;; + + # tkrat addresses + .ratatosk/ratatoskrc) + domains=`grep -h '^set option(masquerade_as) ' $file 2>/dev/null | sed -e 's/^set option(masquerade_as) //'` + if test -n "$domains"; then + for domain in $domains; do + addresses="$addresses ${user}@$domain" + done + else + # The domain option is used only if the masquerade_as option is not present. + domains=`grep -h '^set option(domain) ' $file 2>/dev/null | sed -e 's/^set option(domain) //'` + if test -n "$domains"; then + for domain in $domains; do + addresses="$addresses ${user}@${host}.$domain" + done + fi + fi + ;; + +# ----------------------- END MAILER SPECIFIC CODE ----------------------- + + esac + + done + +fi + +# Some Debian systems have a file /etc/mailname. +if test -r /etc/mailname; then + hostmailname=`cat /etc/mailname` + if test -n "$hostmailname"; then + addresses="$addresses ${user}@$hostmailname" + fi +fi + +# SuSE Linux >= 8.0 systems have a file /etc/sysconfig/mail. +if test -r /etc/sysconfig/mail; then + hostmailname=`. /etc/sysconfig/mail && echo "$FROM_HEADER"` + if test -n "$hostmailname"; then + addresses="$addresses ${user}@$hostmailname" + fi +fi + +# elm has no user-defined addresses. +# mailx has no user-defined addresses. +# mh has no user-defined addresses. +# They use the system default. +addresses="$addresses ${user}@$hostfqdn" + +# Normalize addresses: remove addresses without @, lowercase the part after @, +# and remove duplicates. +lowercase_sed='{ +h +s/^[^@]*@\(.*\)$/\1/ +y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ +x +s/^\([^@]*\)@.*/\1@/ +G +s/\n// +p +}' +naddresses="" +for addr in $addresses; do + case "$addr" in + "<"*">") addr=`echo "$addr" | sed -e 's/^$//'` ;; + esac + case "$addr" in + *@*) + addr=`echo "$addr" | sed -n -e "$lowercase_sed"` + case " $naddresses " in + *" $addr "*) ;; + *) naddresses="$naddresses $addr" ;; + esac + ;; + esac +done +addresses="$naddresses" + +# Now it's time to ask the user. +case "$addresses" in + " "*" "*) + # At least two addresses. + lines="" + i=0 + for addr in $addresses; do + i=`expr $i + 1` + lines="${lines}${i} ${addr} +" + done + while true; do + { gettext "Which is your email address?"; echo; } 1>&3 + echo "$lines" 1>&3 + { gettext "Please choose the number, or enter your email address."; echo; } 1>&3 + read answer < /dev/tty + case "$answer" in + *@*) ;; + [0-9]*) + i=0 + for addr in $addresses; do + i=`expr $i + 1` + if test "$i" = "$answer"; then + break 2 + fi + done + ;; + esac + case "$answer" in + "<"*">") answer=`echo "$answer" | sed -e 's/^$//'` ;; + esac + case "$answer" in + *" "*) { gettext "Invalid email address: invalid character."; echo; echo; } 1>&3 ; continue ;; + *@*.*) ;; + *@*) { gettext "Invalid email address: need a fully qualified host name or domain name."; echo; echo; } 1>&3 ; continue ;; + *) { gettext "Invalid email address: missing @"; echo; echo; } 1>&3 ; continue ;; + esac + addr=`echo "$answer" | sed -n -e "$lowercase_sed"` + break + done + ;; + " "*) + # One address. + while true; do + { gettext "Is the following your email address?"; echo; } 1>&3 + echo " $addresses" 1>&3 + { gettext "Please confirm by pressing Return, or enter your email address."; echo; } 1>&3 + read answer < /dev/tty + if test -z "$answer"; then + addr=`echo "$addresses" | sed -e 's/^ //'` + break + fi + case "$answer" in + "<"*">") answer=`echo "$answer" | sed -e 's/^$//'` ;; + esac + case "$answer" in + *" "*) { gettext "Invalid email address: invalid character."; echo; echo; } 1>&3 ; continue ;; + *@*.*) ;; + *@*) { gettext "Invalid email address: need a fully qualified host name or domain name."; echo; echo; } 1>&3 ; continue ;; + *) { gettext "Invalid email address: missing @"; echo; echo; } 1>&3 ; continue ;; + esac + addr=`echo "$answer" | sed -n -e "$lowercase_sed"` + break + done + ;; + "") + # No address. + { gettext "Couldn't find out about your email address."; echo; } 1>&3 + while true; do + { gettext "Please enter your email address."; echo; } 1>&3 + read answer < /dev/tty + case "$answer" in + "<"*">") answer=`echo "$answer" | sed -e 's/^$//'` ;; + esac + case "$answer" in + *" "*) { gettext "Invalid email address: invalid character."; echo; echo; } 1>&3 ; continue ;; + *@*.*) ;; + *@*) { gettext "Invalid email address: need a fully qualified host name or domain name."; echo; echo; } 1>&3 ; continue ;; + *) { gettext "Invalid email address: missing @"; echo; echo; } 1>&3 ; continue ;; + esac + addr=`echo "$answer" | sed -n -e "$lowercase_sed"` + break + done + ;; + *) echo "internal error" 1>&3 ; exit 1 ;; +esac + +# Print to standard output. +echo "$addr" diff --git a/code/application/source/sf_app/tools/blue/lib/glib-2.0/include/glibconfig.h b/code/application/source/sf_app/tools/blue/lib/glib-2.0/include/glibconfig.h new file mode 100644 index 000000000..9a97804e4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/glib-2.0/include/glibconfig.h @@ -0,0 +1,219 @@ +/* glibconfig.h + * + * This is a generated file. Please modify 'glibconfig.h.in' + */ + +#ifndef __GLIBCONFIG_H__ +#define __GLIBCONFIG_H__ + +#include + +#include +#include +#define GLIB_HAVE_ALLOCA_H + +/* #undef GLIB_STATIC_COMPILATION */ +/* #undef GOBJECT_STATIC_COMPILATION */ +/* #undef GIO_STATIC_COMPILATION */ +/* #undef GMODULE_STATIC_COMPILATION */ +/* #undef G_INTL_STATIC_COMPILATION */ +/* #undef FFI_STATIC_BUILD */ + +/* Specifies that GLib's g_print*() functions wrap the + * system printf functions. This is useful to know, for example, + * when using glibc's register_printf_function(). + */ +#undef GLIB_USING_SYSTEM_PRINTF + +G_BEGIN_DECLS + +#define G_MINFLOAT FLT_MIN +#define G_MAXFLOAT FLT_MAX +#define G_MINDOUBLE DBL_MIN +#define G_MAXDOUBLE DBL_MAX +#define G_MINSHORT SHRT_MIN +#define G_MAXSHORT SHRT_MAX +#define G_MAXUSHORT USHRT_MAX +#define G_MININT INT_MIN +#define G_MAXINT INT_MAX +#define G_MAXUINT UINT_MAX +#define G_MINLONG LONG_MIN +#define G_MAXLONG LONG_MAX +#define G_MAXULONG ULONG_MAX + +typedef signed char gint8; +typedef unsigned char guint8; + +typedef signed short gint16; +typedef unsigned short guint16; + +#define G_GINT16_MODIFIER "h" +#define G_GINT16_FORMAT "hi" +#define G_GUINT16_FORMAT "hu" + + +typedef signed int gint32; +typedef unsigned int guint32; + +#define G_GINT32_MODIFIER "" +#define G_GINT32_FORMAT "i" +#define G_GUINT32_FORMAT "u" + + +#define G_HAVE_GINT64 1 /* deprecated, always true */ + +G_GNUC_EXTENSION typedef signed long long gint64; +G_GNUC_EXTENSION typedef unsigned long long guint64; + +#define G_GINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##LL)) +#define G_GUINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##ULL)) + +#define G_GINT64_MODIFIER "ll" +#define G_GINT64_FORMAT "lli" +#define G_GUINT64_FORMAT "llu" + + +#define GLIB_SIZEOF_VOID_P 4 +#define GLIB_SIZEOF_LONG 4 +#define GLIB_SIZEOF_SIZE_T 4 +#define GLIB_SIZEOF_SSIZE_T 4 + +typedef signed int gssize; +typedef unsigned int gsize; +#define G_GSIZE_MODIFIER "" +#define G_GSSIZE_MODIFIER "" +#define G_GSIZE_FORMAT "u" +#define G_GSSIZE_FORMAT "i" + +#define G_MAXSIZE G_MAXUINT +#define G_MINSSIZE G_MININT +#define G_MAXSSIZE G_MAXINT + +typedef gint64 goffset; +#define G_MINOFFSET G_MININT64 +#define G_MAXOFFSET G_MAXINT64 + +#define G_GOFFSET_MODIFIER G_GINT64_MODIFIER +#define G_GOFFSET_FORMAT G_GINT64_FORMAT +#define G_GOFFSET_CONSTANT(val) G_GINT64_CONSTANT(val) + +#define G_POLLFD_FORMAT "%d" + +#define GPOINTER_TO_INT(p) ((gint) (gint) (p)) +#define GPOINTER_TO_UINT(p) ((guint) (guint) (p)) + +#define GINT_TO_POINTER(i) ((gpointer) (gint) (i)) +#define GUINT_TO_POINTER(u) ((gpointer) (guint) (u)) + +typedef signed int gintptr; +typedef unsigned int guintptr; + +#define G_GINTPTR_MODIFIER "" +#define G_GINTPTR_FORMAT "i" +#define G_GUINTPTR_FORMAT "u" + +#define GLIB_MAJOR_VERSION 2 +#define GLIB_MINOR_VERSION 77 +#define GLIB_MICRO_VERSION 3 + +#define G_OS_UNIX + +#define G_VA_COPY va_copy + + +#define G_HAVE_ISO_VARARGS 1 + +/* gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi + * is passed ISO vararg support is turned off, and there is no work + * around to turn it on, so we unconditionally turn it off. + */ +#if __GNUC__ == 2 && __GNUC_MINOR__ == 95 +# undef G_HAVE_ISO_VARARGS +#endif + +#define G_HAVE_GROWING_STACK 0 + +#ifndef _MSC_VER +# define G_HAVE_GNUC_VARARGS 1 +#endif + +#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590) +#define G_GNUC_INTERNAL __attribute__((visibility("hidden"))) +#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) +#define G_GNUC_INTERNAL __hidden +#elif defined (__GNUC__) && defined (G_HAVE_GNUC_VISIBILITY) +#define G_GNUC_INTERNAL __attribute__((visibility("hidden"))) +#else +#define G_GNUC_INTERNAL +#endif + +#define G_THREADS_ENABLED +#define G_THREADS_IMPL_POSIX + +#define G_ATOMIC_LOCK_FREE + +#define GINT16_TO_LE(val) ((gint16) (val)) +#define GUINT16_TO_LE(val) ((guint16) (val)) +#define GINT16_TO_BE(val) ((gint16) GUINT16_SWAP_LE_BE (val)) +#define GUINT16_TO_BE(val) (GUINT16_SWAP_LE_BE (val)) + +#define GINT32_TO_LE(val) ((gint32) (val)) +#define GUINT32_TO_LE(val) ((guint32) (val)) +#define GINT32_TO_BE(val) ((gint32) GUINT32_SWAP_LE_BE (val)) +#define GUINT32_TO_BE(val) (GUINT32_SWAP_LE_BE (val)) + +#define GINT64_TO_LE(val) ((gint64) (val)) +#define GUINT64_TO_LE(val) ((guint64) (val)) +#define GINT64_TO_BE(val) ((gint64) GUINT64_SWAP_LE_BE (val)) +#define GUINT64_TO_BE(val) (GUINT64_SWAP_LE_BE (val)) + +#define GLONG_TO_LE(val) ((glong) GINT32_TO_LE (val)) +#define GULONG_TO_LE(val) ((gulong) GUINT32_TO_LE (val)) +#define GLONG_TO_BE(val) ((glong) GINT32_TO_BE (val)) +#define GULONG_TO_BE(val) ((gulong) GUINT32_TO_BE (val)) +#define GINT_TO_LE(val) ((gint) GINT32_TO_LE (val)) +#define GUINT_TO_LE(val) ((guint) GUINT32_TO_LE (val)) +#define GINT_TO_BE(val) ((gint) GINT32_TO_BE (val)) +#define GUINT_TO_BE(val) ((guint) GUINT32_TO_BE (val)) +#define GSIZE_TO_LE(val) ((gsize) GUINT32_TO_LE (val)) +#define GSSIZE_TO_LE(val) ((gssize) GINT32_TO_LE (val)) +#define GSIZE_TO_BE(val) ((gsize) GUINT32_TO_BE (val)) +#define GSSIZE_TO_BE(val) ((gssize) GINT32_TO_BE (val)) +#define G_BYTE_ORDER G_LITTLE_ENDIAN + +#define GLIB_SYSDEF_POLLIN =1 +#define GLIB_SYSDEF_POLLOUT =4 +#define GLIB_SYSDEF_POLLPRI =2 +#define GLIB_SYSDEF_POLLHUP =16 +#define GLIB_SYSDEF_POLLERR =8 +#define GLIB_SYSDEF_POLLNVAL =32 + +/* No way to disable deprecation warnings for macros, so only emit deprecation + * warnings on platforms where usage of this macro is broken */ +#if defined(__APPLE__) || defined(_MSC_VER) || defined(__CYGWIN__) +#define G_MODULE_SUFFIX "so" GLIB_DEPRECATED_MACRO_IN_2_76 +#else +#define G_MODULE_SUFFIX "so" +#endif + +typedef int GPid; +#define G_PID_FORMAT "i" + +#define GLIB_SYSDEF_AF_UNIX 1 +#define GLIB_SYSDEF_AF_INET 2 +#define GLIB_SYSDEF_AF_INET6 10 + +#define GLIB_SYSDEF_MSG_OOB 1 +#define GLIB_SYSDEF_MSG_PEEK 2 +#define GLIB_SYSDEF_MSG_DONTROUTE 4 + +#define G_DIR_SEPARATOR '/' +#define G_DIR_SEPARATOR_S "/" +#define G_SEARCHPATH_SEPARATOR ':' +#define G_SEARCHPATH_SEPARATOR_S ":" + +#undef G_HAVE_FREE_SIZED + +G_END_DECLS + +#endif /* __GLIBCONFIG_H__ */ diff --git a/code/application/source/sf_app/tools/blue/lib/libasprintf.la b/code/application/source/sf_app/tools/blue/lib/libasprintf.la new file mode 100755 index 000000000..4a2ed35f9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/libasprintf.la @@ -0,0 +1,41 @@ +# libasprintf.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.7 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libasprintf.so.0' + +# Names of this library. +library_names='libasprintf.so.0.0.0 libasprintf.so.0 libasprintf.so' + +# The name of the static archive. +old_library='libasprintf.a' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' /home/wayne/Work/buildroot/output/arm-ca9-linux-uclibcgnueabihf-8.4/arm-ca9-linux-uclibcgnueabihf/lib/libstdc++.la' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libasprintf. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/home/payton/blue/lib' diff --git a/code/application/source/sf_app/tools/blue/lib/libasprintf.so.0 b/code/application/source/sf_app/tools/blue/lib/libasprintf.so.0 new file mode 100755 index 000000000..8e249bb94 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libasprintf.so.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libasprintf.so.0.0.0 b/code/application/source/sf_app/tools/blue/lib/libasprintf.so.0.0.0 new file mode 100755 index 000000000..8e249bb94 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libasprintf.so.0.0.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libbluetooth.la b/code/application/source/sf_app/tools/blue/lib/libbluetooth.la new file mode 100755 index 000000000..5d289afa5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/libbluetooth.la @@ -0,0 +1,41 @@ +# libbluetooth.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.7 Debian-2.4.7-4 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libbluetooth.so.3' + +# Names of this library. +library_names='libbluetooth.so.3.19.8 libbluetooth.so.3 libbluetooth.so' + +# The name of the static archive. +old_library='' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -L/home/payton/blue/lib /home/payton/blue/lib/libgettextlib.la /home/payton/blue/lib/libgettextpo.la -lc /home/payton/blue/lib/libintl.la -lncurses' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libbluetooth. +current=22 +age=19 +revision=8 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/home/payton/blue/lib' diff --git a/code/application/source/sf_app/tools/blue/lib/libbluetooth.so.3 b/code/application/source/sf_app/tools/blue/lib/libbluetooth.so.3 new file mode 100755 index 000000000..63db2469e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libbluetooth.so.3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libbluetooth.so.3.19.8 b/code/application/source/sf_app/tools/blue/lib/libbluetooth.so.3.19.8 new file mode 100755 index 000000000..63db2469e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libbluetooth.so.3.19.8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libdbus-1.la b/code/application/source/sf_app/tools/blue/lib/libdbus-1.la new file mode 100755 index 000000000..0dad8b95a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/libdbus-1.la @@ -0,0 +1,41 @@ +# libdbus-1.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.7 Debian-2.4.7-5 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libdbus-1.so.3' + +# Names of this library. +library_names='libdbus-1.so.3.37.0 libdbus-1.so.3 libdbus-1.so' + +# The name of the static archive. +old_library='libdbus-1.a' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -L/home/payton/blue/lib' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libdbus-1. +current=40 +age=37 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/home/payton/blue/lib' diff --git a/code/application/source/sf_app/tools/blue/lib/libdbus-1.so.3 b/code/application/source/sf_app/tools/blue/lib/libdbus-1.so.3 new file mode 100755 index 000000000..e94858d0c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libdbus-1.so.3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libdbus-1.so.3.37.0 b/code/application/source/sf_app/tools/blue/lib/libdbus-1.so.3.37.0 new file mode 100755 index 000000000..e94858d0c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libdbus-1.so.3.37.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libexpat.la b/code/application/source/sf_app/tools/blue/lib/libexpat.la new file mode 100755 index 000000000..0783ba0be --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/libexpat.la @@ -0,0 +1,41 @@ +# libexpat.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.7 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libexpat.so.1' + +# Names of this library. +library_names='libexpat.so.1.8.10 libexpat.so.1 libexpat.so' + +# The name of the static archive. +old_library='libexpat.a' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libexpat. +current=9 +age=8 +revision=10 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/home/payton/blue/lib' diff --git a/code/application/source/sf_app/tools/blue/lib/libexpat.so.1 b/code/application/source/sf_app/tools/blue/lib/libexpat.so.1 new file mode 100755 index 000000000..2017694d1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libexpat.so.1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libexpat.so.1.8.10 b/code/application/source/sf_app/tools/blue/lib/libexpat.so.1.8.10 new file mode 100755 index 000000000..2017694d1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libexpat.so.1.8.10 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libffi.so.7 b/code/application/source/sf_app/tools/blue/lib/libffi.so.7 new file mode 100755 index 000000000..dfa88d633 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libffi.so.7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libffi.so.7.1.0 b/code/application/source/sf_app/tools/blue/lib/libffi.so.7.1.0 new file mode 100755 index 000000000..dfa88d633 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libffi.so.7.1.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libform.so.6 b/code/application/source/sf_app/tools/blue/lib/libform.so.6 new file mode 100755 index 000000000..d2b2f1426 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libform.so.6 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libform.so.6.3 b/code/application/source/sf_app/tools/blue/lib/libform.so.6.3 new file mode 100755 index 000000000..d2b2f1426 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libform.so.6.3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libgettextlib.la b/code/application/source/sf_app/tools/blue/lib/libgettextlib.la new file mode 100755 index 000000000..dfe8d6f68 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/libgettextlib.la @@ -0,0 +1,41 @@ +# libgettextlib.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.7 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libgettextlib-0.22.so' + +# Names of this library. +library_names='libgettextlib-0.22.so libgettextlib-0.22.so libgettextlib.so' + +# The name of the static archive. +old_library='libgettextlib.a' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' /home/payton/blue/lib/libintl.la' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libgettextlib. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/home/payton/blue/lib' diff --git a/code/application/source/sf_app/tools/blue/lib/libgettextpo.la b/code/application/source/sf_app/tools/blue/lib/libgettextpo.la new file mode 100755 index 000000000..5a134a3d6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/libgettextpo.la @@ -0,0 +1,41 @@ +# libgettextpo.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.7 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libgettextpo.so.0' + +# Names of this library. +library_names='libgettextpo.so.0.5.9 libgettextpo.so.0 libgettextpo.so' + +# The name of the static archive. +old_library='libgettextpo.a' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -lc /home/payton/blue/lib/libintl.la' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libgettextpo. +current=5 +age=5 +revision=9 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/home/payton/blue/lib' diff --git a/code/application/source/sf_app/tools/blue/lib/libgettextpo.so.0 b/code/application/source/sf_app/tools/blue/lib/libgettextpo.so.0 new file mode 100755 index 000000000..235886820 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libgettextpo.so.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libgettextpo.so.0.5.9 b/code/application/source/sf_app/tools/blue/lib/libgettextpo.so.0.5.9 new file mode 100755 index 000000000..235886820 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libgettextpo.so.0.5.9 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libgettextsrc.la b/code/application/source/sf_app/tools/blue/lib/libgettextsrc.la new file mode 100755 index 000000000..675e29b48 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/libgettextsrc.la @@ -0,0 +1,41 @@ +# libgettextsrc.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.7 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libgettextsrc-0.22.so' + +# Names of this library. +library_names='libgettextsrc-0.22.so libgettextsrc-0.22.so libgettextsrc.so' + +# The name of the static archive. +old_library='libgettextsrc.a' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' /home/payton/blue/lib/libgettextlib.la /home/payton/blue/lib/libtextstyle.la /home/payton/blue/lib/libintl.la -lc' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libgettextsrc. +current=0 +age=0 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/home/payton/blue/lib' diff --git a/code/application/source/sf_app/tools/blue/lib/libgio-2.0.so.0 b/code/application/source/sf_app/tools/blue/lib/libgio-2.0.so.0 new file mode 100755 index 000000000..fd4c26d6c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libgio-2.0.so.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libgio-2.0.so.0.7703.0 b/code/application/source/sf_app/tools/blue/lib/libgio-2.0.so.0.7703.0 new file mode 100755 index 000000000..fd4c26d6c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libgio-2.0.so.0.7703.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libglib-2.0.so.0 b/code/application/source/sf_app/tools/blue/lib/libglib-2.0.so.0 new file mode 100755 index 000000000..e22141e65 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libglib-2.0.so.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libglib-2.0.so.0.7703.0 b/code/application/source/sf_app/tools/blue/lib/libglib-2.0.so.0.7703.0 new file mode 100755 index 000000000..e22141e65 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libglib-2.0.so.0.7703.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libgmodule-2.0.so.0 b/code/application/source/sf_app/tools/blue/lib/libgmodule-2.0.so.0 new file mode 100755 index 000000000..300710601 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libgmodule-2.0.so.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libgmodule-2.0.so.0.7703.0 b/code/application/source/sf_app/tools/blue/lib/libgmodule-2.0.so.0.7703.0 new file mode 100755 index 000000000..300710601 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libgmodule-2.0.so.0.7703.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libgobject-2.0.so.0 b/code/application/source/sf_app/tools/blue/lib/libgobject-2.0.so.0 new file mode 100755 index 000000000..2f13e74bd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libgobject-2.0.so.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libgobject-2.0.so.0.7703.0 b/code/application/source/sf_app/tools/blue/lib/libgobject-2.0.so.0.7703.0 new file mode 100755 index 000000000..2f13e74bd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libgobject-2.0.so.0.7703.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libgthread-2.0.so.0 b/code/application/source/sf_app/tools/blue/lib/libgthread-2.0.so.0 new file mode 100755 index 000000000..b0889937b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libgthread-2.0.so.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libgthread-2.0.so.0.7703.0 b/code/application/source/sf_app/tools/blue/lib/libgthread-2.0.so.0.7703.0 new file mode 100755 index 000000000..b0889937b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libgthread-2.0.so.0.7703.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libhistory.so.8 b/code/application/source/sf_app/tools/blue/lib/libhistory.so.8 new file mode 100755 index 000000000..292296319 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libhistory.so.8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libhistory.so.8.2 b/code/application/source/sf_app/tools/blue/lib/libhistory.so.8.2 new file mode 100755 index 000000000..292296319 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libhistory.so.8.2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libintl.la b/code/application/source/sf_app/tools/blue/lib/libintl.la new file mode 100644 index 000000000..faf2e3029 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/libintl.la @@ -0,0 +1,41 @@ +# libintl.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.7 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libintl.so.8' + +# Names of this library. +library_names='libintl.so.8.3.0 libintl.so.8 libintl.so' + +# The name of the static archive. +old_library='libintl.a' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs='' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libintl. +current=11 +age=3 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/home/payton/blue/lib' diff --git a/code/application/source/sf_app/tools/blue/lib/libintl.so.8 b/code/application/source/sf_app/tools/blue/lib/libintl.so.8 new file mode 100644 index 000000000..ba7be74f0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libintl.so.8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libintl.so.8.3.0 b/code/application/source/sf_app/tools/blue/lib/libintl.so.8.3.0 new file mode 100644 index 000000000..ba7be74f0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libintl.so.8.3.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libmenu.so.6 b/code/application/source/sf_app/tools/blue/lib/libmenu.so.6 new file mode 100755 index 000000000..2f327ed88 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libmenu.so.6 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libmenu.so.6.3 b/code/application/source/sf_app/tools/blue/lib/libmenu.so.6.3 new file mode 100755 index 000000000..2f327ed88 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libmenu.so.6.3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libncurses.so.6 b/code/application/source/sf_app/tools/blue/lib/libncurses.so.6 new file mode 100755 index 000000000..76451711a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libncurses.so.6 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libncurses.so.6.3 b/code/application/source/sf_app/tools/blue/lib/libncurses.so.6.3 new file mode 100755 index 000000000..76451711a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libncurses.so.6.3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libpanel.so.6 b/code/application/source/sf_app/tools/blue/lib/libpanel.so.6 new file mode 100755 index 000000000..0e5f1409c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libpanel.so.6 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libpanel.so.6.3 b/code/application/source/sf_app/tools/blue/lib/libpanel.so.6.3 new file mode 100755 index 000000000..0e5f1409c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libpanel.so.6.3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libreadline.so.8 b/code/application/source/sf_app/tools/blue/lib/libreadline.so.8 new file mode 100755 index 000000000..dcaf12bc5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libreadline.so.8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libreadline.so.8.2 b/code/application/source/sf_app/tools/blue/lib/libreadline.so.8.2 new file mode 100755 index 000000000..dcaf12bc5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libreadline.so.8.2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libtextstyle.la b/code/application/source/sf_app/tools/blue/lib/libtextstyle.la new file mode 100755 index 000000000..e8e5cf1b6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/libtextstyle.la @@ -0,0 +1,41 @@ +# libtextstyle.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.7 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='libtextstyle.so.0' + +# Names of this library. +library_names='libtextstyle.so.0.2.0 libtextstyle.so.0 libtextstyle.so' + +# The name of the static archive. +old_library='libtextstyle.a' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs='' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libtextstyle. +current=2 +age=2 +revision=0 + +# Is this an already installed library? +installed=yes + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='/home/payton/blue/lib' diff --git a/code/application/source/sf_app/tools/blue/lib/libtextstyle.so.0 b/code/application/source/sf_app/tools/blue/lib/libtextstyle.so.0 new file mode 100755 index 000000000..510fd245b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libtextstyle.so.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/libtextstyle.so.0.2.0 b/code/application/source/sf_app/tools/blue/lib/libtextstyle.so.0.2.0 new file mode 100755 index 000000000..510fd245b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/libtextstyle.so.0.2.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/bluez.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/bluez.pc new file mode 100644 index 000000000..0556001ba --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/bluez.pc @@ -0,0 +1,10 @@ +prefix=/home/payton/blue +exec_prefix=/home/payton/blue +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: BlueZ +Description: Bluetooth protocol stack for Linux +Version: 5.66 +Libs: -L${libdir} -lbluetooth +Cflags: -I${includedir} diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/dbus-1.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/dbus-1.pc new file mode 100644 index 000000000..1802db256 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/dbus-1.pc @@ -0,0 +1,21 @@ +original_prefix=/home/payton/blue +prefix=${original_prefix} +exec_prefix=${prefix} +bindir=${exec_prefix}/bin +libdir=${exec_prefix}/lib +includedir=${prefix}/include +system_bus_default_address=unix:path=/usr/var/run/dbus/system_bus_socket +datarootdir=${prefix}/share +datadir=${datarootdir} +sysconfdir=${prefix}/etc +session_bus_services_dir=${datadir}/dbus-1/services +system_bus_services_dir=${datadir}/dbus-1/system-services +interfaces_dir=${datadir}/dbus-1/interfaces +daemondir=${bindir} + +Name: dbus +Description: Free desktop message bus +Version: 1.15.6 +Libs: -L${libdir} -ldbus-1 +Libs.private: +Cflags: -I${includedir}/dbus-1.0 -I${libdir}/dbus-1.0/include diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/expat.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/expat.pc new file mode 100644 index 000000000..4fa91d7ff --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/expat.pc @@ -0,0 +1,12 @@ +prefix=/home/payton/blue +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: expat +Version: 2.5.0 +Description: expat XML parser +URL: https://libexpat.github.io/ +Libs: -L${libdir} -lexpat +Libs.private: -lm +Cflags: -I${includedir} diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/gio-2.0.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gio-2.0.pc new file mode 100644 index 000000000..10e4e6ad8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gio-2.0.pc @@ -0,0 +1,26 @@ +prefix=/home/payton/blue +includedir=${prefix}/include +libdir=${prefix}/lib + +datadir=${prefix}/share +schemasdir=${datadir}/glib-2.0/schemas +dtdsdir=${datadir}/glib-2.0/dtds +bindir=${prefix}/bin +giomoduledir=${libdir}/gio/modules +gio=${bindir}/gio +gio_querymodules=${bindir}/gio-querymodules +glib_compile_schemas=${bindir}/glib-compile-schemas +glib_compile_resources=${bindir}/glib-compile-resources +gdbus=${bindir}/gdbus +gdbus_codegen=${bindir}/gdbus-codegen +gresource=${bindir}/gresource +gsettings=${bindir}/gsettings + +Name: GIO +Description: glib I/O library +Version: 2.77.3 +Requires: glib-2.0, gobject-2.0 +Requires.private: gmodule-no-export-2.0 +Libs: -L${libdir} -lgio-2.0 +Libs.private: -lz +Cflags: -I${includedir} diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/gio-unix-2.0.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gio-unix-2.0.pc new file mode 100644 index 000000000..a12704287 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gio-unix-2.0.pc @@ -0,0 +1,8 @@ +prefix=/home/payton/blue +includedir=${prefix}/include + +Name: GIO unix specific APIs +Description: unix specific headers for glib I/O library +Version: 2.77.3 +Requires: gobject-2.0, gio-2.0 +Cflags: -I${includedir}/gio-unix-2.0 diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/glib-2.0.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/glib-2.0.pc new file mode 100644 index 000000000..d8669a454 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/glib-2.0.pc @@ -0,0 +1,18 @@ +prefix=/home/payton/blue +includedir=${prefix}/include +libdir=${prefix}/lib + +bindir=${prefix}/bin +datadir=${prefix}/share +glib_genmarshal=${bindir}/glib-genmarshal +gobject_query=${bindir}/gobject-query +glib_mkenums=${bindir}/glib-mkenums +glib_valgrind_suppressions=${datadir}/glib-2.0/valgrind/glib.supp + +Name: GLib +Description: C Utility Library +Version: 2.77.3 +Requires.private: libpcre2-8 +Libs: -L${libdir} -lglib-2.0 +Libs.private: -lm -pthread +Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/gmodule-2.0.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gmodule-2.0.pc new file mode 100644 index 000000000..a9593d41c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gmodule-2.0.pc @@ -0,0 +1,12 @@ +prefix=/home/payton/blue +includedir=${prefix}/include +libdir=${prefix}/lib + +gmodule_supported=true + +Name: GModule +Description: Dynamic module loader for GLib +Version: 2.77.3 +Requires: gmodule-no-export-2.0, glib-2.0 +Libs: -Wl,--export-dynamic +Cflags: -I${includedir} diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/gmodule-export-2.0.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gmodule-export-2.0.pc new file mode 100644 index 000000000..a9593d41c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gmodule-export-2.0.pc @@ -0,0 +1,12 @@ +prefix=/home/payton/blue +includedir=${prefix}/include +libdir=${prefix}/lib + +gmodule_supported=true + +Name: GModule +Description: Dynamic module loader for GLib +Version: 2.77.3 +Requires: gmodule-no-export-2.0, glib-2.0 +Libs: -Wl,--export-dynamic +Cflags: -I${includedir} diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/gmodule-no-export-2.0.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gmodule-no-export-2.0.pc new file mode 100644 index 000000000..b55008d48 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gmodule-no-export-2.0.pc @@ -0,0 +1,12 @@ +prefix=/home/payton/blue +includedir=${prefix}/include +libdir=${prefix}/lib + +gmodule_supported=true + +Name: GModule +Description: Dynamic module loader for GLib +Version: 2.77.3 +Requires: glib-2.0 +Libs: -L${libdir} -lgmodule-2.0 -pthread +Cflags: -I${includedir} -pthread diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/gobject-2.0.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gobject-2.0.pc new file mode 100644 index 000000000..662742ad2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gobject-2.0.pc @@ -0,0 +1,11 @@ +prefix=/home/payton/blue +includedir=${prefix}/include +libdir=${prefix}/lib + +Name: GObject +Description: GLib Type, Object, Parameter and Signal Library +Version: 2.77.3 +Requires: glib-2.0 +Requires.private: libffi +Libs: -L${libdir} -lgobject-2.0 +Cflags: -I${includedir} diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/gthread-2.0.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gthread-2.0.pc new file mode 100644 index 000000000..b0cdab262 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/gthread-2.0.pc @@ -0,0 +1,10 @@ +prefix=/home/payton/blue +includedir=${prefix}/include +libdir=${prefix}/lib + +Name: GThread +Description: Thread support for GLib +Version: 2.77.3 +Requires: glib-2.0 +Libs: -L${libdir} -lgthread-2.0 -pthread +Cflags: -I${includedir} -pthread diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/history.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/history.pc new file mode 100644 index 000000000..f24a7cdd8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/history.pc @@ -0,0 +1,11 @@ +prefix=/home/payton/blue +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: History +Description: Gnu History library for managing previously-entered lines +URL: http://tiswww.cwru.edu/php/chet/readline/rltop.html +Version: 8.2 +Libs: -L${libdir} -lhistory +Cflags: -I${includedir} diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/libffi.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/libffi.pc new file mode 100644 index 000000000..4a07a78ba --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/libffi.pc @@ -0,0 +1,9 @@ +prefix=/home/payton/blue +includedir=${prefix}/include +libdir=${prefix}/lib + +Name: ffi +Description: Library supporting Foreign Function Interfaces +Version: 3.2.9999 +Libs: -L${libdir} -lffi +Cflags: -I${includedir} diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/libpcre2-16.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/libpcre2-16.pc new file mode 100644 index 000000000..502a45467 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/libpcre2-16.pc @@ -0,0 +1,9 @@ +prefix=/home/payton/blue +includedir=${prefix}/include +libdir=${prefix}/lib + +Name: libpcre2-16 +Description: PCRE2 - Perl compatible regular expressions C library (2nd API) with 16 bit character support +Version: 10.42 +Libs: -L${libdir} -lpcre2-16 +Cflags: -I${includedir} diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/libpcre2-32.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/libpcre2-32.pc new file mode 100644 index 000000000..28347db19 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/libpcre2-32.pc @@ -0,0 +1,9 @@ +prefix=/home/payton/blue +includedir=${prefix}/include +libdir=${prefix}/lib + +Name: libpcre2-32 +Description: PCRE2 - Perl compatible regular expressions C library (2nd API) with 32 bit character support +Version: 10.42 +Libs: -L${libdir} -lpcre2-32 +Cflags: -I${includedir} diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/libpcre2-8.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/libpcre2-8.pc new file mode 100644 index 000000000..d7cd4a5f6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/libpcre2-8.pc @@ -0,0 +1,9 @@ +prefix=/home/payton/blue +includedir=${prefix}/include +libdir=${prefix}/lib + +Name: libpcre2-8 +Description: PCRE2 - Perl compatible regular expressions C library (2nd API) with 8 bit character support +Version: 10.42 +Libs: -L${libdir} -lpcre2-8 +Cflags: -I${includedir} diff --git a/code/application/source/sf_app/tools/blue/lib/pkgconfig/readline.pc b/code/application/source/sf_app/tools/blue/lib/pkgconfig/readline.pc new file mode 100644 index 000000000..6e7b9bc77 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/lib/pkgconfig/readline.pc @@ -0,0 +1,12 @@ +prefix=/home/payton/blue +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: Readline +Description: Gnu Readline library for command line editing +URL: http://tiswww.cwru.edu/php/chet/readline/rltop.html +Version: 8.2 +Requires.private: ncurses +Libs: -L${libdir} -lreadline +Cflags: -I${includedir} diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/1/1178 b/code/application/source/sf_app/tools/blue/lib/terminfo/1/1178 new file mode 100644 index 000000000..a78743db0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/1/1178 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/1/1730-lm b/code/application/source/sf_app/tools/blue/lib/terminfo/1/1730-lm new file mode 100644 index 000000000..4aeeb984a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/1/1730-lm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/2/2621 b/code/application/source/sf_app/tools/blue/lib/terminfo/2/2621 new file mode 100644 index 000000000..e01ee357f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/2/2621 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/2/2621-wl b/code/application/source/sf_app/tools/blue/lib/terminfo/2/2621-wl new file mode 100644 index 000000000..e01ee357f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/2/2621-wl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/2/2621A b/code/application/source/sf_app/tools/blue/lib/terminfo/2/2621A new file mode 100644 index 000000000..e01ee357f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/2/2621A differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/2/2621a b/code/application/source/sf_app/tools/blue/lib/terminfo/2/2621a new file mode 100644 index 000000000..e01ee357f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/2/2621a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/3/386at b/code/application/source/sf_app/tools/blue/lib/terminfo/3/386at new file mode 100644 index 000000000..3da954272 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/3/386at differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/3/3b1 b/code/application/source/sf_app/tools/blue/lib/terminfo/3/3b1 new file mode 100644 index 000000000..b41843d6a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/3/3b1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/4/4025ex b/code/application/source/sf_app/tools/blue/lib/terminfo/4/4025ex new file mode 100644 index 000000000..a7d999f1b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/4/4025ex differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/4/4027ex b/code/application/source/sf_app/tools/blue/lib/terminfo/4/4027ex new file mode 100644 index 000000000..a7d999f1b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/4/4027ex differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/4/4410-w b/code/application/source/sf_app/tools/blue/lib/terminfo/4/4410-w new file mode 100644 index 000000000..78d1777fa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/4/4410-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/5/5051 b/code/application/source/sf_app/tools/blue/lib/terminfo/5/5051 new file mode 100644 index 000000000..ec3766c15 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/5/5051 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/5/5410-w b/code/application/source/sf_app/tools/blue/lib/terminfo/5/5410-w new file mode 100644 index 000000000..78d1777fa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/5/5410-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/5/5620 b/code/application/source/sf_app/tools/blue/lib/terminfo/5/5620 new file mode 100644 index 000000000..1bb40715f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/5/5620 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/5/5630-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/5/5630-24 new file mode 100644 index 000000000..0e8cd0f33 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/5/5630-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/5/5630DMD-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/5/5630DMD-24 new file mode 100644 index 000000000..0e8cd0f33 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/5/5630DMD-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/6/6053 b/code/application/source/sf_app/tools/blue/lib/terminfo/6/6053 new file mode 100644 index 000000000..ee16edb36 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/6/6053 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/6/6053-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/6/6053-dg new file mode 100644 index 000000000..ee16edb36 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/6/6053-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/6/605x b/code/application/source/sf_app/tools/blue/lib/terminfo/6/605x new file mode 100644 index 000000000..ee16edb36 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/6/605x differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/6/605x-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/6/605x-dg new file mode 100644 index 000000000..ee16edb36 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/6/605x-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/6/630-lm b/code/application/source/sf_app/tools/blue/lib/terminfo/6/630-lm new file mode 100644 index 000000000..4aeeb984a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/6/630-lm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/6/630MTG-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/6/630MTG-24 new file mode 100644 index 000000000..0e8cd0f33 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/6/630MTG-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTG-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTG-24 new file mode 100644 index 000000000..0e0e652f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTG-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTG-41 b/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTG-41 new file mode 100644 index 000000000..084540efd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTG-41 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTG-41r b/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTG-41r new file mode 100644 index 000000000..1a901e784 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTG-41r differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTGr b/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTGr new file mode 100644 index 000000000..b13723dd0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTGr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTGr-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTGr-24 new file mode 100644 index 000000000..71558c881 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/7/730MTGr-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/8/8510 b/code/application/source/sf_app/tools/blue/lib/terminfo/8/8510 new file mode 100644 index 000000000..3ad2c7387 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/8/8510 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/9/955-hb b/code/application/source/sf_app/tools/blue/lib/terminfo/9/955-hb new file mode 100644 index 000000000..dfe4c1f6f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/9/955-hb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/9/955-w b/code/application/source/sf_app/tools/blue/lib/terminfo/9/955-w new file mode 100644 index 000000000..437f5ce55 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/9/955-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/9/9term b/code/application/source/sf_app/tools/blue/lib/terminfo/9/9term new file mode 100644 index 000000000..10f559533 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/9/9term differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/A/Apple_Terminal b/code/application/source/sf_app/tools/blue/lib/terminfo/A/Apple_Terminal new file mode 100644 index 000000000..b3a736a56 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/A/Apple_Terminal differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/E/Eterm b/code/application/source/sf_app/tools/blue/lib/terminfo/E/Eterm new file mode 100644 index 000000000..a08d16a26 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/E/Eterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/E/Eterm-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/E/Eterm-256color new file mode 100644 index 000000000..03d6af0e4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/E/Eterm-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/E/Eterm-88color b/code/application/source/sf_app/tools/blue/lib/terminfo/E/Eterm-88color new file mode 100644 index 000000000..688265173 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/E/Eterm-88color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/E/Eterm-color b/code/application/source/sf_app/tools/blue/lib/terminfo/E/Eterm-color new file mode 100644 index 000000000..a08d16a26 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/E/Eterm-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/L/LFT-PC850 b/code/application/source/sf_app/tools/blue/lib/terminfo/L/LFT-PC850 new file mode 100644 index 000000000..20c5b42c2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/L/LFT-PC850 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/M/MtxOrb b/code/application/source/sf_app/tools/blue/lib/terminfo/M/MtxOrb new file mode 100644 index 000000000..535ea37bb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/M/MtxOrb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/M/MtxOrb162 b/code/application/source/sf_app/tools/blue/lib/terminfo/M/MtxOrb162 new file mode 100644 index 000000000..e009b47da Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/M/MtxOrb162 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/M/MtxOrb204 b/code/application/source/sf_app/tools/blue/lib/terminfo/M/MtxOrb204 new file mode 100644 index 000000000..62e49b646 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/M/MtxOrb204 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/N/NCR260VT300WPP b/code/application/source/sf_app/tools/blue/lib/terminfo/N/NCR260VT300WPP new file mode 100644 index 000000000..7c41d6a8e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/N/NCR260VT300WPP differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/N/NCRVT100WPP b/code/application/source/sf_app/tools/blue/lib/terminfo/N/NCRVT100WPP new file mode 100644 index 000000000..7de147786 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/N/NCRVT100WPP differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P12 b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P12 new file mode 100644 index 000000000..12de25677 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P12 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P12-M b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P12-M new file mode 100644 index 000000000..c4dd32141 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P12-M differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P12-M-W b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P12-M-W new file mode 100644 index 000000000..7a52b6095 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P12-M-W differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P12-W b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P12-W new file mode 100644 index 000000000..2fe870dbc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P12-W differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P14 b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P14 new file mode 100644 index 000000000..485f1bc72 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P14 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P14-M b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P14-M new file mode 100644 index 000000000..39dd31072 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P14-M differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P14-M-W b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P14-M-W new file mode 100644 index 000000000..5b6475de6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P14-M-W differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P14-W b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P14-W new file mode 100644 index 000000000..1d7df53b7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P14-W differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P4 b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P4 new file mode 100644 index 000000000..1d53e488c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P5 b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P5 new file mode 100644 index 000000000..f1848d045 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P7 b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P7 new file mode 100644 index 000000000..539b4ff65 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P8 b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P8 new file mode 100644 index 000000000..12fd9e6ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P8-W b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P8-W new file mode 100644 index 000000000..8f254d360 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P8-W differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P9 b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P9 new file mode 100644 index 000000000..2a55145e9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P9 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P9-8 b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P9-8 new file mode 100644 index 000000000..8191a9bd8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P9-8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P9-8-W b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P9-8-W new file mode 100644 index 000000000..93e3da958 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P9-8-W differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/P/P9-W b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P9-W new file mode 100644 index 000000000..44029ba7f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/P/P9-W differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q306-8-pc b/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q306-8-pc new file mode 100644 index 000000000..8fd3b2ea3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q306-8-pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-H b/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-H new file mode 100644 index 000000000..8cf4e9272 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-H differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-H-am b/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-H-am new file mode 100644 index 000000000..8cf4e9272 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-H-am differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-Hw b/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-Hw new file mode 100644 index 000000000..4b09f0385 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-Hw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-w b/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-w new file mode 100644 index 000000000..b710a2ad6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-w-am b/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-w-am new file mode 100644 index 000000000..b710a2ad6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/Q/Q310-vip-w-am differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/X/X-hpterm b/code/application/source/sf_app/tools/blue/lib/terminfo/X/X-hpterm new file mode 100644 index 000000000..aeb1acb29 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/X/X-hpterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/X/X-hpterm-color2 b/code/application/source/sf_app/tools/blue/lib/terminfo/X/X-hpterm-color2 new file mode 100644 index 000000000..0b122c6ca Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/X/X-hpterm-color2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/a210 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/a210 new file mode 100644 index 000000000..c6de7ae20 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/a210 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/a80 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/a80 new file mode 100644 index 000000000..1265d5edd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/a80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/a980 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/a980 new file mode 100644 index 000000000..90c5c1570 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/a980 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aa4080 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aa4080 new file mode 100644 index 000000000..078a29061 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aa4080 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa new file mode 100644 index 000000000..4057ed848 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa+dec b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa+dec new file mode 100644 index 000000000..92a6ba391 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa+dec differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa+rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa+rv new file mode 100644 index 000000000..02cef1394 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa+rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa+unk b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa+unk new file mode 100644 index 000000000..ba98f3abc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa+unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-18 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-18 new file mode 100644 index 000000000..d07b65c12 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-18 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-18-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-18-rv new file mode 100644 index 000000000..99fd2859d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-18-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-20 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-20 new file mode 100644 index 000000000..c3f1590c4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-20 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-22 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-22 new file mode 100644 index 000000000..1030af852 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-22 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-24 new file mode 100644 index 000000000..d9eddaf1f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-24-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-24-rv new file mode 100644 index 000000000..bb2536488 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-24-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-26 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-26 new file mode 100644 index 000000000..d73e48a0b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-26 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-28 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-28 new file mode 100644 index 000000000..f916a5c28 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-28 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30 new file mode 100644 index 000000000..4057ed848 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-ctxt b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-ctxt new file mode 100644 index 000000000..282c36211 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-ctxt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-rv new file mode 100644 index 000000000..505f50f9c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-rv-ctxt b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-rv-ctxt new file mode 100644 index 000000000..fb8f018f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-rv-ctxt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-s b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-s new file mode 100644 index 000000000..0a11df5c2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-s-ctxt b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-s-ctxt new file mode 100644 index 000000000..a9eae4b32 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-s-ctxt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-s-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-s-rv new file mode 100644 index 000000000..d677272a5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-s-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-s-rv-ct b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-s-rv-ct new file mode 100644 index 000000000..c9314e250 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-30-s-rv-ct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-36 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-36 new file mode 100644 index 000000000..a25ea527a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-36 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-36-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-36-rv new file mode 100644 index 000000000..448866686 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-36-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-40 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-40 new file mode 100644 index 000000000..c76c952e9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-40-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-40-rv new file mode 100644 index 000000000..ee6046b72 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-40-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-48 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-48 new file mode 100644 index 000000000..0fa30bcc7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-48-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-48-rv new file mode 100644 index 000000000..ab26f86d6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-48-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60 new file mode 100644 index 000000000..827c6ead7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60-dec-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60-dec-rv new file mode 100644 index 000000000..31f764f3a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60-dec-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60-rv new file mode 100644 index 000000000..836944567 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60-s b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60-s new file mode 100644 index 000000000..d0877a6e9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60-s-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60-s-rv new file mode 100644 index 000000000..41b6c222e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-60-s-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-ctxt b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-ctxt new file mode 100644 index 000000000..282c36211 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-ctxt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-db b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-db new file mode 100644 index 000000000..524ad36e9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-db differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-rv new file mode 100644 index 000000000..505f50f9c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-rv-ctxt b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-rv-ctxt new file mode 100644 index 000000000..fb8f018f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-rv-ctxt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-rv-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-rv-unk new file mode 100644 index 000000000..388a0cb4c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-rv-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-s b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-s new file mode 100644 index 000000000..0a11df5c2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-s-ctxt b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-s-ctxt new file mode 100644 index 000000000..a9eae4b32 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-s-ctxt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-s-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-s-rv new file mode 100644 index 000000000..d677272a5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-s-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-s-rv-ctxt b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-s-rv-ctxt new file mode 100644 index 000000000..c9314e250 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-s-rv-ctxt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-unk new file mode 100644 index 000000000..ba98f3abc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aaa-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aas1901 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aas1901 new file mode 100644 index 000000000..6dcde9d71 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aas1901 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm80 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm80 new file mode 100644 index 000000000..8cbee8117 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm85 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm85 new file mode 100644 index 000000000..9d6ff512d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm85 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm85e b/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm85e new file mode 100644 index 000000000..c0ecaddc8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm85e differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm85h b/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm85h new file mode 100644 index 000000000..12d7266c5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm85h differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm85h-old b/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm85h-old new file mode 100644 index 000000000..a631d65e3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/abm85h-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/absolute b/code/application/source/sf_app/tools/blue/lib/terminfo/a/absolute new file mode 100644 index 000000000..e8732ce2c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/absolute differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/act4 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/act4 new file mode 100644 index 000000000..b24bd133a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/act4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/act5 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/act5 new file mode 100644 index 000000000..66b296fab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/act5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/addrinfo b/code/application/source/sf_app/tools/blue/lib/terminfo/a/addrinfo new file mode 100644 index 000000000..33ab39cfa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/addrinfo differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adds200 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adds200 new file mode 100644 index 000000000..d574b915d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adds200 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adds980 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adds980 new file mode 100644 index 000000000..90c5c1570 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adds980 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/addsviewpoint b/code/application/source/sf_app/tools/blue/lib/terminfo/a/addsviewpoint new file mode 100644 index 000000000..0efc7fba5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/addsviewpoint differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/addsvp60 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/addsvp60 new file mode 100644 index 000000000..3c28adffa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/addsvp60 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm+sgr b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm+sgr new file mode 100644 index 000000000..afbc99edc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm+sgr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm1 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm1 new file mode 100644 index 000000000..6c4f65d9e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm11 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm11 new file mode 100644 index 000000000..d464b5b70 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm11 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm1178 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm1178 new file mode 100644 index 000000000..a78743db0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm1178 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm12 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm12 new file mode 100644 index 000000000..b0f059046 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm12 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm1a b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm1a new file mode 100644 index 000000000..6c4f65d9e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm1a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm2 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm2 new file mode 100644 index 000000000..0a17e87d6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm20 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm20 new file mode 100644 index 000000000..a6e7ba432 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm20 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm21 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm21 new file mode 100644 index 000000000..28bf9df3b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm21 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm22 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm22 new file mode 100644 index 000000000..550cfd47b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm22 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm3 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm3 new file mode 100644 index 000000000..428cd6e18 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm31 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm31 new file mode 100644 index 000000000..c757bd29a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm31 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm31-old b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm31-old new file mode 100644 index 000000000..fb6d9e6b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm31-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm36 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm36 new file mode 100644 index 000000000..dc9c3e8d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm36 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm3a b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm3a new file mode 100644 index 000000000..a19b9889d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm3a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm3a+ b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm3a+ new file mode 100644 index 000000000..4a74c19ba Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm3a+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm42 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm42 new file mode 100644 index 000000000..95d9e9a9d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm42 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm42-ns b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm42-ns new file mode 100644 index 000000000..d23b411bf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm42-ns differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm5 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm5 new file mode 100644 index 000000000..aebdc514e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/adm5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aepro b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aepro new file mode 100644 index 000000000..d8b036ccb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aepro differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aixterm b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aixterm new file mode 100644 index 000000000..1211a1d78 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aixterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aixterm-16color b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aixterm-16color new file mode 100644 index 000000000..37f0254a3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aixterm-16color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aixterm-m b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aixterm-m new file mode 100644 index 000000000..3bc46d72c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aixterm-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aixterm-m-old b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aixterm-m-old new file mode 100644 index 000000000..5b47369e4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aixterm-m-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aj b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aj new file mode 100644 index 000000000..cccfdb431 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aj differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aj510 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aj510 new file mode 100644 index 000000000..7185b9243 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aj510 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aj830 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aj830 new file mode 100644 index 000000000..cccfdb431 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aj830 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aj832 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aj832 new file mode 100644 index 000000000..cccfdb431 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aj832 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/alacritty b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alacritty new file mode 100644 index 000000000..88cbf0688 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alacritty differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/alacritty+common b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alacritty+common new file mode 100644 index 000000000..a0206e78f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alacritty+common differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/alacritty-direct b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alacritty-direct new file mode 100644 index 000000000..73bb21e77 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alacritty-direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt2 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt2 new file mode 100644 index 000000000..d49d23693 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt3 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt3 new file mode 100644 index 000000000..2d8e29132 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt4 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt4 new file mode 100644 index 000000000..a6344d429 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt5 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt5 new file mode 100644 index 000000000..2d8e29132 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt7 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt7 new file mode 100644 index 000000000..c6457f54b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt7pc b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt7pc new file mode 100644 index 000000000..b8f9c5cb1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alt7pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/alto-h19 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alto-h19 new file mode 100644 index 000000000..9dee8171e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alto-h19 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/alto-heath b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alto-heath new file mode 100644 index 000000000..9dee8171e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/alto-heath differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/altoh19 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altoh19 new file mode 100644 index 000000000..9dee8171e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altoh19 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/altoheath b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altoheath new file mode 100644 index 000000000..9dee8171e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altoheath differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos-2 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos-2 new file mode 100644 index 000000000..d49d23693 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos-2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos-3 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos-3 new file mode 100644 index 000000000..2d8e29132 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos-3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos-4 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos-4 new file mode 100644 index 000000000..a6344d429 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos-4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos-5 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos-5 new file mode 100644 index 000000000..2d8e29132 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos-5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos2 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos2 new file mode 100644 index 000000000..d49d23693 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos3 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos3 new file mode 100644 index 000000000..2d8e29132 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos4 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos4 new file mode 100644 index 000000000..a6344d429 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos5 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos5 new file mode 100644 index 000000000..2d8e29132 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos7 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos7 new file mode 100644 index 000000000..c6457f54b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos7pc b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos7pc new file mode 100644 index 000000000..b8f9c5cb1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/altos7pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ambas b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ambas new file mode 100644 index 000000000..4057ed848 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ambas differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ambassador b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ambassador new file mode 100644 index 000000000..4057ed848 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ambassador differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/amiga b/code/application/source/sf_app/tools/blue/lib/terminfo/a/amiga new file mode 100644 index 000000000..6233d1c81 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/amiga differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/amiga-8bit b/code/application/source/sf_app/tools/blue/lib/terminfo/a/amiga-8bit new file mode 100644 index 000000000..5faf7577e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/amiga-8bit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/amiga-h b/code/application/source/sf_app/tools/blue/lib/terminfo/a/amiga-h new file mode 100644 index 000000000..96688795b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/amiga-h differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/amiga-vnc b/code/application/source/sf_app/tools/blue/lib/terminfo/a/amiga-vnc new file mode 100644 index 000000000..e1ebe0cda Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/amiga-vnc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/amp219 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/amp219 new file mode 100644 index 000000000..39f23d67e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/amp219 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/amp219w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/amp219w new file mode 100644 index 000000000..d45bd6492 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/amp219w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex-219 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex-219 new file mode 100644 index 000000000..39f23d67e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex-219 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex-219w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex-219w new file mode 100644 index 000000000..d45bd6492 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex-219w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex-232 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex-232 new file mode 100644 index 000000000..698c33d51 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex-232 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex175 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex175 new file mode 100644 index 000000000..837bc26b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex175 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex175-b b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex175-b new file mode 100644 index 000000000..d94881871 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex175-b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex210 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex210 new file mode 100644 index 000000000..c6de7ae20 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex210 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex219 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex219 new file mode 100644 index 000000000..39f23d67e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex219 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex219w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex219w new file mode 100644 index 000000000..d45bd6492 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex219w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex232 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex232 new file mode 100644 index 000000000..698c33d51 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex232 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex232w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex232w new file mode 100644 index 000000000..2efbbde5e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex232w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex80 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex80 new file mode 100644 index 000000000..1265d5edd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ampex80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/annarbor4080 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/annarbor4080 new file mode 100644 index 000000000..078a29061 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/annarbor4080 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi new file mode 100644 index 000000000..6de79787a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+arrows b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+arrows new file mode 100644 index 000000000..4fb78a396 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+arrows differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+csr b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+csr new file mode 100644 index 000000000..b33d2e04d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+csr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+cup b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+cup new file mode 100644 index 000000000..d1b653d11 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+cup differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+enq b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+enq new file mode 100644 index 000000000..8103d305a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+enq differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+erase b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+erase new file mode 100644 index 000000000..39c766a55 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+erase differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+idc b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+idc new file mode 100644 index 000000000..90fc17df0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+idc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+idc1 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+idc1 new file mode 100644 index 000000000..686205119 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+idc1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+idl b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+idl new file mode 100644 index 000000000..335f79708 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+idl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+idl1 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+idl1 new file mode 100644 index 000000000..f743208cb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+idl1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+inittabs b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+inittabs new file mode 100644 index 000000000..4b14396e4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+inittabs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+local b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+local new file mode 100644 index 000000000..4a3abd053 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+local differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+local1 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+local1 new file mode 100644 index 000000000..5ec73b88a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+local1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+pp b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+pp new file mode 100644 index 000000000..7ab68b197 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+rca b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+rca new file mode 100644 index 000000000..554f8c13c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+rca differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+rca2 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+rca2 new file mode 100644 index 000000000..2c1175943 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+rca2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+rep b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+rep new file mode 100644 index 000000000..4f9ac6dcd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+rep differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgr b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgr new file mode 100644 index 000000000..2d9310241 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgrbold b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgrbold new file mode 100644 index 000000000..0a10f6a65 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgrbold differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgrdim b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgrdim new file mode 100644 index 000000000..29b7a517b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgrdim differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgrso b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgrso new file mode 100644 index 000000000..a6bc57f27 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgrso differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgrul b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgrul new file mode 100644 index 000000000..d07663a5b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+sgrul differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+tabs b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+tabs new file mode 100644 index 000000000..6ecec5c05 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi+tabs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-color-2-emx b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-color-2-emx new file mode 100644 index 000000000..4eab4da71 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-color-2-emx differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-color-3-emx b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-color-3-emx new file mode 100644 index 000000000..f3e0cdb78 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-color-3-emx differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-emx b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-emx new file mode 100644 index 000000000..837380764 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-emx differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-generic b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-generic new file mode 100644 index 000000000..8586543ae Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-generic differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-m b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-m new file mode 100644 index 000000000..df6fd7984 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-mini b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-mini new file mode 100644 index 000000000..c61fb7a56 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-mini differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-mono b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-mono new file mode 100644 index 000000000..df6fd7984 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-mono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-mr b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-mr new file mode 100644 index 000000000..de221e8d1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-mr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-mtabs b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-mtabs new file mode 100644 index 000000000..8474a291b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-mtabs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-nt b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-nt new file mode 100644 index 000000000..b6bc8b8f5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi-nt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi.sys b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi.sys new file mode 100644 index 000000000..3a2e620d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi.sys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi.sys-old b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi.sys-old new file mode 100644 index 000000000..3d0297122 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi.sys-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi.sysk b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi.sysk new file mode 100644 index 000000000..55c1aa7b9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi.sysk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi43m b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi43m new file mode 100644 index 000000000..be5691893 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi43m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi77 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi77 new file mode 100644 index 000000000..b7c11b185 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi77 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x25 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x25 new file mode 100644 index 000000000..5f138b4e8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x25-mono b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x25-mono new file mode 100644 index 000000000..7f88e1349 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x25-mono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x25-raw b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x25-raw new file mode 100644 index 000000000..e3621f7c2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x25-raw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x30 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x30 new file mode 100644 index 000000000..c725d598f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x30-mono b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x30-mono new file mode 100644 index 000000000..121cc7c39 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x30-mono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x43 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x43 new file mode 100644 index 000000000..866065426 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x43 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x43-mono b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x43-mono new file mode 100644 index 000000000..d468caac7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x43-mono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x50 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x50 new file mode 100644 index 000000000..de83c50c6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x50 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x50-mono b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x50-mono new file mode 100644 index 000000000..14291fcc8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x50-mono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x60 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x60 new file mode 100644 index 000000000..6596218ad Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x60 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x60-mono b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x60-mono new file mode 100644 index 000000000..5cf3100ca Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansi80x60-mono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansil b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansil new file mode 100644 index 000000000..de83c50c6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansil differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansil-mono b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansil-mono new file mode 100644 index 000000000..14291fcc8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansil-mono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansis b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansis new file mode 100644 index 000000000..5f138b4e8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansis differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansis-mono b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansis-mono new file mode 100644 index 000000000..7f88e1349 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansis-mono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansisysk b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansisysk new file mode 100644 index 000000000..55c1aa7b9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansisysk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansiterm b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansiterm new file mode 100644 index 000000000..8586543ae Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansiterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansiw b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansiw new file mode 100644 index 000000000..e3621f7c2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ansiw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/ap-vm80 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ap-vm80 new file mode 100644 index 000000000..b06370a52 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/ap-vm80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apl b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apl new file mode 100644 index 000000000..679a57441 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apollo b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apollo new file mode 100644 index 000000000..73bb4cbd9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apollo differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apollo_15P b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apollo_15P new file mode 100644 index 000000000..0a838b409 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apollo_15P differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apollo_19L b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apollo_19L new file mode 100644 index 000000000..d1cdd36f9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apollo_19L differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apollo_color b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apollo_color new file mode 100644 index 000000000..bcccd1ffa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apollo_color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-80 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-80 new file mode 100644 index 000000000..2d118a729 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-ae b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-ae new file mode 100644 index 000000000..a5a233531 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-ae differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-soroc b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-soroc new file mode 100644 index 000000000..c9fa67e89 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-soroc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-uterm b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-uterm new file mode 100644 index 000000000..eceebf470 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-uterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-uterm-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-uterm-vb new file mode 100644 index 000000000..047855e8a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-uterm-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-videx b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-videx new file mode 100644 index 000000000..9ab2869da Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-videx differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-videx2 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-videx2 new file mode 100644 index 000000000..62d35b26f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-videx2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-videx3 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-videx3 new file mode 100644 index 000000000..4d99501c6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-videx3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-vm80 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-vm80 new file mode 100644 index 000000000..b06370a52 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple-vm80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple2e b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple2e new file mode 100644 index 000000000..34cca2bac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple2e differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple2e-p b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple2e-p new file mode 100644 index 000000000..d9682667f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple2e-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple80p b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple80p new file mode 100644 index 000000000..60c92c6fd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/apple80p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/appleII b/code/application/source/sf_app/tools/blue/lib/terminfo/a/appleII new file mode 100644 index 000000000..9b78ce295 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/appleII differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/appleIIc b/code/application/source/sf_app/tools/blue/lib/terminfo/a/appleIIc new file mode 100644 index 000000000..1311b90c3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/appleIIc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/appleIIe b/code/application/source/sf_app/tools/blue/lib/terminfo/a/appleIIe new file mode 100644 index 000000000..1311b90c3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/appleIIe differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/appleIIgs b/code/application/source/sf_app/tools/blue/lib/terminfo/a/appleIIgs new file mode 100644 index 000000000..1311b90c3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/appleIIgs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/arm100 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/arm100 new file mode 100644 index 000000000..2729a3db5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/arm100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/arm100-am b/code/application/source/sf_app/tools/blue/lib/terminfo/a/arm100-am new file mode 100644 index 000000000..2729a3db5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/arm100-am differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/arm100-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/arm100-w new file mode 100644 index 000000000..c19035a96 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/arm100-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/arm100-wam b/code/application/source/sf_app/tools/blue/lib/terminfo/a/arm100-wam new file mode 100644 index 000000000..c19035a96 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/arm100-wam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/at b/code/application/source/sf_app/tools/blue/lib/terminfo/a/at new file mode 100644 index 000000000..b48ef93d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/at differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/at-color b/code/application/source/sf_app/tools/blue/lib/terminfo/a/at-color new file mode 100644 index 000000000..608e45420 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/at-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/at-m b/code/application/source/sf_app/tools/blue/lib/terminfo/a/at-m new file mode 100644 index 000000000..b48ef93d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/at-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/at386 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/at386 new file mode 100644 index 000000000..3da954272 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/at386 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari new file mode 100644 index 000000000..b48ef93d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari-color b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari-color new file mode 100644 index 000000000..608e45420 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari-m b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari-m new file mode 100644 index 000000000..b48ef93d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari-old b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari-old new file mode 100644 index 000000000..0539eb379 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari_st b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari_st new file mode 100644 index 000000000..b48ef93d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari_st differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari_st-color b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari_st-color new file mode 100644 index 000000000..608e45420 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atari_st-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/atarist-m b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atarist-m new file mode 100644 index 000000000..b48ef93d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/atarist-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aterm b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aterm new file mode 100644 index 000000000..c1fb40595 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att2300 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att2300 new file mode 100644 index 000000000..7ff7d52e6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att2300 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att2350 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att2350 new file mode 100644 index 000000000..f06fa9bd2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att2350 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4410 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4410 new file mode 100644 index 000000000..41072d663 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4410 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4410-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4410-w new file mode 100644 index 000000000..78d1777fa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4410-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4410v1 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4410v1 new file mode 100644 index 000000000..d7d7336bc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4410v1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4410v1-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4410v1-w new file mode 100644 index 000000000..96225b8ef Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4410v1-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415 new file mode 100644 index 000000000..c1ff8e5aa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415+nl b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415+nl new file mode 100644 index 000000000..b9a8de81d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415+nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-nl new file mode 100644 index 000000000..d2713dab0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-rv new file mode 100644 index 000000000..e729264e1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-rv-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-rv-nl new file mode 100644 index 000000000..e6dff515d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-rv-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-w new file mode 100644 index 000000000..dbed57e99 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-w-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-w-nl new file mode 100644 index 000000000..e045ecac1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-w-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-w-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-w-rv new file mode 100644 index 000000000..dde6ba9db Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-w-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-w-rv-n b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-w-rv-n new file mode 100644 index 000000000..3d13a44cf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4415-w-rv-n differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4418 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4418 new file mode 100644 index 000000000..490134783 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4418 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4418-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4418-w new file mode 100644 index 000000000..aac2f03f8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4418-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4420 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4420 new file mode 100644 index 000000000..8187d8a27 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4420 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4424 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4424 new file mode 100644 index 000000000..41b83bfa6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4424 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4424-1 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4424-1 new file mode 100644 index 000000000..860c736e5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4424-1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4424m b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4424m new file mode 100644 index 000000000..88e676969 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4424m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4425 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4425 new file mode 100644 index 000000000..e170c6545 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4425 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4425-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4425-nl new file mode 100644 index 000000000..c90e2a7b2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4425-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4425-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4425-w new file mode 100644 index 000000000..d072d8bcd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4425-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4426 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4426 new file mode 100644 index 000000000..510154af0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att4426 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att500 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att500 new file mode 100644 index 000000000..e7664d027 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att500 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att505 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att505 new file mode 100644 index 000000000..92dffac5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att505 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att505-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att505-24 new file mode 100644 index 000000000..bcccaaa7e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att505-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att510a b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att510a new file mode 100644 index 000000000..0814b449e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att510a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att510d b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att510d new file mode 100644 index 000000000..7e1fffe9a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att510d differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att513 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att513 new file mode 100644 index 000000000..e7664d027 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att513 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5310 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5310 new file mode 100644 index 000000000..fd5f22e74 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5310 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5320 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5320 new file mode 100644 index 000000000..fd5f22e74 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5320 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5410 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5410 new file mode 100644 index 000000000..41072d663 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5410 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5410-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5410-w new file mode 100644 index 000000000..78d1777fa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5410-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5410v1 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5410v1 new file mode 100644 index 000000000..d7d7336bc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5410v1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5410v1-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5410v1-w new file mode 100644 index 000000000..96225b8ef Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5410v1-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5418 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5418 new file mode 100644 index 000000000..490134783 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5418 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5418-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5418-w new file mode 100644 index 000000000..aac2f03f8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5418-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420 new file mode 100644 index 000000000..c1ff8e5aa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420+nl b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420+nl new file mode 100644 index 000000000..b9a8de81d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420+nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-nl new file mode 100644 index 000000000..d2713dab0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-rv new file mode 100644 index 000000000..e729264e1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-rv-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-rv-nl new file mode 100644 index 000000000..e6dff515d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-rv-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-w new file mode 100644 index 000000000..dbed57e99 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-w-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-w-nl new file mode 100644 index 000000000..e045ecac1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-w-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-w-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-w-rv new file mode 100644 index 000000000..dde6ba9db Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-w-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-w-rv-n b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-w-rv-n new file mode 100644 index 000000000..3d13a44cf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420-w-rv-n differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420_2 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420_2 new file mode 100644 index 000000000..a120f6e59 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420_2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420_2-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420_2-w new file mode 100644 index 000000000..d00b5a930 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5420_2-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5425 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5425 new file mode 100644 index 000000000..e170c6545 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5425 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5425-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5425-nl new file mode 100644 index 000000000..c90e2a7b2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5425-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5425-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5425-w new file mode 100644 index 000000000..d072d8bcd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5425-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5430 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5430 new file mode 100644 index 000000000..92dffac5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5430 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620 new file mode 100644 index 000000000..1bb40715f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620-1 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620-1 new file mode 100644 index 000000000..7212c7a1b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620-1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620-24 new file mode 100644 index 000000000..14c343120 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620-34 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620-34 new file mode 100644 index 000000000..a23f838bc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620-34 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620-s b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620-s new file mode 100644 index 000000000..56d4b5598 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att5620-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att605 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att605 new file mode 100644 index 000000000..3436ffe6f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att605 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att605-pc b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att605-pc new file mode 100644 index 000000000..e8b1b013d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att605-pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att605-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att605-w new file mode 100644 index 000000000..6c6eb540e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att605-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610 new file mode 100644 index 000000000..07d4094ae Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610+cvis b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610+cvis new file mode 100644 index 000000000..08ff6880b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610+cvis differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610+cvis0 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610+cvis0 new file mode 100644 index 000000000..85acfe2c3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610+cvis0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610-103k b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610-103k new file mode 100644 index 000000000..114b82a3f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610-103k differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610-103k-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610-103k-w new file mode 100644 index 000000000..5058bb4a3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610-103k-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610-w new file mode 100644 index 000000000..747bf8b0c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att610-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att615 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att615 new file mode 100644 index 000000000..210e673cd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att615 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att615-103k b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att615-103k new file mode 100644 index 000000000..d15d062db Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att615-103k differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att615-103k-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att615-103k-w new file mode 100644 index 000000000..b7df78dc3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att615-103k-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att615-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att615-w new file mode 100644 index 000000000..9114794a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att615-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att620 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att620 new file mode 100644 index 000000000..280c9e409 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att620 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att620-103k b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att620-103k new file mode 100644 index 000000000..b2a7e6798 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att620-103k differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att620-103k-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att620-103k-w new file mode 100644 index 000000000..65c613acb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att620-103k-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att620-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att620-w new file mode 100644 index 000000000..1cb786474 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att620-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att630 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att630 new file mode 100644 index 000000000..b98ce3981 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att630 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att630-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att630-24 new file mode 100644 index 000000000..0e8cd0f33 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att630-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att6386 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att6386 new file mode 100644 index 000000000..3da954272 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att6386 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att700 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att700 new file mode 100644 index 000000000..b7c1c848e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att700 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730 new file mode 100644 index 000000000..6d51ac927 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730-24 new file mode 100644 index 000000000..0e0e652f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730-41 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730-41 new file mode 100644 index 000000000..084540efd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730-41 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att7300 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att7300 new file mode 100644 index 000000000..b41843d6a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att7300 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730r b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730r new file mode 100644 index 000000000..b13723dd0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730r differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730r-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730r-24 new file mode 100644 index 000000000..71558c881 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730r-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730r-41 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730r-41 new file mode 100644 index 000000000..1a901e784 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/att730r-41 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avatar b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avatar new file mode 100644 index 000000000..15b4ae0ed Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avatar differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avatar0 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avatar0 new file mode 100644 index 000000000..4a3f7f95d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avatar0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avatar0+ b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avatar0+ new file mode 100644 index 000000000..664cd0de5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avatar0+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avatar1 b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avatar1 new file mode 100644 index 000000000..15b4ae0ed Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avatar1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt new file mode 100644 index 000000000..d38aa508e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt+s b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt+s new file mode 100644 index 000000000..0d338a8ba Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt+s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-ns b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-ns new file mode 100644 index 000000000..67312e8ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-ns differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-rv new file mode 100644 index 000000000..cddc50fa2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-rv-ns b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-rv-ns new file mode 100644 index 000000000..a4e087500 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-rv-ns differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-rv-s b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-rv-s new file mode 100644 index 000000000..cddc50fa2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-rv-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-s b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-s new file mode 100644 index 000000000..d38aa508e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w new file mode 100644 index 000000000..ced6270b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-ns b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-ns new file mode 100644 index 000000000..98ba135d2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-ns differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-rv new file mode 100644 index 000000000..97adedd60 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-rv-ns b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-rv-ns new file mode 100644 index 000000000..1c369ccab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-rv-ns differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-rv-s b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-rv-s new file mode 100644 index 000000000..97adedd60 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-rv-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-s b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-s new file mode 100644 index 000000000..ced6270b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/avt-w-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/aws b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aws new file mode 100644 index 000000000..68946fae4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/aws differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/a/awsc b/code/application/source/sf_app/tools/blue/lib/terminfo/a/awsc new file mode 100644 index 000000000..14400e7bd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/a/awsc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/b-128 b/code/application/source/sf_app/tools/blue/lib/terminfo/b/b-128 new file mode 100644 index 000000000..775ba0954 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/b-128 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bantam b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bantam new file mode 100644 index 000000000..2dc4fa3a3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bantam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/basic4 b/code/application/source/sf_app/tools/blue/lib/terminfo/b/basic4 new file mode 100644 index 000000000..640977a34 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/basic4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/basis b/code/application/source/sf_app/tools/blue/lib/terminfo/b/basis new file mode 100644 index 000000000..ff450f781 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/basis differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bct510a b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bct510a new file mode 100644 index 000000000..0814b449e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bct510a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bct510d b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bct510d new file mode 100644 index 000000000..7e1fffe9a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bct510d differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/beacon b/code/application/source/sf_app/tools/blue/lib/terminfo/b/beacon new file mode 100644 index 000000000..ff0130362 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/beacon differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bee b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bee new file mode 100644 index 000000000..7d56ce96b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bee differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/beehive b/code/application/source/sf_app/tools/blue/lib/terminfo/b/beehive new file mode 100644 index 000000000..7d56ce96b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/beehive differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/beehive3 b/code/application/source/sf_app/tools/blue/lib/terminfo/b/beehive3 new file mode 100644 index 000000000..1b813c847 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/beehive3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/beehive4 b/code/application/source/sf_app/tools/blue/lib/terminfo/b/beehive4 new file mode 100644 index 000000000..2d426d1eb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/beehive4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/beehiveIIIm b/code/application/source/sf_app/tools/blue/lib/terminfo/b/beehiveIIIm new file mode 100644 index 000000000..1b813c847 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/beehiveIIIm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/beterm b/code/application/source/sf_app/tools/blue/lib/terminfo/b/beterm new file mode 100644 index 000000000..7a897e115 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/beterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg1.25 b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg1.25 new file mode 100644 index 000000000..79fbd64a3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg1.25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg1.25nv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg1.25nv new file mode 100644 index 000000000..023e3aa72 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg1.25nv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg1.25rv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg1.25rv new file mode 100644 index 000000000..05245e794 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg1.25rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg2.0 b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg2.0 new file mode 100644 index 000000000..9c0b11d5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg2.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg2.0nv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg2.0nv new file mode 100644 index 000000000..50ff52d6c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg2.0nv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg2.0rv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg2.0rv new file mode 100644 index 000000000..2651e4c90 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg2.0rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg3.10 b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg3.10 new file mode 100644 index 000000000..9c0b11d5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg3.10 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg3.10nv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg3.10nv new file mode 100644 index 000000000..50ff52d6c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg3.10nv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg3.10rv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg3.10rv new file mode 100644 index 000000000..2651e4c90 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bg3.10rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bh3m b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bh3m new file mode 100644 index 000000000..1b813c847 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bh3m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bh4 b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bh4 new file mode 100644 index 000000000..2d426d1eb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bh4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bitgraph b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bitgraph new file mode 100644 index 000000000..50ff52d6c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bitgraph differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/blit b/code/application/source/sf_app/tools/blue/lib/terminfo/b/blit new file mode 100644 index 000000000..36a565fcd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/blit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bobcat b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bobcat new file mode 100644 index 000000000..a0ed4abe0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bobcat differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300 b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300 new file mode 100644 index 000000000..8e053086a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8 b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8 new file mode 100644 index 000000000..e7aa93522 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8-pc b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8-pc new file mode 100644 index 000000000..8fd3b2ea3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8-pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8-pc-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8-pc-rv new file mode 100644 index 000000000..385d7270e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8-pc-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8-pc-w b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8-pc-w new file mode 100644 index 000000000..604e91911 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8-pc-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8-pc-w-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8-pc-w-rv new file mode 100644 index 000000000..91c7026e4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8-pc-w-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8rv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8rv new file mode 100644 index 000000000..5325ea7c7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8w b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8w new file mode 100644 index 000000000..f303cb25c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-8w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-pc b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-pc new file mode 100644 index 000000000..8cb6820ae Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-pc-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-pc-rv new file mode 100644 index 000000000..948a8bff2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-pc-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-pc-w b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-pc-w new file mode 100644 index 000000000..b6983e4db Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-pc-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-pc-w-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-pc-w-rv new file mode 100644 index 000000000..c02aeb2dc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-pc-w-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-rv new file mode 100644 index 000000000..ee3c62d56 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-w b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-w new file mode 100644 index 000000000..afe5f9a85 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-w-8rv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-w-8rv new file mode 100644 index 000000000..a5906a102 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-w-8rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-w-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-w-rv new file mode 100644 index 000000000..4b5eaebd8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bq300-w-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-pc b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-pc new file mode 100644 index 000000000..c4ce9b492 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-pc-m b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-pc-m new file mode 100644 index 000000000..5ea4c1970 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-pc-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-pc-mono b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-pc-mono new file mode 100644 index 000000000..5ea4c1970 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-pc-mono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-pc-nobold b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-pc-nobold new file mode 100644 index 000000000..3c56fae64 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-pc-nobold differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-ppc b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-ppc new file mode 100644 index 000000000..b142cb9c6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-ppc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-sparc b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-sparc new file mode 100644 index 000000000..7a1bba83e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bsdos-sparc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/b/bterm b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bterm new file mode 100644 index 000000000..134f63e81 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/b/bterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100 new file mode 100644 index 000000000..e7cf57142 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100-1p b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100-1p new file mode 100644 index 000000000..67fa7a47e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100-1p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100-4p b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100-4p new file mode 100644 index 000000000..e7cf57142 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100-4p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100-rv new file mode 100644 index 000000000..e9a07708a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100-rv-4p b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100-rv-4p new file mode 100644 index 000000000..e9a07708a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c100-rv-4p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c104 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c104 new file mode 100644 index 000000000..e7cf57142 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c104 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108 new file mode 100644 index 000000000..ad192f887 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-4p b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-4p new file mode 100644 index 000000000..290bb6100 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-4p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-8p b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-8p new file mode 100644 index 000000000..ad192f887 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-8p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-rv new file mode 100644 index 000000000..239316133 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-rv-4p b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-rv-4p new file mode 100644 index 000000000..dcb2073f7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-rv-4p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-rv-8p b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-rv-8p new file mode 100644 index 000000000..239316133 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-rv-8p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-w b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-w new file mode 100644 index 000000000..ea54a6dfb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-w-8p b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-w-8p new file mode 100644 index 000000000..ea54a6dfb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c108-w-8p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c300 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c300 new file mode 100644 index 000000000..8b4ec9cc5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c300 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c301 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c301 new file mode 100644 index 000000000..d5228f94d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c301 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/c321 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c321 new file mode 100644 index 000000000..d5228f94d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/c321 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/ca22851 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/ca22851 new file mode 100644 index 000000000..0207839f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/ca22851 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cad68-2 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cad68-2 new file mode 100644 index 000000000..d513db5ce Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cad68-2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cad68-3 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cad68-3 new file mode 100644 index 000000000..726319ef8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cad68-3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cbblit b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cbblit new file mode 100644 index 000000000..1e1d2da9f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cbblit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cbunix b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cbunix new file mode 100644 index 000000000..e5e9677a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cbunix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cci b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cci new file mode 100644 index 000000000..c99e7b00d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cci differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cci1 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cci1 new file mode 100644 index 000000000..c99e7b00d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cci1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc456 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc456 new file mode 100644 index 000000000..a23755e2f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc456 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc721 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc721 new file mode 100644 index 000000000..09aa5d95a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc721 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc721-esc b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc721-esc new file mode 100644 index 000000000..a5f4b0c0b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc721-esc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc721ll b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc721ll new file mode 100644 index 000000000..0cb491fcd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc721ll differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc752 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc752 new file mode 100644 index 000000000..442a60975 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc752 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc756 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc756 new file mode 100644 index 000000000..9753985b9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cdc756 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cg7900 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cg7900 new file mode 100644 index 000000000..935a1cf43 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cg7900 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cgc2 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cgc2 new file mode 100644 index 000000000..d513db5ce Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cgc2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cgc3 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cgc3 new file mode 100644 index 000000000..726319ef8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cgc3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/chromatics b/code/application/source/sf_app/tools/blue/lib/terminfo/c/chromatics new file mode 100644 index 000000000..935a1cf43 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/chromatics differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/ci8510 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/ci8510 new file mode 100644 index 000000000..3ad2c7387 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/ci8510 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit-80 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit-80 new file mode 100644 index 000000000..c8220a83e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit-80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101 new file mode 100644 index 000000000..de5aaaa1e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e new file mode 100644 index 000000000..9856846c3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e-132 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e-132 new file mode 100644 index 000000000..e9012a6be Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e-132 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e-n b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e-n new file mode 100644 index 000000000..2c08f0a71 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e-n differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e-n132 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e-n132 new file mode 100644 index 000000000..d8aa14279 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e-n132 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e-rv new file mode 100644 index 000000000..23ab4e9f7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit101e-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit500 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit500 new file mode 100644 index 000000000..69047cd2c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit500 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit80 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit80 new file mode 100644 index 000000000..c8220a83e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cit80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/citc b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citc new file mode 100644 index 000000000..de5aaaa1e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh new file mode 100644 index 000000000..3ad2c7387 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-6lpi b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-6lpi new file mode 100644 index 000000000..3f1f3c11c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-6lpi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-8lpi b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-8lpi new file mode 100644 index 000000000..a8d2ed0cb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-8lpi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-comp b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-comp new file mode 100644 index 000000000..b1bb63168 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-comp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-elite b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-elite new file mode 100644 index 000000000..9f70d7a43 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-elite differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-pica b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-pica new file mode 100644 index 000000000..83f0e0183 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-pica differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-prop b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-prop new file mode 100644 index 000000000..2caacb2f8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-prop differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-ps b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-ps new file mode 100644 index 000000000..2caacb2f8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/citoh-ps differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/coco3 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/coco3 new file mode 100644 index 000000000..9d523da88 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/coco3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/coherent b/code/application/source/sf_app/tools/blue/lib/terminfo/c/coherent new file mode 100644 index 000000000..e6e3856d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/coherent differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/color_xterm b/code/application/source/sf_app/tools/blue/lib/terminfo/c/color_xterm new file mode 100644 index 000000000..39db8f8b8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/color_xterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/colorscan b/code/application/source/sf_app/tools/blue/lib/terminfo/c/colorscan new file mode 100644 index 000000000..ca8d9edaa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/colorscan differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/commodore b/code/application/source/sf_app/tools/blue/lib/terminfo/c/commodore new file mode 100644 index 000000000..775ba0954 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/commodore differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept new file mode 100644 index 000000000..e7cf57142 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept-avt b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept-avt new file mode 100644 index 000000000..d38aa508e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept-avt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept100 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept100 new file mode 100644 index 000000000..e7cf57142 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept100-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept100-rv new file mode 100644 index 000000000..e9a07708a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept100-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108 new file mode 100644 index 000000000..ad192f887 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108-4p b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108-4p new file mode 100644 index 000000000..290bb6100 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108-4p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108-8p b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108-8p new file mode 100644 index 000000000..ad192f887 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108-8p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108-w-8 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108-w-8 new file mode 100644 index 000000000..ea54a6dfb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108-w-8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108-w8p b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108-w8p new file mode 100644 index 000000000..ea54a6dfb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108-w8p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108rv4p b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108rv4p new file mode 100644 index 000000000..dcb2073f7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/concept108rv4p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25 new file mode 100644 index 000000000..5f138b4e8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-debian b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-debian new file mode 100644 index 000000000..a6892550e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-debian differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-iso-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-iso-m new file mode 100644 index 000000000..fead95f85 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-iso-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-iso8859 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-iso8859 new file mode 100644 index 000000000..df810962d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-iso8859 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-koi8-r b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-koi8-r new file mode 100644 index 000000000..0cb4322ea Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-koi8-r differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-koi8r-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-koi8r-m new file mode 100644 index 000000000..e5cab4c98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-koi8r-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-m new file mode 100644 index 000000000..7f88e1349 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25l1 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25l1 new file mode 100644 index 000000000..df810962d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25l1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25l1-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25l1-m new file mode 100644 index 000000000..fead95f85 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25l1-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25r b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25r new file mode 100644 index 000000000..0cb4322ea Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25r differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25r-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25r-m new file mode 100644 index 000000000..e5cab4c98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25r-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25w b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25w new file mode 100644 index 000000000..e3621f7c2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons25w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons30 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons30 new file mode 100644 index 000000000..c725d598f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons30-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons30-m new file mode 100644 index 000000000..121cc7c39 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons30-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons43 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons43 new file mode 100644 index 000000000..866065426 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons43 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons43-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons43-m new file mode 100644 index 000000000..d468caac7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons43-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50 new file mode 100644 index 000000000..de83c50c6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-iso-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-iso-m new file mode 100644 index 000000000..481103247 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-iso-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-iso8859 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-iso8859 new file mode 100644 index 000000000..862714a2f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-iso8859 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-koi8r b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-koi8r new file mode 100644 index 000000000..06ba5ddff Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-koi8r differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-koi8r-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-koi8r-m new file mode 100644 index 000000000..472deb48c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-koi8r-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-m new file mode 100644 index 000000000..14291fcc8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50l1 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50l1 new file mode 100644 index 000000000..862714a2f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50l1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50l1-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50l1-m new file mode 100644 index 000000000..481103247 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50l1-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50r b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50r new file mode 100644 index 000000000..06ba5ddff Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50r differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50r-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50r-m new file mode 100644 index 000000000..472deb48c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons50r-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60 new file mode 100644 index 000000000..6596218ad Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-iso b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-iso new file mode 100644 index 000000000..d0c29a701 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-iso differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-iso-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-iso-m new file mode 100644 index 000000000..3251968bc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-iso-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-koi8r b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-koi8r new file mode 100644 index 000000000..fa14b45fa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-koi8r differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-koi8r-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-koi8r-m new file mode 100644 index 000000000..2d0608799 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-koi8r-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-m new file mode 100644 index 000000000..5cf3100ca Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60l1 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60l1 new file mode 100644 index 000000000..d0c29a701 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60l1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60l1-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60l1-m new file mode 100644 index 000000000..3251968bc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60l1-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60r b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60r new file mode 100644 index 000000000..fa14b45fa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60r differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60r-m b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60r-m new file mode 100644 index 000000000..2d0608799 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cons60r-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/contel300 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/contel300 new file mode 100644 index 000000000..8b4ec9cc5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/contel300 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/contel301 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/contel301 new file mode 100644 index 000000000..d5228f94d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/contel301 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/contel320 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/contel320 new file mode 100644 index 000000000..8b4ec9cc5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/contel320 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/contel321 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/contel321 new file mode 100644 index 000000000..d5228f94d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/contel321 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cops b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cops new file mode 100644 index 000000000..2370fc908 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cops differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cops-10 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cops-10 new file mode 100644 index 000000000..2370fc908 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cops-10 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cops10 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cops10 new file mode 100644 index 000000000..2370fc908 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cops10 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/crt b/code/application/source/sf_app/tools/blue/lib/terminfo/c/crt new file mode 100644 index 000000000..e3b3d399d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/crt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/crt-vt220 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/crt-vt220 new file mode 100644 index 000000000..e3b3d399d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/crt-vt220 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cs10 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cs10 new file mode 100644 index 000000000..ca8d9edaa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cs10 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cs10-w b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cs10-w new file mode 100644 index 000000000..0b391568c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cs10-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/ct82 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/ct82 new file mode 100644 index 000000000..3e68f869e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/ct82 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/ct8500 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/ct8500 new file mode 100644 index 000000000..53dbac59f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/ct8500 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/ctrm b/code/application/source/sf_app/tools/blue/lib/terminfo/c/ctrm new file mode 100644 index 000000000..799ed1471 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/ctrm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cx b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cx new file mode 100644 index 000000000..39db8f8b8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cx differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cx100 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cx100 new file mode 100644 index 000000000..39db8f8b8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cx100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cyb110 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cyb110 new file mode 100644 index 000000000..b1763bf71 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cyb110 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cyb83 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cyb83 new file mode 100644 index 000000000..b64c62031 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cyb83 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cygwin b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cygwin new file mode 100644 index 000000000..8219fa6af Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cygwin differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cygwinB19 b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cygwinB19 new file mode 100644 index 000000000..4831774ae Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cygwinB19 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/c/cygwinDBG b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cygwinDBG new file mode 100644 index 000000000..5cf2f22f6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/c/cygwinDBG differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d132 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d132 new file mode 100644 index 000000000..84a24b999 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d132 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d2 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d2 new file mode 100644 index 000000000..ee16edb36 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d2-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d2-dg new file mode 100644 index 000000000..ee16edb36 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d2-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d200 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d200 new file mode 100644 index 000000000..55446063f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d200 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d200-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d200-dg new file mode 100644 index 000000000..55446063f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d200-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d210 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d210 new file mode 100644 index 000000000..3e8242ac0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d210 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d210-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d210-dg new file mode 100644 index 000000000..6d1e8319b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d210-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d211 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d211 new file mode 100644 index 000000000..10fd18414 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d211 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d211-7b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d211-7b new file mode 100644 index 000000000..0e61fe94d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d211-7b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d211-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d211-dg new file mode 100644 index 000000000..a0ff6fc5f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d211-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d214 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d214 new file mode 100644 index 000000000..3e8242ac0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d214 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d214-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d214-dg new file mode 100644 index 000000000..6d1e8319b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d214-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d215 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d215 new file mode 100644 index 000000000..10fd18414 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d215 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d215-7b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d215-7b new file mode 100644 index 000000000..0e61fe94d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d215-7b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d215-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d215-dg new file mode 100644 index 000000000..a0ff6fc5f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d215-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216+ b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216+ new file mode 100644 index 000000000..c4c16b4ac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216+25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216+25 new file mode 100644 index 000000000..faf415a1d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216+25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216+dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216+dg new file mode 100644 index 000000000..5b3edb18f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216+dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216-dg new file mode 100644 index 000000000..5b3edb18f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216-unix b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216-unix new file mode 100644 index 000000000..c4c16b4ac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216-unix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216-unix-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216-unix-25 new file mode 100644 index 000000000..faf415a1d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216-unix-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216e+ b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216e+ new file mode 100644 index 000000000..c4c16b4ac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216e+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216e+dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216e+dg new file mode 100644 index 000000000..5b3edb18f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216e+dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216e-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216e-dg new file mode 100644 index 000000000..5b3edb18f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216e-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216e-unix b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216e-unix new file mode 100644 index 000000000..c4c16b4ac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d216e-unix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d217-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d217-dg new file mode 100644 index 000000000..5b3edb18f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d217-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d217-unix b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d217-unix new file mode 100644 index 000000000..9e55d7937 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d217-unix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d217-unix-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d217-unix-25 new file mode 100644 index 000000000..ebbaabfb2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d217-unix-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d220 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d220 new file mode 100644 index 000000000..471c0840b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d220 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d220-7b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d220-7b new file mode 100644 index 000000000..70f6d094d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d220-7b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d220-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d220-dg new file mode 100644 index 000000000..90763dfb3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d220-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d230 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d230 new file mode 100644 index 000000000..daa8ef249 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d230 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d230-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d230-dg new file mode 100644 index 000000000..48bc33a44 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d230-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d230c b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d230c new file mode 100644 index 000000000..daa8ef249 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d230c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d230c-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d230c-dg new file mode 100644 index 000000000..48bc33a44 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d230c-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d400 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d400 new file mode 100644 index 000000000..f604db9ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d400 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d400-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d400-dg new file mode 100644 index 000000000..f604db9ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d400-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410 new file mode 100644 index 000000000..d395550f0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410-7b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410-7b new file mode 100644 index 000000000..4cdb866d6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410-7b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410-7b-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410-7b-w new file mode 100644 index 000000000..c88667c82 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410-7b-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410-dg new file mode 100644 index 000000000..13727caab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410-w new file mode 100644 index 000000000..b7ffad0dd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d410-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411 new file mode 100644 index 000000000..d395550f0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411-7b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411-7b new file mode 100644 index 000000000..4cdb866d6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411-7b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411-7b-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411-7b-w new file mode 100644 index 000000000..c88667c82 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411-7b-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411-dg new file mode 100644 index 000000000..13727caab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411-w new file mode 100644 index 000000000..b7ffad0dd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d411-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+ b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+ new file mode 100644 index 000000000..2b44c593a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+25 new file mode 100644 index 000000000..35535f5a9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+dg new file mode 100644 index 000000000..11f56017a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+s b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+s new file mode 100644 index 000000000..ba50cb605 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+sr b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+sr new file mode 100644 index 000000000..206aa742c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+sr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+w new file mode 100644 index 000000000..f2ffa2b49 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412+w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-dg new file mode 100644 index 000000000..11f56017a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix new file mode 100644 index 000000000..2b44c593a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix-25 new file mode 100644 index 000000000..35535f5a9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix-s b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix-s new file mode 100644 index 000000000..ba50cb605 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix-sr b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix-sr new file mode 100644 index 000000000..206aa742c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix-sr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix-w new file mode 100644 index 000000000..f2ffa2b49 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d412-unix-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-dg new file mode 100644 index 000000000..11f56017a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix new file mode 100644 index 000000000..307399a04 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix-25 new file mode 100644 index 000000000..7bc88ec3c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix-s b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix-s new file mode 100644 index 000000000..70868c484 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix-sr b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix-sr new file mode 100644 index 000000000..b85e48023 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix-sr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix-w new file mode 100644 index 000000000..5f30d6886 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d413-unix-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix new file mode 100644 index 000000000..f16031a03 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix-25 new file mode 100644 index 000000000..db8d41161 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix-s b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix-s new file mode 100644 index 000000000..4147d9d13 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix-sr b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix-sr new file mode 100644 index 000000000..31a5a6555 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix-sr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix-w new file mode 100644 index 000000000..4ea96d286 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d414-unix-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-dg new file mode 100644 index 000000000..5fa59972b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-dg-ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-dg-ccc new file mode 100644 index 000000000..9305fc116 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-dg-ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix new file mode 100644 index 000000000..0035471f8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-25 new file mode 100644 index 000000000..3dc6bb8e6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-25-ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-25-ccc new file mode 100644 index 000000000..ac3b8fe22 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-25-ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-ccc new file mode 100644 index 000000000..23880b46e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-s b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-s new file mode 100644 index 000000000..f2a737257 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-s-ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-s-ccc new file mode 100644 index 000000000..9846dc9e8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-s-ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-sr b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-sr new file mode 100644 index 000000000..8741b2c8f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-sr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-sr-ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-sr-ccc new file mode 100644 index 000000000..762866113 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-sr-ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-w new file mode 100644 index 000000000..b259b4c8d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-w-ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-w-ccc new file mode 100644 index 000000000..49f6e3437 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430-unix-w-ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-dg new file mode 100644 index 000000000..5fa59972b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-dg-ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-dg-ccc new file mode 100644 index 000000000..9305fc116 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-dg-ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix new file mode 100644 index 000000000..0035471f8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-25 new file mode 100644 index 000000000..3dc6bb8e6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-25-ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-25-ccc new file mode 100644 index 000000000..ac3b8fe22 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-25-ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-ccc new file mode 100644 index 000000000..23880b46e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-s b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-s new file mode 100644 index 000000000..f2a737257 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-s-ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-s-ccc new file mode 100644 index 000000000..9846dc9e8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-s-ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-sr b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-sr new file mode 100644 index 000000000..8741b2c8f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-sr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-sr-ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-sr-ccc new file mode 100644 index 000000000..762866113 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-sr-ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-w new file mode 100644 index 000000000..b259b4c8d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-w-ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-w-ccc new file mode 100644 index 000000000..49f6e3437 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d430c-unix-w-ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d450 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d450 new file mode 100644 index 000000000..f604db9ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d450 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d450-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d450-dg new file mode 100644 index 000000000..f604db9ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d450-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460 new file mode 100644 index 000000000..d395550f0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460-7b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460-7b new file mode 100644 index 000000000..4cdb866d6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460-7b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460-7b-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460-7b-w new file mode 100644 index 000000000..c88667c82 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460-7b-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460-dg new file mode 100644 index 000000000..13727caab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460-w new file mode 100644 index 000000000..b7ffad0dd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d460-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461 new file mode 100644 index 000000000..d395550f0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461-7b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461-7b new file mode 100644 index 000000000..4cdb866d6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461-7b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461-7b-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461-7b-w new file mode 100644 index 000000000..c88667c82 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461-7b-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461-dg new file mode 100644 index 000000000..13727caab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461-w new file mode 100644 index 000000000..b7ffad0dd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d461-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+ b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+ new file mode 100644 index 000000000..2b44c593a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+25 new file mode 100644 index 000000000..35535f5a9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+dg new file mode 100644 index 000000000..11f56017a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+s b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+s new file mode 100644 index 000000000..ba50cb605 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+sr b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+sr new file mode 100644 index 000000000..206aa742c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+sr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+w new file mode 100644 index 000000000..f2ffa2b49 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462+w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-dg new file mode 100644 index 000000000..11f56017a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix new file mode 100644 index 000000000..2b44c593a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix-25 new file mode 100644 index 000000000..35535f5a9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix-s b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix-s new file mode 100644 index 000000000..ba50cb605 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix-sr b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix-sr new file mode 100644 index 000000000..206aa742c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix-sr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix-w new file mode 100644 index 000000000..f2ffa2b49 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462-unix-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462e-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462e-dg new file mode 100644 index 000000000..11f56017a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d462e-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-dg new file mode 100644 index 000000000..11f56017a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix new file mode 100644 index 000000000..307399a04 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix-25 new file mode 100644 index 000000000..7bc88ec3c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix-s b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix-s new file mode 100644 index 000000000..70868c484 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix-sr b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix-sr new file mode 100644 index 000000000..b85e48023 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix-sr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix-w new file mode 100644 index 000000000..5f30d6886 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d463-unix-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix new file mode 100644 index 000000000..f16031a03 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix-25 new file mode 100644 index 000000000..db8d41161 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix-s b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix-s new file mode 100644 index 000000000..4147d9d13 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix-sr b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix-sr new file mode 100644 index 000000000..31a5a6555 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix-sr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix-w new file mode 100644 index 000000000..4ea96d286 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d464-unix-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470 new file mode 100644 index 000000000..ed3af2f92 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470-7b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470-7b new file mode 100644 index 000000000..128577dc5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470-7b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470-dg new file mode 100644 index 000000000..7c8ae2460 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470c b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470c new file mode 100644 index 000000000..ed3af2f92 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470c-7b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470c-7b new file mode 100644 index 000000000..128577dc5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470c-7b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470c-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470c-dg new file mode 100644 index 000000000..7c8ae2460 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d470c-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555 new file mode 100644 index 000000000..9ec684248 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555-7b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555-7b new file mode 100644 index 000000000..add213656 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555-7b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555-7b-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555-7b-w new file mode 100644 index 000000000..6981c94b8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555-7b-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555-dg new file mode 100644 index 000000000..95c67cfeb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555-w new file mode 100644 index 000000000..13b08e7d0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d555-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577 new file mode 100644 index 000000000..ea9c0aede Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577-7b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577-7b new file mode 100644 index 000000000..c79540bf3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577-7b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577-7b-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577-7b-w new file mode 100644 index 000000000..d97c6637d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577-7b-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577-dg new file mode 100644 index 000000000..ca069eea5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577-w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577-w new file mode 100644 index 000000000..3ef6c7d46 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d577-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d578 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d578 new file mode 100644 index 000000000..93c153577 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d578 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d578-7b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d578-7b new file mode 100644 index 000000000..526b9016e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d578-7b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d578-dg b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d578-dg new file mode 100644 index 000000000..ca069eea5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d578-dg differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d80 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d80 new file mode 100644 index 000000000..1265d5edd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/d800 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d800 new file mode 100644 index 000000000..7c605c869 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/d800 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin new file mode 100644 index 000000000..9430bd910 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-100x37 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-100x37 new file mode 100644 index 000000000..cff1ad007 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-100x37 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-100x37-m b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-100x37-m new file mode 100644 index 000000000..006bee454 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-100x37-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-112x37 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-112x37 new file mode 100644 index 000000000..d32e88658 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-112x37 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-112x37-m b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-112x37-m new file mode 100644 index 000000000..68f30eab5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-112x37-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-128x40 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-128x40 new file mode 100644 index 000000000..e44c8b927 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-128x40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-128x40-m b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-128x40-m new file mode 100644 index 000000000..26b4fc0dd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-128x40-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-128x48 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-128x48 new file mode 100644 index 000000000..5aa2dae00 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-128x48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-128x48-m b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-128x48-m new file mode 100644 index 000000000..7e1b164b5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-128x48-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-144x48 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-144x48 new file mode 100644 index 000000000..f4fd2a278 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-144x48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-144x48-m b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-144x48-m new file mode 100644 index 000000000..73f3fbfef Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-144x48-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-160x64 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-160x64 new file mode 100644 index 000000000..9b36a8e47 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-160x64 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-160x64-m b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-160x64-m new file mode 100644 index 000000000..b0b86577d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-160x64-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-200x64 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-200x64 new file mode 100644 index 000000000..ae53526c7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-200x64 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-200x64-m b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-200x64-m new file mode 100644 index 000000000..43154a6d1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-200x64-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-200x75 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-200x75 new file mode 100644 index 000000000..55d5f61bf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-200x75 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-200x75-m b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-200x75-m new file mode 100644 index 000000000..55130c708 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-200x75-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-256x96 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-256x96 new file mode 100644 index 000000000..44c15e1cb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-256x96 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-256x96-m b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-256x96-m new file mode 100644 index 000000000..f3fa39f4c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-256x96-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-80x25 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-80x25 new file mode 100644 index 000000000..eab20c2a2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-80x25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-80x25-m b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-80x25-m new file mode 100644 index 000000000..9e5c164df Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-80x25-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-80x30 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-80x30 new file mode 100644 index 000000000..00f123c43 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-80x30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-80x30-m b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-80x30-m new file mode 100644 index 000000000..b10071893 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-80x30-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-90x30 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-90x30 new file mode 100644 index 000000000..ea1a7c419 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-90x30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-90x30-m b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-90x30-m new file mode 100644 index 000000000..95bf04afa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-90x30-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-b new file mode 100644 index 000000000..f44dfc8fd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-f b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-f new file mode 100644 index 000000000..70bc6beb3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-f differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-f2 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-f2 new file mode 100644 index 000000000..1f715b8f2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-f2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-m b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-m new file mode 100644 index 000000000..f6c59d823 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-m-b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-m-b new file mode 100644 index 000000000..c17a92f1d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-m-b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-m-f b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-m-f new file mode 100644 index 000000000..e4799da68 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-m-f differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-m-f2 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-m-f2 new file mode 100644 index 000000000..ba0a9b69c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/darwin-m-f2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/datagraphix b/code/application/source/sf_app/tools/blue/lib/terminfo/d/datagraphix new file mode 100644 index 000000000..84a24b999 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/datagraphix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/datamedia2500 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/datamedia2500 new file mode 100644 index 000000000..189770275 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/datamedia2500 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/datapoint b/code/application/source/sf_app/tools/blue/lib/terminfo/d/datapoint new file mode 100644 index 000000000..4fa6a8499 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/datapoint differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dataspeed40 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dataspeed40 new file mode 100644 index 000000000..c9cf50f53 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dataspeed40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dd5000 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dd5000 new file mode 100644 index 000000000..97d85915c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dd5000 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/ddr b/code/application/source/sf_app/tools/blue/lib/terminfo/d/ddr new file mode 100644 index 000000000..75b1dffe5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/ddr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/ddr3180 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/ddr3180 new file mode 100644 index 000000000..75b1dffe5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/ddr3180 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec+pp b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec+pp new file mode 100644 index 000000000..598bc12f8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec+pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec+sl b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec+sl new file mode 100644 index 000000000..b8d5d1106 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec+sl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt100 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt100 new file mode 100644 index 000000000..fe142da6a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt220 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt220 new file mode 100644 index 000000000..1a7c357ae Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt220 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt330 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt330 new file mode 100644 index 000000000..68fae40da Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt330 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt340 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt340 new file mode 100644 index 000000000..68fae40da Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt340 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt400 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt400 new file mode 100644 index 000000000..219c1c048 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dec-vt400 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/decansi b/code/application/source/sf_app/tools/blue/lib/terminfo/d/decansi new file mode 100644 index 000000000..6e5453631 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/decansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/decpro b/code/application/source/sf_app/tools/blue/lib/terminfo/d/decpro new file mode 100644 index 000000000..e73dc1221 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/decpro differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/decwriter b/code/application/source/sf_app/tools/blue/lib/terminfo/d/decwriter new file mode 100644 index 000000000..3a68990be Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/decwriter differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/delta b/code/application/source/sf_app/tools/blue/lib/terminfo/d/delta new file mode 100644 index 000000000..97d85915c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/delta differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg+ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg+ccc new file mode 100644 index 000000000..b9aeb8696 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg+ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg+color b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg+color new file mode 100644 index 000000000..13c20caa0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg+color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg+color8 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg+color8 new file mode 100644 index 000000000..f347b4043 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg+color8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg+fixed b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg+fixed new file mode 100644 index 000000000..1cb3cd387 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg+fixed differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg-ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg-ansi new file mode 100644 index 000000000..fd5d2875c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg-ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg-generic b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg-generic new file mode 100644 index 000000000..5189f7503 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg-generic differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg100 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg100 new file mode 100644 index 000000000..ab17856df Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg200 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg200 new file mode 100644 index 000000000..f24ff5665 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg200 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg210 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg210 new file mode 100644 index 000000000..fd5d2875c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg210 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg211 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg211 new file mode 100644 index 000000000..394e4a73b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg211 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg450 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg450 new file mode 100644 index 000000000..981a25fdb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg450 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg460-ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg460-ansi new file mode 100644 index 000000000..7c9c41c05 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg460-ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg6053 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg6053 new file mode 100644 index 000000000..ee16edb36 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg6053 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg6053-old b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg6053-old new file mode 100644 index 000000000..ab17856df Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg6053-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg605x b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg605x new file mode 100644 index 000000000..ee16edb36 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg605x differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg6134 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg6134 new file mode 100644 index 000000000..981a25fdb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dg6134 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgkeys+11 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgkeys+11 new file mode 100644 index 000000000..b3fa2a351 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgkeys+11 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgkeys+15 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgkeys+15 new file mode 100644 index 000000000..02c3b7e36 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgkeys+15 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgkeys+7b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgkeys+7b new file mode 100644 index 000000000..d18c5077a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgkeys+7b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgkeys+8b b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgkeys+8b new file mode 100644 index 000000000..d791dd6cf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgkeys+8b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgmode+color b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgmode+color new file mode 100644 index 000000000..2fc3d8c8a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgmode+color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgmode+color8 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgmode+color8 new file mode 100644 index 000000000..dc99303ac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgmode+color8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgunix+ccc b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgunix+ccc new file mode 100644 index 000000000..7ae82c09c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgunix+ccc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgunix+fixed b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgunix+fixed new file mode 100644 index 000000000..2fc3ff559 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dgunix+fixed differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo new file mode 100644 index 000000000..6d9b14d4f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo-lm b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo-lm new file mode 100644 index 000000000..ce7f55e89 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo-lm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1620 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1620 new file mode 100644 index 000000000..cc643490b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1620 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1620-m8 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1620-m8 new file mode 100644 index 000000000..e406b9858 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1620-m8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1640 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1640 new file mode 100644 index 000000000..6d9b14d4f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1640 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1640-lm b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1640-lm new file mode 100644 index 000000000..ce7f55e89 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1640-lm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1640-m8 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1640-m8 new file mode 100644 index 000000000..e406b9858 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1640-m8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1720 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1720 new file mode 100644 index 000000000..cc643490b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1720 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1730 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1730 new file mode 100644 index 000000000..6d9b14d4f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1730 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1740 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1740 new file mode 100644 index 000000000..6d9b14d4f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1740 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1740-lm b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1740-lm new file mode 100644 index 000000000..4aeeb984a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo1740-lm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo450 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo450 new file mode 100644 index 000000000..cc643490b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo450 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo630 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo630 new file mode 100644 index 000000000..6d9b14d4f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/diablo630 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dialogue b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dialogue new file mode 100644 index 000000000..1265d5edd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dialogue differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dialogue80 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dialogue80 new file mode 100644 index 000000000..1265d5edd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dialogue80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/digilog b/code/application/source/sf_app/tools/blue/lib/terminfo/d/digilog new file mode 100644 index 000000000..7c3572b53 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/digilog differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/djgpp b/code/application/source/sf_app/tools/blue/lib/terminfo/d/djgpp new file mode 100644 index 000000000..cbe310972 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/djgpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/djgpp203 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/djgpp203 new file mode 100644 index 000000000..a77689c7e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/djgpp203 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/djgpp204 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/djgpp204 new file mode 100644 index 000000000..b6476bca4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/djgpp204 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7003 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7003 new file mode 100644 index 000000000..9ae57b4dc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7003 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7003-dumb b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7003-dumb new file mode 100644 index 000000000..e53ba328b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7003-dumb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7102 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7102 new file mode 100644 index 000000000..0fb7b53c0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7102 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7102-old b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7102-old new file mode 100644 index 000000000..cc3ccb557 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7102-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7102-sna b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7102-sna new file mode 100644 index 000000000..6147bfbe1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7102-sna differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7103-sna b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7103-sna new file mode 100644 index 000000000..17cfc916e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7103-sna differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7202 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7202 new file mode 100644 index 000000000..1d7e7f35b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dku7202 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm1520 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm1520 new file mode 100644 index 000000000..2e9dc219b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm1520 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm1521 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm1521 new file mode 100644 index 000000000..2e9dc219b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm1521 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm2500 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm2500 new file mode 100644 index 000000000..189770275 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm2500 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm3025 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm3025 new file mode 100644 index 000000000..5f70c5b08 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm3025 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm3045 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm3045 new file mode 100644 index 000000000..bc75a27c6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm3045 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm80 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm80 new file mode 100644 index 000000000..432468cb8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm80w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm80w new file mode 100644 index 000000000..86da6fc32 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dm80w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmchat b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmchat new file mode 100644 index 000000000..3ea6a130e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmchat differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmd b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmd new file mode 100644 index 000000000..1bb40715f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmd differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmd-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmd-24 new file mode 100644 index 000000000..14c343120 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmd-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmd-34 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmd-34 new file mode 100644 index 000000000..a23f838bc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmd-34 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmd1 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmd1 new file mode 100644 index 000000000..7212c7a1b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmd1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmdt80 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmdt80 new file mode 100644 index 000000000..432468cb8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmdt80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmdt80w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmdt80w new file mode 100644 index 000000000..86da6fc32 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmdt80w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmterm b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmterm new file mode 100644 index 000000000..17fc3793e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dmterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/domterm b/code/application/source/sf_app/tools/blue/lib/terminfo/d/domterm new file mode 100644 index 000000000..e3995deba Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/domterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dp3360 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dp3360 new file mode 100644 index 000000000..4fa6a8499 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dp3360 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dp8242 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dp8242 new file mode 100644 index 000000000..59ae84aba Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dp8242 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/ds40 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/ds40 new file mode 100644 index 000000000..c9cf50f53 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/ds40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/ds40-2 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/ds40-2 new file mode 100644 index 000000000..c9cf50f53 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/ds40-2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt-100 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt-100 new file mode 100644 index 000000000..5792c0af0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt-100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt-100w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt-100w new file mode 100644 index 000000000..b0b0ec2b3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt-100w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt100 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt100 new file mode 100644 index 000000000..5792c0af0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt100w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt100w new file mode 100644 index 000000000..b0b0ec2b3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt100w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt110 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt110 new file mode 100644 index 000000000..c86b73c46 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt110 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt80 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt80 new file mode 100644 index 000000000..432468cb8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt80-sas b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt80-sas new file mode 100644 index 000000000..b1c406afd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt80-sas differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt80w b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt80w new file mode 100644 index 000000000..86da6fc32 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dt80w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dtc300s b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dtc300s new file mode 100644 index 000000000..da2b83c08 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dtc300s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dtc382 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dtc382 new file mode 100644 index 000000000..4afa383fc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dtc382 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dtterm b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dtterm new file mode 100644 index 000000000..97dce4f6c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dtterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dumb b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dumb new file mode 100644 index 000000000..fd4091a99 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dumb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dumb-emacs-ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dumb-emacs-ansi new file mode 100644 index 000000000..b6df432d2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dumb-emacs-ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dvtm b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dvtm new file mode 100644 index 000000000..567b8bef8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dvtm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dvtm-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dvtm-256color new file mode 100644 index 000000000..be06df202 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dvtm-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw new file mode 100644 index 000000000..3a68990be Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw1 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw1 new file mode 100644 index 000000000..8f874a665 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw2 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw2 new file mode 100644 index 000000000..3a68990be Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw3 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw3 new file mode 100644 index 000000000..834885b62 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw4 b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw4 new file mode 100644 index 000000000..e6c9bdf23 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dw4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dwk b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dwk new file mode 100644 index 000000000..dbb96d2fb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dwk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/d/dwk-vt b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dwk-vt new file mode 100644 index 000000000..dbb96d2fb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/d/dwk-vt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+color b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+color new file mode 100644 index 000000000..701833a36 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+index b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+index new file mode 100644 index 000000000..03592464c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+index differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+italics b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+italics new file mode 100644 index 000000000..9069f9dec Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+italics differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+sgr b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+sgr new file mode 100644 index 000000000..d0bf04813 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+sgr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+strikeout b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+strikeout new file mode 100644 index 000000000..6dee4277c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ecma+strikeout differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/elks b/code/application/source/sf_app/tools/blue/lib/terminfo/e/elks new file mode 100644 index 000000000..66676dfaa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/elks differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/elks-ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/e/elks-ansi new file mode 100644 index 000000000..12e480aee Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/elks-ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/elks-glasstty b/code/application/source/sf_app/tools/blue/lib/terminfo/e/elks-glasstty new file mode 100644 index 000000000..3c87714f5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/elks-glasstty differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/elks-vt52 b/code/application/source/sf_app/tools/blue/lib/terminfo/e/elks-vt52 new file mode 100644 index 000000000..94ab385df Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/elks-vt52 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/emots b/code/application/source/sf_app/tools/blue/lib/terminfo/e/emots new file mode 100644 index 000000000..37518ed6a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/emots differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/emu b/code/application/source/sf_app/tools/blue/lib/terminfo/e/emu new file mode 100644 index 000000000..5f8ef2460 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/emu differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/emu-220 b/code/application/source/sf_app/tools/blue/lib/terminfo/e/emu-220 new file mode 100644 index 000000000..65eee9ea1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/emu-220 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/emx-base b/code/application/source/sf_app/tools/blue/lib/terminfo/e/emx-base new file mode 100644 index 000000000..4be472514 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/emx-base differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/env230 b/code/application/source/sf_app/tools/blue/lib/terminfo/e/env230 new file mode 100644 index 000000000..26c22a1eb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/env230 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/envision230 b/code/application/source/sf_app/tools/blue/lib/terminfo/e/envision230 new file mode 100644 index 000000000..26c22a1eb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/envision230 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/ep40 b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ep40 new file mode 100644 index 000000000..6fb53c1e1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ep40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/ep4000 b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ep4000 new file mode 100644 index 000000000..6fb53c1e1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ep4000 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/ep4080 b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ep4080 new file mode 100644 index 000000000..7f04a5a0b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ep4080 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/ep48 b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ep48 new file mode 100644 index 000000000..7f04a5a0b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ep48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/ergo4000 b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ergo4000 new file mode 100644 index 000000000..190134415 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ergo4000 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/esprit b/code/application/source/sf_app/tools/blue/lib/terminfo/e/esprit new file mode 100644 index 000000000..049558ba2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/esprit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/esprit-am b/code/application/source/sf_app/tools/blue/lib/terminfo/e/esprit-am new file mode 100644 index 000000000..99f702604 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/esprit-am differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/eterm b/code/application/source/sf_app/tools/blue/lib/terminfo/e/eterm new file mode 100644 index 000000000..6289637a8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/eterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/eterm-color b/code/application/source/sf_app/tools/blue/lib/terminfo/e/eterm-color new file mode 100644 index 000000000..8841dad14 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/eterm-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/ex155 b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ex155 new file mode 100644 index 000000000..be3dbbefb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/ex155 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel62 b/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel62 new file mode 100644 index 000000000..af8982796 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel62 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel62-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel62-rv new file mode 100644 index 000000000..71880dcda Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel62-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel62-w b/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel62-w new file mode 100644 index 000000000..d534b10d5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel62-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel64 b/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel64 new file mode 100644 index 000000000..af8982796 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel64 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel64-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel64-rv new file mode 100644 index 000000000..71880dcda Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel64-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel64-w b/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel64-w new file mode 100644 index 000000000..d534b10d5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/excel64-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/e/exec80 b/code/application/source/sf_app/tools/blue/lib/terminfo/e/exec80 new file mode 100644 index 000000000..c127fda86 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/e/exec80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/f100 b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f100 new file mode 100644 index 000000000..1e95ecaf6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/f100-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f100-rv new file mode 100644 index 000000000..9e5b92e2a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f100-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/f110 b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f110 new file mode 100644 index 000000000..534849914 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f110 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/f110-14 b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f110-14 new file mode 100644 index 000000000..ebec110ca Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f110-14 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/f110-14w b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f110-14w new file mode 100644 index 000000000..c55b40301 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f110-14w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/f110-w b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f110-w new file mode 100644 index 000000000..48bfe4fef Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f110-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/f1720 b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f1720 new file mode 100644 index 000000000..13837dc3b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f1720 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/f1720a b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f1720a new file mode 100644 index 000000000..13837dc3b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f1720a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/f200 b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f200 new file mode 100644 index 000000000..70f088231 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f200 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/f200-w b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f200-w new file mode 100644 index 000000000..4fc13603b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f200-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/f200vi b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f200vi new file mode 100644 index 000000000..c75c9071a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f200vi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/f200vi-w b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f200vi-w new file mode 100644 index 000000000..0f4fbe6fb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/f200vi-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/falco b/code/application/source/sf_app/tools/blue/lib/terminfo/f/falco new file mode 100644 index 000000000..c927125d8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/falco differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/falco-p b/code/application/source/sf_app/tools/blue/lib/terminfo/f/falco-p new file mode 100644 index 000000000..e4b59d214 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/falco-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/fbterm b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fbterm new file mode 100644 index 000000000..d17c78575 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fbterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/fenix b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fenix new file mode 100644 index 000000000..cf224e6f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fenix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/fenixw b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fenixw new file mode 100644 index 000000000..1f73e3468 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fenixw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/fixterm b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fixterm new file mode 100644 index 000000000..1e1d2da9f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fixterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/foot b/code/application/source/sf_app/tools/blue/lib/terminfo/f/foot new file mode 100644 index 000000000..681a18a4a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/foot differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/foot+base b/code/application/source/sf_app/tools/blue/lib/terminfo/f/foot+base new file mode 100644 index 000000000..f49cfa64d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/foot+base differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/foot-direct b/code/application/source/sf_app/tools/blue/lib/terminfo/f/foot-direct new file mode 100644 index 000000000..fb8d0c4fb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/foot-direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/fortune b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fortune new file mode 100644 index 000000000..518ed94a2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fortune differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/fos b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fos new file mode 100644 index 000000000..518ed94a2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fos differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/fox b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fox new file mode 100644 index 000000000..210f592db Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/fox differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom b/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom new file mode 100644 index 000000000..1e95ecaf6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom-rv new file mode 100644 index 000000000..9e5b92e2a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom100 b/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom100 new file mode 100644 index 000000000..1e95ecaf6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom110 b/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom110 new file mode 100644 index 000000000..534849914 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom110 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom200 b/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom200 new file mode 100644 index 000000000..70f088231 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/f/freedom200 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gator b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gator new file mode 100644 index 000000000..1a6fd6cf7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gator differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gator-52 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gator-52 new file mode 100644 index 000000000..7d158aebc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gator-52 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gator-52t b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gator-52t new file mode 100644 index 000000000..ff867125e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gator-52t differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gator-t b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gator-t new file mode 100644 index 000000000..452bf1631 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gator-t differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gigi b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gigi new file mode 100644 index 000000000..94340a85a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gigi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/glasstty b/code/application/source/sf_app/tools/blue/lib/terminfo/g/glasstty new file mode 100644 index 000000000..53f72cfd5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/glasstty differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome new file mode 100644 index 000000000..6266c34f1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome+pcfkeys b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome+pcfkeys new file mode 100644 index 000000000..457e8c930 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome+pcfkeys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-2007 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-2007 new file mode 100644 index 000000000..173f02396 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-2007 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-2008 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-2008 new file mode 100644 index 000000000..a09b15338 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-2008 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-2012 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-2012 new file mode 100644 index 000000000..e56a4ffa3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-2012 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-256color new file mode 100644 index 000000000..72e96acfd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-fc5 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-fc5 new file mode 100644 index 000000000..a3b28977f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-fc5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-rh62 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-rh62 new file mode 100644 index 000000000..ceae85e77 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-rh62 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-rh72 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-rh72 new file mode 100644 index 000000000..70f74f47a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-rh72 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-rh80 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-rh80 new file mode 100644 index 000000000..3965f5726 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-rh80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-rh90 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-rh90 new file mode 100644 index 000000000..f6b2f8437 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gnome-rh90 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/go-225 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/go-225 new file mode 100644 index 000000000..1d2afcb9c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/go-225 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/go140 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/go140 new file mode 100644 index 000000000..4c8af56b5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/go140 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/go140w b/code/application/source/sf_app/tools/blue/lib/terminfo/g/go140w new file mode 100644 index 000000000..9de0c2587 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/go140w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/go225 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/go225 new file mode 100644 index 000000000..1d2afcb9c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/go225 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/graphos b/code/application/source/sf_app/tools/blue/lib/terminfo/g/graphos new file mode 100644 index 000000000..7a627b336 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/graphos differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/graphos-30 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/graphos-30 new file mode 100644 index 000000000..c789400c8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/graphos-30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gs5430 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gs5430 new file mode 100644 index 000000000..92dffac5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gs5430 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gs5430-22 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gs5430-22 new file mode 100644 index 000000000..e452c35af Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gs5430-22 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gs5430-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gs5430-24 new file mode 100644 index 000000000..bcccaaa7e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gs5430-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gs6300 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gs6300 new file mode 100644 index 000000000..37518ed6a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gs6300 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gsi b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gsi new file mode 100644 index 000000000..5e5d97055 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gsi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gt100 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gt100 new file mode 100644 index 000000000..cc9ff857a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gt100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gt100a b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gt100a new file mode 100644 index 000000000..cc9ff857a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gt100a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gt40 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gt40 new file mode 100644 index 000000000..ce7f7026d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gt40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/gt42 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gt42 new file mode 100644 index 000000000..4cba3d31b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/gt42 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru new file mode 100644 index 000000000..2f6dd5437 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru+rv b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru+rv new file mode 100644 index 000000000..f2c32c03b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru+rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru+s b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru+s new file mode 100644 index 000000000..768593ef1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru+s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru+unk b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru+unk new file mode 100644 index 000000000..2f6dd5437 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru+unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-24 new file mode 100644 index 000000000..d714b0bf0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-33 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-33 new file mode 100644 index 000000000..2f6dd5437 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-33 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-33-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-33-rv new file mode 100644 index 000000000..4092bc73c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-33-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-33-s b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-33-s new file mode 100644 index 000000000..86679419b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-33-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-44 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-44 new file mode 100644 index 000000000..3f9191a91 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-44 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-44-s b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-44-s new file mode 100644 index 000000000..fa8e8d4a5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-44-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76 b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76 new file mode 100644 index 000000000..0c2148df4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-lp b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-lp new file mode 100644 index 000000000..8abbf8d5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-lp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-s b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-s new file mode 100644 index 000000000..e5e7f900e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-w b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-w new file mode 100644 index 000000000..2fa3606c8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-w-s b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-w-s new file mode 100644 index 000000000..bcf43ae81 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-w-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-wm b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-wm new file mode 100644 index 000000000..88ea7a200 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-76-wm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-lp b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-lp new file mode 100644 index 000000000..8abbf8d5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-lp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-nctxt b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-nctxt new file mode 100644 index 000000000..e0929ca59 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-nctxt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-rv new file mode 100644 index 000000000..4092bc73c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-s b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-s new file mode 100644 index 000000000..86679419b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/g/guru-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h-100 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h-100 new file mode 100644 index 000000000..0d0311b25 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h-100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h-100bw b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h-100bw new file mode 100644 index 000000000..19003800f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h-100bw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h100 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h100 new file mode 100644 index 000000000..0d0311b25 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h100bw b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h100bw new file mode 100644 index 000000000..19003800f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h100bw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19 new file mode 100644 index 000000000..63b3b318f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-a new file mode 100644 index 000000000..784aed49d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-b b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-b new file mode 100644 index 000000000..63b3b318f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-bs b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-bs new file mode 100644 index 000000000..cd50d9280 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-bs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-g b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-g new file mode 100644 index 000000000..d5a190941 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-g differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-smul b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-smul new file mode 100644 index 000000000..cbcbac1de Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-smul differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-u b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-u new file mode 100644 index 000000000..f01531faa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-u differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-us b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-us new file mode 100644 index 000000000..cbcbac1de Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19-us differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19a new file mode 100644 index 000000000..784aed49d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19g b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19g new file mode 100644 index 000000000..d5a190941 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19g differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19k b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19k new file mode 100644 index 000000000..41f40b096 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19k differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19kermit b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19kermit new file mode 100644 index 000000000..41f40b096 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19kermit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19us b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19us new file mode 100644 index 000000000..cbcbac1de Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h19us differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h29a-kc-bc b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h29a-kc-bc new file mode 100644 index 000000000..c5c211ab4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h29a-kc-bc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h29a-kc-uc b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h29a-kc-uc new file mode 100644 index 000000000..866ab38de Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h29a-kc-uc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h29a-nkc-bc b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h29a-nkc-bc new file mode 100644 index 000000000..78aac6b0f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h29a-nkc-bc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h29a-nkc-uc b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h29a-nkc-uc new file mode 100644 index 000000000..85b5af000 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h29a-nkc-uc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/h80 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h80 new file mode 100644 index 000000000..c127fda86 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/h80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/ha8675 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/ha8675 new file mode 100644 index 000000000..b52144d48 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/ha8675 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/ha8686 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/ha8686 new file mode 100644 index 000000000..6e18925d0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/ha8686 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hazel b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hazel new file mode 100644 index 000000000..c127fda86 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hazel differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hds200 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hds200 new file mode 100644 index 000000000..95a261228 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hds200 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/he80 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/he80 new file mode 100644 index 000000000..c127fda86 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/he80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/heath b/code/application/source/sf_app/tools/blue/lib/terminfo/h/heath new file mode 100644 index 000000000..63b3b318f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/heath differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/heath-19 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/heath-19 new file mode 100644 index 000000000..63b3b318f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/heath-19 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/heath-ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/h/heath-ansi new file mode 100644 index 000000000..784aed49d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/heath-ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/heathkit b/code/application/source/sf_app/tools/blue/lib/terminfo/h/heathkit new file mode 100644 index 000000000..63b3b318f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/heathkit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/heathkit-a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/heathkit-a new file mode 100644 index 000000000..784aed49d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/heathkit-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hft b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hft new file mode 100644 index 000000000..8229fba7f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hft differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hft-c b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hft-c new file mode 100644 index 000000000..5778800e0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hft-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hft-c-old b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hft-c-old new file mode 100644 index 000000000..a5eb1c1e1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hft-c-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hft-old b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hft-old new file mode 100644 index 000000000..ccf948d90 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hft-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hirez100 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hirez100 new file mode 100644 index 000000000..4e156adb5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hirez100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hirez100-w b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hirez100-w new file mode 100644 index 000000000..a91af72d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hirez100-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hmod1 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hmod1 new file mode 100644 index 000000000..b8f0d0f52 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hmod1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp new file mode 100644 index 000000000..b3f1b13bb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+arrows b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+arrows new file mode 100644 index 000000000..d0d3fbea8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+arrows differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+color b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+color new file mode 100644 index 000000000..3d6ef9583 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+labels b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+labels new file mode 100644 index 000000000..39e9a6fbc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+labels differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+pfk+arrows b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+pfk+arrows new file mode 100644 index 000000000..4b54f5b81 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+pfk+arrows differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+pfk+cr b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+pfk+cr new file mode 100644 index 000000000..c32cd872b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+pfk+cr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+pfk-cr b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+pfk-cr new file mode 100644 index 000000000..163b45975 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+pfk-cr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+printer b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+printer new file mode 100644 index 000000000..29ef6e6fe Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp+printer differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp110 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp110 new file mode 100644 index 000000000..b34d472b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp110 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp150 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp150 new file mode 100644 index 000000000..5b5c481a7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp150 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2 new file mode 100644 index 000000000..6f8c911b0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp236 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp236 new file mode 100644 index 000000000..713202d6f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp236 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2382 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2382 new file mode 100644 index 000000000..3fa168412 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2382 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2382a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2382a new file mode 100644 index 000000000..3fa168412 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2382a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2392 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2392 new file mode 100644 index 000000000..763eec5d0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2392 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2397 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2397 new file mode 100644 index 000000000..70ea75de5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2397 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2397a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2397a new file mode 100644 index 000000000..70ea75de5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2397a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621 new file mode 100644 index 000000000..e01ee357f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-48 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-48 new file mode 100644 index 000000000..71ae4a017 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-a new file mode 100644 index 000000000..6baa75cce Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-ba b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-ba new file mode 100644 index 000000000..0bbecc60e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-ba differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-fl b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-fl new file mode 100644 index 000000000..744dc4a3c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-fl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-k45 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-k45 new file mode 100644 index 000000000..0449f5de2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-k45 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-nl new file mode 100644 index 000000000..95ec9ade8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-nt b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-nt new file mode 100644 index 000000000..6c88515da Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-nt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-wl b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-wl new file mode 100644 index 000000000..e01ee357f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621-wl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621A b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621A new file mode 100644 index 000000000..e01ee357f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621A differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621a new file mode 100644 index 000000000..e01ee357f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621a-a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621a-a new file mode 100644 index 000000000..6baa75cce Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621a-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621b b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621b new file mode 100644 index 000000000..4421e59eb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621b-kx b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621b-kx new file mode 100644 index 000000000..21b76e597 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621b-kx differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621b-kx-p b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621b-kx-p new file mode 100644 index 000000000..bf52d6ff8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621b-kx-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621b-p b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621b-p new file mode 100644 index 000000000..60ff8b59b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621b-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621k45 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621k45 new file mode 100644 index 000000000..0449f5de2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621k45 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621p b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621p new file mode 100644 index 000000000..9201e98fc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621p-a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621p-a new file mode 100644 index 000000000..94207bf99 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2621p-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2622 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2622 new file mode 100644 index 000000000..6282a07bc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2622 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2622a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2622a new file mode 100644 index 000000000..6282a07bc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2622a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2623 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2623 new file mode 100644 index 000000000..78809dfe4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2623 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2623a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2623a new file mode 100644 index 000000000..78809dfe4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2623a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624 new file mode 100644 index 000000000..b5a829ab8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624-10p b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624-10p new file mode 100644 index 000000000..194ab137f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624-10p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624a new file mode 100644 index 000000000..b5a829ab8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624a-10p b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624a-10p new file mode 100644 index 000000000..194ab137f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624a-10p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b new file mode 100644 index 000000000..b5a829ab8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-10p b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-10p new file mode 100644 index 000000000..194ab137f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-10p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-10p-p b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-10p-p new file mode 100644 index 000000000..3a846f106 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-10p-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-4p b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-4p new file mode 100644 index 000000000..b5a829ab8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-4p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-4p-p b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-4p-p new file mode 100644 index 000000000..b60cbfed7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-4p-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-p b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-p new file mode 100644 index 000000000..b60cbfed7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2624b-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626 new file mode 100644 index 000000000..516fc4076 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-12 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-12 new file mode 100644 index 000000000..292c3ce22 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-12 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-12-s b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-12-s new file mode 100644 index 000000000..e326b9e0a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-12-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-12x40 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-12x40 new file mode 100644 index 000000000..131b46d0b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-12x40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-ns b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-ns new file mode 100644 index 000000000..d800ad327 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-ns differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-s b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-s new file mode 100644 index 000000000..4563ad938 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-x40 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-x40 new file mode 100644 index 000000000..ef112443e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626-x40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626a new file mode 100644 index 000000000..516fc4076 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626p b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626p new file mode 100644 index 000000000..516fc4076 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2626p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2627a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2627a new file mode 100644 index 000000000..e45d101ee Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2627a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2627a-rev b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2627a-rev new file mode 100644 index 000000000..65bdb1d2a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2627a-rev differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2627c b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2627c new file mode 100644 index 000000000..61f9e2c20 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2627c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp262x b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp262x new file mode 100644 index 000000000..069aa6aa2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp262x differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2640a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2640a new file mode 100644 index 000000000..def2ae219 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2640a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2640b b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2640b new file mode 100644 index 000000000..80f570ec2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2640b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2641a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2641a new file mode 100644 index 000000000..1ce523d1d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2641a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2644a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2644a new file mode 100644 index 000000000..80f570ec2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2644a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2645 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2645 new file mode 100644 index 000000000..9cff16b98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2645 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2645a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2645a new file mode 100644 index 000000000..1ce523d1d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2645a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2647a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2647a new file mode 100644 index 000000000..1ce523d1d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2647a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2648 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2648 new file mode 100644 index 000000000..d6208cb16 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2648 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2648a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2648a new file mode 100644 index 000000000..d6208cb16 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp2648a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp300h b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp300h new file mode 100644 index 000000000..4f4740231 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp300h differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp45 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp45 new file mode 100644 index 000000000..9cff16b98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp45 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp700 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp700 new file mode 100644 index 000000000..15a4121bd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp700 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp700-wy b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp700-wy new file mode 100644 index 000000000..06757298b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp700-wy differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp70092 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp70092 new file mode 100644 index 000000000..45f91b2d7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp70092 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp70092A b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp70092A new file mode 100644 index 000000000..45f91b2d7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp70092A differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp70092a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp70092a new file mode 100644 index 000000000..45f91b2d7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp70092a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp9837 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp9837 new file mode 100644 index 000000000..7e57ca708 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp9837 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp9845 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp9845 new file mode 100644 index 000000000..0033b1a9e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp9845 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98550 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98550 new file mode 100644 index 000000000..be30caa84 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98550 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98550-color b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98550-color new file mode 100644 index 000000000..3c63e3d92 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98550-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98550a b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98550a new file mode 100644 index 000000000..be30caa84 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98550a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98550a-color b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98550a-color new file mode 100644 index 000000000..3c63e3d92 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98550a-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98720 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98720 new file mode 100644 index 000000000..7e57ca708 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98720 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98721 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98721 new file mode 100644 index 000000000..7e57ca708 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hp98721 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpansi b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpansi new file mode 100644 index 000000000..15a4121bd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpex b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpex new file mode 100644 index 000000000..0063a1cf6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpex differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpex2 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpex2 new file mode 100644 index 000000000..6f8c911b0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpex2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpgeneric b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpgeneric new file mode 100644 index 000000000..b3f1b13bb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpgeneric differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpsub b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpsub new file mode 100644 index 000000000..b0f2bf9ef Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpsub differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpterm b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpterm new file mode 100644 index 000000000..aeb1acb29 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpterm-color b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpterm-color new file mode 100644 index 000000000..e9368590f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpterm-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpterm-color2 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpterm-color2 new file mode 100644 index 000000000..0b122c6ca Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hpterm-color2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hterm b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hterm new file mode 100644 index 000000000..377016639 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hterm-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hterm-256color new file mode 100644 index 000000000..1f0694d8b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hterm-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/htx11 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/htx11 new file mode 100644 index 000000000..91424b20c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/htx11 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hurd b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hurd new file mode 100644 index 000000000..0327b91b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hurd differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1000 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1000 new file mode 100644 index 000000000..4ba098dbf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1000 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1420 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1420 new file mode 100644 index 000000000..5f82b7e68 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1420 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1500 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1500 new file mode 100644 index 000000000..c0e7c63c1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1500 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1510 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1510 new file mode 100644 index 000000000..96d7e7367 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1510 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1520 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1520 new file mode 100644 index 000000000..32533bc27 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1520 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1520-noesc b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1520-noesc new file mode 100644 index 000000000..c826aa520 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1520-noesc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1552 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1552 new file mode 100644 index 000000000..ddb8dd191 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1552 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1552-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1552-rv new file mode 100644 index 000000000..be0b17406 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz1552-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz2000 b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz2000 new file mode 100644 index 000000000..c3f4b90af Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/h/hz2000 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/i100 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/i100 new file mode 100644 index 000000000..cc9ff857a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/i100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/i3101 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/i3101 new file mode 100644 index 000000000..5c1853e8b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/i3101 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/i3164 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/i3164 new file mode 100644 index 000000000..0b862b5c1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/i3164 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/i400 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/i400 new file mode 100644 index 000000000..376904efc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/i400 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/iTerm.app b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iTerm.app new file mode 100644 index 000000000..1484a6752 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iTerm.app differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/iTerm2.app b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iTerm2.app new file mode 100644 index 000000000..d7637c98a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iTerm2.app differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibcs2 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibcs2 new file mode 100644 index 000000000..3037fa46d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibcs2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm+16color b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm+16color new file mode 100644 index 000000000..5641595cb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm+16color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm+color b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm+color new file mode 100644 index 000000000..bb1605482 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm+color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm-apl b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm-apl new file mode 100644 index 000000000..679a57441 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm-apl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm-pc b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm-pc new file mode 100644 index 000000000..ec3766c15 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm-pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm-system1 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm-system1 new file mode 100644 index 000000000..39ab6a3a9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm-system1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3101 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3101 new file mode 100644 index 000000000..5c1853e8b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3101 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3151 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3151 new file mode 100644 index 000000000..b6c078e5a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3151 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3161 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3161 new file mode 100644 index 000000000..dad679d25 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3161 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3161-C b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3161-C new file mode 100644 index 000000000..432a5907a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3161-C differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3162 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3162 new file mode 100644 index 000000000..1f5b5f362 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3162 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3163 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3163 new file mode 100644 index 000000000..dad679d25 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3163 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3164 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3164 new file mode 100644 index 000000000..0b862b5c1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm3164 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm327x b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm327x new file mode 100644 index 000000000..2ba32caef Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm327x differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5051 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5051 new file mode 100644 index 000000000..ec3766c15 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5051 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5081 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5081 new file mode 100644 index 000000000..8229fba7f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5081 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5081-c b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5081-c new file mode 100644 index 000000000..abbdc0345 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5081-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5151 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5151 new file mode 100644 index 000000000..377b3a077 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5151 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5154 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5154 new file mode 100644 index 000000000..5d94307bd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5154 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5154-c b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5154-c new file mode 100644 index 000000000..f7fce9a89 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm5154-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6153 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6153 new file mode 100644 index 000000000..3ff97476e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6153 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6153-40 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6153-40 new file mode 100644 index 000000000..bebd56945 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6153-40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6153-90 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6153-90 new file mode 100644 index 000000000..df9a691a7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6153-90 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6154 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6154 new file mode 100644 index 000000000..f97c87a24 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6154 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6154-c b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6154-c new file mode 100644 index 000000000..5f9b30a0c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6154-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6155 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6155 new file mode 100644 index 000000000..8a9fec7a5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm6155 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8503 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8503 new file mode 100644 index 000000000..4870e2387 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8503 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8507 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8507 new file mode 100644 index 000000000..4870e2387 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8507 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8512 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8512 new file mode 100644 index 000000000..fd97cbefe Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8512 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8513 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8513 new file mode 100644 index 000000000..fd97cbefe Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8513 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8514 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8514 new file mode 100644 index 000000000..63ddfe356 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8514 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8514-c b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8514-c new file mode 100644 index 000000000..5d2de43bd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8514-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8604 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8604 new file mode 100644 index 000000000..4870e2387 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibm8604 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmaed b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmaed new file mode 100644 index 000000000..227d0f1a9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmaed differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmapa16 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmapa16 new file mode 100644 index 000000000..46bd1afb1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmapa16 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmapa8 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmapa8 new file mode 100644 index 000000000..9be701644 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmapa8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmapa8c b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmapa8c new file mode 100644 index 000000000..9be701644 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmapa8c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmapa8c-c b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmapa8c-c new file mode 100644 index 000000000..5f9b30a0c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmapa8c-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmega b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmega new file mode 100644 index 000000000..cf3215943 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmega differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmega-c b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmega-c new file mode 100644 index 000000000..f7fce9a89 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmega-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmmono b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmmono new file mode 100644 index 000000000..660bbc4ec Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmmono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmmpel-c b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmmpel-c new file mode 100644 index 000000000..abbdc0345 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmmpel-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpc b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpc new file mode 100644 index 000000000..492a68af7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpc3 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpc3 new file mode 100644 index 000000000..98594f3c4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpc3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpc3r b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpc3r new file mode 100644 index 000000000..0cb4322ea Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpc3r differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpc3r-mono b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpc3r-mono new file mode 100644 index 000000000..e5cab4c98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpc3r-mono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpcx b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpcx new file mode 100644 index 000000000..86e3056bf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmpcx differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmvga b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmvga new file mode 100644 index 000000000..4b94cf19e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmvga differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmvga-c b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmvga-c new file mode 100644 index 000000000..2cc5b8e74 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmvga-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmx b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmx new file mode 100644 index 000000000..86e3056bf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ibmx differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/icl6402 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/icl6402 new file mode 100644 index 000000000..4b824b421 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/icl6402 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/icl6404 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/icl6404 new file mode 100644 index 000000000..4b824b421 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/icl6404 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/icl6404-w b/code/application/source/sf_app/tools/blue/lib/terminfo/i/icl6404-w new file mode 100644 index 000000000..7b11ac825 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/icl6404-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ifmr b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ifmr new file mode 100644 index 000000000..0682dcbfa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ifmr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ims-ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ims-ansi new file mode 100644 index 000000000..53f09ade9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ims-ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ims950 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ims950 new file mode 100644 index 000000000..0bd8ac0e0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ims950 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ims950-b b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ims950-b new file mode 100644 index 000000000..d68bdbefa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ims950-b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ims950-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ims950-rv new file mode 100644 index 000000000..fa877e170 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ims950-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/infoton b/code/application/source/sf_app/tools/blue/lib/terminfo/i/infoton new file mode 100644 index 000000000..91869f5d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/infoton differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/infoton2 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/infoton2 new file mode 100644 index 000000000..cddd9d1ba Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/infoton2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/interix b/code/application/source/sf_app/tools/blue/lib/terminfo/i/interix new file mode 100644 index 000000000..afbcc420c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/interix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/interix-nti b/code/application/source/sf_app/tools/blue/lib/terminfo/i/interix-nti new file mode 100644 index 000000000..a9c1fbe9c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/interix-nti differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/intertec b/code/application/source/sf_app/tools/blue/lib/terminfo/i/intertec new file mode 100644 index 000000000..5ff01383e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/intertec differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/intertube b/code/application/source/sf_app/tools/blue/lib/terminfo/i/intertube new file mode 100644 index 000000000..5ff01383e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/intertube differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/intertube2 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/intertube2 new file mode 100644 index 000000000..548c9c09b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/intertube2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/intext b/code/application/source/sf_app/tools/blue/lib/terminfo/i/intext new file mode 100644 index 000000000..8f07ba6f3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/intext differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/intext2 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/intext2 new file mode 100644 index 000000000..76419836b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/intext2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/intextii b/code/application/source/sf_app/tools/blue/lib/terminfo/i/intextii new file mode 100644 index 000000000..76419836b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/intextii differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ips b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ips new file mode 100644 index 000000000..2caacb2f8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ips differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/ipsi b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ipsi new file mode 100644 index 000000000..cc643490b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/ipsi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/iq120 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iq120 new file mode 100644 index 000000000..455d1a266 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iq120 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/iq140 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iq140 new file mode 100644 index 000000000..e364e467c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iq140 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris-ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris-ansi new file mode 100644 index 000000000..f011423b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris-ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris-ansi-ap b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris-ansi-ap new file mode 100644 index 000000000..445fc954f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris-ansi-ap differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris-ansi-net b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris-ansi-net new file mode 100644 index 000000000..f011423b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris-ansi-net differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris-color b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris-color new file mode 100644 index 000000000..166c6014c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris40 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris40 new file mode 100644 index 000000000..f9aeabd23 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iris40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/iterm b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iterm new file mode 100644 index 000000000..1484a6752 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/iterm2 b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iterm2 new file mode 100644 index 000000000..d7637c98a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iterm2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/i/iterm2-direct b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iterm2-direct new file mode 100644 index 000000000..1f59b7afa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/i/iterm2-direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/j/jaixterm b/code/application/source/sf_app/tools/blue/lib/terminfo/j/jaixterm new file mode 100644 index 000000000..0305da678 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/j/jaixterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/j/jaixterm-m b/code/application/source/sf_app/tools/blue/lib/terminfo/j/jaixterm-m new file mode 100644 index 000000000..a1a19b30f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/j/jaixterm-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/j/jerq b/code/application/source/sf_app/tools/blue/lib/terminfo/j/jerq new file mode 100644 index 000000000..36a565fcd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/j/jerq differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/j/jfbterm b/code/application/source/sf_app/tools/blue/lib/terminfo/j/jfbterm new file mode 100644 index 000000000..e645b8412 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/j/jfbterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/k45 b/code/application/source/sf_app/tools/blue/lib/terminfo/k/k45 new file mode 100644 index 000000000..0449f5de2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/k45 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kaypro b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kaypro new file mode 100644 index 000000000..b12807e5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kaypro differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kaypro2 b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kaypro2 new file mode 100644 index 000000000..b12807e5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kaypro2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kds6402 b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kds6402 new file mode 100644 index 000000000..4b824b421 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kds6402 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kds7372 b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kds7372 new file mode 100644 index 000000000..4b824b421 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kds7372 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kds7372-w b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kds7372-w new file mode 100644 index 000000000..7b11ac825 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kds7372-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kermit b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kermit new file mode 100644 index 000000000..6cad0d04d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kermit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kermit-am b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kermit-am new file mode 100644 index 000000000..4c10204f9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kermit-am differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kitty b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kitty new file mode 100644 index 000000000..7d8950d30 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kitty differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kitty+common b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kitty+common new file mode 100644 index 000000000..c2ca058dd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kitty+common differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kitty-direct b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kitty-direct new file mode 100644 index 000000000..1659dd000 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kitty-direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+acs b/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+acs new file mode 100644 index 000000000..666ca02c3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+acs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+color b/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+color new file mode 100644 index 000000000..ade6b7ce3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+koi8acs b/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+koi8acs new file mode 100644 index 000000000..23edc40ef Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+koi8acs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+sgr b/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+sgr new file mode 100644 index 000000000..c26151b3e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+sgr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+sgr-dumb b/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+sgr-dumb new file mode 100644 index 000000000..a4eed49a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+sgr-dumb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+sgr8 b/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+sgr8 new file mode 100644 index 000000000..15e63a390 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/klone+sgr8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kon b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kon new file mode 100644 index 000000000..e645b8412 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kon differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kon2 b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kon2 new file mode 100644 index 000000000..e645b8412 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kon2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole new file mode 100644 index 000000000..b68d9f610 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole+pcfkeys b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole+pcfkeys new file mode 100644 index 000000000..11f42ddfa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole+pcfkeys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-16color b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-16color new file mode 100644 index 000000000..0b4f3c4f2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-16color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-256color new file mode 100644 index 000000000..4ab1d1c41 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-base b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-base new file mode 100644 index 000000000..110f4aecc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-base differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-direct b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-direct new file mode 100644 index 000000000..5fc28f901 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-linux b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-linux new file mode 100644 index 000000000..3f6efe8f0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-linux differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-solaris b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-solaris new file mode 100644 index 000000000..c5952bfa0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-solaris differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-vt100 b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-vt100 new file mode 100644 index 000000000..339001bc3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-vt100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-vt420pc b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-vt420pc new file mode 100644 index 000000000..441bff908 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-vt420pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-xf3x b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-xf3x new file mode 100644 index 000000000..bcc1d8b0e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-xf3x differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-xf4x b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-xf4x new file mode 100644 index 000000000..93a60942f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/konsole-xf4x differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kt7 b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kt7 new file mode 100644 index 000000000..d0cdae963 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kt7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kt7ix b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kt7ix new file mode 100644 index 000000000..de66a9bfd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kt7ix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kterm b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kterm new file mode 100644 index 000000000..99ff7f6a5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kterm-co b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kterm-co new file mode 100644 index 000000000..0a9d10fbb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kterm-co differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kterm-color b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kterm-color new file mode 100644 index 000000000..0a9d10fbb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kterm-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/ktm b/code/application/source/sf_app/tools/blue/lib/terminfo/k/ktm new file mode 100644 index 000000000..22b0388be Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/ktm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/k/kvt b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kvt new file mode 100644 index 000000000..417baeac7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/k/kvt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/la120 b/code/application/source/sf_app/tools/blue/lib/terminfo/l/la120 new file mode 100644 index 000000000..834885b62 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/la120 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/layer b/code/application/source/sf_app/tools/blue/lib/terminfo/l/layer new file mode 100644 index 000000000..56d4b5598 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/layer differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/lft b/code/application/source/sf_app/tools/blue/lib/terminfo/l/lft new file mode 100644 index 000000000..20c5b42c2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/lft differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/lft-pc850 b/code/application/source/sf_app/tools/blue/lib/terminfo/l/lft-pc850 new file mode 100644 index 000000000..20c5b42c2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/lft-pc850 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux new file mode 100644 index 000000000..4ee980c81 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux+decid b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux+decid new file mode 100644 index 000000000..5fdd439b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux+decid differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux+sfkeys b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux+sfkeys new file mode 100644 index 000000000..5a1ce30b0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux+sfkeys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-16color b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-16color new file mode 100644 index 000000000..3e6eb5a81 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-16color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-basic b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-basic new file mode 100644 index 000000000..9bbca27af Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-basic differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-c b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-c new file mode 100644 index 000000000..d25a9b181 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-c-nc b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-c-nc new file mode 100644 index 000000000..13473aec2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-c-nc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-koi8 b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-koi8 new file mode 100644 index 000000000..0fbad8ca3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-koi8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-koi8r b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-koi8r new file mode 100644 index 000000000..708ef9666 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-koi8r differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-lat b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-lat new file mode 100644 index 000000000..80804c82d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-lat differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-m b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-m new file mode 100644 index 000000000..02b202e4e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-m1 b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-m1 new file mode 100644 index 000000000..1d520aedb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-m1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-m1b b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-m1b new file mode 100644 index 000000000..ed2a5a238 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-m1b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-m2 b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-m2 new file mode 100644 index 000000000..0dcf370b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-m2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-nic b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-nic new file mode 100644 index 000000000..7e7b239dd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-nic differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-s b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-s new file mode 100644 index 000000000..79e961b7f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-vt b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-vt new file mode 100644 index 000000000..1acf6d651 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux-vt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux2.2 b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux2.2 new file mode 100644 index 000000000..4b7d785ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux2.2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux2.6 b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux2.6 new file mode 100644 index 000000000..5e80a1954 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux2.6 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux2.6.26 b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux2.6.26 new file mode 100644 index 000000000..177cb79ec Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux2.6.26 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux3.0 b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux3.0 new file mode 100644 index 000000000..8d329d151 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/linux3.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/lisa b/code/application/source/sf_app/tools/blue/lib/terminfo/l/lisa new file mode 100644 index 000000000..2bbfd1ec9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/lisa differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/lisaterm b/code/application/source/sf_app/tools/blue/lib/terminfo/l/lisaterm new file mode 100644 index 000000000..f812d624c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/lisaterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/lisaterm-w b/code/application/source/sf_app/tools/blue/lib/terminfo/l/lisaterm-w new file mode 100644 index 000000000..29143517f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/lisaterm-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/liswb b/code/application/source/sf_app/tools/blue/lib/terminfo/l/liswb new file mode 100644 index 000000000..058fb064f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/liswb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/ln03 b/code/application/source/sf_app/tools/blue/lib/terminfo/l/ln03 new file mode 100644 index 000000000..72fadfc5c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/ln03 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/ln03-w b/code/application/source/sf_app/tools/blue/lib/terminfo/l/ln03-w new file mode 100644 index 000000000..dd4877c91 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/ln03-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/lpr b/code/application/source/sf_app/tools/blue/lib/terminfo/l/lpr new file mode 100644 index 000000000..279e1e878 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/lpr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/luna b/code/application/source/sf_app/tools/blue/lib/terminfo/l/luna new file mode 100644 index 000000000..c9a18a80e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/luna differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/l/luna68k b/code/application/source/sf_app/tools/blue/lib/terminfo/l/luna68k new file mode 100644 index 000000000..c9a18a80e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/l/luna68k differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/m2-nam b/code/application/source/sf_app/tools/blue/lib/terminfo/m/m2-nam new file mode 100644 index 000000000..b9dc52b2c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/m2-nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mac b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mac new file mode 100644 index 000000000..c2d5d2769 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mac differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mac-w b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mac-w new file mode 100644 index 000000000..3a7192ac1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mac-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach new file mode 100644 index 000000000..040c2ee33 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach-bold b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach-bold new file mode 100644 index 000000000..63250066f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach-bold differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach-color b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach-color new file mode 100644 index 000000000..5415929ce Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach-gnu b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach-gnu new file mode 100644 index 000000000..c7174da09 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach-gnu differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach-gnu-color b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach-gnu-color new file mode 100644 index 000000000..e18d5c7c9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mach-gnu-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/macintosh b/code/application/source/sf_app/tools/blue/lib/terminfo/m/macintosh new file mode 100644 index 000000000..c2d5d2769 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/macintosh differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/macterminal-w b/code/application/source/sf_app/tools/blue/lib/terminfo/m/macterminal-w new file mode 100644 index 000000000..3a7192ac1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/macterminal-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mai b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mai new file mode 100644 index 000000000..640977a34 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mai differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/masscomp b/code/application/source/sf_app/tools/blue/lib/terminfo/m/masscomp new file mode 100644 index 000000000..97ef38184 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/masscomp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/masscomp1 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/masscomp1 new file mode 100644 index 000000000..5e303b902 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/masscomp1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/masscomp2 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/masscomp2 new file mode 100644 index 000000000..5e99cbb00 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/masscomp2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mdl110 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mdl110 new file mode 100644 index 000000000..b1763bf71 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mdl110 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/megatek b/code/application/source/sf_app/tools/blue/lib/terminfo/m/megatek new file mode 100644 index 000000000..9fc1564a8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/megatek differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/memhp b/code/application/source/sf_app/tools/blue/lib/terminfo/m/memhp new file mode 100644 index 000000000..6492b22ef Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/memhp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgr b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgr new file mode 100644 index 000000000..ad4187b7c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgr-linux b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgr-linux new file mode 100644 index 000000000..8ff9325f7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgr-linux differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgr-sun b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgr-sun new file mode 100644 index 000000000..370a79e75 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgr-sun differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgt b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgt new file mode 100644 index 000000000..5244b553f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgterm b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgterm new file mode 100644 index 000000000..3902af02c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mgterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/microb b/code/application/source/sf_app/tools/blue/lib/terminfo/m/microb new file mode 100644 index 000000000..13025af01 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/microb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/microbee b/code/application/source/sf_app/tools/blue/lib/terminfo/m/microbee new file mode 100644 index 000000000..13025af01 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/microbee differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/microterm b/code/application/source/sf_app/tools/blue/lib/terminfo/m/microterm new file mode 100644 index 000000000..b24bd133a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/microterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/microterm5 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/microterm5 new file mode 100644 index 000000000..66b296fab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/microterm5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime new file mode 100644 index 000000000..53f5ccca3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime-3ax b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime-3ax new file mode 100644 index 000000000..94214339b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime-3ax differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime-fb b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime-fb new file mode 100644 index 000000000..d314078a6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime-fb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime-hb b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime-hb new file mode 100644 index 000000000..8f9c9f383 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime-hb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime1 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime1 new file mode 100644 index 000000000..53f5ccca3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime2 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime2 new file mode 100644 index 000000000..53f5ccca3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime2a b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime2a new file mode 100644 index 000000000..b5a3e8e2e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime2a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime2a-s b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime2a-s new file mode 100644 index 000000000..f94d449eb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime2a-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime2a-v b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime2a-v new file mode 100644 index 000000000..b5a3e8e2e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime2a-v differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime314 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime314 new file mode 100644 index 000000000..cc6914c8e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime314 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime340 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime340 new file mode 100644 index 000000000..3b7bcbbdb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime340 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime3a b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime3a new file mode 100644 index 000000000..83cea4580 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime3a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime3ax b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime3ax new file mode 100644 index 000000000..94214339b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mime3ax differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mimei b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mimei new file mode 100644 index 000000000..53f5ccca3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mimei differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mimeii b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mimeii new file mode 100644 index 000000000..53f5ccca3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mimeii differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel new file mode 100644 index 000000000..b9dc52b2c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel-2 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel-2 new file mode 100644 index 000000000..b9dc52b2c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel-2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel-2-nam b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel-2-nam new file mode 100644 index 000000000..b9dc52b2c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel-2-nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1 new file mode 100644 index 000000000..9f9e10656 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1-nb b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1-nb new file mode 100644 index 000000000..16250a7e9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1-nb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel12-80 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel12-80 new file mode 100644 index 000000000..1fba4d7ff Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel12-80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1b b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1b new file mode 100644 index 000000000..e47321d18 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1b-80 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1b-80 new file mode 100644 index 000000000..a33816939 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1b-80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1b-nb b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1b-nb new file mode 100644 index 000000000..405db818c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel1b-nb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel2-80 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel2-80 new file mode 100644 index 000000000..8c300f261 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minitel2-80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix new file mode 100644 index 000000000..36cfcb70a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-1.5 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-1.5 new file mode 100644 index 000000000..7e27a435c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-1.5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-1.7 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-1.7 new file mode 100644 index 000000000..ce53a7a67 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-1.7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-3.0 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-3.0 new file mode 100644 index 000000000..524c4ba07 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-3.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-old b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-old new file mode 100644 index 000000000..7e27a435c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-old-am b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-old-am new file mode 100644 index 000000000..ebbbf29ee Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/minix-old-am differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mintty b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mintty new file mode 100644 index 000000000..4bfccef65 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mintty differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mintty+common b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mintty+common new file mode 100644 index 000000000..68977323e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mintty+common differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mintty-direct b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mintty-direct new file mode 100644 index 000000000..0953f3855 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mintty-direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm new file mode 100644 index 000000000..beb5c9f54 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm+pcfkeys b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm+pcfkeys new file mode 100644 index 000000000..24fe8522c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm+pcfkeys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm-256color new file mode 100644 index 000000000..5cd1c13ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm-direct b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm-direct new file mode 100644 index 000000000..50733fd96 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm-direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm2 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm2 new file mode 100644 index 000000000..b9d5d57ed Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm3 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm3 new file mode 100644 index 000000000..e22271eb3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mlterm3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mm314 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mm314 new file mode 100644 index 000000000..cc6914c8e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mm314 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mm340 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mm340 new file mode 100644 index 000000000..3b7bcbbdb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mm340 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mod b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mod new file mode 100644 index 000000000..63d4e8d5f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mod differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mod24 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mod24 new file mode 100644 index 000000000..a8e85aafd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mod24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/modgraph b/code/application/source/sf_app/tools/blue/lib/terminfo/m/modgraph new file mode 100644 index 000000000..a8e85aafd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/modgraph differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/modgraph2 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/modgraph2 new file mode 100644 index 000000000..a09df1ede Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/modgraph2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/modgraph48 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/modgraph48 new file mode 100644 index 000000000..63d4e8d5f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/modgraph48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mono-emx b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mono-emx new file mode 100644 index 000000000..1f940a9db Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mono-emx differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/morphos b/code/application/source/sf_app/tools/blue/lib/terminfo/m/morphos new file mode 100644 index 000000000..1485b3bdb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/morphos differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mouse-sun b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mouse-sun new file mode 100644 index 000000000..016fced44 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mouse-sun differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mrxvt b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mrxvt new file mode 100644 index 000000000..52b7a42be Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mrxvt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mrxvt-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mrxvt-256color new file mode 100644 index 000000000..1e9c7391c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mrxvt-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-terminal b/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-terminal new file mode 100644 index 000000000..0bf1917e9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-terminal differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-vt-utf8 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-vt-utf8 new file mode 100644 index 000000000..8a6db0a5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-vt-utf8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-vt100 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-vt100 new file mode 100644 index 000000000..534455ec0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-vt100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-vt100+ b/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-vt100+ new file mode 100644 index 000000000..54c8d9766 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-vt100+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-vt100-color b/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-vt100-color new file mode 100644 index 000000000..bf9a517a4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/ms-vt100-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/msk227 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/msk227 new file mode 100644 index 000000000..c0d5706a8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/msk227 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/msk22714 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/msk22714 new file mode 100644 index 000000000..487bb61b2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/msk22714 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/msk227am b/code/application/source/sf_app/tools/blue/lib/terminfo/m/msk227am new file mode 100644 index 000000000..d7ade8c0e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/msk227am differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mskermit227 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mskermit227 new file mode 100644 index 000000000..c0d5706a8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mskermit227 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mskermit22714 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mskermit22714 new file mode 100644 index 000000000..487bb61b2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mskermit22714 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mskermit227am b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mskermit227am new file mode 100644 index 000000000..d7ade8c0e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mskermit227am differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mt-70 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mt-70 new file mode 100644 index 000000000..ffe744ee9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mt-70 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mt4520-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mt4520-rv new file mode 100644 index 000000000..be7e7f44c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mt4520-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mt70 b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mt70 new file mode 100644 index 000000000..ffe744ee9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mt70 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mterm b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mterm new file mode 100644 index 000000000..016fced44 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mterm-ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mterm-ansi new file mode 100644 index 000000000..1935026a2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mterm-ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/m/mvterm b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mvterm new file mode 100644 index 000000000..105848e83 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/m/mvterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/n7900 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/n7900 new file mode 100644 index 000000000..8153497a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/n7900 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nansi.sys b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nansi.sys new file mode 100644 index 000000000..88d3342e4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nansi.sys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nansi.sysk b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nansi.sysk new file mode 100644 index 000000000..9c45d3532 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nansi.sysk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nansisys b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nansisys new file mode 100644 index 000000000..88d3342e4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nansisys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nansisysk b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nansisysk new file mode 100644 index 000000000..9c45d3532 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nansisysk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vppp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vppp new file mode 100644 index 000000000..d0b05e30e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vppp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vpwpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vpwpp new file mode 100644 index 000000000..6fe6d6454 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vpwpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt100an b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt100an new file mode 100644 index 000000000..cd338e0ef Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt100an differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt100pp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt100pp new file mode 100644 index 000000000..afeb0dd21 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt100pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt100wan b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt100wan new file mode 100644 index 000000000..b7633d9ff Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt100wan differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt100wpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt100wpp new file mode 100644 index 000000000..095bd61d8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt100wpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt200an b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt200an new file mode 100644 index 000000000..769a8b15b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt200an differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt200pp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt200pp new file mode 100644 index 000000000..d3d7ad5d7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt200pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt200wan b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt200wan new file mode 100644 index 000000000..d3e2fc357 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt200wan differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt200wpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt200wpp new file mode 100644 index 000000000..a95cc85fb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt200wpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt300an b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt300an new file mode 100644 index 000000000..34b566d8f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt300an differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt300pp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt300pp new file mode 100644 index 000000000..289fc8659 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt300pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt300wan b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt300wan new file mode 100644 index 000000000..b6b33f53c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt300wan differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt300wpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt300wpp new file mode 100644 index 000000000..69b3a9e00 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160vt300wpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160wy50+pp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160wy50+pp new file mode 100644 index 000000000..c8aef13ae Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160wy50+pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160wy50+wpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160wy50+wpp new file mode 100644 index 000000000..a0676e28e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160wy50+wpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160wy60pp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160wy60pp new file mode 100644 index 000000000..343ddb34f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160wy60pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160wy60wpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160wy60wpp new file mode 100644 index 000000000..e5301202f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr160wy60wpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260intan b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260intan new file mode 100644 index 000000000..1791c544a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260intan differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260intpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260intpp new file mode 100644 index 000000000..d005d43e0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260intpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260intwan b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260intwan new file mode 100644 index 000000000..385e90ce8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260intwan differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260intwpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260intwpp new file mode 100644 index 000000000..3c413c07f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260intwpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vppp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vppp new file mode 100644 index 000000000..ab58eaeca Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vppp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vpwpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vpwpp new file mode 100644 index 000000000..c59ecdb79 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vpwpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt100an b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt100an new file mode 100644 index 000000000..8ba7624ba Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt100an differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt100pp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt100pp new file mode 100644 index 000000000..6452f8ebd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt100pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt100wan b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt100wan new file mode 100644 index 000000000..4508a8c98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt100wan differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt100wpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt100wpp new file mode 100644 index 000000000..6bc1ffd01 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt100wpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt200an b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt200an new file mode 100644 index 000000000..eadcad695 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt200an differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt200pp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt200pp new file mode 100644 index 000000000..dda92f388 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt200pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt200wan b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt200wan new file mode 100644 index 000000000..c30bee3cd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt200wan differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt200wpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt200wpp new file mode 100644 index 000000000..37d2d20ff Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt200wpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt300an b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt300an new file mode 100644 index 000000000..683e2ce9b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt300an differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt300pp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt300pp new file mode 100644 index 000000000..19538fc28 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt300pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt300wan b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt300wan new file mode 100644 index 000000000..b4164481e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt300wan differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt300wpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt300wpp new file mode 100644 index 000000000..7c41d6a8e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260vt300wpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy325pp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy325pp new file mode 100644 index 000000000..098b381f7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy325pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy325wpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy325wpp new file mode 100644 index 000000000..c37fe9296 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy325wpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy350pp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy350pp new file mode 100644 index 000000000..47e6874b2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy350pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy350wpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy350wpp new file mode 100644 index 000000000..fda10c38b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy350wpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy50+pp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy50+pp new file mode 100644 index 000000000..522ffb7b3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy50+pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy50+wpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy50+wpp new file mode 100644 index 000000000..840037ca8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy50+wpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy60pp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy60pp new file mode 100644 index 000000000..760e24f92 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy60pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy60wpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy60wpp new file mode 100644 index 000000000..6ccad2db9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr260wy60wpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr7900 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr7900 new file mode 100644 index 000000000..8153497a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr7900 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr7900i b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr7900i new file mode 100644 index 000000000..8153497a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr7900i differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr7900iv b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr7900iv new file mode 100644 index 000000000..d2950fb84 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr7900iv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr7901 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr7901 new file mode 100644 index 000000000..6132ceaa4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncr7901 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncrvt100an b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncrvt100an new file mode 100644 index 000000000..9c8c60b86 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncrvt100an differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncrvt100pp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncrvt100pp new file mode 100644 index 000000000..9c8c60b86 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncrvt100pp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncrvt100wan b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncrvt100wan new file mode 100644 index 000000000..7de147786 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncrvt100wan differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncrvt100wpp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncrvt100wpp new file mode 100644 index 000000000..7de147786 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncrvt100wpp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa new file mode 100644 index 000000000..38a6cff98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-m b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-m new file mode 100644 index 000000000..edaf60c21 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-m-ns b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-m-ns new file mode 100644 index 000000000..7ff160448 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-m-ns differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-ns b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-ns new file mode 100644 index 000000000..7704d02f5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-ns differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-vt220 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-vt220 new file mode 100644 index 000000000..cf8b93878 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-vt220 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-vt220-8 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-vt220-8 new file mode 100644 index 000000000..edaf60c21 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ncsa-vt220-8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nd9500 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nd9500 new file mode 100644 index 000000000..0061f716e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nd9500 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500 new file mode 100644 index 000000000..0061f716e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-25 new file mode 100644 index 000000000..2e1e82eff Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-25-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-25-mc new file mode 100644 index 000000000..303bb5f81 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-25-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-25-mc-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-25-mc-nl new file mode 100644 index 000000000..4579c8c8f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-25-mc-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-25-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-25-nl new file mode 100644 index 000000000..99e669a57 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-25-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-mc new file mode 100644 index 000000000..71d7b436e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-mc-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-mc-nl new file mode 100644 index 000000000..d5c20af19 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-mc-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-nl new file mode 100644 index 000000000..4b64f626e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ndr9500-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nec b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nec new file mode 100644 index 000000000..30ecbfd93 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nec differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nec5520 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nec5520 new file mode 100644 index 000000000..30ecbfd93 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nec5520 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/netbsd6 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/netbsd6 new file mode 100644 index 000000000..40afe16c5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/netbsd6 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/newhp b/code/application/source/sf_app/tools/blue/lib/terminfo/n/newhp new file mode 100644 index 000000000..430b5e450 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/newhp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/newhpkeyboard b/code/application/source/sf_app/tools/blue/lib/terminfo/n/newhpkeyboard new file mode 100644 index 000000000..fc9301060 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/newhpkeyboard differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news new file mode 100644 index 000000000..2228f492e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-29 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-29 new file mode 100644 index 000000000..cbea12bd7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-29 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-29-euc b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-29-euc new file mode 100644 index 000000000..131375919 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-29-euc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-29-sjis b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-29-sjis new file mode 100644 index 000000000..859230249 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-29-sjis differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-33 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-33 new file mode 100644 index 000000000..b71011d87 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-33 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-33-euc b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-33-euc new file mode 100644 index 000000000..dff313d34 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-33-euc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-33-sjis b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-33-sjis new file mode 100644 index 000000000..72a7eb1ee Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-33-sjis differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-42 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-42 new file mode 100644 index 000000000..8f88ffa4c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-42 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-42-euc b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-42-euc new file mode 100644 index 000000000..36fd077d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-42-euc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-42-sjis b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-42-sjis new file mode 100644 index 000000000..48a5d2880 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-42-sjis differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-a b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-a new file mode 100644 index 000000000..c2de145ac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-o b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-o new file mode 100644 index 000000000..8e9cc5c80 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-o differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-old-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-old-unk new file mode 100644 index 000000000..f8e8c1066 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-old-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-unk new file mode 100644 index 000000000..b35e0b995 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news28 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news28 new file mode 100644 index 000000000..b69f64ee5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news28 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news28-a b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news28-a new file mode 100644 index 000000000..5f7dad19e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news28-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news29 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news29 new file mode 100644 index 000000000..5f7dad19e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news29 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news31 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news31 new file mode 100644 index 000000000..5413acdb7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news31 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news31-a b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news31-a new file mode 100644 index 000000000..5e87359b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news31-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news31-o b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news31-o new file mode 100644 index 000000000..6412ae476 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news31-o differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news33 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news33 new file mode 100644 index 000000000..5e87359b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news33 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news40 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news40 new file mode 100644 index 000000000..2228f492e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news40-a b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news40-a new file mode 100644 index 000000000..c2de145ac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news40-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news40-o b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news40-o new file mode 100644 index 000000000..8e9cc5c80 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news40-o differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/news42 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news42 new file mode 100644 index 000000000..c2de145ac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/news42 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/newscbm b/code/application/source/sf_app/tools/blue/lib/terminfo/n/newscbm new file mode 100644 index 000000000..5413acdb7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/newscbm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/newscbm-a b/code/application/source/sf_app/tools/blue/lib/terminfo/n/newscbm-a new file mode 100644 index 000000000..5e87359b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/newscbm-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/newscbm-o b/code/application/source/sf_app/tools/blue/lib/terminfo/n/newscbm-o new file mode 100644 index 000000000..6412ae476 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/newscbm-o differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/newscbm33 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/newscbm33 new file mode 100644 index 000000000..5e87359b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/newscbm33 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/next b/code/application/source/sf_app/tools/blue/lib/terminfo/n/next new file mode 100644 index 000000000..f48180ea3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/next differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nextshell b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nextshell new file mode 100644 index 000000000..bcd16a56b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nextshell differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/northstar b/code/application/source/sf_app/tools/blue/lib/terminfo/n/northstar new file mode 100644 index 000000000..8040e3c93 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/northstar differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm new file mode 100644 index 000000000..b3a736a56 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+7 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+7 new file mode 100644 index 000000000..d2fbebaea Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+acs b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+acs new file mode 100644 index 000000000..08234d599 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+acs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+c b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+c new file mode 100644 index 000000000..6e0797819 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+c41 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+c41 new file mode 100644 index 000000000..2d6a62997 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+c41 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+mac b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+mac new file mode 100644 index 000000000..88e69bc46 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+mac differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+s b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+s new file mode 100644 index 000000000..858c5b682 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm+s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-16color b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-16color new file mode 100644 index 000000000..4af255dc3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-16color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-256color new file mode 100644 index 000000000..b3a736a56 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7 new file mode 100644 index 000000000..1b68545d1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-c b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-c new file mode 100644 index 000000000..b5247bb46 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-c-s b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-c-s new file mode 100644 index 000000000..3bee1b4ad Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-c-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-m b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-m new file mode 100644 index 000000000..f64044ef4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-m-s b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-m-s new file mode 100644 index 000000000..a9364767d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-m-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-s b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-s new file mode 100644 index 000000000..d924966d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-7-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs new file mode 100644 index 000000000..444a0e085 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-c b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-c new file mode 100644 index 000000000..a232413a4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-c-s b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-c-s new file mode 100644 index 000000000..d10788013 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-c-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-m b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-m new file mode 100644 index 000000000..2e8b3c829 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-m-s b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-m-s new file mode 100644 index 000000000..8a6967be8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-m-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-s b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-s new file mode 100644 index 000000000..6a0b4965c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-acs-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-bce b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-bce new file mode 100644 index 000000000..a8c3947e7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-bce differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build309 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build309 new file mode 100644 index 000000000..7a8c9992b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build309 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build326 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build326 new file mode 100644 index 000000000..924cc1a01 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build326 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build343 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build343 new file mode 100644 index 000000000..a427c382f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build343 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build361 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build361 new file mode 100644 index 000000000..561b7c09c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build361 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build400 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build400 new file mode 100644 index 000000000..296fa3be2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-build400 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c new file mode 100644 index 000000000..22ced1d15 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-7 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-7 new file mode 100644 index 000000000..b5247bb46 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-acs b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-acs new file mode 100644 index 000000000..a232413a4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-acs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-s b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-s new file mode 100644 index 000000000..aa9938dde Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-s-7 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-s-7 new file mode 100644 index 000000000..3bee1b4ad Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-s-7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-s-acs b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-s-acs new file mode 100644 index 000000000..d10788013 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-c-s-acs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-direct b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-direct new file mode 100644 index 000000000..66d5bbcf6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m new file mode 100644 index 000000000..37aaae7ec Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-7 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-7 new file mode 100644 index 000000000..f64044ef4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-acs b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-acs new file mode 100644 index 000000000..2e8b3c829 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-acs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-s b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-s new file mode 100644 index 000000000..d16ad2e55 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-s-7 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-s-7 new file mode 100644 index 000000000..a9364767d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-s-7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-s-acs b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-s-acs new file mode 100644 index 000000000..8a6967be8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-m-s-acs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-old b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-old new file mode 100644 index 000000000..86a8d903f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-s b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-s new file mode 100644 index 000000000..c96f1ea89 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-s-7 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-s-7 new file mode 100644 index 000000000..d924966d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-s-7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-s-acs b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-s-acs new file mode 100644 index 000000000..6a0b4965c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nsterm-s-acs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole new file mode 100644 index 000000000..afbcc420c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-100 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-100 new file mode 100644 index 000000000..b2d88c541 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-100-nti b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-100-nti new file mode 100644 index 000000000..eeb8897f8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-100-nti differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-25 new file mode 100644 index 000000000..afbcc420c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-25-nti b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-25-nti new file mode 100644 index 000000000..a9c1fbe9c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-25-nti differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-25-w new file mode 100644 index 000000000..740ed010d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-25-w-vt b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-25-w-vt new file mode 100644 index 000000000..c65a8188e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-25-w-vt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-35 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-35 new file mode 100644 index 000000000..2332b3ab8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-35 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-35-nti b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-35-nti new file mode 100644 index 000000000..1544b68f3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-35-nti differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-35-w b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-35-w new file mode 100644 index 000000000..de7086a86 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-35-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-50 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-50 new file mode 100644 index 000000000..696833c54 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-50 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-50-nti b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-50-nti new file mode 100644 index 000000000..b9f8ed758 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-50-nti differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-50-w b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-50-w new file mode 100644 index 000000000..d46c9741d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-50-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-60 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-60 new file mode 100644 index 000000000..9f6d4f8ee Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-60 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-60-nti b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-60-nti new file mode 100644 index 000000000..ea50793cc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-60-nti differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-60-w b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-60-w new file mode 100644 index 000000000..5e1297b04 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-60-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-w b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-w new file mode 100644 index 000000000..740ed010d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-w-vt b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-w-vt new file mode 100644 index 000000000..c65a8188e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/ntconsole-w-vt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwe501 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwe501 new file mode 100644 index 000000000..5413acdb7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwe501 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwe501-a b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwe501-a new file mode 100644 index 000000000..5e87359b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwe501-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwe501-o b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwe501-o new file mode 100644 index 000000000..6412ae476 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwe501-o differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp-511 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp-511 new file mode 100644 index 000000000..0bf5e9388 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp-511 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp-517 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp-517 new file mode 100644 index 000000000..51242d056 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp-517 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp-517-w b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp-517-w new file mode 100644 index 000000000..6eeb3a03e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp-517-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp251-a b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp251-a new file mode 100644 index 000000000..5e87359b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp251-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp251-o b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp251-o new file mode 100644 index 000000000..6412ae476 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp251-o differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp511 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp511 new file mode 100644 index 000000000..0bf5e9388 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp511 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp512 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp512 new file mode 100644 index 000000000..2228f492e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp512 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp512-a b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp512-a new file mode 100644 index 000000000..c2de145ac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp512-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp512-o b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp512-o new file mode 100644 index 000000000..8e9cc5c80 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp512-o differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp513 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp513 new file mode 100644 index 000000000..5413acdb7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp513 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp513-a b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp513-a new file mode 100644 index 000000000..5e87359b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp513-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp513-o b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp513-o new file mode 100644 index 000000000..6412ae476 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp513-o differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp514 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp514 new file mode 100644 index 000000000..2228f492e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp514 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp514-a b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp514-a new file mode 100644 index 000000000..c2de145ac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp514-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp514-o b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp514-o new file mode 100644 index 000000000..8e9cc5c80 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp514-o differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp517 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp517 new file mode 100644 index 000000000..51242d056 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp517 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp517-w b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp517-w new file mode 100644 index 000000000..6eeb3a03e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp517-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp518 b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp518 new file mode 100644 index 000000000..5413acdb7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp518 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp518-a b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp518-a new file mode 100644 index 000000000..5e87359b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp518-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp518-o b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp518-o new file mode 100644 index 000000000..6412ae476 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nwp518-o differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/n/nxterm b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nxterm new file mode 100644 index 000000000..10bf2e1ad Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/n/nxterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/o31 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/o31 new file mode 100644 index 000000000..fb6d9e6b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/o31 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/o4112-nd b/code/application/source/sf_app/tools/blue/lib/terminfo/o/o4112-nd new file mode 100644 index 000000000..26d79123e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/o4112-nd differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/o85h b/code/application/source/sf_app/tools/blue/lib/terminfo/o/o85h new file mode 100644 index 000000000..a631d65e3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/o85h differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/oabm85h b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oabm85h new file mode 100644 index 000000000..a631d65e3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oabm85h differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/oblit b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oblit new file mode 100644 index 000000000..6695983aa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oblit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/oc100 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oc100 new file mode 100644 index 000000000..67fa7a47e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oc100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/oconcept b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oconcept new file mode 100644 index 000000000..67fa7a47e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oconcept differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/ofcons b/code/application/source/sf_app/tools/blue/lib/terminfo/o/ofcons new file mode 100644 index 000000000..bafc10ffd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/ofcons differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/ojerq b/code/application/source/sf_app/tools/blue/lib/terminfo/o/ojerq new file mode 100644 index 000000000..6695983aa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/ojerq differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/old-st b/code/application/source/sf_app/tools/blue/lib/terminfo/o/old-st new file mode 100644 index 000000000..5e0bdd2e2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/old-st differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/oldibmpc3 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oldibmpc3 new file mode 100644 index 000000000..3a4a964a3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oldibmpc3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/oldpc3 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oldpc3 new file mode 100644 index 000000000..3a4a964a3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oldpc3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/oldsun b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oldsun new file mode 100644 index 000000000..c3ee0df35 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/oldsun differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/omron b/code/application/source/sf_app/tools/blue/lib/terminfo/o/omron new file mode 100644 index 000000000..91508fe69 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/omron differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt new file mode 100644 index 000000000..afbcc420c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-100 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-100 new file mode 100644 index 000000000..b2d88c541 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-100-nti b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-100-nti new file mode 100644 index 000000000..eeb8897f8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-100-nti differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-25 new file mode 100644 index 000000000..afbcc420c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-25-nti b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-25-nti new file mode 100644 index 000000000..a9c1fbe9c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-25-nti differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-25-w new file mode 100644 index 000000000..740ed010d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-25-w-vt b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-25-w-vt new file mode 100644 index 000000000..c65a8188e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-25-w-vt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-35 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-35 new file mode 100644 index 000000000..2332b3ab8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-35 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-35-nti b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-35-nti new file mode 100644 index 000000000..1544b68f3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-35-nti differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-35-w b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-35-w new file mode 100644 index 000000000..de7086a86 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-35-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-50 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-50 new file mode 100644 index 000000000..696833c54 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-50 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-50-nti b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-50-nti new file mode 100644 index 000000000..b9f8ed758 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-50-nti differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-50-w b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-50-w new file mode 100644 index 000000000..d46c9741d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-50-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-60 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-60 new file mode 100644 index 000000000..9f6d4f8ee Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-60 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-60-nti b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-60-nti new file mode 100644 index 000000000..ea50793cc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-60-nti differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-60-w b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-60-w new file mode 100644 index 000000000..5e1297b04 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-60-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-nti b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-nti new file mode 100644 index 000000000..a9c1fbe9c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-nti differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-w b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-w new file mode 100644 index 000000000..740ed010d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-w-vt b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-w-vt new file mode 100644 index 000000000..c65a8188e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opennt-w-vt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/opus3n1+ b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opus3n1+ new file mode 100644 index 000000000..5ccc1e881 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/opus3n1+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/origibmpc3 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/origibmpc3 new file mode 100644 index 000000000..2afd3509b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/origibmpc3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/origpc3 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/origpc3 new file mode 100644 index 000000000..2afd3509b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/origpc3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/os9LII b/code/application/source/sf_app/tools/blue/lib/terminfo/o/os9LII new file mode 100644 index 000000000..9d523da88 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/os9LII differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/osborne b/code/application/source/sf_app/tools/blue/lib/terminfo/o/osborne new file mode 100644 index 000000000..c0ea262d8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/osborne differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/osborne-w b/code/application/source/sf_app/tools/blue/lib/terminfo/o/osborne-w new file mode 100644 index 000000000..84b829850 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/osborne-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/osborne1 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/osborne1 new file mode 100644 index 000000000..c0ea262d8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/osborne1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/osborne1-w b/code/application/source/sf_app/tools/blue/lib/terminfo/o/osborne1-w new file mode 100644 index 000000000..84b829850 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/osborne1-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/osexec b/code/application/source/sf_app/tools/blue/lib/terminfo/o/osexec new file mode 100644 index 000000000..222300cc3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/osexec differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/otek4112 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/otek4112 new file mode 100644 index 000000000..26d79123e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/otek4112 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/otek4113 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/otek4113 new file mode 100644 index 000000000..26d79123e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/otek4113 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/otek4114 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/otek4114 new file mode 100644 index 000000000..26d79123e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/otek4114 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/otek4115 b/code/application/source/sf_app/tools/blue/lib/terminfo/o/otek4115 new file mode 100644 index 000000000..bd3f743ff Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/otek4115 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/o/owl b/code/application/source/sf_app/tools/blue/lib/terminfo/o/owl new file mode 100644 index 000000000..d8c6ccac5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/o/owl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p12 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p12 new file mode 100644 index 000000000..12de25677 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p12 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p12-m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p12-m new file mode 100644 index 000000000..c4dd32141 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p12-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p12-m-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p12-m-w new file mode 100644 index 000000000..7a52b6095 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p12-m-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p12-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p12-w new file mode 100644 index 000000000..2fe870dbc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p12-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p14 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p14 new file mode 100644 index 000000000..485f1bc72 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p14 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p14-m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p14-m new file mode 100644 index 000000000..39dd31072 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p14-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p14-m-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p14-m-w new file mode 100644 index 000000000..5b6475de6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p14-m-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p14-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p14-w new file mode 100644 index 000000000..1d7df53b7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p14-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p19 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p19 new file mode 100644 index 000000000..4b1eda0ea Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p19 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p4 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p4 new file mode 100644 index 000000000..1d53e488c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p5 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p5 new file mode 100644 index 000000000..f1848d045 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p7 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p7 new file mode 100644 index 000000000..539b4ff65 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p8 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p8 new file mode 100644 index 000000000..12fd9e6ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p8-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p8-w new file mode 100644 index 000000000..8f254d360 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p8-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p8gl b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p8gl new file mode 100644 index 000000000..aabd61376 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p8gl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p9 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p9 new file mode 100644 index 000000000..2a55145e9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p9 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p9-8 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p9-8 new file mode 100644 index 000000000..8191a9bd8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p9-8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p9-8-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p9-8-w new file mode 100644 index 000000000..93e3da958 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p9-8-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/p9-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p9-w new file mode 100644 index 000000000..44029ba7f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/p9-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc-coherent b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc-coherent new file mode 100644 index 000000000..e6e3856d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc-coherent differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc-minix b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc-minix new file mode 100644 index 000000000..e264e8abc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc-minix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc-venix b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc-venix new file mode 100644 index 000000000..32a7ec05e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc-venix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc3 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc3 new file mode 100644 index 000000000..08460b72f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc3-bold b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc3-bold new file mode 100644 index 000000000..98594f3c4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc3-bold differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc3r b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc3r new file mode 100644 index 000000000..0cb4322ea Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc3r differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc3r-m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc3r-m new file mode 100644 index 000000000..e5cab4c98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc3r-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc6300plus b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc6300plus new file mode 100644 index 000000000..8e95f22bf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc6300plus differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc7300 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc7300 new file mode 100644 index 000000000..b41843d6a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pc7300 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi new file mode 100644 index 000000000..b24fba935 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-25 new file mode 100644 index 000000000..50440accd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-25-m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-25-m new file mode 100644 index 000000000..eea464609 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-25-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-33 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-33 new file mode 100644 index 000000000..77ec07a91 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-33 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-33-m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-33-m new file mode 100644 index 000000000..c9b0dcb60 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-33-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-43 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-43 new file mode 100644 index 000000000..4399ed8a9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-43 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-43-m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-43-m new file mode 100644 index 000000000..be5691893 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-43-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-m new file mode 100644 index 000000000..290b8f72d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-mono b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-mono new file mode 100644 index 000000000..290b8f72d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi-mono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi25 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi25 new file mode 100644 index 000000000..50440accd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi25m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi25m new file mode 100644 index 000000000..eea464609 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi25m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi33 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi33 new file mode 100644 index 000000000..77ec07a91 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi33 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi33m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi33m new file mode 100644 index 000000000..c9b0dcb60 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi33m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi43 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi43 new file mode 100644 index 000000000..4399ed8a9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcansi43 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon new file mode 100644 index 000000000..978b46207 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+base b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+base new file mode 100644 index 000000000..2fd0ab878 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+base differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+colors b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+colors new file mode 100644 index 000000000..8a884fa8f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+colors differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+keys b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+keys new file mode 100644 index 000000000..75b7a4e80 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+keys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+sgr+acs b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+sgr+acs new file mode 100644 index 000000000..13e0b59f0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+sgr+acs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+sgr+acs0 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+sgr+acs0 new file mode 100644 index 000000000..c137c1540 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon+sgr+acs0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon-m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon-m new file mode 100644 index 000000000..4a76bd344 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon0 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon0 new file mode 100644 index 000000000..e3553fbf7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon0-m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon0-m new file mode 100644 index 000000000..10e3e44bd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccon0-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccons b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccons new file mode 100644 index 000000000..5d7c9457a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pccons differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcconsole b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcconsole new file mode 100644 index 000000000..5d7c9457a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcconsole differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcix b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcix new file mode 100644 index 000000000..fdfbe5174 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pckermit b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pckermit new file mode 100644 index 000000000..55ac2ccbb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pckermit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pckermit12 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pckermit12 new file mode 100644 index 000000000..55ac2ccbb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pckermit12 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pckermit120 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pckermit120 new file mode 100644 index 000000000..b8682c845 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pckermit120 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcmw b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcmw new file mode 100644 index 000000000..4d85ec1fe Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcmw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcplot b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcplot new file mode 100644 index 000000000..2a3583898 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcplot differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt25 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt25 new file mode 100644 index 000000000..b7be77a6b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt25-color b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt25-color new file mode 100644 index 000000000..a29abd38f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt25-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt25w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt25w new file mode 100644 index 000000000..51ce3eb98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt25w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt28 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt28 new file mode 100644 index 000000000..2ce8676ea Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt28 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt28w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt28w new file mode 100644 index 000000000..4283e2132 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt28w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt35 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt35 new file mode 100644 index 000000000..806618299 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt35 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt35w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt35w new file mode 100644 index 000000000..307a76a60 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt35w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt40 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt40 new file mode 100644 index 000000000..5201ac650 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt40w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt40w new file mode 100644 index 000000000..0a1788ecb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt40w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt43 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt43 new file mode 100644 index 000000000..c0363fff0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt43 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt43w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt43w new file mode 100644 index 000000000..00aa233ac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt43w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt50 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt50 new file mode 100644 index 000000000..a87d0727a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt50 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt50w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt50w new file mode 100644 index 000000000..cfcf063d1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvt50w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvtXX b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvtXX new file mode 100644 index 000000000..70d73bac5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcvtXX differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcz19 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcz19 new file mode 100644 index 000000000..e6e3856d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pcz19 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe1100 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe1100 new file mode 100644 index 000000000..210f592db Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe1100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe1200 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe1200 new file mode 100644 index 000000000..d8c6ccac5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe1200 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe1251 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe1251 new file mode 100644 index 000000000..01acc1b70 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe1251 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe550 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe550 new file mode 100644 index 000000000..2dc4fa3a3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe550 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe6100 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe6100 new file mode 100644 index 000000000..2dc4fa3a3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe6100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe6300 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe6300 new file mode 100644 index 000000000..01acc1b70 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe6300 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe6312 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe6312 new file mode 100644 index 000000000..01acc1b70 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe6312 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe7000c b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe7000c new file mode 100644 index 000000000..e86846227 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe7000c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe7000m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe7000m new file mode 100644 index 000000000..c17e365ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pe7000m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pilot b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pilot new file mode 100644 index 000000000..861483388 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pilot differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pmcons b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pmcons new file mode 100644 index 000000000..5a5b783f3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pmcons differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pmconsole b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pmconsole new file mode 100644 index 000000000..5a5b783f3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pmconsole differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/printer b/code/application/source/sf_app/tools/blue/lib/terminfo/p/printer new file mode 100644 index 000000000..279e1e878 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/printer differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism12 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism12 new file mode 100644 index 000000000..12de25677 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism12 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism12-m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism12-m new file mode 100644 index 000000000..c4dd32141 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism12-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism12-m-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism12-m-w new file mode 100644 index 000000000..7a52b6095 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism12-m-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism12-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism12-w new file mode 100644 index 000000000..2fe870dbc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism12-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism14 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism14 new file mode 100644 index 000000000..485f1bc72 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism14 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism14-m b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism14-m new file mode 100644 index 000000000..39dd31072 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism14-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism14-m-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism14-m-w new file mode 100644 index 000000000..5b6475de6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism14-m-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism14-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism14-w new file mode 100644 index 000000000..1d7df53b7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism14-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism2 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism2 new file mode 100644 index 000000000..b06737aec Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism4 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism4 new file mode 100644 index 000000000..1d53e488c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism5 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism5 new file mode 100644 index 000000000..f1848d045 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism7 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism7 new file mode 100644 index 000000000..539b4ff65 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism8 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism8 new file mode 100644 index 000000000..12fd9e6ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism8-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism8-w new file mode 100644 index 000000000..8f254d360 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism8-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism8gl b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism8gl new file mode 100644 index 000000000..aabd61376 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism8gl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism9 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism9 new file mode 100644 index 000000000..2a55145e9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism9 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism9-8 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism9-8 new file mode 100644 index 000000000..8191a9bd8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism9-8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism9-8-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism9-8-w new file mode 100644 index 000000000..93e3da958 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism9-8-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism9-w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism9-w new file mode 100644 index 000000000..44029ba7f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/prism9-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pro350 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pro350 new file mode 100644 index 000000000..e73dc1221 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pro350 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/ps300 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/ps300 new file mode 100644 index 000000000..de2ccd768 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/ps300 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm new file mode 100644 index 000000000..d7ec53e2a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-80x24 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-80x24 new file mode 100644 index 000000000..786fe2320 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-80x24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-90x28 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-90x28 new file mode 100644 index 000000000..6557b3727 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-90x28 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-96x48 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-96x48 new file mode 100644 index 000000000..a4ab8884a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-96x48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-basic b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-basic new file mode 100644 index 000000000..d7ec53e2a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-basic differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-fast b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-fast new file mode 100644 index 000000000..48d3c87b9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psterm-fast differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/psx_ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psx_ansi new file mode 100644 index 000000000..b6bc8b8f5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/psx_ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt100 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt100 new file mode 100644 index 000000000..cf224e6f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt100w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt100w new file mode 100644 index 000000000..1f73e3468 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt100w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt200 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt200 new file mode 100644 index 000000000..cf224e6f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt200 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt200w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt200w new file mode 100644 index 000000000..1f73e3468 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt200w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt210 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt210 new file mode 100644 index 000000000..21417c3ad Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt210 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt250 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt250 new file mode 100644 index 000000000..01b1660d8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt250 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt250w b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt250w new file mode 100644 index 000000000..46e5e17f6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt250w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt505 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt505 new file mode 100644 index 000000000..92dffac5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt505 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt505-22 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt505-22 new file mode 100644 index 000000000..e452c35af Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt505-22 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt505-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt505-24 new file mode 100644 index 000000000..bcccaaa7e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pt505-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/pty b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pty new file mode 100644 index 000000000..deb1bf7da Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/pty differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty new file mode 100644 index 000000000..4a90dc02e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys new file mode 100644 index 000000000..8d0c4405a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+esc b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+esc new file mode 100644 index 000000000..5b307946e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+esc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+linux b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+linux new file mode 100644 index 000000000..d6a2dc770 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+linux differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+sco b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+sco new file mode 100644 index 000000000..3ce9718d7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+sco differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+vt100 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+vt100 new file mode 100644 index 000000000..769e3673c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+vt100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+vt400 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+vt400 new file mode 100644 index 000000000..1d329d383 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+vt400 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+xterm b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+xterm new file mode 100644 index 000000000..994007e6b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+fnkeys+xterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+keypad b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+keypad new file mode 100644 index 000000000..2bf59a0a4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+keypad differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+screen b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+screen new file mode 100644 index 000000000..a848d2fc4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty+screen differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-256color new file mode 100644 index 000000000..2906cf229 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-m1 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-m1 new file mode 100644 index 000000000..6db7ff6f0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-m1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-m1b b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-m1b new file mode 100644 index 000000000..148e727c4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-m1b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-m2 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-m2 new file mode 100644 index 000000000..6d07493f3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-m2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-noapp b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-noapp new file mode 100644 index 000000000..1bfe6b19c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-noapp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-sco b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-sco new file mode 100644 index 000000000..edaa6e22b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-sco differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-screen b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-screen new file mode 100644 index 000000000..7b9d9f076 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-screen differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-vt100 b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-vt100 new file mode 100644 index 000000000..f7b8537f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/p/putty-vt100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi new file mode 100644 index 000000000..bc7585862 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi-g b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi-g new file mode 100644 index 000000000..35706e4ed Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi-g differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi-m b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi-m new file mode 100644 index 000000000..e19a3d91d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi-t b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi-t new file mode 100644 index 000000000..4d23e48db Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi-t differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi-w b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi-w new file mode 100644 index 000000000..77e03fc63 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qansi-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qdcons b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qdcons new file mode 100644 index 000000000..956ea309a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qdcons differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qdss b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qdss new file mode 100644 index 000000000..956ea309a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qdss differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnx b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnx new file mode 100644 index 000000000..124314aa7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnx differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnx4 b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnx4 new file mode 100644 index 000000000..124314aa7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnx4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxm b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxm new file mode 100644 index 000000000..9580f0d24 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxt b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxt new file mode 100644 index 000000000..b23d7a838 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxt2 b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxt2 new file mode 100644 index 000000000..21ef72d26 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxt2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxt4 b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxt4 new file mode 100644 index 000000000..b23d7a838 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxt4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxtmono b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxtmono new file mode 100644 index 000000000..570146109 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxtmono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxw b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxw new file mode 100644 index 000000000..8c9498a79 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qnxw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qume b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qume new file mode 100644 index 000000000..16cbc5622 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qume differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qume5 b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qume5 new file mode 100644 index 000000000..16cbc5622 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qume5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt101 b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt101 new file mode 100644 index 000000000..837689ef4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt101 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt101+ b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt101+ new file mode 100644 index 000000000..4a9cd947f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt101+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt101p b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt101p new file mode 100644 index 000000000..4a9cd947f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt101p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt102 b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt102 new file mode 100644 index 000000000..f2a9ed180 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt102 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt103 b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt103 new file mode 100644 index 000000000..f3906f7eb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt103 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt103-w b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt103-w new file mode 100644 index 000000000..5a3064892 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt103-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt108 b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt108 new file mode 100644 index 000000000..837689ef4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt108 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119 b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119 new file mode 100644 index 000000000..02216cd89 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119+ b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119+ new file mode 100644 index 000000000..02216cd89 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119+-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119+-25 new file mode 100644 index 000000000..7635a5a4b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119+-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119+-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119+-25-w new file mode 100644 index 000000000..0149dc3a9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119+-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119+-w b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119+-w new file mode 100644 index 000000000..ad4493641 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119+-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119-25-w new file mode 100644 index 000000000..0149dc3a9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119-w b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119-w new file mode 100644 index 000000000..ad4493641 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119p b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119p new file mode 100644 index 000000000..02216cd89 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119p-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119p-25 new file mode 100644 index 000000000..7635a5a4b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119p-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119p-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119p-25-w new file mode 100644 index 000000000..0149dc3a9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119p-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119p-w b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119p-w new file mode 100644 index 000000000..ad4493641 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt119p-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203 b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203 new file mode 100644 index 000000000..c35995806 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203+ b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203+ new file mode 100644 index 000000000..c35995806 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203-25 new file mode 100644 index 000000000..c41b9b491 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203-25-w new file mode 100644 index 000000000..6db30c09b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203-w b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203-w new file mode 100644 index 000000000..9cf664031 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203-w-am b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203-w-am new file mode 100644 index 000000000..9cf664031 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/q/qvt203-w-am differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rbcomm b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rbcomm new file mode 100644 index 000000000..2f5cd2939 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rbcomm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rbcomm-nam b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rbcomm-nam new file mode 100644 index 000000000..8cc0f9baa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rbcomm-nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rbcomm-w b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rbcomm-w new file mode 100644 index 000000000..16f94b059 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rbcomm-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rca b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rca new file mode 100644 index 000000000..56c610162 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rca differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rcons b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rcons new file mode 100644 index 000000000..c031009cc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rcons differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rcons-color b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rcons-color new file mode 100644 index 000000000..e7a7013c7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rcons-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rebus3180 b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rebus3180 new file mode 100644 index 000000000..75b1dffe5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rebus3180 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent new file mode 100644 index 000000000..978ce6b71 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent100 b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent100 new file mode 100644 index 000000000..2500f1157 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent20 b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent20 new file mode 100644 index 000000000..e8fadf446 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent20 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent200 b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent200 new file mode 100644 index 000000000..d574b915d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent200 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent25 b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent25 new file mode 100644 index 000000000..2f351e41b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent40 b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent40 new file mode 100644 index 000000000..ac16362c5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent40+ b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent40+ new file mode 100644 index 000000000..6f6c6591a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent40+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent60 b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent60 new file mode 100644 index 000000000..d574b915d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/regent60 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rt6221 b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rt6221 new file mode 100644 index 000000000..878d54900 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rt6221 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rt6221-w b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rt6221-w new file mode 100644 index 000000000..8afc1c57b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rt6221-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rtpc b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rtpc new file mode 100644 index 000000000..46bd1afb1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rtpc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt new file mode 100644 index 000000000..b3695a7d2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt+pcfkeys b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt+pcfkeys new file mode 100644 index 000000000..e8c11712d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt+pcfkeys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-16color b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-16color new file mode 100644 index 000000000..6fcc3e874 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-16color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-256color new file mode 100644 index 000000000..849454a30 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-88color b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-88color new file mode 100644 index 000000000..14312a431 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-88color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-basic b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-basic new file mode 100644 index 000000000..6e95c85cb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-basic differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-color b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-color new file mode 100644 index 000000000..d65720d25 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-cygwin b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-cygwin new file mode 100644 index 000000000..8e5480006 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-cygwin differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-cygwin-native b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-cygwin-native new file mode 100644 index 000000000..698504179 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-cygwin-native differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-xpm b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-xpm new file mode 100644 index 000000000..fe2b477e6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/r/rxvt-xpm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/s4 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/s4 new file mode 100644 index 000000000..b41843d6a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/s4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sb1 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sb1 new file mode 100644 index 000000000..19f119dad Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sb1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sb2 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sb2 new file mode 100644 index 000000000..21b7e178b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sb2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sb3 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sb3 new file mode 100644 index 000000000..21b7e178b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sb3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sbi b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sbi new file mode 100644 index 000000000..424704d76 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sbi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sbobcat b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sbobcat new file mode 100644 index 000000000..a0ed4abe0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sbobcat differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sc410 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sc410 new file mode 100644 index 000000000..d30d42cae Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sc410 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sc415 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sc415 new file mode 100644 index 000000000..d30d42cae Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sc415 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/scanset b/code/application/source/sf_app/tools/blue/lib/terminfo/s/scanset new file mode 100644 index 000000000..d30d42cae Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/scanset differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/scoansi b/code/application/source/sf_app/tools/blue/lib/terminfo/s/scoansi new file mode 100644 index 000000000..f5e2e0cda Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/scoansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/scoansi-new b/code/application/source/sf_app/tools/blue/lib/terminfo/s/scoansi-new new file mode 100644 index 000000000..7beab0fbf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/scoansi-new differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/scoansi-old b/code/application/source/sf_app/tools/blue/lib/terminfo/s/scoansi-old new file mode 100644 index 000000000..e5b08c54c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/scoansi-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen new file mode 100644 index 000000000..1c8a30ec4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen+fkeys b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen+fkeys new file mode 100644 index 000000000..a3564ab15 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen+fkeys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen+italics b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen+italics new file mode 100644 index 000000000..efbdd64e1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen+italics differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-16color b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-16color new file mode 100644 index 000000000..990679d0b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-16color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-16color-bce b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-16color-bce new file mode 100644 index 000000000..c49248f19 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-16color-bce differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-16color-bce-s b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-16color-bce-s new file mode 100644 index 000000000..ab97bb783 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-16color-bce-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-16color-s b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-16color-s new file mode 100644 index 000000000..6ac7a1fa7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-16color-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-256color new file mode 100644 index 000000000..f5ecf3e0a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-256color-bce b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-256color-bce new file mode 100644 index 000000000..972b04840 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-256color-bce differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-256color-bce-s b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-256color-bce-s new file mode 100644 index 000000000..21f91b3d8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-256color-bce-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-256color-s b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-256color-s new file mode 100644 index 000000000..61d30ca7b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-256color-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce new file mode 100644 index 000000000..88b4d02a2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.Eterm b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.Eterm new file mode 100644 index 000000000..36ac7eaf9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.Eterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.gnome b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.gnome new file mode 100644 index 000000000..5d3ed361d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.gnome differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.konsole b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.konsole new file mode 100644 index 000000000..ed13b735b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.konsole differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.linux b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.linux new file mode 100644 index 000000000..242cc07d1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.linux differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.mrxvt b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.mrxvt new file mode 100644 index 000000000..80e1fe5e6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.mrxvt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.rxvt b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.rxvt new file mode 100644 index 000000000..c5ba92999 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.rxvt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.xterm-new b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.xterm-new new file mode 100644 index 000000000..d82d742ee Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-bce.xterm-new differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-s b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-s new file mode 100644 index 000000000..580b1caf0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-w b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-w new file mode 100644 index 000000000..681e95a52 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.Eterm b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.Eterm new file mode 100644 index 000000000..8ed159d35 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.Eterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.gnome b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.gnome new file mode 100644 index 000000000..c17735789 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.gnome differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.konsole b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.konsole new file mode 100644 index 000000000..43be60759 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.konsole differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.konsole-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.konsole-256color new file mode 100644 index 000000000..87175d9a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.konsole-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux new file mode 100644 index 000000000..2a508d123 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux-m1 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux-m1 new file mode 100644 index 000000000..b0c2157aa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux-m1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux-m1b b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux-m1b new file mode 100644 index 000000000..a46429266 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux-m1b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux-m2 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux-m2 new file mode 100644 index 000000000..1aeb07dcb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux-m2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux-s b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux-s new file mode 100644 index 000000000..2a508d123 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.linux-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1 new file mode 100644 index 000000000..b386b4847 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1-nb b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1-nb new file mode 100644 index 000000000..b4a3e1fd9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1-nb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel12-80 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel12-80 new file mode 100644 index 000000000..c4d61d0c0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel12-80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1b b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1b new file mode 100644 index 000000000..eeb88435e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1b-80 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1b-80 new file mode 100644 index 000000000..c4d61d0c0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1b-80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1b-nb b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1b-nb new file mode 100644 index 000000000..eb6f99837 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel1b-nb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel2-80 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel2-80 new file mode 100644 index 000000000..c4d61d0c0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.minitel2-80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.mlterm b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.mlterm new file mode 100644 index 000000000..191c57046 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.mlterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.mlterm-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.mlterm-256color new file mode 100644 index 000000000..3349c622c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.mlterm-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.mrxvt b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.mrxvt new file mode 100644 index 000000000..7ce35ef26 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.mrxvt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty new file mode 100644 index 000000000..5a7ff624d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty-256color new file mode 100644 index 000000000..2365d968c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty-m1 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty-m1 new file mode 100644 index 000000000..67912a1ae Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty-m1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty-m1b b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty-m1b new file mode 100644 index 000000000..caa714872 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty-m1b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty-m2 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty-m2 new file mode 100644 index 000000000..040b4edff Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.putty-m2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.rxvt b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.rxvt new file mode 100644 index 000000000..d58d9f388 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.rxvt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.teraterm b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.teraterm new file mode 100644 index 000000000..77eec890c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.teraterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.vte b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.vte new file mode 100644 index 000000000..48fbbc264 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.vte differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.vte-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.vte-256color new file mode 100644 index 000000000..3117b7d52 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.vte-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.xterm-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.xterm-256color new file mode 100644 index 000000000..cc6e16554 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.xterm-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.xterm-new b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.xterm-new new file mode 100644 index 000000000..87fff4544 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.xterm-new differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.xterm-r6 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.xterm-r6 new file mode 100644 index 000000000..5a56141c9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.xterm-r6 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.xterm-xfree86 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.xterm-xfree86 new file mode 100644 index 000000000..87fff4544 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen.xterm-xfree86 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen2 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen2 new file mode 100644 index 000000000..717276b2a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen3 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen3 new file mode 100644 index 000000000..768bcc84c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen4 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen4 new file mode 100644 index 000000000..7c6d86774 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen5 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen5 new file mode 100644 index 000000000..1024f20b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screen5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/screwpoint b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screwpoint new file mode 100644 index 000000000..6a0bdf661 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/screwpoint differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/scrhp b/code/application/source/sf_app/tools/blue/lib/terminfo/s/scrhp new file mode 100644 index 000000000..1698bf5d4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/scrhp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/scrt b/code/application/source/sf_app/tools/blue/lib/terminfo/s/scrt new file mode 100644 index 000000000..228f3fd98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/scrt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/securecrt b/code/application/source/sf_app/tools/blue/lib/terminfo/s/securecrt new file mode 100644 index 000000000..228f3fd98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/securecrt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sibo b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sibo new file mode 100644 index 000000000..da1e60790 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sibo differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/simpleterm b/code/application/source/sf_app/tools/blue/lib/terminfo/s/simpleterm new file mode 100644 index 000000000..5e0bdd2e2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/simpleterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/simterm b/code/application/source/sf_app/tools/blue/lib/terminfo/s/simterm new file mode 100644 index 000000000..faef0f752 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/simterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/soroc b/code/application/source/sf_app/tools/blue/lib/terminfo/s/soroc new file mode 100644 index 000000000..455d1a266 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/soroc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/soroc120 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/soroc120 new file mode 100644 index 000000000..455d1a266 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/soroc120 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/soroc140 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/soroc140 new file mode 100644 index 000000000..e364e467c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/soroc140 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/spinwriter b/code/application/source/sf_app/tools/blue/lib/terminfo/s/spinwriter new file mode 100644 index 000000000..30ecbfd93 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/spinwriter differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/st b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st new file mode 100644 index 000000000..8460f2e59 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-0.6 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-0.6 new file mode 100644 index 000000000..cff0dbd3e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-0.6 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-0.7 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-0.7 new file mode 100644 index 000000000..83eb9c84d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-0.7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-0.8 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-0.8 new file mode 100644 index 000000000..31537857a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-0.8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-16color b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-16color new file mode 100644 index 000000000..dc3f6b79b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-16color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-256color new file mode 100644 index 000000000..4c0299ab9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-direct b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-direct new file mode 100644 index 000000000..a55775bfc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st-direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/st52 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st52 new file mode 100644 index 000000000..b48ef93d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st52 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/st52-color b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st52-color new file mode 100644 index 000000000..608e45420 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st52-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/st52-m b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st52-m new file mode 100644 index 000000000..b48ef93d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st52-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/st52-old b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st52-old new file mode 100644 index 000000000..bc9acb631 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/st52-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/stterm b/code/application/source/sf_app/tools/blue/lib/terminfo/s/stterm new file mode 100644 index 000000000..8460f2e59 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/stterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/stterm-16color b/code/application/source/sf_app/tools/blue/lib/terminfo/s/stterm-16color new file mode 100644 index 000000000..dc3f6b79b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/stterm-16color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/stterm-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/s/stterm-256color new file mode 100644 index 000000000..4c0299ab9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/stterm-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/stv52 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/stv52 new file mode 100644 index 000000000..384f8dd97 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/stv52 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/stv52pc b/code/application/source/sf_app/tools/blue/lib/terminfo/s/stv52pc new file mode 100644 index 000000000..184731475 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/stv52pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun new file mode 100644 index 000000000..52a273107 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun+sl b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun+sl new file mode 100644 index 000000000..c5fd52338 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun+sl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-1 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-1 new file mode 100644 index 000000000..dbdd41211 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-12 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-12 new file mode 100644 index 000000000..8cadfd903 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-12 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-17 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-17 new file mode 100644 index 000000000..78552ef7a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-17 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-24 new file mode 100644 index 000000000..0258c5a3a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-34 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-34 new file mode 100644 index 000000000..6665c4224 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-34 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-48 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-48 new file mode 100644 index 000000000..eb2f9a249 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-c b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-c new file mode 100644 index 000000000..10e68e8f6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-cgsix b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-cgsix new file mode 100644 index 000000000..821fee818 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-cgsix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-cmd b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-cmd new file mode 100644 index 000000000..10e68e8f6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-cmd differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-color b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-color new file mode 100644 index 000000000..a4c02aa58 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-e b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-e new file mode 100644 index 000000000..33dbc23f2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-e differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-e-s b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-e-s new file mode 100644 index 000000000..d2d3902f5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-e-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-il b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-il new file mode 100644 index 000000000..c431b47b0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-il differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-nic b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-nic new file mode 100644 index 000000000..33dbc23f2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-nic differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-s b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-s new file mode 100644 index 000000000..5ce9922f2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-s-e b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-s-e new file mode 100644 index 000000000..d2d3902f5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-s-e differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-ss5 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-ss5 new file mode 100644 index 000000000..821fee818 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-ss5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-type4 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-type4 new file mode 100644 index 000000000..cddaebc64 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun-type4 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun1 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun1 new file mode 100644 index 000000000..52a273107 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun2 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun2 new file mode 100644 index 000000000..52a273107 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sun2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sune b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sune new file mode 100644 index 000000000..33dbc23f2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sune differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/superbee b/code/application/source/sf_app/tools/blue/lib/terminfo/s/superbee new file mode 100644 index 000000000..424704d76 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/superbee differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/superbee-xsb b/code/application/source/sf_app/tools/blue/lib/terminfo/s/superbee-xsb new file mode 100644 index 000000000..a07b4d661 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/superbee-xsb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/superbeeic b/code/application/source/sf_app/tools/blue/lib/terminfo/s/superbeeic new file mode 100644 index 000000000..e933d7c37 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/superbeeic differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/superbrain b/code/application/source/sf_app/tools/blue/lib/terminfo/s/superbrain new file mode 100644 index 000000000..0ca15da0c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/superbrain differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/sv80 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sv80 new file mode 100644 index 000000000..7ff7d52e6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/sv80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/swtp b/code/application/source/sf_app/tools/blue/lib/terminfo/s/swtp new file mode 100644 index 000000000..3e68f869e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/swtp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/synertek b/code/application/source/sf_app/tools/blue/lib/terminfo/s/synertek new file mode 100644 index 000000000..22b0388be Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/synertek differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/synertek380 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/synertek380 new file mode 100644 index 000000000..22b0388be Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/synertek380 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/s/system1 b/code/application/source/sf_app/tools/blue/lib/terminfo/s/system1 new file mode 100644 index 000000000..39ab6a3a9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/s/system1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/t10 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t10 new file mode 100644 index 000000000..ccd7c1a02 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t10 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/t1061 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t1061 new file mode 100644 index 000000000..eb45104b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t1061 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/t1061f b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t1061f new file mode 100644 index 000000000..4669ada7a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t1061f differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/t16 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t16 new file mode 100644 index 000000000..95956bf0b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t16 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/t3700 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t3700 new file mode 100644 index 000000000..0d0d18502 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t3700 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/t3800 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t3800 new file mode 100644 index 000000000..75bff1e52 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t3800 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/t653x b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t653x new file mode 100644 index 000000000..5f869e481 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/t653x differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab new file mode 100644 index 000000000..c33b0cd31 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132 new file mode 100644 index 000000000..c33b0cd31 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132-15 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132-15 new file mode 100644 index 000000000..c33b0cd31 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132-15 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132-rv new file mode 100644 index 000000000..382659494 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132-w b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132-w new file mode 100644 index 000000000..04b76499f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132-w-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132-w-rv new file mode 100644 index 000000000..f15a77242 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tab132-w-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tandem6510 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tandem6510 new file mode 100644 index 000000000..85cd8df24 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tandem6510 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tandem653 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tandem653 new file mode 100644 index 000000000..5f869e481 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tandem653 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek new file mode 100644 index 000000000..0ccfcb92e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4012 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4012 new file mode 100644 index 000000000..0ccfcb92e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4012 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4013 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4013 new file mode 100644 index 000000000..7b2f7e0b1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4013 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4014 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4014 new file mode 100644 index 000000000..e43d86ba4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4014 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4014-sm b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4014-sm new file mode 100644 index 000000000..5b5071202 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4014-sm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4015 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4015 new file mode 100644 index 000000000..4e4c83d68 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4015 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4015-sm b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4015-sm new file mode 100644 index 000000000..1f7cafa51 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4015-sm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4023 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4023 new file mode 100644 index 000000000..b6acf5a4b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4023 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4024 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4024 new file mode 100644 index 000000000..076424fe0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4024 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025 new file mode 100644 index 000000000..076424fe0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025-17 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025-17 new file mode 100644 index 000000000..0dbb2d20f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025-17 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025-17-ws b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025-17-ws new file mode 100644 index 000000000..cfe82ff71 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025-17-ws differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025-cr b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025-cr new file mode 100644 index 000000000..9850e297a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025-cr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025-ex b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025-ex new file mode 100644 index 000000000..5ef6ea6f7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025-ex differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025a b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025a new file mode 100644 index 000000000..212081376 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025ex b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025ex new file mode 100644 index 000000000..a7d999f1b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4025ex differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4027 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4027 new file mode 100644 index 000000000..076424fe0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4027 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4027-ex b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4027-ex new file mode 100644 index 000000000..5ef6ea6f7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4027-ex differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4105 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4105 new file mode 100644 index 000000000..795a1faf2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4105 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4105-30 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4105-30 new file mode 100644 index 000000000..095f05272 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4105-30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4105a b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4105a new file mode 100644 index 000000000..98adaa3c2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4105a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4106brl b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4106brl new file mode 100644 index 000000000..495593e66 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4106brl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4107 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4107 new file mode 100644 index 000000000..79ccaab75 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4107 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4107brl b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4107brl new file mode 100644 index 000000000..495593e66 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4107brl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4109 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4109 new file mode 100644 index 000000000..79ccaab75 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4109 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4109brl b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4109brl new file mode 100644 index 000000000..495593e66 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4109brl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4112 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4112 new file mode 100644 index 000000000..0bc96793c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4112 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4112-5 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4112-5 new file mode 100644 index 000000000..a9d689255 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4112-5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4112-nd b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4112-nd new file mode 100644 index 000000000..efc604196 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4112-nd differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4113 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4113 new file mode 100644 index 000000000..dc06a2097 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4113 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4113-34 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4113-34 new file mode 100644 index 000000000..7fe8da7c2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4113-34 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4113-nd b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4113-nd new file mode 100644 index 000000000..a08ee68f8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4113-nd differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4114 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4114 new file mode 100644 index 000000000..0bc96793c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4114 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4115 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4115 new file mode 100644 index 000000000..59a0ee947 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4115 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4125 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4125 new file mode 100644 index 000000000..9e935a0a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4125 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4205 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4205 new file mode 100644 index 000000000..71742a952 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4205 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4207 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4207 new file mode 100644 index 000000000..8a7a81026 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4207 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4207-s b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4207-s new file mode 100644 index 000000000..8b20f115a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4207-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4404 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4404 new file mode 100644 index 000000000..4ea8e1196 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tek4404 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/teken b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teken new file mode 100644 index 000000000..a0182d369 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teken differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/teleray b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teleray new file mode 100644 index 000000000..eb45104b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teleray differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/teletec b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teletec new file mode 100644 index 000000000..de078ea4d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teletec differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm new file mode 100644 index 000000000..e46b88f8d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm-256color new file mode 100644 index 000000000..9201a4273 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm2.3 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm2.3 new file mode 100644 index 000000000..c69a9ee22 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm2.3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm4.59 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm4.59 new file mode 100644 index 000000000..f6d649a52 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm4.59 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm4.97 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm4.97 new file mode 100644 index 000000000..9f1f7a372 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/teraterm4.97 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminator b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminator new file mode 100644 index 000000000..11f811f7a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminator differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminet b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminet new file mode 100644 index 000000000..87c639c63 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminet differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminet1200 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminet1200 new file mode 100644 index 000000000..87c639c63 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminet1200 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminet300 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminet300 new file mode 100644 index 000000000..87c639c63 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminet300 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminology b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminology new file mode 100644 index 000000000..254a15d78 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminology differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminology-0.6.1 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminology-0.6.1 new file mode 100644 index 000000000..0ad1a9305 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminology-0.6.1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminology-1.0.0 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminology-1.0.0 new file mode 100644 index 000000000..f82e6e789 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminology-1.0.0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminology-1.8.1 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminology-1.8.1 new file mode 100644 index 000000000..49c86cd69 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/terminology-1.8.1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/termite b/code/application/source/sf_app/tools/blue/lib/terminfo/t/termite new file mode 100644 index 000000000..40015dc47 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/termite differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tgtelnet b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tgtelnet new file mode 100644 index 000000000..861483388 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tgtelnet differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti700 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti700 new file mode 100644 index 000000000..2eb177ba1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti700 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti703 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti703 new file mode 100644 index 000000000..8c37f2fac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti703 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti703-w b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti703-w new file mode 100644 index 000000000..4f19d78d6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti703-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti707 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti707 new file mode 100644 index 000000000..8c37f2fac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti707 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti707-w b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti707-w new file mode 100644 index 000000000..4f19d78d6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti707-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti733 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti733 new file mode 100644 index 000000000..2eb177ba1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti733 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti735 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti735 new file mode 100644 index 000000000..2eb177ba1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti735 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti745 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti745 new file mode 100644 index 000000000..2eb177ba1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti745 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti800 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti800 new file mode 100644 index 000000000..2eb177ba1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti800 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916 new file mode 100644 index 000000000..20f414911 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-132 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-132 new file mode 100644 index 000000000..17b87dd16 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-132 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-220-7 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-220-7 new file mode 100644 index 000000000..20f414911 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-220-7 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-220-8 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-220-8 new file mode 100644 index 000000000..f3eff36fd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-220-8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-8 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-8 new file mode 100644 index 000000000..f3eff36fd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-8-132 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-8-132 new file mode 100644 index 000000000..4fa4e1ac9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti916-8-132 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti924 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti924 new file mode 100644 index 000000000..e4cb8b093 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti924 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti924-8 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti924-8 new file mode 100644 index 000000000..8803c9033 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti924-8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti924-8w b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti924-8w new file mode 100644 index 000000000..49ff94709 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti924-8w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti924w b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti924w new file mode 100644 index 000000000..1a6b11734 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti924w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti926 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti926 new file mode 100644 index 000000000..34e2fd816 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti926 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti926-8 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti926-8 new file mode 100644 index 000000000..216a1481c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti926-8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti928 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti928 new file mode 100644 index 000000000..d895332b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti928 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti928-8 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti928-8 new file mode 100644 index 000000000..b38f0fbd2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti928-8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti931 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti931 new file mode 100644 index 000000000..f9e48bf85 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti931 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti_ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti_ansi new file mode 100644 index 000000000..9d67668f1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ti_ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tkterm b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tkterm new file mode 100644 index 000000000..15ae41198 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tkterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tmux b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tmux new file mode 100644 index 000000000..2730356f9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tmux differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tmux-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tmux-256color new file mode 100644 index 000000000..472cea0e1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tmux-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tmux-direct b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tmux-direct new file mode 100644 index 000000000..7301c47a5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tmux-direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tn1200 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tn1200 new file mode 100644 index 000000000..87c639c63 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tn1200 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tn300 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tn300 new file mode 100644 index 000000000..87c639c63 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tn300 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/trs16 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/trs16 new file mode 100644 index 000000000..6b707d369 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/trs16 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/trs2 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/trs2 new file mode 100644 index 000000000..5d34043f1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/trs2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/trs80II b/code/application/source/sf_app/tools/blue/lib/terminfo/t/trs80II new file mode 100644 index 000000000..5d34043f1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/trs80II differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/trsII b/code/application/source/sf_app/tools/blue/lib/terminfo/t/trsII new file mode 100644 index 000000000..5d34043f1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/trsII differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts-1 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts-1 new file mode 100644 index 000000000..c927125d8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts-1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts-1p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts-1p new file mode 100644 index 000000000..e4b59d214 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts-1p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts1 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts1 new file mode 100644 index 000000000..c927125d8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts100 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts100 new file mode 100644 index 000000000..0efbd586c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts100-ctxt b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts100-ctxt new file mode 100644 index 000000000..8e5c5691a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts100-ctxt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts100-sp b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts100-sp new file mode 100644 index 000000000..0efbd586c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts100-sp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts1p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts1p new file mode 100644 index 000000000..e4b59d214 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ts1p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tt b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tt new file mode 100644 index 000000000..15ae41198 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tt505-22 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tt505-22 new file mode 100644 index 000000000..e452c35af Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tt505-22 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tt52 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tt52 new file mode 100644 index 000000000..c4b798b85 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tt52 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty33 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty33 new file mode 100644 index 000000000..8f719a188 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty33 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty35 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty35 new file mode 100644 index 000000000..8f719a188 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty35 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty37 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty37 new file mode 100644 index 000000000..53a0f177c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty37 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty40 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty40 new file mode 100644 index 000000000..c9cf50f53 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty43 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty43 new file mode 100644 index 000000000..442479106 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty43 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4420 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4420 new file mode 100644 index 000000000..8187d8a27 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4420 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4424 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4424 new file mode 100644 index 000000000..41b83bfa6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4424 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4424-1 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4424-1 new file mode 100644 index 000000000..860c736e5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4424-1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4424m b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4424m new file mode 100644 index 000000000..88e676969 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4424m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4426 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4426 new file mode 100644 index 000000000..510154af0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty4426 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5410 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5410 new file mode 100644 index 000000000..41072d663 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5410 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5410-w b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5410-w new file mode 100644 index 000000000..78d1777fa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5410-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5410v1 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5410v1 new file mode 100644 index 000000000..d7d7336bc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5410v1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5410v1-w b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5410v1-w new file mode 100644 index 000000000..96225b8ef Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5410v1-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420 new file mode 100644 index 000000000..c1ff8e5aa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420+nl b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420+nl new file mode 100644 index 000000000..b9a8de81d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420+nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-nl new file mode 100644 index 000000000..d2713dab0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-rv new file mode 100644 index 000000000..e729264e1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-rv-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-rv-nl new file mode 100644 index 000000000..e6dff515d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-rv-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-w b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-w new file mode 100644 index 000000000..dbed57e99 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-w-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-w-nl new file mode 100644 index 000000000..e045ecac1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-w-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-w-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-w-rv new file mode 100644 index 000000000..dde6ba9db Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-w-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-w-rv-n b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-w-rv-n new file mode 100644 index 000000000..3d13a44cf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5420-w-rv-n differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5425 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5425 new file mode 100644 index 000000000..e170c6545 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5425 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5425-nl b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5425-nl new file mode 100644 index 000000000..c90e2a7b2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5425-nl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5425-w b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5425-w new file mode 100644 index 000000000..d072d8bcd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5425-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620 new file mode 100644 index 000000000..1bb40715f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620-1 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620-1 new file mode 100644 index 000000000..7212c7a1b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620-1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620-24 new file mode 100644 index 000000000..14c343120 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620-34 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620-34 new file mode 100644 index 000000000..a23f838bc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620-34 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620-s b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620-s new file mode 100644 index 000000000..56d4b5598 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tty5620-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/ttydmd b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ttydmd new file mode 100644 index 000000000..1bb40715f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/ttydmd differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi803 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi803 new file mode 100644 index 000000000..e170ba31b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi803 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi9065 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi9065 new file mode 100644 index 000000000..ec4446628 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi9065 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi910 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi910 new file mode 100644 index 000000000..8568723b8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi910 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi910+ b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi910+ new file mode 100644 index 000000000..32d470844 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi910+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912 new file mode 100644 index 000000000..019091637 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b new file mode 100644 index 000000000..77ecf3f10 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+2p new file mode 100644 index 000000000..fd6f79ad1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+dim b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+dim new file mode 100644 index 000000000..19249cc08 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+dim differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+mc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+mc new file mode 100644 index 000000000..4db717780 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+printer b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+printer new file mode 100644 index 000000000..c637ac202 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+printer differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+vb new file mode 100644 index 000000000..33e84caf0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b+vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-2p new file mode 100644 index 000000000..5a5e0623e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-2p-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-2p-mc new file mode 100644 index 000000000..abbf83bc4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-2p-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-2p-p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-2p-p new file mode 100644 index 000000000..02b187ce0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-2p-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-2p-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-2p-unk new file mode 100644 index 000000000..dc7095d43 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-2p-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-mc new file mode 100644 index 000000000..125ad3d5a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-mc-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-mc-2p new file mode 100644 index 000000000..abbf83bc4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-mc-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-mc-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-mc-vb new file mode 100644 index 000000000..c829f62f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-mc-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-p new file mode 100644 index 000000000..73b98b1ec Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-p-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-p-2p new file mode 100644 index 000000000..02b187ce0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-p-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-p-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-p-vb new file mode 100644 index 000000000..573eb16fb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-p-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-unk new file mode 100644 index 000000000..7517e3356 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-unk-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-unk-2p new file mode 100644 index 000000000..dc7095d43 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-unk-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-unk-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-unk-vb new file mode 100644 index 000000000..7e3431367 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-unk-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-vb new file mode 100644 index 000000000..57c741f80 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-vb-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-vb-mc new file mode 100644 index 000000000..c829f62f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-vb-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-vb-p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-vb-p new file mode 100644 index 000000000..573eb16fb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-vb-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-vb-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-vb-unk new file mode 100644 index 000000000..7e3431367 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912b-vb-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c new file mode 100644 index 000000000..77ecf3f10 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-2p new file mode 100644 index 000000000..5a5e0623e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-2p-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-2p-mc new file mode 100644 index 000000000..abbf83bc4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-2p-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-2p-p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-2p-p new file mode 100644 index 000000000..02b187ce0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-2p-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-2p-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-2p-unk new file mode 100644 index 000000000..dc7095d43 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-2p-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-mc new file mode 100644 index 000000000..125ad3d5a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-mc-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-mc-2p new file mode 100644 index 000000000..abbf83bc4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-mc-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-mc-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-mc-vb new file mode 100644 index 000000000..c829f62f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-mc-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-p new file mode 100644 index 000000000..73b98b1ec Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-p-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-p-2p new file mode 100644 index 000000000..02b187ce0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-p-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-p-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-p-vb new file mode 100644 index 000000000..573eb16fb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-p-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-unk new file mode 100644 index 000000000..7517e3356 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-unk-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-unk-2p new file mode 100644 index 000000000..dc7095d43 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-unk-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-unk-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-unk-vb new file mode 100644 index 000000000..7e3431367 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-unk-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-vb new file mode 100644 index 000000000..57c741f80 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-vb-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-vb-mc new file mode 100644 index 000000000..c829f62f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-vb-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-vb-p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-vb-p new file mode 100644 index 000000000..573eb16fb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-vb-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-vb-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-vb-unk new file mode 100644 index 000000000..7e3431367 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912c-vb-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912cc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912cc new file mode 100644 index 000000000..149fd1398 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi912cc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi914 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi914 new file mode 100644 index 000000000..019091637 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi914 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920 new file mode 100644 index 000000000..019091637 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b new file mode 100644 index 000000000..06e7dfdbf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b+fn b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b+fn new file mode 100644 index 000000000..e06daf511 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b+fn differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-2p new file mode 100644 index 000000000..889ea33cc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-2p-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-2p-mc new file mode 100644 index 000000000..35e308406 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-2p-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-2p-p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-2p-p new file mode 100644 index 000000000..1500670e7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-2p-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-2p-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-2p-unk new file mode 100644 index 000000000..2dec3cacc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-2p-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-mc new file mode 100644 index 000000000..b5933acf9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-mc-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-mc-2p new file mode 100644 index 000000000..35e308406 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-mc-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-mc-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-mc-vb new file mode 100644 index 000000000..d51d136ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-mc-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-p new file mode 100644 index 000000000..7873d0963 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-p-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-p-2p new file mode 100644 index 000000000..1500670e7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-p-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-p-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-p-vb new file mode 100644 index 000000000..f19d859be Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-p-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-unk new file mode 100644 index 000000000..a357bb8e3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-unk-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-unk-2p new file mode 100644 index 000000000..2dec3cacc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-unk-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-unk-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-unk-vb new file mode 100644 index 000000000..15b83e7b0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-unk-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-vb new file mode 100644 index 000000000..12130074a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-vb-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-vb-mc new file mode 100644 index 000000000..d51d136ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-vb-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-vb-p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-vb-p new file mode 100644 index 000000000..f19d859be Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-vb-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-vb-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-vb-unk new file mode 100644 index 000000000..15b83e7b0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920b-vb-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c new file mode 100644 index 000000000..06e7dfdbf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-2p new file mode 100644 index 000000000..889ea33cc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-2p-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-2p-mc new file mode 100644 index 000000000..35e308406 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-2p-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-2p-p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-2p-p new file mode 100644 index 000000000..1500670e7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-2p-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-2p-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-2p-unk new file mode 100644 index 000000000..2dec3cacc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-2p-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-mc new file mode 100644 index 000000000..b5933acf9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-mc-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-mc-2p new file mode 100644 index 000000000..35e308406 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-mc-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-mc-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-mc-vb new file mode 100644 index 000000000..d51d136ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-mc-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-p new file mode 100644 index 000000000..7873d0963 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-p-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-p-2p new file mode 100644 index 000000000..1500670e7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-p-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-p-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-p-vb new file mode 100644 index 000000000..f19d859be Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-p-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-unk new file mode 100644 index 000000000..a357bb8e3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-unk-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-unk-2p new file mode 100644 index 000000000..2dec3cacc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-unk-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-unk-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-unk-vb new file mode 100644 index 000000000..15b83e7b0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-unk-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-vb new file mode 100644 index 000000000..12130074a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-vb-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-vb-mc new file mode 100644 index 000000000..d51d136ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-vb-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-vb-p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-vb-p new file mode 100644 index 000000000..f19d859be Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-vb-p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-vb-unk b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-vb-unk new file mode 100644 index 000000000..15b83e7b0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi920c-vb-unk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi921 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi921 new file mode 100644 index 000000000..b1f665cf2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi921 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi924 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi924 new file mode 100644 index 000000000..2421e52d0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi924 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi925 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi925 new file mode 100644 index 000000000..085892f86 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi925 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi925-hi b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi925-hi new file mode 100644 index 000000000..18d282dfa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi925-hi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi92B b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi92B new file mode 100644 index 000000000..35dbdcdc2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi92B differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi92D b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi92D new file mode 100644 index 000000000..e7c958b6c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi92D differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950 new file mode 100644 index 000000000..54b150130 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-2p new file mode 100644 index 000000000..98bed940f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-4p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-4p new file mode 100644 index 000000000..d00c5c58d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-4p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-rv new file mode 100644 index 000000000..38c0c985f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-rv-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-rv-2p new file mode 100644 index 000000000..250c5207b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-rv-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-rv-4p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-rv-4p new file mode 100644 index 000000000..8f664ef4b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi950-rv-4p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi955 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi955 new file mode 100644 index 000000000..d6e599d0e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi955 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi955-hb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi955-hb new file mode 100644 index 000000000..dfe4c1f6f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi955-hb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi955-w b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi955-w new file mode 100644 index 000000000..437f5ce55 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi955-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi970 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi970 new file mode 100644 index 000000000..ea93bd6ac Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi970 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi970-2p b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi970-2p new file mode 100644 index 000000000..c1aa0da12 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi970-2p differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi970-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi970-vb new file mode 100644 index 000000000..b2eee4670 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvi970-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvipt b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvipt new file mode 100644 index 000000000..b64d39e43 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tvipt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tw100 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tw100 new file mode 100644 index 000000000..244eb656a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tw100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tw52 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tw52 new file mode 100644 index 000000000..c5552ba9a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tw52 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tw52-color b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tw52-color new file mode 100644 index 000000000..c5552ba9a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tw52-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tw52-m b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tw52-m new file mode 100644 index 000000000..e1f32d3c7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tw52-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tws-generic b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tws-generic new file mode 100644 index 000000000..0fb7b53c0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tws-generic differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tws2102-sna b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tws2102-sna new file mode 100644 index 000000000..6147bfbe1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tws2102-sna differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tws2103 b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tws2103 new file mode 100644 index 000000000..213d40fd7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tws2103 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/t/tws2103-sna b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tws2103-sna new file mode 100644 index 000000000..17cfc916e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/t/tws2103-sna differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/u/ultima2 b/code/application/source/sf_app/tools/blue/lib/terminfo/u/ultima2 new file mode 100644 index 000000000..53f09ade9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/u/ultima2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/u/ultimaII b/code/application/source/sf_app/tools/blue/lib/terminfo/u/ultimaII new file mode 100644 index 000000000..53f09ade9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/u/ultimaII differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/u/uniterm b/code/application/source/sf_app/tools/blue/lib/terminfo/u/uniterm new file mode 100644 index 000000000..0081d6919 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/u/uniterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/u/uniterm49 b/code/application/source/sf_app/tools/blue/lib/terminfo/u/uniterm49 new file mode 100644 index 000000000..0081d6919 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/u/uniterm49 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/u/unixpc b/code/application/source/sf_app/tools/blue/lib/terminfo/u/unixpc new file mode 100644 index 000000000..b41843d6a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/u/unixpc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/u/unknown b/code/application/source/sf_app/tools/blue/lib/terminfo/u/unknown new file mode 100644 index 000000000..cc9b90c0f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/u/unknown differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/u/uts30 b/code/application/source/sf_app/tools/blue/lib/terminfo/u/uts30 new file mode 100644 index 000000000..74adf535b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/u/uts30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/u/uwin b/code/application/source/sf_app/tools/blue/lib/terminfo/u/uwin new file mode 100644 index 000000000..27199a39b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/u/uwin differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/v200-nam b/code/application/source/sf_app/tools/blue/lib/terminfo/v/v200-nam new file mode 100644 index 000000000..6c4c73659 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/v200-nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/v320n b/code/application/source/sf_app/tools/blue/lib/terminfo/v/v320n new file mode 100644 index 000000000..b8ffb8514 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/v320n differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/v3220 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/v3220 new file mode 100644 index 000000000..7d40f1c7f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/v3220 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/v5410 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/v5410 new file mode 100644 index 000000000..386e10255 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/v5410 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vanilla b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vanilla new file mode 100644 index 000000000..7d5d0f69e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vanilla differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vapple b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vapple new file mode 100644 index 000000000..4d99501c6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vapple differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc103 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc103 new file mode 100644 index 000000000..915744ebc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc103 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc203 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc203 new file mode 100644 index 000000000..915744ebc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc203 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc303 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc303 new file mode 100644 index 000000000..915744ebc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc303 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc303a b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc303a new file mode 100644 index 000000000..c41964b21 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc303a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc403a b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc403a new file mode 100644 index 000000000..c41964b21 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc403a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc404 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc404 new file mode 100644 index 000000000..651ee7c42 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc404 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc404-s b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc404-s new file mode 100644 index 000000000..920d624b2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc404-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc414 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc414 new file mode 100644 index 000000000..22a073fc9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc414 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc414h b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc414h new file mode 100644 index 000000000..22a073fc9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc414h differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc415 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc415 new file mode 100644 index 000000000..924e0ab14 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vc415 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/venix b/code/application/source/sf_app/tools/blue/lib/terminfo/v/venix new file mode 100644 index 000000000..32a7ec05e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/venix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/versaterm b/code/application/source/sf_app/tools/blue/lib/terminfo/v/versaterm new file mode 100644 index 000000000..fba8091af Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/versaterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi200 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi200 new file mode 100644 index 000000000..71f185db7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi200 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi200-f b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi200-f new file mode 100644 index 000000000..a156051d8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi200-f differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi200-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi200-rv new file mode 100644 index 000000000..b8971a3ed Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi200-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi300 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi300 new file mode 100644 index 000000000..2b37aecfb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi300 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi300-old b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi300-old new file mode 100644 index 000000000..10b3cdb0e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi300-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi50 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi50 new file mode 100644 index 000000000..dcac0f016 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi50 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi500 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi500 new file mode 100644 index 000000000..4f30cec24 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi500 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi50adm b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi50adm new file mode 100644 index 000000000..52057ae5c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi50adm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi55 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi55 new file mode 100644 index 000000000..86ad13859 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi55 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi550 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi550 new file mode 100644 index 000000000..7313ed144 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi550 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi603 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi603 new file mode 100644 index 000000000..b876a28e4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vi603 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewdata b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewdata new file mode 100644 index 000000000..d0197a445 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewdata differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewdata-o b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewdata-o new file mode 100644 index 000000000..739a85353 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewdata-o differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewdata-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewdata-rv new file mode 100644 index 000000000..b5c10cdd8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewdata-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewpoint b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewpoint new file mode 100644 index 000000000..0efc7fba5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewpoint differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewpoint3a+ b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewpoint3a+ new file mode 100644 index 000000000..4f1888487 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewpoint3a+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewpoint60 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewpoint60 new file mode 100644 index 000000000..3c28adffa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewpoint60 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewpoint90 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewpoint90 new file mode 100644 index 000000000..624173303 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/viewpoint90 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip new file mode 100644 index 000000000..010a8d112 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip-H b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip-H new file mode 100644 index 000000000..8cf4e9272 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip-H differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip-Hw b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip-Hw new file mode 100644 index 000000000..4b09f0385 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip-Hw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip-w b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip-w new file mode 100644 index 000000000..b710a2ad6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip7800-H b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip7800-H new file mode 100644 index 000000000..8cf4e9272 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip7800-H differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip7800-Hw b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip7800-Hw new file mode 100644 index 000000000..4b09f0385 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip7800-Hw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip7800-w b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip7800-w new file mode 100644 index 000000000..b710a2ad6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vip7800-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/visa50 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/visa50 new file mode 100644 index 000000000..a6a1e76cc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/visa50 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/visual603 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/visual603 new file mode 100644 index 000000000..b876a28e4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/visual603 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vitty b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vitty new file mode 100644 index 000000000..56d4b5598 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vitty differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vk100 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vk100 new file mode 100644 index 000000000..94340a85a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vk100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vp3a+ b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vp3a+ new file mode 100644 index 000000000..4f1888487 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vp3a+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vp60 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vp60 new file mode 100644 index 000000000..3c28adffa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vp60 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vp90 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vp90 new file mode 100644 index 000000000..624173303 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vp90 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vremote b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vremote new file mode 100644 index 000000000..e7fff1e3c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vremote differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vs100 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vs100 new file mode 100644 index 000000000..5349f6da7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vs100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vs100-x10 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vs100-x10 new file mode 100644 index 000000000..92abb2fec Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vs100-x10 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vsc b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vsc new file mode 100644 index 000000000..7deff9df9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vsc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vscode b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vscode new file mode 100644 index 000000000..604b86fae Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vscode differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vscode-direct b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vscode-direct new file mode 100644 index 000000000..6d9a98553 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vscode-direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt-61 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt-61 new file mode 100644 index 000000000..66a845472 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt-61 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt-utf8 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt-utf8 new file mode 100644 index 000000000..8a6db0a5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt-utf8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100 new file mode 100644 index 000000000..22b593cf1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+ b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+ new file mode 100644 index 000000000..54c8d9766 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+ differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+4bsd b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+4bsd new file mode 100644 index 000000000..0323e289b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+4bsd differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+enq b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+enq new file mode 100644 index 000000000..9205621ca Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+enq differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+fnkeys b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+fnkeys new file mode 100644 index 000000000..096b2a9b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+fnkeys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+keypad b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+keypad new file mode 100644 index 000000000..dd9e0bd00 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+keypad differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+pfkeys b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+pfkeys new file mode 100644 index 000000000..974d1b85c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100+pfkeys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-am b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-am new file mode 100644 index 000000000..22b593cf1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-am differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-bm b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-bm new file mode 100644 index 000000000..2228f492e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-bm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-bm-o b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-bm-o new file mode 100644 index 000000000..8e9cc5c80 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-bm-o differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-bot-s b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-bot-s new file mode 100644 index 000000000..0cdc826e2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-bot-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-nam b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-nam new file mode 100644 index 000000000..c00de1064 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-nam-w b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-nam-w new file mode 100644 index 000000000..7ea8c5ee1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-nam-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-nav b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-nav new file mode 100644 index 000000000..763d5329b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-nav differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-nav-w b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-nav-w new file mode 100644 index 000000000..acba573fd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-nav-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-putty b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-putty new file mode 100644 index 000000000..0119c4d0e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-putty differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-s b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-s new file mode 100644 index 000000000..a5f654592 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-s-bot b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-s-bot new file mode 100644 index 000000000..0cdc826e2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-s-bot differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-s-top b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-s-top new file mode 100644 index 000000000..a5f654592 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-s-top differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-top-s b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-top-s new file mode 100644 index 000000000..a5f654592 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-top-s differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-vb new file mode 100644 index 000000000..70b17c6e3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-w b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-w new file mode 100644 index 000000000..5d8f3c108 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-w-am b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-w-am new file mode 100644 index 000000000..5d8f3c108 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-w-am differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-w-nam b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-w-nam new file mode 100644 index 000000000..7ea8c5ee1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-w-nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-w-nav b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-w-nav new file mode 100644 index 000000000..acba573fd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100-w-nav differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100nam b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100nam new file mode 100644 index 000000000..c00de1064 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt100nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt102 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt102 new file mode 100644 index 000000000..dc09c9028 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt102 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt102+enq b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt102+enq new file mode 100644 index 000000000..be5d59dd6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt102+enq differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt102-nsgr b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt102-nsgr new file mode 100644 index 000000000..7de58160c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt102-nsgr differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt102-w b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt102-w new file mode 100644 index 000000000..b34213b6c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt102-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt125 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt125 new file mode 100644 index 000000000..ad403358e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt125 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt131 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt131 new file mode 100644 index 000000000..627104ffc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt131 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt132 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt132 new file mode 100644 index 000000000..929885b84 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt132 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200 new file mode 100644 index 000000000..752c70d20 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-8 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-8 new file mode 100644 index 000000000..2d03e9105 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-8bit b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-8bit new file mode 100644 index 000000000..2d03e9105 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-8bit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-js b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-js new file mode 100644 index 000000000..1bde3d186 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-js differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-old b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-old new file mode 100644 index 000000000..287f7a80d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-w b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-w new file mode 100644 index 000000000..fdd5f7912 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt200-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220 new file mode 100644 index 000000000..752c70d20 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+cvis b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+cvis new file mode 100644 index 000000000..05756c266 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+cvis differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+cvis8 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+cvis8 new file mode 100644 index 000000000..9cd7b4087 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+cvis8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+keypad b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+keypad new file mode 100644 index 000000000..cb68b92d7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+keypad differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+pcedit b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+pcedit new file mode 100644 index 000000000..a1462bd80 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+pcedit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+vtedit b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+vtedit new file mode 100644 index 000000000..455604dfb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220+vtedit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-8 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-8 new file mode 100644 index 000000000..2d03e9105 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-8bit b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-8bit new file mode 100644 index 000000000..2d03e9105 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-8bit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-base b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-base new file mode 100644 index 000000000..9ec4bf8d3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-base differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-js b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-js new file mode 100644 index 000000000..1bde3d186 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-js differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-nam b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-nam new file mode 100644 index 000000000..6c4c73659 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-old b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-old new file mode 100644 index 000000000..287f7a80d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-w b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-w new file mode 100644 index 000000000..fdd5f7912 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220d b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220d new file mode 100644 index 000000000..4554b7924 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt220d differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt300 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt300 new file mode 100644 index 000000000..7e5233b28 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt300 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt300-nam b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt300-nam new file mode 100644 index 000000000..2936f11cf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt300-nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt300-w b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt300-w new file mode 100644 index 000000000..0bd741729 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt300-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt300-w-nam b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt300-w-nam new file mode 100644 index 000000000..9a82ef282 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt300-w-nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320 new file mode 100644 index 000000000..7e5233b28 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-k3 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-k3 new file mode 100644 index 000000000..cac66f8a0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-k3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-k311 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-k311 new file mode 100644 index 000000000..7e7bf97da Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-k311 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-nam b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-nam new file mode 100644 index 000000000..2936f11cf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-w b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-w new file mode 100644 index 000000000..0bd741729 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-w-nam b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-w-nam new file mode 100644 index 000000000..9a82ef282 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320-w-nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320nam b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320nam new file mode 100644 index 000000000..b8ffb8514 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt320nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt330 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt330 new file mode 100644 index 000000000..68fae40da Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt330 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt340 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt340 new file mode 100644 index 000000000..68fae40da Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt340 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt400 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt400 new file mode 100644 index 000000000..219c1c048 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt400 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt400-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt400-24 new file mode 100644 index 000000000..219c1c048 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt400-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420 new file mode 100644 index 000000000..1c6fddfdd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420+lrmm b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420+lrmm new file mode 100644 index 000000000..3ed9d3482 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420+lrmm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420f b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420f new file mode 100644 index 000000000..0f02e037c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420f differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420pc b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420pc new file mode 100644 index 000000000..bb2fc52c5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420pcdos b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420pcdos new file mode 100644 index 000000000..d42775092 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt420pcdos differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt50 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt50 new file mode 100644 index 000000000..c93bc148a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt50 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt50h b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt50h new file mode 100644 index 000000000..27def4cc2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt50h differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt510 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt510 new file mode 100644 index 000000000..031bb9a3e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt510 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt510pc b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt510pc new file mode 100644 index 000000000..8a8e184c1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt510pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt510pcdos b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt510pcdos new file mode 100644 index 000000000..445ee54a8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt510pcdos differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt52 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt52 new file mode 100644 index 000000000..1a69821d6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt52 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt52+keypad b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt52+keypad new file mode 100644 index 000000000..7f4779ee8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt52+keypad differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt52-basic b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt52-basic new file mode 100644 index 000000000..30c16bfe2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt52-basic differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt520 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt520 new file mode 100644 index 000000000..8874c71de Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt520 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt520ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt520ansi new file mode 100644 index 000000000..fa4f12ebe Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt520ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt525 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt525 new file mode 100644 index 000000000..2749bc1db Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt525 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt61 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt61 new file mode 100644 index 000000000..66a845472 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt61 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt61.5 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt61.5 new file mode 100644 index 000000000..66a845472 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vt61.5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte new file mode 100644 index 000000000..a89d6e978 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte+pcfkeys b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte+pcfkeys new file mode 100644 index 000000000..64455aa00 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte+pcfkeys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2007 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2007 new file mode 100644 index 000000000..40b7c7635 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2007 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2008 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2008 new file mode 100644 index 000000000..d7b9011d5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2008 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2012 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2012 new file mode 100644 index 000000000..a71384b49 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2012 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2014 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2014 new file mode 100644 index 000000000..dcb01ed78 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2014 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2017 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2017 new file mode 100644 index 000000000..d3017291d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2017 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2018 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2018 new file mode 100644 index 000000000..5b26f4bc7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-2018 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-256color new file mode 100644 index 000000000..9d7e6bdda Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-direct b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-direct new file mode 100644 index 000000000..4096bd368 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vte-direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vtnt b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vtnt new file mode 100644 index 000000000..bf9a517a4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vtnt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vv100 b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vv100 new file mode 100644 index 000000000..105848e83 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vv100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/v/vwmterm b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vwmterm new file mode 100644 index 000000000..a1298aa16 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/v/vwmterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wren b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wren new file mode 100644 index 000000000..cf224e6f4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wren differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wrenw b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wrenw new file mode 100644 index 000000000..1f73e3468 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wrenw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wsiris b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wsiris new file mode 100644 index 000000000..f9aeabd23 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wsiris differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wsvt25 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wsvt25 new file mode 100644 index 000000000..8121ee0a0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wsvt25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wsvt25m b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wsvt25m new file mode 100644 index 000000000..68e6d7565 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wsvt25m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy-75ap b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy-75ap new file mode 100644 index 000000000..06621e6a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy-75ap differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy-99fgt b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy-99fgt new file mode 100644 index 000000000..5a696bceb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy-99fgt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy-99fgta b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy-99fgta new file mode 100644 index 000000000..256b0c8ce Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy-99fgta differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy100 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy100 new file mode 100644 index 000000000..ffea5e176 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy100q b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy100q new file mode 100644 index 000000000..846a60fde Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy100q differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120 new file mode 100644 index 000000000..9fae306a0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-25 new file mode 100644 index 000000000..fec1a364b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-25-w new file mode 100644 index 000000000..c6a2ca4b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-vb new file mode 100644 index 000000000..a1f3f0fab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-w new file mode 100644 index 000000000..386bc5594 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-w-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-w-vb new file mode 100644 index 000000000..c763cf0bb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-w-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-wvb new file mode 100644 index 000000000..c763cf0bb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy120-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150 new file mode 100644 index 000000000..9fae306a0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-25 new file mode 100644 index 000000000..fec1a364b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-25-w new file mode 100644 index 000000000..c6a2ca4b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-vb new file mode 100644 index 000000000..a1f3f0fab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-w new file mode 100644 index 000000000..386bc5594 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-w-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-w-vb new file mode 100644 index 000000000..c763cf0bb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy150-w-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160 new file mode 100644 index 000000000..d124cd15f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-25 new file mode 100644 index 000000000..a23506c4e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-25-w new file mode 100644 index 000000000..a2ba4018a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-42 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-42 new file mode 100644 index 000000000..3a43719c0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-42 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-42-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-42-w new file mode 100644 index 000000000..337e845f7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-42-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-43 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-43 new file mode 100644 index 000000000..fda295a5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-43 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-43-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-43-w new file mode 100644 index 000000000..2e9bc4e04 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-43-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-tek b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-tek new file mode 100644 index 000000000..6635d62b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-tek differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-vb new file mode 100644 index 000000000..01788a4df Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-w new file mode 100644 index 000000000..dc73488c0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-w-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-w-vb new file mode 100644 index 000000000..89f7faf81 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-w-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-wvb new file mode 100644 index 000000000..89f7faf81 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy160-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185 new file mode 100644 index 000000000..10f52bc26 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185-24 new file mode 100644 index 000000000..88a9d5626 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185-vb new file mode 100644 index 000000000..f09888804 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185-w new file mode 100644 index 000000000..0cadcd853 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185-wvb new file mode 100644 index 000000000..891b613b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy185-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy30 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy30 new file mode 100644 index 000000000..759c6d674 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy30-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy30-mc new file mode 100644 index 000000000..cdf6b6572 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy30-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy30-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy30-vb new file mode 100644 index 000000000..164cf0747 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy30-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325 new file mode 100644 index 000000000..03ef7f719 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-25 new file mode 100644 index 000000000..834faf392 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-25w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-25w new file mode 100644 index 000000000..03b3fa924 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-25w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-42 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-42 new file mode 100644 index 000000000..7e043b6a7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-42 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-42w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-42w new file mode 100644 index 000000000..0ae7c772a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-42w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-42w-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-42w-vb new file mode 100644 index 000000000..0c8693322 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-42w-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-42wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-42wvb new file mode 100644 index 000000000..0c8693322 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-42wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-43 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-43 new file mode 100644 index 000000000..d1cfdeb7d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-43 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-43w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-43w new file mode 100644 index 000000000..f66668b50 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-43w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-43w-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-43w-vb new file mode 100644 index 000000000..c3d564fd0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-43w-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-43wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-43wvb new file mode 100644 index 000000000..c3d564fd0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-43wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-80 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-80 new file mode 100644 index 000000000..834faf392 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-80 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-vb new file mode 100644 index 000000000..009b8cd42 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-w new file mode 100644 index 000000000..0092078d4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-w-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-w-vb new file mode 100644 index 000000000..77a7a602f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-w-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-wvb new file mode 100644 index 000000000..77a7a602f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325w-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325w-24 new file mode 100644 index 000000000..0092078d4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy325w-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy350 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy350 new file mode 100644 index 000000000..d7a41c6a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy350 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy350-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy350-vb new file mode 100644 index 000000000..893e2cdc8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy350-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy350-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy350-w new file mode 100644 index 000000000..a3cf4b800 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy350-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy350-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy350-wvb new file mode 100644 index 000000000..42e5c9812 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy350-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370 new file mode 100644 index 000000000..c64f60fbb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-101k b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-101k new file mode 100644 index 000000000..c64f60fbb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-101k differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-105k b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-105k new file mode 100644 index 000000000..3adcc8083 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-105k differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-EPC b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-EPC new file mode 100644 index 000000000..e1d9acc5e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-EPC differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-nk b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-nk new file mode 100644 index 000000000..aed46921d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-nk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-rv b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-rv new file mode 100644 index 000000000..e42038829 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-rv differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-tek b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-tek new file mode 100644 index 000000000..533c58eff Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-tek differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-vb new file mode 100644 index 000000000..9dcc993c9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-w new file mode 100644 index 000000000..18a5cb170 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-wvb new file mode 100644 index 000000000..7dd8cfb14 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy370-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50 new file mode 100644 index 000000000..7c72366d8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50-mc new file mode 100644 index 000000000..4a863d13d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50-vb new file mode 100644 index 000000000..ae60620e1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50-w new file mode 100644 index 000000000..85e8dd395 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50-wvb new file mode 100644 index 000000000..eb00142c5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy50-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520 new file mode 100644 index 000000000..763f6182f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-24 new file mode 100644 index 000000000..9c51c80f1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-36 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-36 new file mode 100644 index 000000000..570fda468 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-36 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-36pc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-36pc new file mode 100644 index 000000000..4386230a5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-36pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-36w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-36w new file mode 100644 index 000000000..7e53c34b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-36w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-36wpc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-36wpc new file mode 100644 index 000000000..275b523ee Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-36wpc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-48 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-48 new file mode 100644 index 000000000..61aaf8e36 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-48pc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-48pc new file mode 100644 index 000000000..68f438f61 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-48pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-48w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-48w new file mode 100644 index 000000000..93f32d444 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-48w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-48wpc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-48wpc new file mode 100644 index 000000000..aabab680b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-48wpc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc new file mode 100644 index 000000000..4b43565e2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc-24 new file mode 100644 index 000000000..4f31402b8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc-vb new file mode 100644 index 000000000..486683a46 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc-w new file mode 100644 index 000000000..b0994042a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc-wvb new file mode 100644 index 000000000..3194f09e8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-epc-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-vb new file mode 100644 index 000000000..0180c21c7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-w new file mode 100644 index 000000000..9a1dbce30 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-wvb new file mode 100644 index 000000000..3a63f6a98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy520-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60 new file mode 100644 index 000000000..7f0b76100 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-25 new file mode 100644 index 000000000..d8e256ec1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-25-w new file mode 100644 index 000000000..f5f8461ca Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-316X b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-316X new file mode 100644 index 000000000..dad679d25 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-316X differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-42 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-42 new file mode 100644 index 000000000..6b2b9c4dc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-42 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-42-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-42-w new file mode 100644 index 000000000..d06a50a68 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-42-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-43 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-43 new file mode 100644 index 000000000..75d94671a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-43 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-43-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-43-w new file mode 100644 index 000000000..ef1d7e474 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-43-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-AT b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-AT new file mode 100644 index 000000000..377b3a077 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-AT differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-PC b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-PC new file mode 100644 index 000000000..492a68af7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-PC differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-vb new file mode 100644 index 000000000..cb70b612b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-w new file mode 100644 index 000000000..a7a435935 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-w-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-w-vb new file mode 100644 index 000000000..b8632fddb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-w-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-wvb new file mode 100644 index 000000000..b8632fddb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy60-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75 new file mode 100644 index 000000000..3395869c8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75-mc new file mode 100644 index 000000000..1b5dc49cd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75-vb new file mode 100644 index 000000000..6e143e48e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75-w new file mode 100644 index 000000000..e53973d0d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75-wvb new file mode 100644 index 000000000..a4603e577 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75ap b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75ap new file mode 100644 index 000000000..06621e6a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy75ap differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85 new file mode 100644 index 000000000..2adc256c9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85-8bit b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85-8bit new file mode 100644 index 000000000..149247bd2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85-8bit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85-vb new file mode 100644 index 000000000..baf1bf160 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85-w new file mode 100644 index 000000000..5fcdbe3a4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85-wvb new file mode 100644 index 000000000..08453cf93 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy85-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99-ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99-ansi new file mode 100644 index 000000000..ed8b9ea06 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99-ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99a-ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99a-ansi new file mode 100644 index 000000000..43c0dcc57 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99a-ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99f b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99f new file mode 100644 index 000000000..5a696bceb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99f differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99fa b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99fa new file mode 100644 index 000000000..256b0c8ce Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99fa differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99fgt b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99fgt new file mode 100644 index 000000000..5a696bceb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99fgt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99fgta b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99fgta new file mode 100644 index 000000000..256b0c8ce Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99fgta differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt new file mode 100644 index 000000000..5bcb66079 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-25 new file mode 100644 index 000000000..41d58c42c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-25-w new file mode 100644 index 000000000..71fb49798 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-tek b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-tek new file mode 100644 index 000000000..6c8edb23d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-tek differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-vb new file mode 100644 index 000000000..8ce9af008 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-w new file mode 100644 index 000000000..410780ac9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-w-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-w-vb new file mode 100644 index 000000000..17c79a35c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-w-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-wvb new file mode 100644 index 000000000..17c79a35c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wy99gt-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse-325 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse-325 new file mode 100644 index 000000000..834faf392 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse-325 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse-75ap b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse-75ap new file mode 100644 index 000000000..06621e6a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse-75ap differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse-vp b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse-vp new file mode 100644 index 000000000..b327e4a21 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse-vp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120 new file mode 100644 index 000000000..9fae306a0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-25 new file mode 100644 index 000000000..fec1a364b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-25-w new file mode 100644 index 000000000..c6a2ca4b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-vb new file mode 100644 index 000000000..a1f3f0fab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-w new file mode 100644 index 000000000..386bc5594 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-wvb new file mode 100644 index 000000000..c763cf0bb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse120-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150 new file mode 100644 index 000000000..9fae306a0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-25 new file mode 100644 index 000000000..fec1a364b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-25-w new file mode 100644 index 000000000..c6a2ca4b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-vb new file mode 100644 index 000000000..a1f3f0fab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-w new file mode 100644 index 000000000..386bc5594 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-w-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-w-vb new file mode 100644 index 000000000..c763cf0bb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse150-w-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160 new file mode 100644 index 000000000..d124cd15f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-25 new file mode 100644 index 000000000..a23506c4e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-25-w new file mode 100644 index 000000000..a2ba4018a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-42 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-42 new file mode 100644 index 000000000..3a43719c0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-42 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-42-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-42-w new file mode 100644 index 000000000..337e845f7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-42-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-43 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-43 new file mode 100644 index 000000000..fda295a5d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-43 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-43-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-43-w new file mode 100644 index 000000000..2e9bc4e04 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-43-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-vb new file mode 100644 index 000000000..01788a4df Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-w new file mode 100644 index 000000000..dc73488c0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-wvb new file mode 100644 index 000000000..89f7faf81 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse160-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185 new file mode 100644 index 000000000..10f52bc26 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185-24 new file mode 100644 index 000000000..88a9d5626 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185-vb new file mode 100644 index 000000000..f09888804 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185-w new file mode 100644 index 000000000..0cadcd853 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185-wvb new file mode 100644 index 000000000..891b613b4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse185-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse30 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse30 new file mode 100644 index 000000000..759c6d674 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse30-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse30-mc new file mode 100644 index 000000000..cdf6b6572 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse30-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse30-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse30-vb new file mode 100644 index 000000000..164cf0747 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse30-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325 new file mode 100644 index 000000000..03ef7f719 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-25 new file mode 100644 index 000000000..834faf392 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-25w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-25w new file mode 100644 index 000000000..03b3fa924 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-25w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-42 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-42 new file mode 100644 index 000000000..7e043b6a7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-42 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-42w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-42w new file mode 100644 index 000000000..0ae7c772a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-42w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-43 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-43 new file mode 100644 index 000000000..d1cfdeb7d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-43 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-43w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-43w new file mode 100644 index 000000000..f66668b50 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-43w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-vb new file mode 100644 index 000000000..009b8cd42 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-w new file mode 100644 index 000000000..0092078d4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-wvb new file mode 100644 index 000000000..77a7a602f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse325-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse350 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse350 new file mode 100644 index 000000000..d7a41c6a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse350 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse350-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse350-vb new file mode 100644 index 000000000..893e2cdc8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse350-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse350-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse350-w new file mode 100644 index 000000000..a3cf4b800 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse350-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse350-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse350-wvb new file mode 100644 index 000000000..42e5c9812 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse350-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse370 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse370 new file mode 100644 index 000000000..c64f60fbb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse370 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50 new file mode 100644 index 000000000..7c72366d8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50-mc new file mode 100644 index 000000000..4a863d13d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50-vb new file mode 100644 index 000000000..ae60620e1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50-w new file mode 100644 index 000000000..85e8dd395 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50-wvb new file mode 100644 index 000000000..eb00142c5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse50-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520 new file mode 100644 index 000000000..763f6182f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-24 new file mode 100644 index 000000000..9c51c80f1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-36 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-36 new file mode 100644 index 000000000..570fda468 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-36 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-36pc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-36pc new file mode 100644 index 000000000..4386230a5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-36pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-36w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-36w new file mode 100644 index 000000000..7e53c34b6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-36w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-36wpc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-36wpc new file mode 100644 index 000000000..275b523ee Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-36wpc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-48 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-48 new file mode 100644 index 000000000..61aaf8e36 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-48pc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-48pc new file mode 100644 index 000000000..68f438f61 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-48pc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-48w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-48w new file mode 100644 index 000000000..93f32d444 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-48w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-48wpc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-48wpc new file mode 100644 index 000000000..aabab680b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-48wpc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-epc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-epc new file mode 100644 index 000000000..4b43565e2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-epc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-epc-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-epc-w new file mode 100644 index 000000000..b0994042a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-epc-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-p-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-p-wvb new file mode 100644 index 000000000..3194f09e8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-p-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-pc-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-pc-24 new file mode 100644 index 000000000..4f31402b8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-pc-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-pc-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-pc-vb new file mode 100644 index 000000000..486683a46 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-pc-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-vb new file mode 100644 index 000000000..0180c21c7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-w new file mode 100644 index 000000000..9a1dbce30 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-wvb new file mode 100644 index 000000000..3a63f6a98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse520-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60 new file mode 100644 index 000000000..7f0b76100 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-25 new file mode 100644 index 000000000..d8e256ec1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-25-w new file mode 100644 index 000000000..f5f8461ca Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-316X b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-316X new file mode 100644 index 000000000..dad679d25 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-316X differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-42 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-42 new file mode 100644 index 000000000..6b2b9c4dc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-42 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-42-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-42-w new file mode 100644 index 000000000..d06a50a68 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-42-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-43 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-43 new file mode 100644 index 000000000..75d94671a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-43 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-43-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-43-w new file mode 100644 index 000000000..ef1d7e474 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-43-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-AT b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-AT new file mode 100644 index 000000000..377b3a077 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-AT differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-PC b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-PC new file mode 100644 index 000000000..492a68af7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-PC differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-vb new file mode 100644 index 000000000..cb70b612b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-w new file mode 100644 index 000000000..a7a435935 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-wvb new file mode 100644 index 000000000..b8632fddb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse60-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75 new file mode 100644 index 000000000..3395869c8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75-mc b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75-mc new file mode 100644 index 000000000..1b5dc49cd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75-mc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75-vb new file mode 100644 index 000000000..6e143e48e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75-w new file mode 100644 index 000000000..e53973d0d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75-wvb new file mode 100644 index 000000000..a4603e577 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75ap b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75ap new file mode 100644 index 000000000..06621e6a1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse75ap differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85 new file mode 100644 index 000000000..2adc256c9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85-8bit b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85-8bit new file mode 100644 index 000000000..149247bd2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85-8bit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85-vb new file mode 100644 index 000000000..baf1bf160 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85-w new file mode 100644 index 000000000..5fcdbe3a4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85-wvb new file mode 100644 index 000000000..08453cf93 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse85-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt new file mode 100644 index 000000000..5bcb66079 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-25 b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-25 new file mode 100644 index 000000000..41d58c42c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-25-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-25-w new file mode 100644 index 000000000..71fb49798 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-25-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-vb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-vb new file mode 100644 index 000000000..8ce9af008 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-vb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-w b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-w new file mode 100644 index 000000000..410780ac9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-w differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-wvb b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-wvb new file mode 100644 index 000000000..17c79a35c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/w/wyse99gt-wvb differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/x10term b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x10term new file mode 100644 index 000000000..92abb2fec Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x10term differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/x1700 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x1700 new file mode 100644 index 000000000..6d9b14d4f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x1700 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/x1700-lm b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x1700-lm new file mode 100644 index 000000000..4aeeb984a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x1700-lm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/x1720 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x1720 new file mode 100644 index 000000000..02a23f5a7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x1720 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/x1750 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x1750 new file mode 100644 index 000000000..02a23f5a7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x1750 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/x68k b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x68k new file mode 100644 index 000000000..66c2fa60a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x68k differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/x68k-ite b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x68k-ite new file mode 100644 index 000000000..66c2fa60a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x68k-ite differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/x820 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x820 new file mode 100644 index 000000000..24d1d6404 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/x820 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xdku b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xdku new file mode 100644 index 000000000..213d40fd7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xdku differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xenix b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xenix new file mode 100644 index 000000000..86e3056bf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xenix differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xerox b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xerox new file mode 100644 index 000000000..6d9b14d4f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xerox differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xerox-lm b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xerox-lm new file mode 100644 index 000000000..ce7f55e89 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xerox-lm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xerox1720 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xerox1720 new file mode 100644 index 000000000..02a23f5a7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xerox1720 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xerox820 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xerox820 new file mode 100644 index 000000000..24d1d6404 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xerox820 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xfce b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xfce new file mode 100644 index 000000000..4adf6d406 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xfce differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xiterm b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xiterm new file mode 100644 index 000000000..438f6bafd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xiterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xl83 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xl83 new file mode 100644 index 000000000..b64c62031 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xl83 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc new file mode 100644 index 000000000..9430bd910 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+100x37 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+100x37 new file mode 100644 index 000000000..6ef6bad8a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+100x37 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+112x37 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+112x37 new file mode 100644 index 000000000..dc8a7f38b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+112x37 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+128x40 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+128x40 new file mode 100644 index 000000000..f17ea5b40 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+128x40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+128x48 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+128x48 new file mode 100644 index 000000000..ceefda01a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+128x48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+144x48 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+144x48 new file mode 100644 index 000000000..c75551bed Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+144x48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+160x64 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+160x64 new file mode 100644 index 000000000..21c1dbd13 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+160x64 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+200x64 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+200x64 new file mode 100644 index 000000000..51bbc55a7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+200x64 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+200x75 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+200x75 new file mode 100644 index 000000000..d8354c707 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+200x75 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+256x96 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+256x96 new file mode 100644 index 000000000..a68cefc2c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+256x96 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+80x25 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+80x25 new file mode 100644 index 000000000..b70c340bf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+80x25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+80x30 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+80x30 new file mode 100644 index 000000000..52c54f54b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+80x30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+90x30 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+90x30 new file mode 100644 index 000000000..aeea15c1f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+90x30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+b b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+b new file mode 100644 index 000000000..582210155 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+basic b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+basic new file mode 100644 index 000000000..a67684460 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+basic differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+c b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+c new file mode 100644 index 000000000..bba151abd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+c differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+f b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+f new file mode 100644 index 000000000..d713bb39e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+f differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+f2 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+f2 new file mode 100644 index 000000000..dc884d61a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc+f2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-100x37 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-100x37 new file mode 100644 index 000000000..cff1ad007 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-100x37 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-100x37-m b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-100x37-m new file mode 100644 index 000000000..006bee454 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-100x37-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-112x37 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-112x37 new file mode 100644 index 000000000..d32e88658 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-112x37 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-112x37-m b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-112x37-m new file mode 100644 index 000000000..68f30eab5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-112x37-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-128x40 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-128x40 new file mode 100644 index 000000000..e44c8b927 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-128x40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-128x40-m b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-128x40-m new file mode 100644 index 000000000..26b4fc0dd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-128x40-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-128x48 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-128x48 new file mode 100644 index 000000000..5aa2dae00 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-128x48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-128x48-m b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-128x48-m new file mode 100644 index 000000000..7e1b164b5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-128x48-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-144x48 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-144x48 new file mode 100644 index 000000000..f4fd2a278 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-144x48 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-144x48-m b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-144x48-m new file mode 100644 index 000000000..73f3fbfef Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-144x48-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-160x64 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-160x64 new file mode 100644 index 000000000..9b36a8e47 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-160x64 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-160x64-m b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-160x64-m new file mode 100644 index 000000000..b0b86577d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-160x64-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-200x64 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-200x64 new file mode 100644 index 000000000..ae53526c7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-200x64 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-200x64-m b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-200x64-m new file mode 100644 index 000000000..43154a6d1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-200x64-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-200x75 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-200x75 new file mode 100644 index 000000000..55d5f61bf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-200x75 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-200x75-m b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-200x75-m new file mode 100644 index 000000000..55130c708 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-200x75-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-256x96 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-256x96 new file mode 100644 index 000000000..44c15e1cb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-256x96 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-256x96-m b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-256x96-m new file mode 100644 index 000000000..f3fa39f4c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-256x96-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-80x25 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-80x25 new file mode 100644 index 000000000..eab20c2a2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-80x25 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-80x25-m b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-80x25-m new file mode 100644 index 000000000..9e5c164df Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-80x25-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-80x30 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-80x30 new file mode 100644 index 000000000..00f123c43 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-80x30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-80x30-m b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-80x30-m new file mode 100644 index 000000000..b10071893 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-80x30-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-90x30 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-90x30 new file mode 100644 index 000000000..ea1a7c419 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-90x30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-90x30-m b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-90x30-m new file mode 100644 index 000000000..95bf04afa Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-90x30-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-b b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-b new file mode 100644 index 000000000..f44dfc8fd Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-f b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-f new file mode 100644 index 000000000..70bc6beb3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-f differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-f2 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-f2 new file mode 100644 index 000000000..1f715b8f2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-f2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-m b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-m new file mode 100644 index 000000000..f6c59d823 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-m differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-m-b b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-m-b new file mode 100644 index 000000000..c17a92f1d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-m-b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-m-f b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-m-f new file mode 100644 index 000000000..e4799da68 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-m-f differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-m-f2 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-m-f2 new file mode 100644 index 000000000..ba0a9b69c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xnuppc-m-f2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xtalk b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xtalk new file mode 100644 index 000000000..90b3eb33f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xtalk differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm new file mode 100644 index 000000000..15584b58e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+256color b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+256color new file mode 100644 index 000000000..a17345672 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+256color2 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+256color2 new file mode 100644 index 000000000..d71cead30 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+256color2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+256setaf b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+256setaf new file mode 100644 index 000000000..12785d46c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+256setaf differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+88color b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+88color new file mode 100644 index 000000000..4e3b92ea9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+88color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+88color2 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+88color2 new file mode 100644 index 000000000..5bd479df1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+88color2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+alt+title b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+alt+title new file mode 100644 index 000000000..c3a2a19fb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+alt+title differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+alt1049 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+alt1049 new file mode 100644 index 000000000..a3912c148 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+alt1049 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+app b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+app new file mode 100644 index 000000000..0df7c394e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+app differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+direct b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+direct new file mode 100644 index 000000000..1b2613b2a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+direct16 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+direct16 new file mode 100644 index 000000000..b9a63102c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+direct16 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+direct2 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+direct2 new file mode 100644 index 000000000..0c21023f8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+direct2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+direct256 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+direct256 new file mode 100644 index 000000000..840973137 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+direct256 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+edit b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+edit new file mode 100644 index 000000000..9371ad3d6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+edit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+indirect b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+indirect new file mode 100644 index 000000000..a76b2ddb5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+indirect differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+kbs b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+kbs new file mode 100644 index 000000000..981cf7a09 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+kbs differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+keypad b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+keypad new file mode 100644 index 000000000..65ef9e6b5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+keypad differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+meta b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+meta new file mode 100644 index 000000000..9864a0c3c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+meta differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+noalt b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+noalt new file mode 100644 index 000000000..edd97e65f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+noalt differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+noapp b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+noapp new file mode 100644 index 000000000..f088143d8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+noapp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+nofkeys b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+nofkeys new file mode 100644 index 000000000..2afbbd16b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+nofkeys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+nopcfkeys b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+nopcfkeys new file mode 100644 index 000000000..6101caecb Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+nopcfkeys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+osc104 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+osc104 new file mode 100644 index 000000000..97132d947 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+osc104 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pc+edit b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pc+edit new file mode 100644 index 000000000..0872437ab Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pc+edit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcc0 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcc0 new file mode 100644 index 000000000..ad2b3c972 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcc0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcc1 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcc1 new file mode 100644 index 000000000..537312cc9 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcc1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcc2 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcc2 new file mode 100644 index 000000000..076569734 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcc2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcc3 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcc3 new file mode 100644 index 000000000..980da82e3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcc3 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pce2 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pce2 new file mode 100644 index 000000000..c79200172 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pce2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcf0 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcf0 new file mode 100644 index 000000000..3c91b63e3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcf0 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcf2 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcf2 new file mode 100644 index 000000000..5d691cd1c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcf2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcfkeys b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcfkeys new file mode 100644 index 000000000..74b2ac258 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+pcfkeys differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+r6f2 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+r6f2 new file mode 100644 index 000000000..9b4847e0d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+r6f2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sl b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sl new file mode 100644 index 000000000..080146e8d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sl differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sl-twm b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sl-twm new file mode 100644 index 000000000..67e954bb8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sl-twm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sm+1002 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sm+1002 new file mode 100644 index 000000000..19b13ec98 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sm+1002 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sm+1003 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sm+1003 new file mode 100644 index 000000000..f3eb2dc3e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sm+1003 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sm+1005 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sm+1005 new file mode 100644 index 000000000..f1201fa4b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sm+1005 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sm+1006 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sm+1006 new file mode 100644 index 000000000..6ca570c90 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+sm+1006 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+titlestack b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+titlestack new file mode 100644 index 000000000..0d2111f05 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+titlestack differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+tmux b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+tmux new file mode 100644 index 000000000..27990eb97 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+tmux differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+tmux2 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+tmux2 new file mode 100644 index 000000000..fff7553ee Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+tmux2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+vt+edit b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+vt+edit new file mode 100644 index 000000000..a435cb83a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+vt+edit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+x10mouse b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+x10mouse new file mode 100644 index 000000000..2c7e61339 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+x10mouse differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+x11hilite b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+x11hilite new file mode 100644 index 000000000..305a24725 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+x11hilite differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+x11mouse b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+x11mouse new file mode 100644 index 000000000..05e4e866f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm+x11mouse differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-1002 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-1002 new file mode 100644 index 000000000..275d98f51 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-1002 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-1003 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-1003 new file mode 100644 index 000000000..cb9e5db5c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-1003 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-1005 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-1005 new file mode 100644 index 000000000..b8b98873b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-1005 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-1006 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-1006 new file mode 100644 index 000000000..49b0d900e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-1006 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-16color b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-16color new file mode 100644 index 000000000..d17ec64b1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-16color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-24 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-24 new file mode 100644 index 000000000..5349f6da7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-24 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-256color b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-256color new file mode 100644 index 000000000..351856a1c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-256color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-88color b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-88color new file mode 100644 index 000000000..e0e301cd3 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-88color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-8bit b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-8bit new file mode 100644 index 000000000..583510811 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-8bit differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-basic b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-basic new file mode 100644 index 000000000..5184d010b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-basic differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-bold b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-bold new file mode 100644 index 000000000..5c29490c8 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-bold differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-color b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-color new file mode 100644 index 000000000..10bf2e1ad Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-color differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-direct b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-direct new file mode 100644 index 000000000..dfd2d9033 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-direct differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-direct16 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-direct16 new file mode 100644 index 000000000..6f122a6e6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-direct16 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-direct2 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-direct2 new file mode 100644 index 000000000..5f15f778b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-direct2 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-direct256 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-direct256 new file mode 100644 index 000000000..97821160b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-direct256 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-hp b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-hp new file mode 100644 index 000000000..f84bfe0a4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-hp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-mono b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-mono new file mode 100644 index 000000000..df66b3ee5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-mono differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-new b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-new new file mode 100644 index 000000000..730a437e6 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-new differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-nic b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-nic new file mode 100644 index 000000000..b9a969baf Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-nic differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-noapp b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-noapp new file mode 100644 index 000000000..cc696e053 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-noapp differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-old b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-old new file mode 100644 index 000000000..64473e429 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-old differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-pcolor b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-pcolor new file mode 100644 index 000000000..af19a92e2 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-pcolor differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-r5 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-r5 new file mode 100644 index 000000000..64449b815 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-r5 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-r6 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-r6 new file mode 100644 index 000000000..16fd56e94 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-r6 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-sco b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-sco new file mode 100644 index 000000000..05d4b0d5e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-sco differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-sun b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-sun new file mode 100644 index 000000000..4001b51dc Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-sun differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-utf8 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-utf8 new file mode 100644 index 000000000..7f2055c54 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-utf8 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-vt220 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-vt220 new file mode 100644 index 000000000..2c7aacdf0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-vt220 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-vt52 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-vt52 new file mode 100644 index 000000000..1c6bdf9ce Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-vt52 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-x10mouse b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-x10mouse new file mode 100644 index 000000000..62dd25fa1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-x10mouse differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-x11hilite b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-x11hilite new file mode 100644 index 000000000..92d07fbe5 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-x11hilite differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-x11mouse b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-x11mouse new file mode 100644 index 000000000..fbffd2520 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-x11mouse differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v32 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v32 new file mode 100644 index 000000000..ec4c264d4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v32 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v33 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v33 new file mode 100644 index 000000000..1d447df6a Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v33 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v333 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v333 new file mode 100644 index 000000000..ef6045b08 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v333 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v40 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v40 new file mode 100644 index 000000000..520868d82 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v40 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v43 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v43 new file mode 100644 index 000000000..f74b0c903 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v43 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v44 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v44 new file mode 100644 index 000000000..6bf51a76c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xf86-v44 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xfree86 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xfree86 new file mode 100644 index 000000000..0b72f454c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xfree86 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xi b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xi new file mode 100644 index 000000000..071c82741 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm-xi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm.js b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm.js new file mode 100644 index 000000000..604b86fae Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm.js differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm1 b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm1 new file mode 100644 index 000000000..7a7d51834 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterm1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xtermc b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xtermc new file mode 100644 index 000000000..0af01da03 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xtermc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xtermm b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xtermm new file mode 100644 index 000000000..90402daa1 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xtermm differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterms b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterms new file mode 100644 index 000000000..5349f6da7 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterms differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterms-sun b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterms-sun new file mode 100644 index 000000000..eccf2769c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xterms-sun differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/x/xwsh b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xwsh new file mode 100644 index 000000000..166c6014c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/x/xwsh differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z-100 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z-100 new file mode 100644 index 000000000..0d0311b25 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z-100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z-100bw b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z-100bw new file mode 100644 index 000000000..19003800f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z-100bw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z100 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z100 new file mode 100644 index 000000000..0d0311b25 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z100 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z100bw b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z100bw new file mode 100644 index 000000000..19003800f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z100bw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z110 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z110 new file mode 100644 index 000000000..0d0311b25 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z110 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z110bw b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z110bw new file mode 100644 index 000000000..19003800f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z110bw differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z19 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z19 new file mode 100644 index 000000000..63b3b318f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z19 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29 new file mode 100644 index 000000000..15e7e8a5e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a new file mode 100644 index 000000000..c5c211ab4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a-kc-bc b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a-kc-bc new file mode 100644 index 000000000..c5c211ab4 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a-kc-bc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a-kc-uc b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a-kc-uc new file mode 100644 index 000000000..866ab38de Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a-kc-uc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a-nkc-bc b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a-nkc-bc new file mode 100644 index 000000000..78aac6b0f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a-nkc-bc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a-nkc-uc b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a-nkc-uc new file mode 100644 index 000000000..85b5af000 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29a-nkc-uc differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29b b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29b new file mode 100644 index 000000000..15e7e8a5e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z29b differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z30 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z30 new file mode 100644 index 000000000..686f806a0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z340 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z340 new file mode 100644 index 000000000..21c9fccde Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z340 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z340-nam b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z340-nam new file mode 100644 index 000000000..f9ea3f04b Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z340-nam differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z39-a b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z39-a new file mode 100644 index 000000000..d9344010e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z39-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z39a b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z39a new file mode 100644 index 000000000..d9344010e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z39a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z50 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z50 new file mode 100644 index 000000000..5c666276e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z50 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/z8001 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z8001 new file mode 100644 index 000000000..c99e7b00d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/z8001 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/zen30 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zen30 new file mode 100644 index 000000000..686f806a0 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zen30 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/zen50 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zen50 new file mode 100644 index 000000000..5c666276e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zen50 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/zen8001 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zen8001 new file mode 100644 index 000000000..c99e7b00d Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zen8001 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/zenith b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zenith new file mode 100644 index 000000000..63b3b318f Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zenith differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/zenith29 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zenith29 new file mode 100644 index 000000000..15e7e8a5e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zenith29 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/zenith39-a b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zenith39-a new file mode 100644 index 000000000..d9344010e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zenith39-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/zenith39-ansi b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zenith39-ansi new file mode 100644 index 000000000..d9344010e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zenith39-ansi differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/zt-1 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zt-1 new file mode 100644 index 000000000..91424b20c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/zt-1 differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/ztx b/code/application/source/sf_app/tools/blue/lib/terminfo/z/ztx new file mode 100644 index 000000000..91424b20c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/ztx differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/ztx-1-a b/code/application/source/sf_app/tools/blue/lib/terminfo/z/ztx-1-a new file mode 100644 index 000000000..91424b20c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/ztx-1-a differ diff --git a/code/application/source/sf_app/tools/blue/lib/terminfo/z/ztx11 b/code/application/source/sf_app/tools/blue/lib/terminfo/z/ztx11 new file mode 100644 index 000000000..91424b20c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/lib/terminfo/z/ztx11 differ diff --git a/code/application/source/sf_app/tools/blue/libexec/bluetooth/bluetoothd b/code/application/source/sf_app/tools/blue/libexec/bluetooth/bluetoothd new file mode 100755 index 000000000..de0516a84 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/libexec/bluetooth/bluetoothd differ diff --git a/code/application/source/sf_app/tools/blue/libexec/dbus-daemon-launch-helper b/code/application/source/sf_app/tools/blue/libexec/dbus-daemon-launch-helper new file mode 100755 index 000000000..1504f071c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/libexec/dbus-daemon-launch-helper differ diff --git a/code/application/source/sf_app/tools/blue/libexec/gio-launch-desktop b/code/application/source/sf_app/tools/blue/libexec/gio-launch-desktop new file mode 100755 index 000000000..f97387d37 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/libexec/gio-launch-desktop differ diff --git a/code/application/source/sf_app/tools/blue/share/aclocal/build-to-host.m4 b/code/application/source/sf_app/tools/blue/share/aclocal/build-to-host.m4 new file mode 100644 index 000000000..e3c72877f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/aclocal/build-to-host.m4 @@ -0,0 +1,73 @@ +# build-to-host.m4 serial 1 +dnl Copyright (C) 2023 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Written by Bruno Haible. + +dnl When the build environment ($build_os) is different from the target runtime +dnl environment ($host_os), file names may need to be converted from the build +dnl environment syntax to the target runtime environment syntax. This is +dnl because the Makefiles are executed (mostly) by build environment tools and +dnl therefore expect file names in build environment syntax, whereas the runtime +dnl expects file names in target runtime environment syntax. +dnl +dnl For example, if $build_os = cygwin and $host_os = mingw32, filenames need +dnl be converted from Cygwin syntax to native Windows syntax: +dnl /cygdrive/c/foo/bar -> C:\foo\bar +dnl /usr/local/share -> C:\cygwin64\usr\local\share +dnl +dnl gl_BUILD_TO_HOST([somedir]) +dnl This macro takes as input an AC_SUBSTed variable 'somedir', which must +dnl already have its final value assigned, and produces two additional +dnl AC_SUBSTed variables 'somedir_c' and 'somedir_c_make', that designate the +dnl same file name value, just in different syntax: +dnl - somedir_c is the file name in target runtime environment syntax, +dnl as a C string (starting and ending with a double-quote, +dnl and with escaped backslashes and double-quotes in +dnl between). +dnl - somedir_c_make is the same thing, escaped for use in a Makefile. + +AC_DEFUN([gl_BUILD_TO_HOST], +[ + AC_REQUIRE([AC_CANONICAL_BUILD]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_BUILD_TO_HOST_INIT]) + + dnl Define somedir_c. + gl_final_[$1]="$[$1]" + dnl Translate it from build syntax to host syntax. + case "$build_os" in + cygwin*) + case "$host_os" in + mingw*) + gl_final_[$1]=`cygpath -w "$gl_final_[$1]"` ;; + esac + ;; + esac + dnl Convert it to C string syntax. + [$1]_c=`echo "$gl_final_[$1]" | sed -e "$gl_sed_double_backslashes" -e "$gl_sed_escape_doublequotes"` + [$1]_c='"'"$[$1]_c"'"' + AC_SUBST([$1_c]) + + dnl Define somedir_c_make. + [$1]_c_make=`echo "$[$1]_c" | sed -e "$gl_sed_escape_for_make_1" -e "$gl_sed_escape_for_make_2"` + dnl Use the substituted somedir variable, when possible, so that the user + dnl may adjust somedir a posteriori when there are no special characters. + if test "$[$1]_c_make" = '\"'"${gl_final_[$1]}"'\"'; then + [$1]_c_make='\"$([$1])\"' + fi + AC_SUBST([$1_c_make]) +]) + +dnl Some initializations for gl_BUILD_TO_HOST. +AC_DEFUN([gl_BUILD_TO_HOST_INIT], +[ + gl_sed_double_backslashes='s/\\/\\\\/g' + gl_sed_escape_doublequotes='s/"/\\"/g' +changequote(,)dnl + gl_sed_escape_for_make_1="s,\\([ \"&'();<>\\\\\`|]\\),\\\\\\1,g" +changequote([,])dnl + gl_sed_escape_for_make_2='s,\$,\\$$,g' +]) diff --git a/code/application/source/sf_app/tools/blue/share/aclocal/gettext.m4 b/code/application/source/sf_app/tools/blue/share/aclocal/gettext.m4 new file mode 100644 index 000000000..019d1adb5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/aclocal/gettext.m4 @@ -0,0 +1,398 @@ +# gettext.m4 serial 77 (gettext-0.22) +dnl Copyright (C) 1995-2014, 2016, 2018-2023 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Lesser General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Lesser General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2006, 2008-2010. + +dnl Macro to add for using GNU gettext. + +dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). +dnl INTLSYMBOL must be one of 'external', 'use-libtool', 'here'. +dnl INTLSYMBOL should be 'external' for packages other than GNU gettext. +dnl It should be 'use-libtool' for the packages 'gettext-runtime' and +dnl 'gettext-tools'. +dnl It should be 'here' for the package 'gettext-runtime/intl'. +dnl If INTLSYMBOL is 'here', then a libtool library +dnl $(top_builddir)/libintl.la will be created (shared and/or static, +dnl depending on --{enable,disable}-{shared,static} and on the presence of +dnl AM-DISABLE-SHARED). +dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext +dnl implementations (in libc or libintl) without the ngettext() function +dnl will be ignored. If NEEDSYMBOL is specified and is +dnl 'need-formatstring-macros', then GNU gettext implementations that don't +dnl support the ISO C 99 formatstring macros will be ignored. +dnl INTLDIR is used to find the intl libraries. If empty, +dnl the value '$(top_builddir)/intl/' is used. +dnl +dnl The result of the configuration is one of three cases: +dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled +dnl and used. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 2) GNU gettext has been found in the system's C library. +dnl Catalog format: GNU --> install in $(datadir) +dnl Catalog extension: .mo after installation, .gmo in source tree +dnl 3) No internationalization, always use English msgid. +dnl Catalog format: none +dnl Catalog extension: none +dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. +dnl The use of .gmo is historical (it was needed to avoid overwriting the +dnl GNU format catalogs when building on a platform with an X/Open gettext), +dnl but we keep it in order not to force irrelevant filename changes on the +dnl maintainers. +dnl +AC_DEFUN([AM_GNU_GETTEXT], +[ + dnl Argument checking. + m4_if([$1], [], , [m4_if([$1], [external], , [m4_if([$1], [use-libtool], , [m4_if([$1], [here], , + [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT +])])])])]) + m4_if(m4_if([$1], [], [old])[]m4_if([$1], [no-libtool], [old]), [old], + [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported. +])]) + m4_if([$2], [], , [m4_if([$2], [need-ngettext], , [m4_if([$2], [need-formatstring-macros], , + [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT +])])])]) + define([gt_building_libintl_in_same_build_tree], + m4_if([$1], [use-libtool], [yes], [m4_if([$1], [here], [yes], [no])])) + gt_NEEDS_INIT + AM_GNU_GETTEXT_NEED([$2]) + + AC_REQUIRE([AM_PO_SUBDIRS])dnl + + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Sometimes libintl requires libiconv, so first search for libiconv. + dnl Ideally we would do this search only after the + dnl if test "$USE_NLS" = "yes"; then + dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl tests. But if configure.ac invokes AM_ICONV after AM_GNU_GETTEXT + dnl the configure script would need to contain the same shell code + dnl again, outside any 'if'. There are two solutions: + dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. + dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. + dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it. + m4_if(gt_building_libintl_in_same_build_tree, yes, , [ + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + ]) + + dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. + gt_INTL_MACOSX + + dnl Set USE_NLS. + AC_REQUIRE([AM_NLS]) + + m4_if(gt_building_libintl_in_same_build_tree, yes, [ + USE_INCLUDED_LIBINTL=no + ]) + LIBINTL= + LTLIBINTL= + POSUB= + + dnl Add a version number to the cache macros. + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + dnl If we use NLS figure out what method + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + m4_if(gt_building_libintl_in_same_build_tree, yes, [ + AC_MSG_CHECKING([whether included gettext is requested]) + AC_ARG_WITH([included-gettext], + [ --with-included-gettext use the GNU gettext library included here], + nls_cv_force_use_gnu_gettext=$withval, + nls_cv_force_use_gnu_gettext=no) + AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) + + nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" + if test "$nls_cv_force_use_gnu_gettext" != "yes"; then + ]) + dnl User does not insist on using GNU NLS library. Figure out what + dnl to use. If GNU gettext is available we use this. Else we have + dnl to fall back to GNU NLS library. + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +changequote(,)dnl +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +changequote([,])dnl +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [eval "$gt_func_gnugettext_libc=yes"], + [eval "$gt_func_gnugettext_libc=no"])]) + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + dnl Sometimes libintl requires libiconv, so first search for libiconv. + m4_if(gt_building_libintl_in_same_build_tree, yes, , [ + AM_ICONV_LINK + ]) + dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL + dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) + dnl because that would add "-liconv" to LIBINTL and LTLIBINTL + dnl even if libiconv doesn't exist. + AC_LIB_LINKFLAGS_BODY([intl]) + AC_CACHE_CHECK([for GNU gettext in libintl], + [$gt_func_gnugettext_libintl], + [gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + dnl Now see whether libintl exists and does not depend on libiconv. + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [eval "$gt_func_gnugettext_libintl=yes"], + [eval "$gt_func_gnugettext_libintl=no"]) + dnl Now see whether libintl exists and depends on libiconv. + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias ("")) +#else +#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0 +#endif +$gt_revision_test_code + ]], + [[ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION + ]])], + [LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + ]) + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS"]) + fi + + dnl If an already present or preinstalled GNU gettext() is found, + dnl use it. But if this macro is used in GNU gettext, and GNU + dnl gettext is already preinstalled in libintl, we update this + dnl libintl. (Cf. the install rule in intl/Makefile.in.) + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools \ + && test "$PACKAGE" != libintl; }; then + gt_use_preinstalled_gnugettext=yes + else + dnl Reset the values set by searching for libintl. + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + m4_if(gt_building_libintl_in_same_build_tree, yes, [ + if test "$gt_use_preinstalled_gnugettext" != "yes"; then + dnl GNU gettext is not found in the C library. + dnl Fall back on included GNU gettext library. + nls_cv_use_gnu_gettext=yes + fi + fi + + if test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions used to generate GNU NLS library. + USE_INCLUDED_LIBINTL=yes + LIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD" + LTLIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD" + LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` + fi + + CATOBJEXT= + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Mark actions to use GNU gettext tools. + CATOBJEXT=.gmo + fi + ]) + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + dnl Some extra flags are needed during linking. + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + AC_DEFINE([ENABLE_NLS], [1], + [Define to 1 if translation of program messages to the user's native language + is requested.]) + else + USE_NLS=no + fi + fi + + AC_MSG_CHECKING([whether to use NLS]) + AC_MSG_RESULT([$USE_NLS]) + if test "$USE_NLS" = "yes"; then + AC_MSG_CHECKING([where the gettext function comes from]) + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + AC_MSG_RESULT([$gt_source]) + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + AC_MSG_CHECKING([how to link with libintl]) + AC_MSG_RESULT([$LIBINTL]) + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) + fi + + dnl For backward compatibility. Some packages may be using this. + AC_DEFINE([HAVE_GETTEXT], [1], + [Define if the GNU gettext() function is already present or preinstalled.]) + AC_DEFINE([HAVE_DCGETTEXT], [1], + [Define if the GNU dcgettext() function is already present or preinstalled.]) + fi + + dnl We need to process the po/ directory. + POSUB=po + fi + + m4_if(gt_building_libintl_in_same_build_tree, yes, [ + dnl Make all variables we use known to autoconf. + AC_SUBST([USE_INCLUDED_LIBINTL]) + AC_SUBST([CATOBJEXT]) + ]) + + m4_if(gt_building_libintl_in_same_build_tree, yes, [], [ + dnl For backward compatibility. Some Makefiles may be using this. + INTLLIBS="$LIBINTL" + AC_SUBST([INTLLIBS]) + ]) + + dnl Make all documented variables known to autoconf. + AC_SUBST([LIBINTL]) + AC_SUBST([LTLIBINTL]) + AC_SUBST([POSUB]) + + dnl Define localedir_c and localedir_c_make. + dnl Find the final value of localedir. + gt_save_prefix="${prefix}" + gt_save_datarootdir="${datarootdir}" + gt_save_localedir="${localedir}" + dnl Unfortunately, prefix gets only finally determined at the end of + dnl configure. + if test "X$prefix" = "XNONE"; then + prefix="$ac_default_prefix" + fi + eval datarootdir="$datarootdir" + eval localedir="$localedir" + gl_BUILD_TO_HOST([localedir]) + localedir="${gt_save_localedir}" + datarootdir="${gt_save_datarootdir}" + prefix="${gt_save_prefix}" +]) + + +dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. +m4_define([gt_NEEDS_INIT], +[ + m4_divert_text([DEFAULTS], [gt_needs=]) + m4_define([gt_NEEDS_INIT], []) +]) + + +dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) +AC_DEFUN([AM_GNU_GETTEXT_NEED], +[ + m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) +]) + + +dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) + + +dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version]) +AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], []) diff --git a/code/application/source/sf_app/tools/blue/share/aclocal/glib-2.0.m4 b/code/application/source/sf_app/tools/blue/share/aclocal/glib-2.0.m4 new file mode 100644 index 000000000..5fc357c77 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/aclocal/glib-2.0.m4 @@ -0,0 +1,215 @@ +# Configure paths for GLIB +# Owen Taylor 1997-2001 + +# Increment this whenever this file is changed. +#serial 4 + +dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) +dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject, +dnl gthread, or gio is specified in MODULES, pass to pkg-config +dnl +AC_DEFUN([AM_PATH_GLIB_2_0], +[dnl +dnl Get the cflags and libraries from pkg-config +dnl + +dnl We can't use PKG_PREREQ because that needs 0.29. +m4_ifndef([PKG_PROG_PKG_CONFIG], + [pkg.m4 version 0.28 or later is required]) + +AC_ARG_ENABLE(glibtest, [ --disable-glibtest do not try to compile and run a test GLIB program], + , enable_glibtest=yes) + + min_glib_version=ifelse([$1], [], [2.0.0], [$1]) + pkg_config_args="glib-2.0 >= $min_glib_version" + for module in . $4 + do + case "$module" in + gmodule) + pkg_config_args="$pkg_config_args gmodule-2.0" + ;; + gmodule-no-export) + pkg_config_args="$pkg_config_args gmodule-no-export-2.0" + ;; + gobject) + pkg_config_args="$pkg_config_args gobject-2.0" + ;; + gthread) + pkg_config_args="$pkg_config_args gthread-2.0" + ;; + gio*) + pkg_config_args="$pkg_config_args $module-2.0" + ;; + esac + done + + PKG_PROG_PKG_CONFIG([0.16]) + + no_glib="" + + if test "x$PKG_CONFIG" = x ; then + no_glib=yes + PKG_CONFIG=no + fi + + dnl For GLIB_CFLAGS and GLIB_LIBS + PKG_CHECK_MODULES([GLIB], [$pkg_config_args], [:], [:]) + + dnl For the tools + PKG_CHECK_VAR([GLIB_GENMARSHAL], [glib-2.0], [glib_genmarshal]) + PKG_CHECK_VAR([GOBJECT_QUERY], [glib-2.0], [gobject_query]) + PKG_CHECK_VAR([GLIB_MKENUMS], [glib-2.0], [glib_mkenums]) + PKG_CHECK_VAR([GLIB_COMPILE_RESOURCES], [gio-2.0], [glib_compile_resources]) + + AC_MSG_CHECKING(for GLIB - version >= $min_glib_version) + + if test x$PKG_CONFIG != xno ; then + ## don't try to run the test against uninstalled libtool libs + if $PKG_CONFIG --uninstalled $pkg_config_args; then + echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" + enable_glibtest=no + fi + + if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then + : + else + no_glib=yes + fi + fi + + if test x"$no_glib" = x ; then + glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_glibtest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GLIB_CFLAGS" + LIBS="$GLIB_LIBS $LIBS" +dnl +dnl Now check if the installed GLib is sufficiently new. (Also sanity +dnl checks the results of pkg-config to some extent) +dnl + rm -f conf.glibtest + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +#include +#include +#include + +int +main (void) +{ + unsigned int major, minor, micro; + + fclose (fopen ("conf.glibtest", "w")); + + if (sscanf("$min_glib_version", "%u.%u.%u", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_glib_version"); + exit(1); + } + + if ((glib_major_version != $glib_config_major_version) || + (glib_minor_version != $glib_config_minor_version) || + (glib_micro_version != $glib_config_micro_version)) + { + printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", + $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, + glib_major_version, glib_minor_version, glib_micro_version); + printf ("*** was found! If pkg-config was correct, then it is best\n"); + printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); + printf("*** by modifying your LD_LIBRARY_PATH environment variable, or by editing\n"); + printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); + printf("*** required on your system.\n"); + printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); + printf("*** to point to the correct configuration files\n"); + } + else if ((glib_major_version != GLIB_MAJOR_VERSION) || + (glib_minor_version != GLIB_MINOR_VERSION) || + (glib_micro_version != GLIB_MICRO_VERSION)) + { + printf("*** GLib header files (version %d.%d.%d) do not match\n", + GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); + printf("*** library (version %d.%d.%d)\n", + glib_major_version, glib_minor_version, glib_micro_version); + } + else + { + if ((glib_major_version > major) || + ((glib_major_version == major) && (glib_minor_version > minor)) || + ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** An old version of GLib (%u.%u.%u) was found.\n", + glib_major_version, glib_minor_version, glib_micro_version); + printf("*** You need a version of GLib newer than %u.%u.%u. The latest version of\n", + major, minor, micro); + printf("*** GLib is always available from ftp://ftp.gtk.org.\n"); + printf("***\n"); + printf("*** If you have already installed a sufficiently new version, this error\n"); + printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); + printf("*** being found. The easiest way to fix this is to remove the old version\n"); + printf("*** of GLib, but you can also set the PKG_CONFIG environment to point to the\n"); + printf("*** correct copy of pkg-config. (In this case, you will have to\n"); + printf("*** modify your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf\n"); + printf("*** so that the correct libraries are found at run-time))\n"); + } + } + return 1; +} +]])],[],[no_glib=yes],[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_glib" = x ; then + AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$PKG_CONFIG" = "no" ; then + echo "*** A new enough version of pkg-config was not found." + echo "*** See http://www.freedesktop.org/software/pkgconfig/" + else + if test -f conf.glibtest ; then + : + else + echo "*** Could not run GLib test program, checking why..." + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GLIB_CFLAGS" + LIBS="$LIBS $GLIB_LIBS" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#include +#include +]], [[ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ]])], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding GLib or finding the wrong" + echo "*** version of GLib. If it is not finding GLib, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occurred. This usually means GLib is incorrectly installed."]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + GLIB_CFLAGS="" + GLIB_LIBS="" + GLIB_GENMARSHAL="" + GOBJECT_QUERY="" + GLIB_MKENUMS="" + GLIB_COMPILE_RESOURCES="" + ifelse([$3], , :, [$3]) + fi + rm -f conf.glibtest +]) diff --git a/code/application/source/sf_app/tools/blue/share/aclocal/glib-gettext.m4 b/code/application/source/sf_app/tools/blue/share/aclocal/glib-gettext.m4 new file mode 100644 index 000000000..df6fbf012 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/aclocal/glib-gettext.m4 @@ -0,0 +1,486 @@ +# Copyright (C) 1995-2002 Free Software Foundation, Inc. +# Copyright (C) 2001-2003,2004 Red Hat, Inc. +# +# This file is free software, distributed under the terms of the GNU +# General Public License. As a special exception to the GNU General +# Public License, this file may be distributed as part of a program +# that contains a configuration script generated by Autoconf, under +# the same distribution terms as the rest of that program. +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995, 1996 +# +# Modified to never use included libintl. +# Owen Taylor , 12/15/1998 +# +# Major rework to remove unused code +# Owen Taylor , 12/11/2002 +# +# Added better handling of ALL_LINGUAS from GNU gettext version +# written by Bruno Haible, Owen Taylor 5/30/3002 +# +# Modified to require ngettext +# Matthias Clasen 08/06/2004 + +# Increment this whenever this file is changed. +#serial 1 + +# We need this here as well, since someone might use autoconf-2.5x +# to configure GLib then an older version to configure a package +# using AM_GLIB_GNU_GETTEXT +AC_PREREQ(2.53) + +dnl +dnl We go to great lengths to make sure that aclocal won't +dnl try to pull in the installed version of these macros +dnl when running aclocal in the glib directory. +dnl +m4_copy([AC_DEFUN],[glib_DEFUN]) +m4_copy([AC_REQUIRE],[glib_REQUIRE]) +dnl +dnl At the end, if we're not within glib, we'll define the public +dnl definitions in terms of our private definitions. +dnl + +# GLIB_LC_MESSAGES +#-------------------- +glib_DEFUN([GLIB_LC_MESSAGES], + [AC_CHECK_HEADERS([locale.h]) + if test $ac_cv_header_locale_h = yes; then + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include ], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, + [Define if your file defines LC_MESSAGES.]) + fi + fi]) + +# GLIB_PATH_PROG_WITH_TEST +#---------------------------- +dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], +[# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + /*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in ifelse([$5], , $PATH, [$5]); do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + +dnl Checks for special options needed on Mac OS X. +dnl Defines INTL_MACOSX_LIBS. +dnl +dnl Copied from intlmacosx.m4 in gettext, GPL. +dnl Copyright (C) 2004-2013 Free Software Foundation, Inc. +glib_DEFUN([glib_gt_INTL_MACOSX], +[ + dnl Check for API introduced in Mac OS X 10.2. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + [gt_cv_func_CFPreferencesCopyAppValue], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFPreferencesCopyAppValue(NULL, NULL)]])], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], + [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Check for API introduced in Mac OS X 10.3. + AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFLocaleCopyCurrent();]])], + [gt_cv_func_CFLocaleCopyCurrent=yes], + [gt_cv_func_CFLocaleCopyCurrent=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], + [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) + +# GLIB_WITH_NLS +#----------------- +glib_DEFUN([GLIB_WITH_NLS], + dnl NLS is obligatory + [USE_NLS=yes + AC_SUBST(USE_NLS) + + gt_cv_have_gettext=no + + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + + glib_gt_INTL_MACOSX + + AC_CHECK_HEADER(libintl.h, + [gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + # + # First check in libc + # + AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, + [AC_TRY_LINK([ +#include +], + [return !ngettext ("","", 1)], + gt_cv_func_ngettext_libc=yes, + gt_cv_func_ngettext_libc=no) + ]) + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, + [AC_TRY_LINK([ +#include +], + [return !dgettext ("","")], + gt_cv_func_dgettext_libc=yes, + gt_cv_func_dgettext_libc=no) + ]) + fi + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + AC_CHECK_FUNCS(bind_textdomain_codeset) + fi + + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$gt_cv_func_ngettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + + AC_CHECK_LIB(intl, bindtextdomain, + [AC_CHECK_LIB(intl, ngettext, + [AC_CHECK_LIB(intl, dgettext, + gt_cv_func_dgettext_libintl=yes)])]) + + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + AC_MSG_CHECKING([if -liconv is needed to use gettext]) + AC_MSG_RESULT([]) + AC_CHECK_LIB(intl, ngettext, + [AC_CHECK_LIB(intl, dcgettext, + [gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv], + :,-liconv)], + :,-liconv) + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext and ngettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + AC_CHECK_FUNCS(bind_textdomain_codeset) + LIBS="$glib_save_LIBS" + + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes" \ + && test "$gt_cv_func_ngettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi + fi + fi + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs $INTL_MACOSX_LIBS" + fi + + if test "$gt_cv_have_gettext" = "yes"; then + AC_DEFINE(HAVE_GETTEXT,1, + [Define if the GNU gettext() function is already present or preinstalled.]) + GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl + if test "$MSGFMT" != "no"; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS $INTLLIBS" + AC_CHECK_FUNCS(dcgettext) + MSGFMT_OPTS= + AC_MSG_CHECKING([if msgfmt accepts -c]) + GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: test 1.0\n" +"PO-Revision-Date: 2007-02-15 12:01+0100\n" +"Last-Translator: test \n" +"Language-Team: C \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) + AC_SUBST(MSGFMT_OPTS) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr], + [CATOBJEXT=.gmo + DATADIRNAME=share], + [case $host in + *-*-solaris*) + dnl On Solaris, if bind_textdomain_codeset is in libc, + dnl GNU format message catalog is always supported, + dnl since both are added to the libc all together. + dnl Hence, we'd like to go with DATADIRNAME=share and + dnl and CATOBJEXT=.gmo in this case. + AC_CHECK_FUNC(bind_textdomain_codeset, + [CATOBJEXT=.gmo + DATADIRNAME=share], + [CATOBJEXT=.mo + DATADIRNAME=lib]) + ;; + *-*-openbsd*) + CATOBJEXT=.mo + DATADIRNAME=share + ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib + ;; + esac]) + LIBS="$glib_save_LIBS" + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi + ]) + + if test "$gt_cv_have_gettext" = "yes" ; then + AC_DEFINE(ENABLE_NLS, 1, + [always defined to indicate that i18n is enabled]) + fi + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is not GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + + AC_OUTPUT_COMMANDS( + [case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac]) + + dnl These rules are solely for the distribution goal. While doing this + dnl we only have to keep exactly one list of the available catalogs + dnl in configure.ac. + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + dnl Make all variables we use known to autoconf. + AC_SUBST(CATALOGS) + AC_SUBST(CATOBJEXT) + AC_SUBST(DATADIRNAME) + AC_SUBST(GMOFILES) + AC_SUBST(INSTOBJEXT) + AC_SUBST(INTLLIBS) + AC_SUBST(PO_IN_DATADIR_TRUE) + AC_SUBST(PO_IN_DATADIR_FALSE) + AC_SUBST(POFILES) + AC_SUBST(POSUB) + ]) + +# AM_GLIB_GNU_GETTEXT +# ------------------- +# Do checks necessary for use of gettext. If a suitable implementation +# of gettext is found in either in libintl or in the C library, +# it will set INTLLIBS to the libraries needed for use of gettext +# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable +# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() +# on various variables needed by the Makefile.in.in installed by +# glib-gettextize. +dnl +AU_DEFUN([GLIB_GNU_GETTEXT], + [AC_REQUIRE([AC_PROG_CC])dnl + + GLIB_LC_MESSAGES + GLIB_WITH_NLS + + if test "$gt_cv_have_gettext" = "yes"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + AC_MSG_CHECKING(for catalogs to be installed) + NEW_LINGUAS= + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + NEW_LINGUAS="$NEW_LINGUAS $presentlang" + fi + done + LINGUAS=$NEW_LINGUAS + AC_MSG_RESULT($LINGUAS) + fi + + dnl Construct list of names of catalog files to be constructed. + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly + dnl find the mkinstalldirs script in another subdir but ($top_srcdir). + dnl Try to locate is. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) + + dnl Generate list of files to be processed by xgettext which will + dnl be included in po/Makefile. + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + ], + [[$0: This macro is deprecated. You should use upstream gettext instead.]]) + +# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) +# ------------------------------- +# Define VARIABLE to the location where catalog files will +# be installed by po/Makefile. +glib_DEFUN([GLIB_DEFINE_LOCALEDIR], +[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl +glib_save_prefix="$prefix" +glib_save_exec_prefix="$exec_prefix" +glib_save_datarootdir="$datarootdir" +test "x$prefix" = xNONE && prefix=$ac_default_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix +datarootdir=`eval echo "${datarootdir}"` +if test "x$CATOBJEXT" = "x.mo" ; then + localedir=`eval echo "${libdir}/locale"` +else + localedir=`eval echo "${datadir}/locale"` +fi +prefix="$glib_save_prefix" +exec_prefix="$glib_save_exec_prefix" +datarootdir="$glib_save_datarootdir" +AC_DEFINE_UNQUOTED($1, "$localedir", + [Define the location where the catalogs will be installed]) +]) + +dnl +dnl Now the definitions that aclocal will find +dnl +ifdef(glib_configure_ac,[],[ +AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) +AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) +])dnl + +# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) +# +# Create a temporary file with TEST-FILE as its contents and pass the +# file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with +# 0 and perform ACTION-IF-FAIL for any other exit status. +AC_DEFUN([GLIB_RUN_PROG], +[cat >conftest.foo <<_ACEOF +$2 +_ACEOF +if AC_RUN_LOG([$1 conftest.foo]); then + m4_ifval([$3], [$3], [:]) +m4_ifvaln([$4], [else $4])dnl +echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD +sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD +fi]) + diff --git a/code/application/source/sf_app/tools/blue/share/aclocal/gsettings.m4 b/code/application/source/sf_app/tools/blue/share/aclocal/gsettings.m4 new file mode 100644 index 000000000..882e6a83e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/aclocal/gsettings.m4 @@ -0,0 +1,88 @@ +# Increment this whenever this file is changed. +#serial 2 + +dnl GLIB_GSETTINGS +dnl Defines GSETTINGS_SCHEMAS_INSTALL which controls whether +dnl the schema should be compiled +dnl + +AC_DEFUN([GLIB_GSETTINGS], +[ + dnl We can't use PKG_PREREQ because that needs 0.29. + m4_ifndef([PKG_PROG_PKG_CONFIG], + [pkg.m4 version 0.28 or later is required]) + + m4_pattern_allow([AM_V_GEN]) + AC_ARG_ENABLE(schemas-compile, + AS_HELP_STRING([--disable-schemas-compile], + [Disable regeneration of gschemas.compiled on install]), + [case ${enableval} in + yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;; + no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-schemas-compile]) ;; + esac]) + AC_SUBST([GSETTINGS_DISABLE_SCHEMAS_COMPILE]) + PKG_PROG_PKG_CONFIG([0.16]) + AC_SUBST(gsettingsschemadir, [${datadir}/glib-2.0/schemas]) + AS_IF([test x$cross_compiling != xyes], + [PKG_CHECK_VAR([GLIB_COMPILE_SCHEMAS], [gio-2.0], [glib_compile_schemas])], + [AC_PATH_PROG([GLIB_COMPILE_SCHEMAS], [glib-compile-schemas])]) + AC_SUBST(GLIB_COMPILE_SCHEMAS) + if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then + ifelse([$2],,[AC_MSG_ERROR([glib-compile-schemas not found.])],[$2]) + else + ifelse([$1],,[:],[$1]) + fi + + GSETTINGS_RULES=' +.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas + +mostlyclean-am: clean-gsettings-schemas + +gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE)) + +%.gschema.valid: %.gschema.xml $(gsettings__enum_file) + $(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$< && mkdir -p [$](@D) && touch [$]@ + +all-am: $(gsettings_SCHEMAS:.xml=.valid) +uninstall-am: uninstall-gsettings-schemas +install-data-am: install-gsettings-schemas + +.SECONDARY: $(gsettings_SCHEMAS) + +install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file) + @$(NORMAL_INSTALL) + if test -n "$^"; then \ + test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \ + $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \ + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \ + fi + +uninstall-gsettings-schemas: + @$(NORMAL_UNINSTALL) + @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir) + +clean-gsettings-schemas: + rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file) + +ifdef gsettings_ENUM_NAMESPACE +$(gsettings__enum_file): $(gsettings_ENUM_FILES) + $(AM_V_GEN) glib-mkenums --comments '\'''\'' --fhead "" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " " --vtail " " --ftail "" [$]^ > [$]@.tmp && mv [$]@.tmp [$]@ +endif +' + _GSETTINGS_SUBST(GSETTINGS_RULES) +]) + +dnl _GSETTINGS_SUBST(VARIABLE) +dnl Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST +AC_DEFUN([_GSETTINGS_SUBST], +[ +AC_SUBST([$1]) +m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) +] +) diff --git a/code/application/source/sf_app/tools/blue/share/aclocal/host-cpu-c-abi.m4 b/code/application/source/sf_app/tools/blue/share/aclocal/host-cpu-c-abi.m4 new file mode 100644 index 000000000..134f22834 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/aclocal/host-cpu-c-abi.m4 @@ -0,0 +1,678 @@ +# host-cpu-c-abi.m4 serial 15 +dnl Copyright (C) 2002-2023 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible and Sam Steingold. + +dnl Sets the HOST_CPU variable to the canonical name of the CPU. +dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its +dnl C language ABI (application binary interface). +dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in +dnl config.h. +dnl +dnl This canonical name can be used to select a particular assembly language +dnl source file that will interoperate with C code on the given host. +dnl +dnl For example: +dnl * 'i386' and 'sparc' are different canonical names, because code for i386 +dnl will not run on SPARC CPUs and vice versa. They have different +dnl instruction sets. +dnl * 'sparc' and 'sparc64' are different canonical names, because code for +dnl 'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code +dnl contains 32-bit instructions, whereas 'sparc64' code contains 64-bit +dnl instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit +dnl mode, but not both. +dnl * 'mips' and 'mipsn32' are different canonical names, because they use +dnl different argument passing and return conventions for C functions, and +dnl although the instruction set of 'mips' is a large subset of the +dnl instruction set of 'mipsn32'. +dnl * 'mipsn32' and 'mips64' are different canonical names, because they use +dnl different sizes for the C types like 'int' and 'void *', and although +dnl the instruction sets of 'mipsn32' and 'mips64' are the same. +dnl * The same canonical name is used for different endiannesses. You can +dnl determine the endianness through preprocessor symbols: +dnl - 'arm': test __ARMEL__. +dnl - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL. +dnl - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN. +dnl * The same name 'i386' is used for CPUs of type i386, i486, i586 +dnl (Pentium), AMD K7, Pentium II, Pentium IV, etc., because +dnl - Instructions that do not exist on all of these CPUs (cmpxchg, +dnl MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your +dnl assembly language source files use such instructions, you will +dnl need to make the distinction. +dnl - Speed of execution of the common instruction set is reasonable across +dnl the entire family of CPUs. If you have assembly language source files +dnl that are optimized for particular CPU types (like GNU gmp has), you +dnl will need to make the distinction. +dnl See . +AC_DEFUN([gl_HOST_CPU_C_ABI], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_C_ASM]) + AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi], + [case "$host_cpu" in + +changequote(,)dnl + i[34567]86 ) +changequote([,])dnl + gl_cv_host_cpu_c_abi=i386 + ;; + + x86_64 ) + # On x86_64 systems, the C compiler may be generating code in one of + # these ABIs: + # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. + # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 + # with native Windows (mingw, MSVC). + # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if (defined __x86_64__ || defined __amd64__ \ + || defined _M_X64 || defined _M_AMD64) + int ok; + #else + error fail + #endif + ]])], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __ILP32__ || defined _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=x86_64-x32], + [gl_cv_host_cpu_c_abi=x86_64])], + [gl_cv_host_cpu_c_abi=i386]) + ;; + +changequote(,)dnl + alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) +changequote([,])dnl + gl_cv_host_cpu_c_abi=alpha + ;; + + arm* | aarch64 ) + # Assume arm with EABI. + # On arm64 systems, the C compiler may be generating code in one of + # these ABIs: + # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. + # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef __aarch64__ + int ok; + #else + error fail + #endif + ]])], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __ILP32__ || defined _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=arm64-ilp32], + [gl_cv_host_cpu_c_abi=arm64])], + [# Don't distinguish little-endian and big-endian arm, since they + # don't require different machine code for simple operations and + # since the user can distinguish them through the preprocessor + # defines __ARMEL__ vs. __ARMEB__. + # But distinguish arm which passes floating-point arguments and + # return values in integer registers (r0, r1, ...) - this is + # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which + # passes them in float registers (s0, s1, ...) and double registers + # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer + # sets the preprocessor defines __ARM_PCS (for the first case) and + # __ARM_PCS_VFP (for the second case), but older GCC does not. + echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c + # Look for a reference to the register d0 in the .s file. + AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 + if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then + gl_cv_host_cpu_c_abi=armhf + else + gl_cv_host_cpu_c_abi=arm + fi + rm -f conftest* + ]) + ;; + + hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) + # On hppa, the C compiler may be generating 32-bit code or 64-bit + # code. In the latter case, it defines _LP64 and __LP64__. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef __LP64__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=hppa64], + [gl_cv_host_cpu_c_abi=hppa]) + ;; + + ia64* ) + # On ia64 on HP-UX, the C compiler may be generating 64-bit code or + # 32-bit code. In the latter case, it defines _ILP32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=ia64-ilp32], + [gl_cv_host_cpu_c_abi=ia64]) + ;; + + mips* ) + # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this + # at 32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=mips64], + [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but + # may later get defined by ), and _MIPS_SIM == _ABIN32. + # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but + # may later get defined by ), and _MIPS_SIM == _ABIO32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if (_MIPS_SIM == _ABIN32) + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=mipsn32], + [gl_cv_host_cpu_c_abi=mips])]) + ;; + + powerpc* ) + # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. + # No need to distinguish them here; the caller may distinguish + # them based on the OS. + # On powerpc64 systems, the C compiler may still be generating + # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may + # be generating 64-bit code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __powerpc64__ || defined __LP64__ + int ok; + #else + error fail + #endif + ]])], + [# On powerpc64, there are two ABIs on Linux: The AIX compatible + # one and the ELFv2 one. The latter defines _CALL_ELF=2. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined _CALL_ELF && _CALL_ELF == 2 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=powerpc64-elfv2], + [gl_cv_host_cpu_c_abi=powerpc64]) + ], + [gl_cv_host_cpu_c_abi=powerpc]) + ;; + + rs6000 ) + gl_cv_host_cpu_c_abi=powerpc + ;; + + riscv32 | riscv64 ) + # There are 2 architectures (with variants): rv32* and rv64*. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if __riscv_xlen == 64 + int ok; + #else + error fail + #endif + ]])], + [cpu=riscv64], + [cpu=riscv32]) + # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. + # Size of 'long' and 'void *': + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __LP64__ + int ok; + #else + error fail + #endif + ]])], + [main_abi=lp64], + [main_abi=ilp32]) + # Float ABIs: + # __riscv_float_abi_double: + # 'float' and 'double' are passed in floating-point registers. + # __riscv_float_abi_single: + # 'float' are passed in floating-point registers. + # __riscv_float_abi_soft: + # No values are passed in floating-point registers. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __riscv_float_abi_double + int ok; + #else + error fail + #endif + ]])], + [float_abi=d], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __riscv_float_abi_single + int ok; + #else + error fail + #endif + ]])], + [float_abi=f], + [float_abi='']) + ]) + gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" + ;; + + s390* ) + # On s390x, the C compiler may be generating 64-bit (= s390x) code + # or 31-bit (= s390) code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __LP64__ || defined __s390x__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=s390x], + [gl_cv_host_cpu_c_abi=s390]) + ;; + + sparc | sparc64 ) + # UltraSPARCs running Linux have `uname -m` = "sparc64", but the + # C compiler still generates 32-bit code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi=sparc64], + [gl_cv_host_cpu_c_abi=sparc]) + ;; + + *) + gl_cv_host_cpu_c_abi="$host_cpu" + ;; + esac + ]) + + dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same. + HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` + HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" + AC_SUBST([HOST_CPU]) + AC_SUBST([HOST_CPU_C_ABI]) + + # This was + # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) + # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) + # earlier, but KAI C++ 3.2d doesn't like this. + sed -e 's/-/_/g' >> confdefs.h <. +dnl Don't make changes that are incompatible with that documentation! + +AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], +[ + dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([iconv]) +]) + +AC_DEFUN([AM_ICONV_LINK], +[ + dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and + dnl those with the standalone portable GNU libiconv installed). + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + + dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV + dnl accordingly. + AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) + + dnl Add $INCICONV to CPPFLAGS before performing the following checks, + dnl because if the user has installed libiconv and not disabled its use + dnl via --without-libiconv-prefix, he wants to use it. The first + dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. + am_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) + + AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_func_iconv=yes]) + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + ]], + [[iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd);]])], + [am_cv_lib_iconv=yes] + [am_cv_func_iconv=yes]) + LIBS="$am_save_LIBS" + fi + ]) + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ + dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, + dnl Solaris 10. + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + am_cv_func_iconv_works=no + for ac_iconv_const in '' 'const'; do + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include + +#ifndef ICONV_CONST +# define ICONV_CONST $ac_iconv_const +#endif + ]], + [[int result = 0; + /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from + successful returns. This is even documented in + */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 1; + iconv_close (cd_utf8_to_88591); + } + } + /* Test against Solaris 10 bug: Failures are not distinguishable from + successful returns. */ + { + iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); + if (cd_ascii_to_88591 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\263"; + char buf[10]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_ascii_to_88591, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + result |= 2; + iconv_close (cd_ascii_to_88591); + } + } + /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304"; + static char buf[2] = { (char)0xDE, (char)0xAD }; + ICONV_CONST char *inptr = input; + size_t inbytesleft = 1; + char *outptr = buf; + size_t outbytesleft = 1; + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) + result |= 4; + iconv_close (cd_88591_to_utf8); + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + ICONV_CONST char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + result |= 8; + iconv_close (cd_88591_to_utf8); + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + { + /* Try standardized names. */ + iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); + /* Try IRIX, OSF/1 names. */ + iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); + /* Try AIX names. */ + iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); + /* Try HP-UX names. */ + iconv_t cd4 = iconv_open ("utf8", "eucJP"); + if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) + && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) + result |= 16; + if (cd1 != (iconv_t)(-1)) + iconv_close (cd1); + if (cd2 != (iconv_t)(-1)) + iconv_close (cd2); + if (cd3 != (iconv_t)(-1)) + iconv_close (cd3); + if (cd4 != (iconv_t)(-1)) + iconv_close (cd4); + } + return result; +]])], + [am_cv_func_iconv_works=yes], , + [case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac]) + test "$am_cv_func_iconv_works" = no || break + done + LIBS="$am_save_LIBS" + ]) + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + AC_DEFINE([HAVE_ICONV], [1], + [Define if you have the iconv() function and it works.]) + fi + if test "$am_cv_lib_iconv" = yes; then + AC_MSG_CHECKING([how to link with libiconv]) + AC_MSG_RESULT([$LIBICONV]) + else + dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV + dnl either. + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + AC_SUBST([LIBICONV]) + AC_SUBST([LTLIBICONV]) +]) + +dnl Define AM_ICONV using AC_DEFUN_ONCE, in order to avoid warnings like +dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". +AC_DEFUN_ONCE([AM_ICONV], +[ + AM_ICONV_LINK + if test "$am_cv_func_iconv" = yes; then + AC_CACHE_CHECK([whether iconv is compatible with its POSIX signature], + [gl_cv_iconv_nonconst], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#include +#include +extern +#ifdef __cplusplus +"C" +#endif +size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); + ]], + [[]])], + [gl_cv_iconv_nonconst=yes], + [gl_cv_iconv_nonconst=no]) + ]) + else + dnl When compiling GNU libiconv on a system that does not have iconv yet, + dnl pick the POSIX compliant declaration without 'const'. + gl_cv_iconv_nonconst=yes + fi + if test $gl_cv_iconv_nonconst = yes; then + iconv_arg1="" + else + iconv_arg1="const" + fi + AC_DEFINE_UNQUOTED([ICONV_CONST], [$iconv_arg1], + [Define as const if the declaration of iconv() needs const.]) + dnl Also substitute ICONV_CONST in the gnulib generated . + m4_ifdef([gl_ICONV_H_DEFAULTS], + [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) + if test $gl_cv_iconv_nonconst != yes; then + ICONV_CONST="const" + fi + ]) + + dnl A summary result, for those packages which want to print a summary at the + dnl end of the configuration. + if test "$am_func_iconv" = yes; then + if test -n "$LIBICONV"; then + am_cv_func_iconv_summary='yes, in libiconv' + else + am_cv_func_iconv_summary='yes, in libc' + fi + else + if test "$am_cv_func_iconv" = yes; then + am_cv_func_iconv_summary='not working, consider installing GNU libiconv' + else + am_cv_func_iconv_summary='no, consider installing GNU libiconv' + fi + fi +]) diff --git a/code/application/source/sf_app/tools/blue/share/aclocal/intlmacosx.m4 b/code/application/source/sf_app/tools/blue/share/aclocal/intlmacosx.m4 new file mode 100644 index 000000000..81eefd750 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/aclocal/intlmacosx.m4 @@ -0,0 +1,65 @@ +# intlmacosx.m4 serial 8 (gettext-0.20.2) +dnl Copyright (C) 2004-2014, 2016, 2019-2023 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Lesser General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Lesser General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Checks for special options needed on Mac OS X. +dnl Defines INTL_MACOSX_LIBS. +AC_DEFUN([gt_INTL_MACOSX], +[ + dnl Check for API introduced in Mac OS X 10.4. + AC_CACHE_CHECK([for CFPreferencesCopyAppValue], + [gt_cv_func_CFPreferencesCopyAppValue], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFPreferencesCopyAppValue(NULL, NULL)]])], + [gt_cv_func_CFPreferencesCopyAppValue=yes], + [gt_cv_func_CFPreferencesCopyAppValue=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], + [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) + fi + dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent, + dnl because in macOS 10.13.4 it has the following behaviour: + dnl When two or more languages are specified in the + dnl "System Preferences > Language & Region > Preferred Languages" panel, + dnl it returns en_CC where CC is the territory (even when English is not among + dnl the preferred languages!). What we want instead is what + dnl CFLocaleCopyCurrent returned in earlier macOS releases and what + dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the + dnl first among the preferred languages and CC is the territory. + AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include ]], + [[CFLocaleCopyPreferredLanguages();]])], + [gt_cv_func_CFLocaleCopyPreferredLanguages=yes], + [gt_cv_func_CFLocaleCopyPreferredLanguages=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1], + [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.]) + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ + || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + AC_SUBST([INTL_MACOSX_LIBS]) +]) diff --git a/code/application/source/sf_app/tools/blue/share/aclocal/lib-ld.m4 b/code/application/source/sf_app/tools/blue/share/aclocal/lib-ld.m4 new file mode 100644 index 000000000..acc612743 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/aclocal/lib-ld.m4 @@ -0,0 +1,168 @@ +# lib-ld.m4 serial 11 +dnl Copyright (C) 1996-2003, 2009-2023 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Subroutines of libtool.m4, +dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid +dnl collision with libtool.m4. + +dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], +[# I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 /dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +if test -n "$LD"; then + AC_MSG_CHECKING([for ld]) +elif test "$GCC" = yes; then + AC_MSG_CHECKING([for ld used by $CC]) +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +if test -n "$LD"; then + # Let the user override the test with a path. + : +else + AC_CACHE_VAL([acl_cv_path_LD], + [ + acl_cv_path_LD= # Final result of this test + ac_prog=ld # Program to search in $PATH + if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + acl_output=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $acl_output in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'` + while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do + acl_output=`echo $acl_output | sed "s%$re_direlt%/%"` + done + # Got the pathname. No search in PATH is needed. + acl_cv_path_LD="$acl_output" + ac_prog= + ;; + "") + # If it fails, then pretend we aren't using GCC. + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac + fi + if test -n "$ac_prog"; then + # Search for $ac_prog in $PATH. + acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$acl_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE([rpath], + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_FROMPACKAGE(name, package) +dnl declares that libname comes from the given package. The configure file +dnl will then not have a --with-libname-prefix option but a +dnl --with-package-prefix option. Several libraries can come from the same +dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar +dnl macro call that searches for libname. +AC_DEFUN([AC_LIB_FROMPACKAGE], +[ + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_frompackage_]NAME, [$2]) + popdef([NAME]) + pushdef([PACK],[$2]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + define([acl_libsinpackage_]PACKUP, + m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) + popdef([PACKUP]) + popdef([PACK]) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found +dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) + pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) + pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + ]) + AC_ARG_WITH(PACK[-prefix], +[[ --with-]]PACK[[-prefix[=DIR] search for ]]PACKLIBS[[ in DIR/include and DIR/lib + --without-]]PACK[[-prefix don't search for ]]PACKLIBS[[ in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\" + eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + additional_libdir2="$withval/$acl_libdirstem2" + additional_libdir3="$withval/$acl_libdirstem3" + fi + fi +]) + if test "X$additional_libdir2" = "X$additional_libdir"; then + additional_libdir2= + fi + if test "X$additional_libdir3" = "X$additional_libdir"; then + additional_libdir3= + fi + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Use breadth-first search. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + LIB[]NAME[]_PREFIX= + dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been + dnl computed. So it has to be reset here. + HAVE_LIB[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do + if test "X$found_dir" = "X"; then + eval dir=\$$additional_libdir_variable + if test -n "$dir"; then + dnl The same code as in the loop below: + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + fi + done + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$acl_hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem3 | */$acl_libdirstem3/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \ + && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then + haveit= + if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \ + || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + dnl Really add $dependency_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$dependency_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$dependency_libdir"; then + dnl Really add $dependency_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + dnl But on GNU systems, ignore -lc options, because + dnl - linking with libc is the default anyway, + dnl - linking with libc.a may produce an error + dnl "/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie" + dnl or may produce an executable that always crashes, see + dnl . + dep=`echo "X$dep" | sed -e 's/^X-l//'` + if test "X$dep" != Xc \ + || case $host_os in + linux* | gnu* | k*bsd*-gnu) false ;; + *) true ;; + esac; then + names_next_round="$names_next_round $dep" + fi + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi + popdef([PACKLIBS]) + popdef([PACKUP]) + popdef([PACK]) + popdef([NAME]) +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2" \ + && test "X$dir" != "X/usr/$acl_libdirstem3"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2" \ + && test "X$dir" != "X/usr/$acl_libdirstem3"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +]) diff --git a/code/application/source/sf_app/tools/blue/share/aclocal/lib-prefix.m4 b/code/application/source/sf_app/tools/blue/share/aclocal/lib-prefix.m4 new file mode 100644 index 000000000..aefe7f712 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/aclocal/lib-prefix.m4 @@ -0,0 +1,323 @@ +# lib-prefix.m4 serial 20 +dnl Copyright (C) 2001-2005, 2008-2023 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_ARG_WITH([lib-prefix], +[[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates +dnl - a function acl_is_expected_elfclass, that tests whether standard input +dn; has a 32-bit or 64-bit ELF header, depending on the host CPU ABI, +dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing +dnl the basename of the libdir to try in turn, either "lib" or "lib64" or +dnl "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar. +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib, lib32, and lib64. + dnl On most glibc systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on + dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go + dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib. + dnl We determine the compiler's default mode by looking at the compiler's + dnl library search path. If at least one of its elements ends in /lib64 or + dnl points to a directory whose absolute pathname ends in /lib64, we use that + dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default, + dnl namely "lib". + dnl On Solaris systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or + dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) + + AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf], + [AC_EGREP_CPP([Extensible Linking Format], + [#if defined __ELF__ || (defined __linux__ && defined __EDG__) + Extensible Linking Format + #endif + ], + [gl_cv_elf=yes], + [gl_cv_elf=no]) + ]) + if test $gl_cv_elf = yes; then + # Extract the ELF class of a file (5th byte) in decimal. + # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header + if od -A x < /dev/null >/dev/null 2>/dev/null; then + # Use POSIX od. + func_elfclass () + { + od -A n -t d1 -j 4 -N 1 + } + else + # Use BSD hexdump. + func_elfclass () + { + dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "' + echo + } + fi + # Use 'expr', not 'test', to compare the values of func_elfclass, because on + # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002, + # not 1 or 2. +changequote(,)dnl + case $HOST_CPU_C_ABI_32BIT in + yes) + # 32-bit ABI. + acl_is_expected_elfclass () + { + expr "`func_elfclass | sed -e 's/[ ]//g'`" = 1 > /dev/null + } + ;; + no) + # 64-bit ABI. + acl_is_expected_elfclass () + { + expr "`func_elfclass | sed -e 's/[ ]//g'`" = 2 > /dev/null + } + ;; + *) + # Unknown. + acl_is_expected_elfclass () + { + : + } + ;; + esac +changequote([,])dnl + else + acl_is_expected_elfclass () + { + : + } + fi + + dnl Allow the user to override the result by setting acl_cv_libdirstems. + AC_CACHE_CHECK([for the common suffixes of directories in the library search path], + [acl_cv_libdirstems], + [dnl Try 'lib' first, because that's the default for libdir in GNU, see + dnl . + acl_libdirstem=lib + acl_libdirstem2= + acl_libdirstem3= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl . + dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." + dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the + dnl symlink is missing, so we set acl_libdirstem2 too. + if test $HOST_CPU_C_ABI_32BIT = no; then + acl_libdirstem2=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem3=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem3=lib/amd64 ;; + esac + fi + ;; + *) + dnl If $CC generates code for a 32-bit ABI, the libraries are + dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64. + dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries + dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32. + dnl Find the compiler's search path. However, non-system compilers + dnl sometimes have odd library search paths. But we can't simply invoke + dnl '/usr/bin/gcc -print-search-dirs' because that would not take into + dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS. + searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test $HOST_CPU_C_ABI_32BIT != no; then + # 32-bit or unknown ABI. + if test -d /usr/lib32; then + acl_libdirstem2=lib32 + fi + fi + if test $HOST_CPU_C_ABI_32BIT != yes; then + # 64-bit or unknown ABI. + if test -d /usr/lib64; then + acl_libdirstem3=lib64 + fi + fi + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;; + */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib32 ) acl_libdirstem2=lib32 ;; + */lib64 ) acl_libdirstem3=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + if test $HOST_CPU_C_ABI_32BIT = yes; then + # 32-bit ABI. + acl_libdirstem3= + fi + if test $HOST_CPU_C_ABI_32BIT = no; then + # 64-bit ABI. + acl_libdirstem2= + fi + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem" + acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3" + ]) + dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and + dnl acl_libdirstem3. +changequote(,)dnl + acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'` + acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'` + acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'` +changequote([,])dnl +]) diff --git a/code/application/source/sf_app/tools/blue/share/aclocal/nls.m4 b/code/application/source/sf_app/tools/blue/share/aclocal/nls.m4 new file mode 100644 index 000000000..657244810 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/aclocal/nls.m4 @@ -0,0 +1,32 @@ +# nls.m4 serial 6 (gettext-0.20.2) +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2023 Free +dnl Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Lesser General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Lesser General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.50]) + +AC_DEFUN([AM_NLS], +[ + AC_MSG_CHECKING([whether NLS is requested]) + dnl Default is enabled NLS + AC_ARG_ENABLE([nls], + [ --disable-nls do not use Native Language Support], + USE_NLS=$enableval, USE_NLS=yes) + AC_MSG_RESULT([$USE_NLS]) + AC_SUBST([USE_NLS]) +]) diff --git a/code/application/source/sf_app/tools/blue/share/aclocal/po.m4 b/code/application/source/sf_app/tools/blue/share/aclocal/po.m4 new file mode 100644 index 000000000..2f14f8e2b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/aclocal/po.m4 @@ -0,0 +1,454 @@ +# po.m4 serial 32 (gettext-0.21.1) +dnl Copyright (C) 1995-2014, 2016, 2018-2022 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can be used in projects which are not available under +dnl the GNU General Public License or the GNU Lesser General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Lesser General Public License, and the rest of the GNU +dnl gettext package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2003. + +AC_PREREQ([2.60]) + +dnl Checks for all prerequisites of the po subdirectory. +AC_DEFUN([AM_PO_SUBDIRS], +[ + AC_REQUIRE([AC_PROG_MAKE_SET])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AC_PROG_MKDIR_P])dnl + AC_REQUIRE([AC_PROG_SED])dnl + AC_REQUIRE([AM_NLS])dnl + + dnl Release version of the gettext macros. This is used to ensure that + dnl the gettext macros and po/Makefile.in.in are in sync. + AC_SUBST([GETTEXT_MACRO_VERSION], [0.20]) + + dnl Perform the following tests also if --disable-nls has been given, + dnl because they are needed for "make dist" to work. + + dnl Search for GNU msgfmt in the PATH. + dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. + dnl The second test excludes FreeBSD msgfmt. + AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) + + dnl Test whether it is GNU msgfmt >= 0.15. +changequote(,)dnl + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([GMSGFMT_015]) + + dnl Search for GNU xgettext 0.12 or newer in the PATH. + dnl The first test excludes Solaris xgettext and early GNU xgettext versions. + dnl The second test excludes FreeBSD xgettext. + AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], + :) + dnl Remove leftover from FreeBSD xgettext call. + rm -f messages.po + + dnl Test whether it is GNU xgettext >= 0.15. +changequote(,)dnl + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac +changequote([,])dnl + AC_SUBST([XGETTEXT_015]) + + dnl Search for GNU msgmerge 0.11 or newer in the PATH. + AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, + [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) + + dnl Test whether it is GNU msgmerge >= 0.20. + if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then + MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt' + else + dnl Test whether it is GNU msgmerge >= 0.12. + if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then + MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet' + else + dnl With these old versions, $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) is + dnl slow. But this is not a big problem, as such old gettext versions are + dnl hardly in use any more. + MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet' + fi + fi + AC_SUBST([MSGMERGE_FOR_MSGFMT_OPTION]) + + dnl Support for AM_XGETTEXT_OPTION. + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) + + AC_CONFIG_COMMANDS([po-directories], [[ + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + gt_tab=`printf '\t'` + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang" | "$presentlang"_* | "$presentlang".* | "$presentlang"@*) + useit=yes + ;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done]], + [# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. + OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS" + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + ]) +]) + +dnl Postprocesses a Makefile in a directory containing PO files. +AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], +[ + # When this code is run, in config.status, two variables have already been + # set: + # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, + # - LINGUAS is the value of the environment variable LINGUAS at configure + # time. + +changequote(,)dnl + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + # Find a way to echo strings without interpreting backslash. + if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='echo' + else + if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then + gt_echo='printf %s\n' + else + echo_func () { + cat < "$ac_file.tmp" + tab=`printf '\t'` + if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` + cat >> "$ac_file.tmp" < /dev/null; then + # Add dependencies that cannot be formulated as a simple suffix rule. + for lang in $ALL_LINGUAS; do + frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` + cat >> "$ac_file.tmp" <> "$ac_file.tmp" <, 1996. + +AC_PREREQ([2.53]) + +# Search path for a program which passes the given test. + +dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +AC_DEFUN([AM_PATH_PROG_WITH_TEST], +[ +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which + # contains only /bin. Note that ksh looks also at the FPATH variable, + # so we have to set that as well for the test. + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ + || PATH_SEPARATOR=';' + } +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL([ac_cv_path_$1], +[case "[$]$1" in + [[\\/]]* | ?:[[\\/]]*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in m4_if([$5], , $PATH, [$5]); do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +m4_if([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test m4_if([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$][$1]) +else + AC_MSG_RESULT([no]) +fi +AC_SUBST([$1])dnl +]) diff --git a/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gapplication b/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gapplication new file mode 100644 index 000000000..565025bd8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gapplication @@ -0,0 +1,55 @@ + +# Check for bash +[ -z "$BASH_VERSION" ] && return + +#################################################################################################### + +__app() { + case "${COMP_CWORD}" in + 1) + COMPREPLY=($(compgen -W "help version list-apps launch action list-actions" -- "${COMP_WORDS[1]}")) + return 0 + ;; + + 2) + case "${COMP_WORDS[1]}" in + launch|action|list-actions) + COMPREPLY=($(compgen -W "`gapplication list-apps`" -- "${COMP_WORDS[2]}")) + return 0 + ;; + + *) + COMPREPLY=() + return 0 + ;; + esac + ;; + esac + + # Otherwise, what we will do is based on the command in ${COMP_WORDS[1]} + case "${COMP_WORDS[1]}" in + action) + # Word 3 is the action name. This is the only one we can help with. + if [ "${COMP_CWORD}" == 3 ]; then + COMPREPLY=($(compgen -W "`gapplication list-actions "${COMP_WORDS[2]}"`" -- "${COMP_WORDS[3]}")) + return 0 + else + COMPREPLY=() + return 0 + fi + ;; + launch) + # Filenames... + COMPREPLY=($(compgen -A file "${COMP_WORDS[COMP_CWORD]}")) + return 0 + ;; + *) + # Nothing else should be out this far... + COMPREPLY=() + return 0 + esac +} + +#################################################################################################### + +complete -F __app gapplication diff --git a/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gdbus b/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gdbus new file mode 100644 index 000000000..79f4cb4b4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gdbus @@ -0,0 +1,33 @@ + +# Check for bash +[ -z "$BASH_VERSION" ] && return + +#################################################################################################### + + +__gdbus() { + local IFS=$'\n' + local cur=`_get_cword :` + + local suggestions=$(gdbus complete "${COMP_LINE}" ${COMP_POINT}) + COMPREPLY=($(compgen -W "$suggestions" -- "$cur")) + + # Remove colon-word prefix from COMPREPLY items + case "$cur" in + *:*) + case "$COMP_WORDBREAKS" in + *:*) + local colon_word=${cur%${cur##*:}} + local i=${#COMPREPLY[*]} + while [ $((--i)) -ge 0 ]; do + COMPREPLY[$i]=${COMPREPLY[$i]#"$colon_word"} + done + ;; + esac + ;; + esac +} + +#################################################################################################### + +complete -o nospace -F __gdbus gdbus diff --git a/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gio b/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gio new file mode 100644 index 000000000..c650475b9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gio @@ -0,0 +1,122 @@ +# +# Copyright (C) 2018 Red Hat, Inc. +# +# This library is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# licence, or (at your option) any later version. +# +# This is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +# License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this library; if not, see . +# + +# Check for bash +[ -z "$BASH_VERSION" ] && return + +#################################################################################################### + +# Check whether the suggestions have common prefix (i.e. suggestions won't be +# shown and prefix will be completed first) +__gio_has_common_prefix() { + local i + for (( i = 1; i < ${#COMPREPLY[@]}; i++ )); do + if [[ "${COMPREPLY[i-1]:${#cur}:1}" != "${COMPREPLY[i]:${#cur}:1}" ]]; then + return 1 # False + fi + done + + return 0 # True +} + +# Complete file location +__gio_location() { + # Prevent breaking on colons, we have to work with uris + local cur + _get_comp_words_by_ref -n : cur + + # Resolve dirname for dir listing + local dir="" + if [[ $cur =~ "/"$ ]]; then + dir="$cur" + elif [[ $cur =~ "/" ]]; then + # Subtract basename because dirname cmd doesn't work well with schemes + dir=${cur%$(basename "$cur")} + fi + + # List volumes and mounts + local mounts=( ) + local mount + while IFS=$'\n' read mount; do + # Do not care about local mounts + [[ "$mount" =~ ^"file:" ]] && continue + + # Use only matching mounts + [[ "$mount" =~ ^"$cur" && "$mount" != "$cur" ]] && mounts+=("$mount") + done < <(gio mount -li | sed -n -r 's/^ *(default_location|activation_root)=(.*)$/\2/p' | sort -u) + + # Workaround to unescape dir name (e.g. "\ " -> " ") + local -a tmp="( ${dir} )" + local unescaped_dir="${tmp[0]}" + + # List files + local files=() + local names=() + local name size type + while IFS=$'\t' read name size type; do + # Escape name properly + local escaped_name="$(printf "%q" "$name")" + + # Append slash for directories and space for files + if [[ "$type" == "(directory)" ]]; then + escaped_name="$escaped_name/" + else + escaped_name="$escaped_name " + fi + + local path="$dir$escaped_name" + + # Use only matching paths + if [[ "$path" =~ ^"$cur" ]]; then + files+=("$path") + names+=("$escaped_name") + fi + done < <(gio list -hl "$unescaped_dir" 2> /dev/null) + + COMPREPLY=("${files[@]}" "${mounts[@]}") + + # Workaround to show suggestions as basenames only + if ! __gio_has_common_prefix; then + COMPREPLY=("${mounts[@]} ${names[@]}") + + # Workaround to prevent overwriting suggestions, it adds empty + # suggestion, otherwise names with colons will be corrupted + COMPREPLY+=(" ") + + return 0 + fi + + # Workaround to complete names with colons, it removes colon prefix from + # COMPREPLY + __ltrim_colon_completions "$cur" +} + +__gio() { + # Complete subcommands + if (( ${COMP_CWORD} == 1 )); then + COMPREPLY=($(compgen -W "help version cat copy info launch list mime mkdir monitor mount move open rename remove save set trash tree" -- "${COMP_WORDS[1]}")) + compopt +o nospace + return 0 + fi + + # Complete file locations + __gio_location +} + +#################################################################################################### + +complete -o nospace -F __gio gio diff --git a/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gresource b/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gresource new file mode 100644 index 000000000..ef1145d62 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gresource @@ -0,0 +1,58 @@ + +# Check for bash +[ -z "$BASH_VERSION" ] && return + +#################################################################################################### + +__gresource() { + local choices coffset section + + if [ ${COMP_CWORD} -gt 2 ]; then + if [ ${COMP_WORDS[1]} = --section ]; then + section=${COMP_WORDS[2]} + coffset=2 + else + coffset=0 + fi + else + coffset=0 + fi + + case "$((${COMP_CWORD}-$coffset))" in + 1) + choices=$'--section \nhelp \nsections \nlist \ndetails \nextract ' + ;; + + 2) + case "${COMP_WORDS[$(($coffset+1))]}" in + --section) + return 0 + ;; + + help) + choices=$'sections\nlist\ndetails\nextract' + ;; + + sections|list|details|extract) + COMPREPLY=($(compgen -f -- ${COMP_WORDS[${COMP_CWORD}]})) + return 0 + ;; + esac + ;; + + 3) + case "${COMP_WORDS[$(($coffset+1))]}" in + list|details|extract) + choices="$(gresource list ${COMP_WORDS[$(($coffset+2))]} 2> /dev/null | sed -e 's.$. .')" + ;; + esac + ;; + esac + + local IFS=$'\n' + COMPREPLY=($(compgen -W "${choices}" -- "${COMP_WORDS[${COMP_CWORD}]}")) +} + +#################################################################################################### + +complete -o nospace -F __gresource gresource diff --git a/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gsettings b/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gsettings new file mode 100644 index 000000000..d509758e9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/bash-completion/completions/gsettings @@ -0,0 +1,88 @@ + +# Check for bash +[ -z "$BASH_VERSION" ] && return + +#################################################################################################### + +__gsettings() { + local choices coffset schemadir + + if [ ${COMP_CWORD} -gt 2 ]; then + if [ ${COMP_WORDS[1]} = --schemadir ]; then + # this complexity is needed to perform correct tilde expansion + schemadir=$(eval "echo --schemadir ${COMP_WORDS[2]}") + coffset=2 + else + coffset=0 + fi + else + coffset=0 + fi + + case "$((${COMP_CWORD}-$coffset))" in + 1) + choices=$'--schemadir\n--version\nhelp \nlist-schemas\nlist-relocatable-schemas\nlist-keys \nlist-children \nlist-recursively \nget \nrange \nset \nreset \nreset-recursively \nwritable \nmonitor \ndescribe ' + ;; + + 2) + case "${COMP_WORDS[$(($coffset+1))]}" in + --schemadir) + COMPREPLY=($(compgen -o dirnames -- ${COMP_WORDS[${COMP_CWORD}]})) + return 0 + ;; + + help) + choices=$'list-schemas\nlist-relocatable-schemas\nlist-keys\nlist-children\nlist-recursively\nget\nrange\nset\nreset\nreset-recursively\nwritable\nmonitor' + ;; + list-keys|list-children|list-recursively|reset-recursively) + choices="$(gsettings $schemadir list-schemas 2> /dev/null)"$'\n'"$(gsettings $schemadir list-relocatable-schemas 2> /dev/null | sed -e 's.$.:/.')" + ;; + list-schemas) + COMPREPLY=($(compgen -W "--print-paths" -- ${COMP_WORDS[${COMP_CWORD}]})) + return 0 + ;; + + get|range|set|reset|writable|monitor|describe) + choices="$(gsettings $schemadir list-schemas 2> /dev/null | sed -e 's.$. .')"$'\n'"$(gsettings $schemadir list-relocatable-schemas 2> /dev/null | sed -e 's.$.:/.')" + ;; + esac + ;; + + 3) + case "${COMP_WORDS[$(($coffset+1))]}" in + set) + choices="$(gsettings $schemadir list-keys ${COMP_WORDS[$(($coffset+2))]} 2> /dev/null | sed -e 's.$. .')" + ;; + + get|range|reset|writable|monitor|describe) + choices="$(gsettings $schemadir list-keys ${COMP_WORDS[$(($coffset+2))]} 2> /dev/null)" + ;; + esac + ;; + + 4) + case "${COMP_WORDS[$(($coffset+2))]}" in + set) + range=($(gsettings $schemadir range ${COMP_WORDS[$(($coffset+2))]} ${COMP_WORDS[$(($coffset+3))]} 2> /dev/null)) + case "${range[0]}" in + enum) + unset range[0] + ;; + *) + unset range + ;; + esac + local IFS=$'\n' + choices="${range[*]}" + ;; + esac + ;; + esac + + local IFS=$'\n' + COMPREPLY=($(compgen -W "${choices}" -- "${COMP_WORDS[${COMP_CWORD}]}")) +} + +#################################################################################################### + +complete -o nospace -F __gsettings gsettings diff --git a/code/application/source/sf_app/tools/blue/share/dbus-1/session.conf b/code/application/source/sf_app/tools/blue/share/dbus-1/session.conf new file mode 100644 index 000000000..b767656f1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/dbus-1/session.conf @@ -0,0 +1,80 @@ + + + + + + session + + + + + unix:tmpdir=/tmp + + + EXTERNAL + + + + + + + + + + + + + + /home/payton/blue/etc/dbus-1/session.conf + + + session.d + + /home/payton/blue/etc/dbus-1/session.d + + + /home/payton/blue/etc/dbus-1/session-local.conf + + contexts/dbus_contexts + + + + + 1000000000 + 250000000 + 1000000000 + 250000000 + 1000000000 + + 120000 + 240000 + 150000 + 100000 + 10000 + 100000 + 10000 + 50000 + 50000 + 50000 + + diff --git a/code/application/source/sf_app/tools/blue/share/dbus-1/system.conf b/code/application/source/sf_app/tools/blue/share/dbus-1/system.conf new file mode 100644 index 000000000..275081506 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/dbus-1/system.conf @@ -0,0 +1,142 @@ + + + + + + + + + system + + + messagebus + + + + + + + + + /home/payton/blue/libexec/dbus-daemon-launch-helper + + + /usr/var/run/dbus/pid + + + + + + EXTERNAL + + + unix:path=/usr/var/run/dbus/system_bus_socket + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /home/payton/blue/etc/dbus-1/system.conf + + + + + + + + + + + + + + + + + + + + + system.d + + /home/payton/blue/etc/dbus-1/system.d + + + /home/payton/blue/etc/dbus-1/system-local.conf + + contexts/dbus_contexts + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/dbus/diagram.png b/code/application/source/sf_app/tools/blue/share/doc/dbus/diagram.png new file mode 100644 index 000000000..5cb84a996 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/share/doc/dbus/diagram.png differ diff --git a/code/application/source/sf_app/tools/blue/share/doc/dbus/diagram.svg b/code/application/source/sf_app/tools/blue/share/doc/dbus/diagram.svg new file mode 100644 index 000000000..193c56796 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/dbus/diagram.svg @@ -0,0 +1,590 @@ + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + Application Process 1 + + DBusConnectionInstance + + C/C++/Python/etc.Object Instance + + Locate Objectvia Object Path + + Bindings Marshalto Method Call + + + Marshal MethodCall to Message + + + Bindings ProxyObject Instance + + Application Code + + IncomingCall + OutgoingCall + + + Bus Daemon Process + + Application Process 2 + Same Stuff as inProcess 1 + (Object Instance Has1 or More Interfaces) + + Socket(Bidirectional Message Stream) + + Socket(Bidirectional Message Stream) + + DBusConnectionInstance + + DBusConnectionInstance + + DBusConnectionInstance + + + Message Dispatcher + + if (message is signal) broadcastelse find destination named by message + + + + Destination Table + Connection 1Connection 2"The Session Manager""The Window Manager""The Screensaver""The Text Editor""The Hardware Directory""The Address Book""The Dictionary" + + + + + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/dbus/examples/GetAllMatchRules.py b/code/application/source/sf_app/tools/blue/share/doc/dbus/examples/GetAllMatchRules.py new file mode 100755 index 000000000..6a7e4cd9f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/dbus/examples/GetAllMatchRules.py @@ -0,0 +1,112 @@ +#!/usr/bin/env python + +import sys +import argparse +import dbus +import time + +def get_cmdline(pid): + cmdline = '' + if pid > 0: + try: + procpath = '/proc/' + str(pid) + '/cmdline' + with open(procpath, 'r') as f: + cmdline = " ".join(f.readline().split('\0')) + except: + pass + return cmdline + +# Parsing parameters + +parser = argparse.ArgumentParser(description='Testing D-Bus match rules') +parser.add_argument('--session', help='session bus', action="store_true") +parser.add_argument('--system', help='system bus', action="store_true") +parser.add_argument('--all', help='print all match rules', action="store_true") +args = parser.parse_args() + +if args.system and args.session: + parser.print_help() + sys.exit(1) + +# Fetch data from the bus driver + +if args.system: + bus = dbus.SystemBus() +else: + bus = dbus.SessionBus() + +remote_object = bus.get_object("org.freedesktop.DBus", + "/org/freedesktop/DBus") +bus_iface = dbus.Interface(remote_object, "org.freedesktop.DBus") +stats_iface = dbus.Interface(remote_object, "org.freedesktop.DBus.Debug.Stats") + +try: + match_rules = stats_iface.GetAllMatchRules() +except: + print("GetConnectionMatchRules failed: did you enable the Stats interface?") + sys.exit(1) + +names = bus_iface.ListNames() +unique_names = [ a for a in names if a.startswith(":") ] +pids = dict((name, bus_iface.GetConnectionUnixProcessID(name)) for name in unique_names) +cmds = dict((name, get_cmdline(pids[name])) for name in unique_names) +well_known_names = [ a for a in names if a not in unique_names ] +owners = dict((wkn, bus_iface.GetNameOwner(wkn)) for wkn in well_known_names) + +rules = dict((k_rules, + dict({ + 'wkn': [k for k, v in owners.items() if v == k_rules], + 'pid': pids[k_rules], + 'cmd': cmds[k_rules] or "", + 'rules': v_rules, + 'warnings': dict({ + 'not_signal': [a for a in v_rules if "type='signal'" not in a], + 'no_sender': [a for a in v_rules if "sender=" not in a], + 'local': [a for a in v_rules if "org.freedesktop.DBus.Local" in a], + 'NameOwnerChanged_arg0': [a for a in v_rules if "member='NameOwnerChanged'" in a and "arg0" not in a] + }) + }) + ) for k_rules, v_rules in match_rules.items()) + +warnings = dict({ + 'not_signal': 'Match rule without selecting signals', + 'no_sender': 'Match rule without a sender criteria', + 'local': 'Match rule on the org.freedesktop.DBus.Local interface', + 'NameOwnerChanged_arg0': 'Match rule on NameOwnerChanged without a arg0* criteria' + }) + +# Print the match rules + +# print all match rules without analysing them +if args.all: + for name in rules: + print("Connection %s with pid %d '%s' (%s): %d match rules, %d warnings" + % (name, rules[name]['pid'], rules[name]['cmd'], + ' '.join(rules[name]['wkn']), len(rules[name]['rules']), + len(sum(rules[name]['warnings'].values(), [])))) + for rule in rules[name]['rules']: + print("\t%s" % (rule)) + print("") + sys.exit(0) + +# analyse match rules and print only the suspicious ones +for conn,data in rules.items(): + warnings_count = len(sum(data['warnings'].values(), [])) + if warnings_count == 0: + continue + + print("Connection %s with pid %d '%s' (%s): %d match rules, %d warnings" + % (conn, data['pid'], data['cmd'], ' '.join(data['wkn']), + len(data['rules']), warnings_count)) + + for warn_code,rule_list in [(warn_code,rule_list) \ + for warn_code, rule_list \ + in data['warnings'].items() \ + if len(rule_list) > 0]: + print(" - %s:" % (warnings[warn_code])) + for rule in rule_list: + print(" - %s" % (rule)) + + print("") + +sys.exit(0) diff --git a/code/application/source/sf_app/tools/blue/share/doc/dbus/examples/example-session-disable-stats.conf b/code/application/source/sf_app/tools/blue/share/doc/dbus/examples/example-session-disable-stats.conf new file mode 100644 index 000000000..a1c2f93a0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/dbus/examples/example-session-disable-stats.conf @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/dbus/examples/example-system-enable-stats.conf b/code/application/source/sf_app/tools/blue/share/doc/dbus/examples/example-system-enable-stats.conf new file mode 100644 index 000000000..ddcf9a845 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/dbus/examples/example-system-enable-stats.conf @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/dbus/examples/example-system-hardening-without-traditional-activation.conf b/code/application/source/sf_app/tools/blue/share/doc/dbus/examples/example-system-hardening-without-traditional-activation.conf new file mode 100644 index 000000000..2665c9a8c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/dbus/examples/example-system-hardening-without-traditional-activation.conf @@ -0,0 +1,31 @@ +# Example drop-in file (dbus.service.d/override.conf) for systemd +# service. This version has many hardening options enabled and thus +# it is only suitable for cases where only systemd activation is used +# or traditional activation disabled by compiling dbus with +# --disable-traditional-activation. + +[Service] +CapabilityBoundingSet=CAP_SETGID CAP_SETUID CAP_SETPCAP CAP_SYS_RESOURCE CAP_AUDIT_WRITE +DeviceAllow=/dev/null rw +DeviceAllow=/dev/urandom r +DevicePolicy=strict +IPAddressDeny=any +LimitMEMLOCK=0 +LockPersonality=yes +MemoryDenyWriteExecute=yes +NoNewPrivileges=yes +PrivateDevices=yes +PrivateTmp=yes +ProtectControlGroups=yes +ProtectHome=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +ProtectSystem=strict +ReadOnlyPaths=-/ +RestrictAddressFamilies=AF_UNIX +RestrictNamespaces=yes +RestrictRealtime=yes +SystemCallArchitectures=native +SystemCallFilter=@system-service +SystemCallFilter=~@chown @clock @cpu-emulation @debug @module @mount @obsolete @raw-io @reboot @resources @swap memfd_create mincore mlock mlockall personality +UMask=0077 diff --git a/code/application/source/sf_app/tools/blue/share/doc/dbus/system-activation.txt b/code/application/source/sf_app/tools/blue/share/doc/dbus/system-activation.txt new file mode 100644 index 000000000..dde648e80 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/dbus/system-activation.txt @@ -0,0 +1,81 @@ +D-BUS System Activation + +Introduction: + +The dbus-daemon runs as the dbus user, and is therefore unprivileged. +Earlier attempts [1] by David Zeuthen at launching system scripts using a +custom DBUS protocol were reviewed, but deemed too difficult to audit, and +also due to a multi-threaded design, too difficult to test. +In the next few paragraphs I will outline a simpler setuid approach for +launching daemons as a configured user. + +Scope: + +Launching programs using dbus has been a topic of interest for many months. +This would allow simple systems to only start services that are needed, +and that are automatically started only when first requested. +This removes the need for an init system, and means that we can trivially +startup services in parallel. +This has immediate pressing need for OLPC, with a longer term evaluation for +perhaps Fedora and RHEL. + +Details: + +Setuid applications have to used only when absolutely necessary. +In this implementation I have an single executable, +dbus-daemon-launch-helper, with the ownership root:dbus. +This has the permissions 4750, i.e. u+rwx g+rx +setuid. +It is located in /usr/libexec/ and thus is not designed to be invoked by a +user directly. + +The helper must not be passed input that can be changed maliciously, and +therefore passing a random path with user id is totally out of the question. +In this implementation a similar idea as discussed with Davids' patch was +taken, that to pass a single name argument to the helper. +The service filename of "org.me.test.service" is then searched for in +/usr/share/dbus-1/system-services or other specified directories. + +If applications want to be activated on the system _and_ session busses, then +service files should be installed in both directories. + +A typical service file would look like: + +[D-BUS Service] +Name=org.me.test +Exec=/usr/sbin/dbus-test-server.py +User=ftp + +This gives the user to switch to, and also the path of the executable. +The service name must match that specified in the /etc/dbus-1/system.d or +/usr/share/dbus-1/system.d conf file. + +Precautions taken: + +* Only the bus name is passed to the helper, and this is validated +* We are super paranoid about the user that called us, and what permissions we have. +* We clear all environment variables except for DBUS_VERBOSE which is used for debugging +* Anything out of the ordinary causes the helper to abort. + +Launching services: + +Trivial methods on services can be called directly and the launch helper will +start the service and execute the method on the service. The lauching of the +service is completely transparent to the caller, e.g.: + +dbus-send --system --print-reply \ + --dest=org.freedesktop.Hal \ + /org/freedesktop/Hal/Manager \ + org.freedesktop.Hal.Manager.DeviceExists \ + string:/org/freedesktop/Hal/devices/computer + +If you wish to activate the service without calling a well known method, +the standard dbus method StartServiceByName can be used: + +dbus-send --system --print-reply \ + --dest=org.freedesktop.DBus \ + /org/freedesktop/DBus \ + org.freedesktop.DBus.StartServiceByName \ + string:org.freedesktop.Hal uint32:0 + +[1] http://lists.freedesktop.org/archives/dbus/2006-October/006096.html + diff --git a/code/application/source/sf_app/tools/blue/share/doc/expat/AUTHORS b/code/application/source/sf_app/tools/blue/share/doc/expat/AUTHORS new file mode 100644 index 000000000..99475bb1b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/expat/AUTHORS @@ -0,0 +1,10 @@ +Expat is brought to you by: + +Clark Cooper +Fred L. Drake, Jr. +Greg Stein +James Clark +Karl Waclawek +Rhodri James +Sebastian Pipping +Steven Solie diff --git a/code/application/source/sf_app/tools/blue/share/doc/expat/changelog b/code/application/source/sf_app/tools/blue/share/doc/expat/changelog new file mode 100644 index 000000000..e67171056 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/expat/changelog @@ -0,0 +1,1278 @@ +NOTE: We are looking for help with a few things: + https://github.com/libexpat/libexpat/labels/help%20wanted + If you can help, please get in touch. Thanks! + +Release 2.5.0 Tue October 25 2022 + Security fixes: + #616 #649 #650 CVE-2022-43680 -- Fix heap use-after-free after overeager + destruction of a shared DTD in function + XML_ExternalEntityParserCreate in out-of-memory situations. + Expected impact is denial of service or potentially + arbitrary code execution. + + Bug fixes: + #612 #645 Fix curruption from undefined entities + #613 #654 Fix case when parsing was suspended while processing nested + entities + #616 #652 #653 Stop leaking opening tag bindings after a closing tag + mismatch error where a parser is reset through + XML_ParserReset and then reused to parse + #656 CMake: Fix generation of pkg-config file + #658 MinGW|CMake: Fix static library name + + Other changes: + #663 Protect header expat_config.h from multiple inclusion + #666 examples: Make use of XML_GetBuffer and be more + consistent across examples + #648 Address compiler warnings + #667 #668 Version info bumped from 9:9:8 to 9:10:8; + see https://verbump.de/ for what these numbers do + + Special thanks to: + Jann Horn + Mark Brand + Osyotr + Rhodri James + and + Google Project Zero + +Release 2.4.9 Tue September 20 2022 + Security fixes: + #629 #640 CVE-2022-40674 -- Heap use-after-free vulnerability in + function doContent. Expected impact is denial of service + or potentially arbitrary code execution. + + Bug fixes: + #634 MinGW: Fix mis-compilation for -D__USE_MINGW_ANSI_STDIO=0 + #614 docs: Fix documentation on effect of switch XML_DTD on + symbol visibility in doc/reference.html + + Other changes: + #638 MinGW: Make fix-xmltest-log.sh drop more Wine bug output + #596 #625 Autotools: Sync CMake templates with CMake 3.22 + #608 CMake: Migrate from use of CMAKE_*_POSTFIX to + dedicated variables EXPAT_*_POSTFIX to stop affecting + other projects + #597 #599 Windows|CMake: Add missing -DXML_STATIC to test runners + and fuzzers + #512 #621 Windows|CMake: Render .def file from a template to fix + linking with -DEXPAT_DTD=OFF and/or -DEXPAT_ATTR_INFO=ON + #611 #621 MinGW|CMake: Apply MSVC .def file when linking + #622 #624 MinGW|CMake: Sync library name with GNU Autotools, + i.e. produce libexpat-1.dll rather than libexpat.dll + by default. Filename libexpat.dll.a is unaffected. + #632 MinGW|CMake: Set missing variable CMAKE_RC_COMPILER in + toolchain file "cmake/mingw-toolchain.cmake" to avoid + error "windres: Command not found" on e.g. Ubuntu 20.04 + #597 #627 CMake: Unify inconsistent use of set() and option() in + context of public build time options to take need for + set(.. FORCE) in projects using Expat by means of + add_subdirectory(..) off Expat's users' shoulders + #626 #641 Stop exporting API symbols when building a static library + #644 Resolve use of deprecated "fgrep" by "grep -F" + #620 CMake: Make documentation on variables a bit more consistent + #636 CMake: Drop leading whitespace from a #cmakedefine line in + file expat_config.h.cmake + #594 xmlwf: Fix harmless variable mix-up in function nsattcmp + #592 #593 #610 Address Cppcheck warnings + #643 Address Clang 15 compiler warnings + #642 #644 Version info bumped from 9:8:8 to 9:9:8; + see https://verbump.de/ for what these numbers do + + Infrastructure: + #597 #598 CI: Windows: Start covering MSVC 2022 + #619 CI: macOS: Migrate off deprecated macOS 10.15 + #632 CI: Linux: Make migration off deprecated Ubuntu 18.04 work + #643 CI: Upgrade Clang from 14 to 15 + #637 apply-clang-format.sh: Add support for BSD find + #633 coverage.sh: Exclude MinGW headers + #635 coverage.sh: Fix name collision for -funsigned-char + + Special thanks to: + David Faure + Felix Wilhelm + Frank Bergmann + Rhodri James + Rosen Penev + Thijs Schreijer + Vincent Torri + and + Google Project Zero + +Release 2.4.8 Mon March 28 2022 + Other changes: + #587 pkg-config: Move "-lm" to section "Libs.private" + #587 CMake|MSVC: Fix pkg-config section "Libs" + #55 #582 CMake|macOS: Start using linker arguments + "-compatibility_version " and + "-current_version " in a way compatible with + GNU Libtool + #590 #591 Version info bumped from 9:7:8 to 9:8:8; + see https://verbump.de/ for what these numbers do + + Infrastructure: + #589 CI: Upgrade Clang from 13 to 14 + + Special thanks to: + evpobr + Kai Pastor + Sam James + +Release 2.4.7 Fri March 4 2022 + Bug fixes: + #572 #577 Relax fix to CVE-2022-25236 (introduced with release 2.4.5) + with regard to all valid URI characters (RFC 3986), + i.e. the following set (excluding whitespace): + ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz + 0123456789 % -._~ :/?#[]@ !$&'()*+,;= + + Other changes: + #555 #570 #581 CMake|Windows: Store Expat version in the DLL + #577 Document consequences of namespace separator choices not just + in doc/reference.html but also in header + #577 Document Expat's lack of validation of namespace URIs against + RFC 3986, and that the XML 1.0r4 specification doesn't + require Expat to validate namespace URIs, and that Expat + may do more in that regard in future releases. + If you find need for strict RFC 3986 URI validation on + application level today, https://uriparser.github.io/ may + be of interest. + #579 Fix documentation of XML_EndDoctypeDeclHandler in + #575 Document that a call to XML_FreeContentModel can be done at + a later time from outside the element declaration handler + #574 Make hardcoded namespace URIs easier to find in code + #573 Update documentation on use of XML_POOR_ENTOPY on Solaris + #569 #571 tests: Resolve use of macros NAN and INFINITY for GNU G++ + 4.8.2 on Solaris. + #578 #580 Version info bumped from 9:6:8 to 9:7:8; + see https://verbump.de/ for what these numbers do + + Special thanks to: + Jeffrey Walton + Johnny Jazeix + Thijs Schreijer + +Release 2.4.6 Sun February 20 2022 + Bug fixes: + #566 Fix a regression introduced by the fix for CVE-2022-25313 + in release 2.4.5 that affects applications that (1) + call function XML_SetElementDeclHandler and (2) are + parsing XML that contains nested element declarations + (e.g. ""). + + Other changes: + #567 #568 Version info bumped from 9:5:8 to 9:6:8; + see https://verbump.de/ for what these numbers do + + Special thanks to: + Matt Sergeant + Samanta Navarro + Sergei Trofimovich + and + NixOS + Perl XML::Parser + +Release 2.4.5 Fri February 18 2022 + Security fixes: + #562 CVE-2022-25235 -- Passing malformed 2- and 3-byte UTF-8 + sequences (e.g. from start tag names) to the XML + processing application on top of Expat can cause + arbitrary damage (e.g. code execution) depending + on how invalid UTF-8 is handled inside the XML + processor; validation was not their job but Expat's. + Exploits with code execution are known to exist. + #561 CVE-2022-25236 -- Passing (one or more) namespace separator + characters in "xmlns[:prefix]" attribute values + made Expat send malformed tag names to the XML + processor on top of Expat which can cause + arbitrary damage (e.g. code execution) depending + on such unexpectable cases are handled inside the XML + processor; validation was not their job but Expat's. + Exploits with code execution are known to exist. + #558 CVE-2022-25313 -- Fix stack exhaustion in doctype parsing + that could be triggered by e.g. a 2 megabytes + file with a large number of opening braces. + Expected impact is denial of service or potentially + arbitrary code execution. + #560 CVE-2022-25314 -- Fix integer overflow in function copyString; + only affects the encoding name parameter at parser creation + time which is often hardcoded (rather than user input), + takes a value in the gigabytes to trigger, and a 64-bit + machine. Expected impact is denial of service. + #559 CVE-2022-25315 -- Fix integer overflow in function storeRawNames; + needs input in the gigabytes and a 64-bit machine. + Expected impact is denial of service or potentially + arbitrary code execution. + + Other changes: + #557 #564 Version info bumped from 9:4:8 to 9:5:8; + see https://verbump.de/ for what these numbers do + + Special thanks to: + Ivan Fratric + Samanta Navarro + and + Google Project Zero + JetBrains + +Release 2.4.4 Sun January 30 2022 + Security fixes: + #550 CVE-2022-23852 -- Fix signed integer overflow + (undefined behavior) in function XML_GetBuffer + (that is also called by function XML_Parse internally) + for when XML_CONTEXT_BYTES is defined to >0 (which is both + common and default). + Impact is denial of service or more. + #551 CVE-2022-23990 -- Fix unsigned integer overflow in function + doProlog triggered by large content in element type + declarations when there is an element declaration handler + present (from a prior call to XML_SetElementDeclHandler). + Impact is denial of service or more. + + Bug fixes: + #544 #545 xmlwf: Fix a memory leak on output file opening error + + Other changes: + #546 Autotools: Fix broken CMake support under Cygwin + #554 Windows: Add missing files to the installer to fix + compilation with CMake from installed sources + #552 #554 Version info bumped from 9:3:8 to 9:4:8; + see https://verbump.de/ for what these numbers do + + Special thanks to: + Carlo Bramini + hwt0415 + Roland Illig + Samanta Navarro + and + Clang LeakSan and the Clang team + +Release 2.4.3 Sun January 16 2022 + Security fixes: + #531 #534 CVE-2021-45960 -- Fix issues with left shifts by >=29 places + resulting in + a) realloc acting as free + b) realloc allocating too few bytes + c) undefined behavior + depending on architecture and precise value + for XML documents with >=2^27+1 prefixed attributes + on a single XML tag a la + "" + where XML_ParserCreateNS is used to create the parser + (which needs argument "-n" when running xmlwf). + Impact is denial of service, or more. + #532 #538 CVE-2021-46143 (ZDI-CAN-16157) -- Fix integer overflow + on variable m_groupSize in function doProlog leading + to realloc acting as free. + Impact is denial of service or more. + #539 CVE-2022-22822 to CVE-2022-22827 -- Prevent integer overflows + near memory allocation at multiple places. Mitre assigned + a dedicated CVE for each involved internal C function: + - CVE-2022-22822 for function addBinding + - CVE-2022-22823 for function build_model + - CVE-2022-22824 for function defineAttribute + - CVE-2022-22825 for function lookup + - CVE-2022-22826 for function nextScaffoldPart + - CVE-2022-22827 for function storeAtts + Impact is denial of service or more. + + Other changes: + #535 CMake: Make call to file(GENERATE [..]) work for CMake <3.19 + #541 Autotools|CMake: MinGW: Make run.sh(.in) work for Cygwin + and MSYS2 by not going through Wine on these platforms + #527 #528 Address compiler warnings + #533 #543 Version info bumped from 9:2:8 to 9:3:8; + see https://verbump.de/ for what these numbers do + + Infrastructure: + #536 CI: Check for realistic minimum CMake version + #529 #539 CI: Cover compilation with -m32 + #529 CI: Store coverage reports as artifacts for download + #528 CI: Upgrade Clang from 11 to 13 + + Special thanks to: + An anonymous whitehat + Christopher Degawa + J. Peter Mugaas + Tyson Smith + and + GCC Farm Project + Trend Micro Zero Day Initiative + +Release 2.4.2 Sun December 19 2021 + Other changes: + #509 #510 Link againgst libm for function "isnan" + #513 #514 Include expat_config.h as early as possible + #498 Autotools: Include files with release archives: + - buildconf.sh + - fuzz/*.c + #507 #519 Autotools: Sync CMake templates with CMake 3.20 + #495 #524 CMake: MinGW: Fix pkg-config section "Libs" for + - non-release build types (e.g. -DCMAKE_BUILD_TYPE=Debug) + - multi-config CMake generators (e.g. Ninja Multi-Config) + #502 #503 docs: Document that function XML_GetBuffer may return NULL + when asking for a buffer of 0 (zero) bytes size + #522 #523 docs: Fix return value docs for both + XML_SetBillionLaughsAttackProtection* functions + #525 #526 Version info bumped from 9:1:8 to 9:2:8; + see https://verbump.de/ for what these numbers do + + Special thanks to: + Dong-hee Na + Joergen Ibsen + Kai Pastor + +Release 2.4.1 Sun May 23 2021 + Bug fixes: + #488 #490 Autotools: Fix installed header expat_config.h for multilib + systems; regression introduced in 2.4.0 by pull request #486 + + Other changes: + #491 #492 Version info bumped from 9:0:8 to 9:1:8; + see https://verbump.de/ for what these numbers do + + Special thanks to: + Gentoo's QA check "multilib_check_headers" + +Release 2.4.0 Sun May 23 2021 + Security fixes: + #34 #466 #484 CVE-2013-0340/CWE-776 -- Protect against billion laughs attacks + (denial-of-service; flavors targeting CPU time or RAM or both, + leveraging general entities or parameter entities or both) + by tracking and limiting the input amplification factor + ( := ( + ) / ). + By conservative default, amplification up to a factor of 100.0 + is tolerated and rejection only starts after 8 MiB of output bytes + (= + ) have been processed. + The fix adds the following to the API: + - A new error code XML_ERROR_AMPLIFICATION_LIMIT_BREACH to + signals this specific condition. + - Two new API functions .. + - XML_SetBillionLaughsAttackProtectionMaximumAmplification and + - XML_SetBillionLaughsAttackProtectionActivationThreshold + .. to further tighten billion laughs protection parameters + when desired. Please see file "doc/reference.html" for details. + If you ever need to increase the defaults for non-attack XML + payload, please file a bug report with libexpat. + - Two new XML_FEATURE_* constants .. + - that can be queried using the XML_GetFeatureList function, and + - that are shown in "xmlwf -v" output. + - Two new environment variable switches .. + - EXPAT_ACCOUNTING_DEBUG=(0|1|2|3) and + - EXPAT_ENTITY_DEBUG=(0|1) + .. for runtime debugging of accounting and entity processing. + Specific behavior of these values may change in the future. + - Two new command line arguments "-a FACTOR" and "-b BYTES" + for xmlwf to further tighten billion laughs protection + parameters when desired. + If you ever need to increase the defaults for non-attack XML + payload, please file a bug report with libexpat. + + Bug fixes: + #332 #470 For (non-default) compilation with -DEXPAT_MIN_SIZE=ON (CMake) + or CPPFLAGS=-DXML_MIN_SIZE (GNU Autotools): Fix segfault + for UTF-16 payloads containing CDATA sections. + #485 #486 Autotools: Fix generated CMake files for non-64bit and + non-Linux platforms (e.g. macOS and MinGW in particular) + that were introduced with release 2.3.0 + + Other changes: + #468 #469 xmlwf: Improve help output and the xmlwf man page + #463 xmlwf: Improve maintainability through some refactoring + #477 xmlwf: Fix man page DocBook validity + #456 Autotools: Sync CMake templates with CMake 3.18 + #458 #459 CMake: Support absolute paths for both CMAKE_INSTALL_LIBDIR + and CMAKE_INSTALL_INCLUDEDIR + #471 #481 CMake: Add support for standard variable BUILD_SHARED_LIBS + #457 Unexpose symbol _INTERNAL_trim_to_complete_utf8_characters + #467 Resolve macro HAVE_EXPAT_CONFIG_H + #472 Delete unused legacy helper file "conftools/PrintPath" + #473 #483 Improve attribution + #464 #465 #477 doc/reference.html: Fix XHTML validity + #475 #478 doc/reference.html: Replace the 90s look by OK.css + #479 Version info bumped from 8:0:7 to 9:0:8 + due to addition of new symbols and error codes; + see https://verbump.de/ for what these numbers do + + Infrastructure: + #456 CI: Enable periodic runs + #457 CI: Start covering the list of exported symbols + #474 CI: Isolate coverage task + #476 #482 CI: Adapt to breaking changes in image "ubuntu-18.04" + #477 CI: Cover well-formedness and DocBook/XHTML validity + of doc/reference.html and doc/xmlwf.xml + + Special thanks to: + Dimitry Andric + Eero Helenius + Nick Wellnhofer + Rhodri James + Tomas Korbar + Yury Gribov + and + Clang LeakSan + JetBrains + OSS-Fuzz + +Release 2.3.0 Thu March 25 2021 + Bug fixes: + #438 When calling XML_ParseBuffer without a prior successful call to + XML_GetBuffer as a user, no longer trigger undefined behavior + (by adding an integer to a NULL pointer) but rather return + XML_STATUS_ERROR and set the error code to (new) code + XML_ERROR_NO_BUFFER. Found by UBSan (UndefinedBehaviorSanitizer) + of Clang 11 (but not Clang 9). + #444 xmlwf: Exit status 2 was used for both: + - malformed input files (documented) and + - invalid command-line arguments (undocumented). + The case of invalid command-line arguments now + has its own exit status 4, resolving the ambiguity. + + Other changes: + #439 xmlwf: Add argument -k to allow continuing after + non-fatal errors + #439 xmlwf: Add section about exit status to the -h help output + #422 #426 #447 Windows: Drop support for Visual Studio <=14.0/2015 + #434 Windows: CMake: Detect unsupported Visual Studio at + configure time (rather than at compile time) + #382 #428 testrunner: Make verbose mode (argument "-v") report + about passed tests, and make default mode report about + failures, as well. + #442 CMake: Call "enable_language(CXX)" prior to tinkering + with CMAKE_CXX_* variables + #448 Document use of libexpat from a CMake-based project + #451 Autotools: Install CMake files as generated by CMake 3.19.6 + so that users with "find_package(expat [..] CONFIG [..])" + are served on distributions that are *not* using the CMake + build system inside for libexpat packaging + #436 #437 Autotools: Drop obsolescent macro AC_HEADER_STDC + #450 #452 Autotools: Resolve use of obsolete macro AC_CONFIG_HEADER + #441 Address compiler warnings + #443 Version info bumped from 7:12:6 to 8:0:7 + due to addition of error code XML_ERROR_NO_BUFFER + (see https://verbump.de/ for what these numbers do) + + Infrastructure: + #435 #446 Replace Travis CI by GitHub Actions + + Special thanks to: + Alexander Richardson + Oleksandr Popovych + Thomas Beutlich + Tim Bray + and + Clang LeakSan, Clang 11 UBSan and the Clang team + +Release 2.2.10 Sat October 3 2020 + Bug fixes: + #390 #395 #398 Fix undefined behavior during parsing caused by + pointer arithmetic with NULL pointers + #404 #405 Fix reading uninitialized variable during parsing + #406 xmlwf: Add missing check for malloc NULL return + + Other changes: + #396 Windows: Drop support for Visual Studio <=8.0/2005 + #409 Windows: Add missing file "Changes" to the installer + to fix compilation with CMake from installed sources + #403 xmlwf: Document exit codes in xmlwf manpage and + exit with code 3 (rather than code 1) for output errors + when used with "-d DIRECTORY" + #356 #359 MinGW: Provide declaration of rand_s for mingwrt <5.3.0 + #383 #392 Autotools: Use -Werror while configure tests the compiler + for supported compile flags to avoid false positives + #383 #393 #394 Autotools: Improve handling of user (C|CPP|CXX|LD)FLAGS, + e.g. ensure that they have the last word over flags added + while running ./configure + #360 CMake: Create libexpatw.{dll,so} and expatw.pc (with emphasis + on suffix "w") with -DEXPAT_CHAR_TYPE=(ushort|wchar_t) + #360 CMake: Detect and deny unsupported build combinations + involving -DEXPAT_CHAR_TYPE=(ushort|wchar_t) + #360 CMake: Install pre-compiled shipped xmlwf.1 manpage in case + of -DEXPAT_BUILD_DOCS=OFF + #375 #380 #419 CMake: Fix use of Expat by means of add_subdirectory + #407 #408 CMake: Keep expat target name constant at "expat" + (i.e. refrain from using the target name to control + build artifact filenames) + #385 CMake: Fix compilation with -DEXPAT_SHARED_LIBS=OFF for + Windows + CMake: Expose man page compilation as target "xmlwf-manpage" + #413 #414 CMake: Introduce option EXPAT_BUILD_PKGCONFIG + to control generation of pkg-config file "expat.pc" + #424 CMake: Add minimalistic support for building binary packages + with CMake target "package"; based on CPack + #366 CMake: Add option -DEXPAT_OSSFUZZ_BUILD=(ON|OFF) with + default OFF to build fuzzer code against OSS-Fuzz and + related environment variable LIB_FUZZING_ENGINE + #354 Fix testsuite for -DEXPAT_DTD=OFF and -DEXPAT_NS=OFF, each + #354 #355 .. + #356 #412 Address compiler warnings + #368 #369 Address pngcheck warnings with doc/*.png images + #425 Version info bumped from 7:11:6 to 7:12:6 + + Special thanks to: + asavah + Ben Wagner + Bhargava Shastry + Frank Landgraf + Jeffrey Walton + Joe Orton + Kleber Tarcísio + Ma Lin + Maciej SroczyÅ„ski + Mohammed Khajapasha + Vadim Zeitlin + and + Cppcheck 2.0 and the Cppcheck team + +Release 2.2.9 Wed September 25 2019 + Other changes: + examples: Drop executable bits from elements.c + #349 Windows: Change the name of the Windows DLLs from expat*.dll + to libexpat*.dll once more (regression from 2.2.8, first + fixed in 1.95.3, issue #61 on SourceForge today, + was issue #432456 back then); needs a fix due + case-insensitive file systems on Windows and the fact that + Perl's XML::Parser::Expat compiles into Expat.dll. + #347 Windows: Only define _CRT_RAND_S if not defined + Version info bumped from 7:10:6 to 7:11:6 + + Special thanks to: + Ben Wagner + +Release 2.2.8 Fri September 13 2019 + Security fixes: + #317 #318 CVE-2019-15903 -- Fix heap overflow triggered by + XML_GetCurrentLineNumber (or XML_GetCurrentColumnNumber), + and deny internal entities closing the doctype; + fixed in commit c20b758c332d9a13afbbb276d30db1d183a85d43 + + Bug fixes: + #240 Fix cases where XML_StopParser did not have any effect + when called from inside of an end element handler + #341 xmlwf: Fix exit code for operation without "-d DIRECTORY"; + previously, only "-d DIRECTORY" would give you a proper + exit code: + # xmlwf -d . <<<'' 2>/dev/null ; echo $? + 2 + # xmlwf <<<'' 2>/dev/null ; echo $? + 0 + Now both cases return exit code 2. + + Other changes: + #299 #302 Windows: Replace LoadLibrary hack to access + unofficial API function SystemFunction036 (RtlGenRandom) + by using official API function rand_s (needs WinXP+) + #325 Windows: Drop support for Visual Studio <=7.1/2003 + and document supported compilers in README.md + #286 Windows: Remove COM code from xmlwf; in case it turns + out needed later, there will be a dedicated repository + below https://github.com/libexpat/ for that code + #322 Windows: Remove explicit MSVC solution and project files. + You can generate Visual Studio solution files through + CMake, e.g.: cmake -G"Visual Studio 15 2017" . + #338 xmlwf: Make "xmlwf -h" help output more friendly + #339 examples: Improve elements.c + #244 #264 Autotools: Add argument --enable-xml-attr-info + #239 #301 Autotools: Add arguments + --with-getrandom + --without-getrandom + --with-sys-getrandom + --without-sys-getrandom + #312 #343 Autotools: Fix linking issues with "./configure LD=clang" + Autotools: Fix "make run-xmltest" for out-of-source builds + #329 #336 CMake: Pull all options from Expat <=2.2.7 into namespace + prefix EXPAT_ with the exception of DOCBOOK_TO_MAN: + - BUILD_doc -> EXPAT_BUILD_DOCS (plural) + - BUILD_examples -> EXPAT_BUILD_EXAMPLES + - BUILD_shared -> EXPAT_SHARED_LIBS + - BUILD_tests -> EXPAT_BUILD_TESTS + - BUILD_tools -> EXPAT_BUILD_TOOLS + - DOCBOOK_TO_MAN -> DOCBOOK_TO_MAN (unchanged) + - INSTALL -> EXPAT_ENABLE_INSTALL + - MSVC_USE_STATIC_CRT -> EXPAT_MSVC_STATIC_CRT + - USE_libbsd -> EXPAT_WITH_LIBBSD + - WARNINGS_AS_ERRORS -> EXPAT_WARNINGS_AS_ERRORS + - XML_CONTEXT_BYTES -> EXPAT_CONTEXT_BYTES + - XML_DEV_URANDOM -> EXPAT_DEV_URANDOM + - XML_DTD -> EXPAT_DTD + - XML_NS -> EXPAT_NS + - XML_UNICODE -> EXPAT_CHAR_TYPE=ushort (!) + - XML_UNICODE_WCHAR_T -> EXPAT_CHAR_TYPE=wchar_t (!) + #244 #264 CMake: Add argument -DEXPAT_ATTR_INFO=(ON|OFF), + default OFF + #326 CMake: Add argument -DEXPAT_LARGE_SIZE=(ON|OFF), + default OFF + #328 CMake: Add argument -DEXPAT_MIN_SIZE=(ON|OFF), + default OFF + #239 #277 CMake: Add arguments + -DEXPAT_WITH_GETRANDOM=(ON|OFF|AUTO), default AUTO + -DEXPAT_WITH_SYS_GETRANDOM=(ON|OFF|AUTO), default AUTO + #326 CMake: Install expat_config.h to include directory + #326 CMake: Generate and install configuration files for + future find_package(expat [..] CONFIG [..]) + CMake: Now produces a summary of applied configuration + CMake: Require C++ compiler only when tests are enabled + #330 CMake: Fix compilation for 16bit character types, + i.e. ex -DXML_UNICODE=ON (and ex -DXML_UNICODE_WCHAR_T=ON) + #265 CMake: Fix linking with MinGW + #330 CMake: Add full support for MinGW; to enable, use + -DCMAKE_TOOLCHAIN_FILE=[expat]/cmake/mingw-toolchain.cmake + #330 CMake: Port "make run-xmltest" from GNU Autotools to CMake + #316 CMake: Windows: Make binary postfix match MSVC + Old: expat[d].lib + New: expat[w][d][MD|MT].lib + CMake: Migrate files from Windows to Unix line endings + #308 CMake: Integrate OSS-Fuzz fuzzers, option + -DEXPAT_BUILD_FUZZERS=(ON|OFF), default OFF + #14 Drop an OpenVMS support leftover + #235 #268 .. + #270 #310 .. + #313 #331 #333 Address compiler warnings + #282 #283 .. + #284 #285 Address cppcheck warnings + #294 #295 Address Clang Static Analyzer warnings + #24 #293 Mass-apply clang-format 9 (and ensure conformance during CI) + Version info bumped from 7:9:6 to 7:10:6 + + Special thanks to: + David Loffredo + Joonun Jang + Kishore Kunche + Marco Maggi + Mitch Phillips + Mohammed Khajapasha + Rolf Ade + xantares + Zhongyuan Zhou + +Release 2.2.7 Wed June 19 2019 + Security fixes: + #186 #262 CVE-2018-20843 -- Fix extraction of namespace prefixes from + XML names; XML names with multiple colons could end up in + the wrong namespace, and take a high amount of RAM and CPU + resources while processing, opening the door to + use for denial-of-service attacks + + Other changes: + #195 #197 Autotools/CMake: Utilize -fvisibility=hidden to stop + exporting non-API symbols + #227 Autotools: Add --without-examples and --without-tests + #228 Autotools: Modernize configure.ac + #245 #246 Autotools: Fix check for -fvisibility=hidden for Clang + #247 #248 Autotools: Fix compilation for lack of docbook2x-man + #236 #258 Autotools: Produce .tar.{gz,lz,xz} release archives + #212 CMake: Make libdir of pkgconfig expat.pc support multilib + #158 #263 CMake: Build man page in PROJECT_BINARY_DIR not _SOURCE_DIR + #219 Remove fallback to bcopy, assume that memmove(3) exists + #257 Use portable "/usr/bin/env bash" shebang (e.g. for OpenBSD) + #243 Windows: Fix syntax of .def module definition files + Version info bumped from 7:8:6 to 7:9:6 + + Special thanks to: + Benjamin Peterson + Caolán McNamara + Hanno Böck + KangLin + Kishore Kunche + Marco Maggi + Rhodri James + Sebastian Dröge + userwithuid + Yury Gribov + +Release 2.2.6 Sun August 12 2018 + Bug fixes: + #170 #206 Avoid doing arithmetic with NULL pointers in XML_GetBuffer + #204 #205 Fix 2.2.5 regression with suspend-resume while parsing + a document like '' + + Other changes: + #165 #168 Autotools: Fix docbook-related configure syntax error + #166 Autotools: Avoid grep option `-q` for Solaris + #167 Autotools: Support + ./configure DOCBOOK_TO_MAN="xmlto man --skip-validation" + #159 #167 Autotools: Support DOCBOOK_TO_MAN command which produces + xmlwf.1 rather than XMLWF.1; also covers case insensitive + file systems + #181 Autotools: Drop -rpath option passed to libtool + #188 Autotools: Detect and deny SGML docbook2man as ours is XML + #188 Autotools/CMake: Support command db2x_docbook2man as well + #174 CMake: Introduce option WARNINGS_AS_ERRORS, defaults to OFF + #184 #185 CMake: Introduce option MSVC_USE_STATIC_CRT, defaults to OFF + #207 #208 CMake: Introduce option XML_UNICODE and XML_UNICODE_WCHAR_T, + both defaulting to OFF + #175 CMake: Prefer check_symbol_exists over check_function_exists + #176 CMake: Create the same pkg-config file as with GNU Autotools + #178 #179 CMake: Use GNUInstallDirs module to set proper defaults for + install directories + #208 CMake: Utilize expat_config.h.cmake for XML_DEV_URANDOM + #180 Windows: Fix compilation of test suite for Visual Studio 2008 + #131 #173 #202 Address compiler warnings + #187 #190 #200 Fix miscellaneous typos + Version info bumped from 7:7:6 to 7:8:6 + + Special thanks to: + Anton Maklakov + Benjamin Peterson + Brad King + Franek Korta + Frank Rast + Joe Orton + luzpaz + Pedro Vicente + Rainer Jung + Rhodri James + Rolf Ade + Rolf Eike Beer + Thomas Beutlich + Tomasz KÅ‚oczko + +Release 2.2.5 Tue October 31 2017 + Bug fixes: + #8 If the parser runs out of memory, make sure its internal + state reflects the memory it actually has, not the memory + it wanted to have. + #11 The default handler wasn't being called when it should for + a SYSTEM or PUBLIC doctype if an entity declaration handler + was registered. + #137 #138 Fix a case of mistakenly reported parsing success where + XML_StopParser was called from an element handler + #162 Function XML_ErrorString was returning NULL rather than + a message for code XML_ERROR_INVALID_ARGUMENT + introduced with release 2.2.1 + + Other changes: + #106 xmlwf: Add argument -N adding notation declarations + #75 #106 Test suite: Resolve expected failure cases where xmlwf + output was incomplete + #127 Windows: Fix test suite compilation + #126 #127 Windows: Fix compilation for Visual Studio 2012 + Windows: Upgrade shipped project files to Visual Studio 2017 + #33 #132 tests: Mass-fix compilation for XML_UNICODE_WCHAR_T + #129 examples: Fix compilation for XML_UNICODE_WCHAR_T + #130 benchmark: Fix compilation for XML_UNICODE_WCHAR_T + #144 xmlwf: Fix compilation for XML_UNICODE_WCHAR_T; still needs + Windows or MinGW for 2-byte wchar_t + #9 Address two Clang Static Analyzer false positives + #59 Resolve troublesome macros hiding parser struct membership + and dereferencing that pointer + #6 Resolve superfluous internal malloc/realloc switch + #153 #155 Improve docbook2x-man detection + #160 Undefine NDEBUG in the test suite (rather than rejecting it) + #161 Address compiler warnings + Version info bumped from 7:6:6 to 7:7:6 + + Special thanks to: + Benbuck Nason + Hans Wennborg + José Gutiérrez de la Concha + Pedro Monreal Gonzalez + Rhodri James + Rolf Ade + Stephen Groat + and + Core Infrastructure Initiative + +Release 2.2.4 Sat August 19 2017 + Bug fixes: + #115 Fix copying of partial characters for UTF-8 input + + Other changes: + #109 Fix "make check" for non-x86 architectures that default + to unsigned type char (-128..127 rather than 0..255) + #109 coverage.sh: Cover -funsigned-char + Autotools: Introduce --without-xmlwf argument + #65 Autotools: Replace handwritten Makefile with GNU Automake + #43 CMake: Auto-detect high quality entropy extractors, add new + option USE_libbsd=ON to use arc4random_buf of libbsd + #74 CMake: Add -fno-strict-aliasing only where supported + #114 CMake: Always honor manually set BUILD_* options + #114 CMake: Compile man page if docbook2x-man is available, only + #117 Include file tests/xmltest.log.expected in source tarball + (required for "make run-xmltest") + #117 Include (existing) Visual Studio 2013 files in source tarball + Improve test suite error output + #111 Fix some typos in documentation + Version info bumped from 7:5:6 to 7:6:6 + + Special thanks to: + Jakub Wilk + Joe Orton + Lin Tian + Rolf Eike Beer + +Release 2.2.3 Wed August 2 2017 + Security fixes: + #82 CVE-2017-11742 -- Windows: Fix DLL hijacking vulnerability + using Steve Holme's LoadLibrary wrapper for/of cURL + + Bug fixes: + #85 Fix a dangling pointer issue related to realloc + + Other changes: + Increase code coverage + #91 Linux: Allow getrandom to fail if nonblocking pool has not + yet been initialized and read /dev/urandom then, instead. + This is in line with what recent Python does. + #81 Pre-10.7/Lion macOS: Support entropy from arc4random + #86 Check that a UTF-16 encoding in an XML declaration has the + right endianness + #4 #5 #7 Recover correctly when some reallocations fail + Repair "./configure && make" for systems without any + provider of high quality entropy + and try reading /dev/urandom on those + Ensure that user-defined character encodings have converter + functions when they are needed + Fix mis-leading description of argument -c in xmlwf.1 + Rely on macro HAVE_ARC4RANDOM_BUF (rather than __CloudABI__) + for CloudABI + #100 Fix use of SIPHASH_MAIN in siphash.h + #23 Test suite: Fix memory leaks + Version info bumped from 7:4:6 to 7:5:6 + + Special thanks to: + Chanho Park + Joe Orton + Pascal Cuoq + Rhodri James + Simon McVittie + Vadim Zeitlin + Viktor Szakats + and + Core Infrastructure Initiative + +Release 2.2.2 Wed July 12 2017 + Security fixes: + #43 Protect against compilation without any source of high + quality entropy enabled, e.g. with CMake build system; + commit ff0207e6076e9828e536b8d9cd45c9c92069b895 + #60 Windows with _UNICODE: + Unintended use of LoadLibraryW with a non-wide string + resulted in failure to load advapi32.dll and degradation + in quality of used entropy when compiled with _UNICODE for + Windows; you can launch existing binaries with + EXPAT_ENTROPY_DEBUG=1 in the environment to inspect the + quality of entropy used during runtime; commits + * 95b95032f907ef1cd17ee7a9a1768010a825d61d + * 73a5a2e9c081f49f2d775cf7ced864158b68dc80 + [MOX-006] Fix non-NULL parser parameter validation in XML_Parse; + resulted in NULL dereference, previously; + commit ac256dafdffc9622ab0dc2c62fcecb0dfcfa71fe + + Bug fixes: + #69 Fix improper use of unsigned long long integer literals + + Other changes: + #73 Start requiring a C99 compiler + #49 Fix "==" Bashism in configure script + #50 Fix too eager getrandom detection for Debian GNU/kFreeBSD + #52 and macOS + #51 Address lack of stdint.h in Visual Studio 2003 to 2008 + #58 Address compile warnings + #68 Fix "./buildconf.sh && ./configure" for some versions + of Dash for /bin/sh + #72 CMake: Ease use of Expat in context of a parent project + with multiple CMakeLists.txt files + #72 CMake: Resolve mistaken executable permissions + #76 Address compile warning with -DNDEBUG (not recommended!) + #77 Address compile warning about macro redefinition + + Special thanks to: + Alexander Bluhm + Ben Boeckel + Cătălin Răceanu + Kerin Millar + László Böszörményi + S. P. Zeidler + Segev Finer + Václav Slavík + Victor Stinner + Viktor Szakats + and + Radically Open Security + +Release 2.2.1 Sat June 17 2017 + Security fixes: + CVE-2017-9233 -- External entity infinite loop DoS + Details: https://libexpat.github.io/doc/cve-2017-9233/ + Commit c4bf96bb51dd2a1b0e185374362ee136fe2c9d7f + [MOX-002] CVE-2016-9063 -- Detect integer overflow; commit + d4f735b88d9932bd5039df2335eefdd0723dbe20 + (Fixed version of existing downstream patches!) + (SF.net) #539 Fix regression from fix to CVE-2016-0718 cutting off + longer tag names; commits + * 896b6c1fd3b842f377d1b62135dccf0a579cf65d + * af507cef2c93cb8d40062a0abe43a4f4e9158fb2 + #16 * 0dbbf43fdb20f593ddf4fa1ff67288000dd4a7fd + #25 More integer overflow detection (function poolGrow); commits + * 810b74e4703dcfdd8f404e3cb177d44684775143 + * 44178553f3539ce69d34abee77a05e879a7982ac + [MOX-002] Detect overflow from len=INT_MAX call to XML_Parse; commits + * 4be2cb5afcc018d996f34bbbce6374b7befad47f + * 7e5b71b748491b6e459e5c9a1d090820f94544d8 + [MOX-005] #30 Use high quality entropy for hash initialization: + * arc4random_buf on BSD, systems with libbsd + (when configured with --with-libbsd), CloudABI + * RtlGenRandom on Windows XP / Server 2003 and later + * getrandom on Linux 3.17+ + In a way, that's still part of CVE-2016-5300. + https://github.com/libexpat/libexpat/pull/30/commits + [MOX-005] For the low quality entropy extraction fallback code, + the parser instance address can no longer leak, commit + 04ad658bd3079dd15cb60fc67087900f0ff4b083 + [MOX-003] Prevent use of uninitialised variable; commit + [MOX-004] a4dc944f37b664a3ca7199c624a98ee37babdb4b + Add missing parameter validation to public API functions + and dedicated error code XML_ERROR_INVALID_ARGUMENT: + [MOX-006] * NULL checks; commits + * d37f74b2b7149a3a95a680c4c4cd2a451a51d60a (merge/many) + * 9ed727064b675b7180c98cb3d4f75efba6966681 + * 6a747c837c50114dfa413994e07c0ba477be4534 + * Negative length (XML_Parse); commit + [MOX-002] 70db8d2538a10f4c022655d6895e4c3e78692e7f + [MOX-001] #35 Change hash algorithm to William Ahern's version of SipHash + to go further with fixing CVE-2012-0876. + https://github.com/libexpat/libexpat/pull/39/commits + + Bug fixes: + #32 Fix sharing of hash salt across parsers; + relevant where XML_ExternalEntityParserCreate is called + prior to XML_Parse, in particular (e.g. FBReader) + #28 xmlwf: Auto-disable use of memory-mapping (and parsing + as a single chunk) for files larger than ~1 GB (2^30 bytes) + rather than failing with error "out of memory" + #3 Fix double free after malloc failure in DTD code; commit + 7ae9c3d3af433cd4defe95234eae7dc8ed15637f + #17 Fix memory leak on parser error for unbound XML attribute + prefix with new namespaces defined in the same tag; + found by Google's OSS-Fuzz; commits + * 16f87daae5a16132e479e4f71862128c7a915c73 + * b47dbc9745932c160893d433220e462bd605f8cd + xmlwf on Windows: Add missing calls to CloseHandle + + New features: + #30 Introduced environment switch EXPAT_ENTROPY_DEBUG=1 + for runtime debugging of entropy extraction + + Other changes: + Increase code coverage + #33 Reject use of XML_UNICODE_WCHAR_T with sizeof(wchar_t) != 2; + XML_UNICODE_WCHAR_T was never meant to be used outside + of Windows; 4-byte wchar_t is common on Linux + (SF.net) #538 Start using -fno-strict-aliasing + (SF.net) #540 Support compilation against cloudlibc of CloudABI + Allow MinGW cross-compilation + (SF.net) #534 CMake: Introduce option "BUILD_doc" (enabled by default) + to bypass compilation of the xmlwf.1 man page + (SF.net) pr2 CMake: Introduce option "INSTALL" (enabled by default) + to bypass installation of expat files + CMake: Fix ninja support + Autotools: Add parameters --enable-xml-context [COUNT] + and --disable-xml-context; default of context of 1024 + bytes enabled unchanged + #14 Drop AmigaOS 4.x code and includes + #14 Drop ancient build systems: + * Borland C++ Builder + * OpenVMS + * Open Watcom + * Visual Studio 6.0 + * Pre-X Mac OS (MPW Makefile) + If you happen to rely on some of these, please get in + touch for joining with maintenance. + #10 Move from WIN32 to _WIN32 + #13 Fix "make run-xmltest" order instability + Address compile warnings + Bump version info from 7:2:6 to 7:3:6 + Add AUTHORS file + + Infrastructure: + #1 Migrate from SourceForge to GitHub (except downloads): + https://github.com/libexpat/ + #1 Re-create http://libexpat.org/ project website + Start utilizing Travis CI + + Special thanks to: + Andy Wang + Don Lewis + Ed Schouten + Karl Waclawek + Pascal Cuoq + Rhodri James + Sergei Nikulov + Tobias Taschner + Viktor Szakats + and + Core Infrastructure Initiative + Mozilla Foundation (MOSS Track 3: Secure Open Source) + Radically Open Security + +Release 2.2.0 Tue June 21 2016 + Security fixes: + #537 CVE-2016-0718 -- Fix crash on malformed input + CVE-2016-4472 -- Improve insufficient fix to CVE-2015-1283 / + CVE-2015-2716 introduced with Expat 2.1.1 + #499 CVE-2016-5300 -- Use more entropy for hash initialization + than the original fix to CVE-2012-0876 + #519 CVE-2012-6702 -- Resolve troublesome internal call to srand + that was introduced with Expat 2.1.0 + when addressing CVE-2012-0876 (issue #496) + + Bug fixes: + Fix uninitialized reads of size 1 + (e.g. in little2_updatePosition) + Fix detection of UTF-8 character boundaries + + Other changes: + #532 Fix compilation for Visual Studio 2010 (keyword "C99") + Autotools: Resolve use of "$<" to better support bmake + Autotools: Add QA script "qa.sh" (and make target "qa") + Autotools: Respect CXXFLAGS if given + Autotools: Fix "make run-xmltest" + Autotools: Have "make run-xmltest" check for expected output + p90 CMake: Fix static build (BUILD_shared=OFF) on Windows + #536 CMake: Add soversion, support -DNO_SONAME=yes to bypass + #323 CMake: Add suffix "d" to differentiate debug from release + CMake: Define WIN32 with CMake on Windows + Annotate memory allocators for GCC + Address all currently known compile warnings + Make sure that API symbols remain visible despite + -fvisibility=hidden + Remove executable flag from source files + Resolve COMPILED_FROM_DSP in favor of WIN32 + + Special thanks to: + Björn Lindahl + Christian Heimes + Cristian Rodríguez + Daniel Krügler + Gustavo Grieco + Karl Waclawek + László Böszörményi + Marco Grassi + Pascal Cuoq + Sergei Nikulov + Thomas Beutlich + Warren Young + Yann Droneaud + +Release 2.1.1 Sat March 12 2016 + Security fixes: + #582: CVE-2015-1283 - Multiple integer overflows in XML_GetBuffer + + Bug fixes: + #502: Fix potential null pointer dereference + #520: Symbol XML_SetHashSalt was not exported + Output of "xmlwf -h" was incomplete + + Other changes: + #503: Document behavior of calling XML_SetHashSalt with salt 0 + Minor improvements to man page xmlwf(1) + Improvements to the experimental CMake build system + libtool now invoked with --verbose + +Release 2.1.0 Sat March 24 2012 + - Security fixes: + #2958794: CVE-2012-1148 - Memory leak in poolGrow. + #2895533: CVE-2012-1147 - Resource leak in readfilemap.c. + #3496608: CVE-2012-0876 - Hash DOS attack. + #2894085: CVE-2009-3560 - Buffer over-read and crash in big2_toUtf8(). + #1990430: CVE-2009-3720 - Parser crash with special UTF-8 sequences. + - Bug Fixes: + #1742315: Harmful XML_ParserCreateNS suggestion. + #1785430: Expat build fails on linux-amd64 with gcc version>=4.1 -O3. + #1983953, 2517952, 2517962, 2649838: + Build modifications using autoreconf instead of buildconf.sh. + #2815947, #2884086: OBJEXT and EXEEXT support while building. + #2517938: xmlwf should return non-zero exit status if not well-formed. + #2517946: Wrong statement about XMLDecl in xmlwf.1 and xmlwf.sgml. + #2855609: Dangling positionPtr after error. + #2990652: CMake support. + #3010819: UNEXPECTED_STATE with a trailing "%" in entity value. + #3206497: Uninitialized memory returned from XML_Parse. + #3287849: make check fails on mingw-w64. + - Patches: + #1749198: pkg-config support. + #3010222: Fix for bug #3010819. + #3312568: CMake support. + #3446384: Report byte offsets for attr names and values. + - New Features / API changes: + Added new API member XML_SetHashSalt() that allows setting an initial + value (salt) for hash calculations. This is part of the fix for + bug #3496608 to randomize hash parameters. + When compiled with XML_ATTR_INFO defined, adds new API member + XML_GetAttributeInfo() that allows retrieving the byte + offsets for attribute names and values (patch #3446384). + Added CMake build system. + See bug #2990652 and patch #3312568. + Added run-benchmark target to Makefile.in - relies on testdata module + present in the same relative location as in the repository. + +Release 2.0.1 Tue June 5 2007 + - Fixed bugs #1515266, #1515600: The character data handler's calling + of XML_StopParser() was not handled properly; if the parser was + stopped and the handler set to NULL, the parser would segfault. + - Fixed bug #1690883: Expat failed on EBCDIC systems as it assumed + some character constants to be ASCII encoded. + - Minor cleanups of the test harness. + - Fixed xmlwf bug #1513566: "out of memory" error on file size zero. + - Fixed outline.c bug #1543233: missing a final XML_ParserFree() call. + - Fixes and improvements for Windows platform: + bugs #1409451, #1476160, #1548182, #1602769, #1717322. + - Build fixes for various platforms: + HP-UX, Tru64, Solaris 9: patch #1437840, bug #1196180. + All Unix: #1554618 (refreshed config.sub/config.guess). + #1490371, #1613457: support both, DESTDIR and INSTALL_ROOT, + without relying on GNU-Make specific features. + #1647805: Patched configure.in to work better with Intel compiler. + - Fixes to Makefile.in to have make check work correctly: + bugs #1408143, #1535603, #1536684. + - Added Open Watcom support: patch #1523242. + +Release 2.0.0 Wed Jan 11 2006 + - We no longer use the "check" library for C unit testing; we + always use the (partial) internal implementation of the API. + - Report XML_NS setting via XML_GetFeatureList(). + - Fixed headers for use from C++. + - XML_GetCurrentLineNumber() and XML_GetCurrentColumnNumber() + now return unsigned integers. + - Added XML_LARGE_SIZE switch to enable 64-bit integers for + byte indexes and line/column numbers. + - Updated to use libtool 1.5.22 (the most recent). + - Added support for AmigaOS. + - Some mostly minor bug fixes. SF issues include: #1006708, + #1021776, #1023646, #1114960, #1156398, #1221160, #1271642. + +Release 1.95.8 Fri Jul 23 2004 + - Major new feature: suspend/resume. Handlers can now request + that a parse be suspended for later resumption or aborted + altogether. See "Temporarily Stopping Parsing" in the + documentation for more details. + - Some mostly minor bug fixes, but compilation should no + longer generate warnings on most platforms. SF issues + include: #827319, #840173, #846309, #888329, #896188, #923913, + #928113, #961698, #985192. + +Release 1.95.7 Mon Oct 20 2003 + - Fixed enum XML_Status issue (reported on SourceForge many + times), so compilers that are properly picky will be happy. + - Introduced an XMLCALL macro to control the calling + convention used by the Expat API; this macro should be used + to annotate prototypes and definitions of callback + implementations in code compiled with a calling convention + other than the default convention for the host platform. + - Improved ability to build without the configure-generated + expat_config.h header. This is useful for applications + which embed Expat rather than linking in the library. + - Fixed a variety of bugs: see SF issues #458907, #609603, + #676844, #679754, #692878, #692964, #695401, #699323, #699487, + #820946. + - Improved hash table lookups. + - Added more regression tests and improved documentation. + +Release 1.95.6 Tue Jan 28 2003 + - Added XML_FreeContentModel(). + - Added XML_MemMalloc(), XML_MemRealloc(), XML_MemFree(). + - Fixed a variety of bugs: see SF issues #615606, #616863, + #618199, #653180, #673791. + - Enhanced the regression test suite. + - Man page improvements: includes SF issue #632146. + +Release 1.95.5 Fri Sep 6 2002 + - Added XML_UseForeignDTD() for improved SAX2 support. + - Added XML_GetFeatureList(). + - Defined XML_Bool type and the values XML_TRUE and XML_FALSE. + - Use an incomplete struct instead of a void* for the parser + (may not retain). + - Fixed UTF-8 decoding bug that caused legal UTF-8 to be rejected. + - Finally fixed bug where default handler would report DTD + events that were already handled by another handler. + Initial patch contributed by Darryl Miles. + - Removed unnecessary DllMain() function that caused static + linking into a DLL to be difficult. + - Added VC++ projects for building static libraries. + - Reduced line-length for all source code and headers to be + no longer than 80 characters, to help with AS/400 support. + - Reduced memory copying during parsing (SF patch #600964). + - Fixed a variety of bugs: see SF issues #580793, #434664, + #483514, #580503, #581069, #584041, #584183, #584832, #585537, + #596555, #596678, #598352, #598944, #599715, #600479, #600971. + +Release 1.95.4 Fri Jul 12 2002 + - Added support for VMS, contributed by Craig Berry. See + vms/README.vms for more information. + - Added Mac OS (classic) support, with a makefile for MPW, + contributed by Thomas Wegner and Daryle Walker. + - Added Borland C++ Builder 5 / BCC 5.5 support, contributed + by Patrick McConnell (SF patch #538032). + - Fixed a variety of bugs: see SF issues #441449, #563184, + #564342, #566334, #566901, #569461, #570263, #575168, #579196. + - Made skippedEntityHandler conform to SAX2 (see source comment) + - Re-implemented WFC: Entity Declared from XML 1.0 spec and + added a new error "entity declared in parameter entity": + see SF bug report #569461 and SF patch #578161 + - Re-implemented section 5.1 from XML 1.0 spec: + see SF bug report #570263 and SF patch #578161 + +Release 1.95.3 Mon Jun 3 2002 + - Added a project to the MSVC workspace to create a wchar_t + version of the library; the DLLs are named libexpatw.dll. + - Changed the name of the Windows DLLs from expat.dll to + libexpat.dll; this fixes SF bug #432456. + - Added the XML_ParserReset() API function. + - Fixed XML_SetReturnNSTriplet() to work for element names. + - Made the XML_UNICODE builds usable (thanks, Karl!). + - Allow xmlwf to read from standard input. + - Install a man page for xmlwf on Unix systems. + - Fixed many bugs; see SF bug reports #231864, #461380, #464837, + #466885, #469226, #477667, #484419, #487840, #494749, #496505, + #547350. Other bugs which we can't test as easily may also + have been fixed, especially in the area of build support. + +Release 1.95.2 Fri Jul 27 2001 + - More changes to make MSVC happy with the build; add a single + workspace to support both the library and xmlwf application. + - Added a Windows installer for Windows users; includes + xmlwf.exe. + - Added compile-time constants that can be used to determine the + Expat version + - Removed a lot of GNU-specific dependencies to aide portability + among the various Unix flavors. + - Fix the UTF-8 BOM bug. + - Cleaned up warning messages for several compilers. + - Added the -Wall, -Wstrict-prototypes options for GCC. + +Release 1.95.1 Sun Oct 22 15:11:36 EDT 2000 + - Changes to get expat to build under Microsoft compiler + - Removed all aborts and instead return an UNEXPECTED_STATE error. + - Fixed a bug where a stray '%' in an entity value would cause an + abort. + - Defined XML_SetEndNamespaceDeclHandler. Thanks to Darryl Miles for + finding this oversight. + - Changed default patterns in lib/Makefile.in to fit non-GNU makes + Thanks to robin@unrated.net for reporting and providing an + account to test on. + - The reference had the wrong label for XML_SetStartNamespaceDecl. + Reported by an anonymous user. + +Release 1.95.0 Fri Sep 29 2000 + - XML_ParserCreate_MM + Allows you to set a memory management suite to replace the + standard malloc,realloc, and free. + - XML_SetReturnNSTriplet + If you turn this feature on when namespace processing is in + effect, then qualified, prefixed element and attribute names + are returned as "uri|name|prefix" where '|' is whatever + separator character is used in namespace processing. + - Merged in features from perl-expat + o XML_SetElementDeclHandler + o XML_SetAttlistDeclHandler + o XML_SetXmlDeclHandler + o XML_SetEntityDeclHandler + o StartDoctypeDeclHandler takes 3 additional parameters: + sysid, pubid, has_internal_subset + o Many paired handler setters (like XML_SetElementHandler) + now have corresponding individual handler setters + o XML_GetInputContext for getting the input context of + the current parse position. + - Added reference material + - Packaged into a distribution that builds a sharable library diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/FAQ.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/FAQ.html new file mode 100644 index 000000000..387db959a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/FAQ.html @@ -0,0 +1,864 @@ + + + + + + GNU gettext FAQ + + +

Frequently Asked Questions
+for GNU gettext +

+

Questions

+

General

+ +

Problems building GNU gettext

+ +

Problems integrating GNU gettext

+ +

GNU gettext on Windows

+ +

Other

+ +

Answers

+

General

+

Where is the mailing list?

+Three mailing lists are available:
+
    +
  • bug-gettext@gnu.org
    +This mailing list is for discussion of features and bugs of the GNU +gettext software, including +libintl, the gettext-tools, and its autoconf macros. The archive and subscription instructions can be found at the information page.
  • +
  • translation-i18n@lists.sourceforge.net
    +This mailing list is for methodology questions around +internationalization, and for discussions of translator tools, +including but not limited to GNU gettext.
  • +
  • coordinator@translationproject.org
    +This is the email address of the Translation Project, +that is the project which manages the translated message +catalogs for many free software packages. Note that KDE and GNOME +packages are not part of this project; they have their own translation +projects: l10n.kde.org and GNOME Translation Project.
    +
  • +
+The bug-gettext list +is archived here. +You may occasionally also see +bug-gnu-gettext; this is an alias +of bug-gettext.
+

Where is the newest gettext source?

+The newest gettext release is available on ftp.gnu.org and its mirrors, in +https://ftp.gnu.org/gnu/gettext/.
+
+Prereleases are announced on the autotools-announce mailing list. +Note that prereleases are meant for testing and not meant for use in +production environments. Please don't use the “gettextize†program of a +prerelease on projects which you share with other programmers via CVS.
+
+If you want to live on the bleeding edge, you can also use the +development sources. Instructions for retrieving the gettext CVS are +found here. +Note that building from CVS requires special tools (autoconf, automake, +m4, groff, bison, etc.) and requires that you pay attention to the README-alpha and autogen.sh files in the CVS.
+

I want to be notified of new gettext +releases.

+If you are interested in stable gettext releases, you can follow the info-gnu mailing list. It +is also available as a newsgroup gmane.org.fsf.announce +through gmane.org.
+
+You can also periodically check the download location.
+
+If you are interested in testing prereleases as well, you can subscribe +to the autotools-announce mailing +list.
+

Problems building GNU gettext

+

On Solaris, I get a +build error “text relocations remain†in the libasprintf subdirectory

+libtool (or more precisely, the version of libtool that was available +at the time the gettext release waas made) doesn't support linking C++ +libraries with some versions of GCC. As a workaround, you can configure +gettext with the option --disable-libasprintf.
+

“make install†fails

+“make install DESTDIR=/some/tempdir†can fail with +an error message relating to libgettextlib +or libgettextsrc, or can +silently fail to install libgettextsrc. +On some platforms, this is due to limitations of libtool regarding DESTDIR. On other platforms, it +is due to the way the system handles shared libraries, and libtool +cannot work around it. Fortunately, on Linux and other glibc based +systems, DESTDIR is +supported if no different version of gettext is already installed (i.e. +it works if you uninstall the older gettext before building and +installing the newer one, or if you do a plain “make install†before “make install DESTDIR=/some/tempdirâ€). On other +systems, when  DESTDIR +does not work, you can still do “make +install†and copy the installed files to /some/tempdir +afterwards.
+
+If “make install†without DESTDIR fails, it's a bug which +you are welcome to report to the usual bug report address. +

Problems integrating GNU gettext

+

How do I make use of gettext() in my package?

+It's not as difficult as it sounds. Here's the recipe for C or C++ +based packages.
+
    +
  • Add an invocation of AM_GNU_GETTEXT([external]) +to the package's configure.{ac,in} +file.
  • +
  • Invoke “gettextize --copyâ€. +It will do most of the autoconf/automake related work for you.
  • +
  • Add the gettext.h +file to the package's source directory, and include it in all source +files that contain translatable strings or do output via printf or fprintf.
  • +
  • In the source file defining the main() function of the program, +add these lines to the header
    +
    #include <locale.h>
    + #include "gettext.h"

    +
    +and these lines near the beginning of the main() function:
    +
    setlocale (LC_ALL, "");
    + bindtextdomain (PACKAGE, +LOCALEDIR);
    + textdomain (PACKAGE);

    +
    +
  • +
  • Mark all strings that should be translated with _(), like this: _("No errors found."). While +doing this, try to turn the strings into good English, one entire +sentence per string, not more than one paragraph per string, and use +format strings instead of string concatenation. This is needed so that +the translators can provide accurate translations.
  • +
  • In every source file containing translatable strings, add these lines +to the header:
    +
    #include "gettext.h"
    + #define _(string) gettext (string)

    +
    +
  • +
  • In the freshly created po/ +directory, set up the POTFILES.in +file, and do a “make update-poâ€. +Then distribute the generated .pot +file to your nearest translation project.
  • +
  • Shortly before a release, integrate the translators' .po files into the po/ directory and do “make update-po†again.
    +
  • +
+You find detailed descriptions of how this all works in the GNU gettext +manual, chapters “The Maintainer's View†and “Preparing Program +Sourcesâ€. +

I get a linker error “undefined +reference to libintl_gettextâ€

+This error means that the program uses the gettext() function after having +included the <libintl.h> +file from GNU gettext (which remaps it to libintl_gettext()), however at +link time a function of this name could not be linked in. (It is +expected to come from the libintl +library, installed by GNU gettext.)
+
+There are many possible reasons for this error, but in any case you +should consider the -I, -L and -l options passed to the +compiler. In packages using autoconf +generated configure scripts, -I +options come from the CFLAGS +and CPPFLAGS variables +(in Makefiles also DEFS +and INCLUDES), -L options come from the LDFLAGS variable, and -l options come from the LIBS variable. The first thing +you should check are the values of these variables in your environment +and in the  package's config.status +autoconfiguration result.
+
+To find the cause of the error, a little analysis is needed. Does the +program's final link command contains the option “-lintl�
+
    +
  • If yes:
    +Find out where the libintl +comes from. To do this, you have to check for libintl.a and libintl.so* (libintl.dylib on MacOS X) in +each directory given as a -L option, as well as in the compiler's +implicit search directories. (You get these implicit search directories +for gcc by using “gcc -v†+instead of “gcc†in the +final link command line; compilers other than GCC usually look in /usr/lib and /lib.) A shell command like
    +
    $ for d in /usr/local/lib +/usr/lib /lib; do ls -l $d/libintl.*; done
    +
    +will show where the libintl +comes from. By looking at the dates and whether each library defines libintl_gettext (via “nm path/libintl.so +| grep libintl_gettextâ€) you can now distinguish three possible +causes of the error:
    +
      +
    • Some older libintl is used instead of the newer one. The fix +is to remove the old library or to reorganize your -L options.
    • +
    • The used libintl is the new one, and it doesn't contain +libintl_gettext. This would be a bug in gettext. If this is the case, +please report it to the usual bug report address.
    • +
    • The used libintl is a static library (libintl.a), there are +no uses of gettext in .o files before the “-lintl†but there are some +after the “-lintlâ€. In this case the fix is to move the “-lintl†to the +end or near the end of the link command line. The only libintl +dependency that needs to be mentioned after “-lintl†is “-liconvâ€.
    • +
    +
  • +
  • If no:
    +In this case it's likely a bug in the package you are building: The +package's Makefiles should make sure that “-lintl†is used where needed.
    +Test whether libintl was found by configure. You can check this by doing
    +
    $ grep +'\(INTLLIBS\|LIBINTL\)' config.status
    +
    +and looking whether the value of this autoconf variable is non-empty.
    +
      +
    • If yes: It should be the responsibility of the Makefile to +use the value of this variable in the link command line. Does the +Makefile.in rule for linking the program use @INTLLIBS@ or @LIBINTL@?
      +
        +
      • If no: It's a Makefile.am/in bug.
      • +
      • If yes: Something strange is going on. You need to dig +deeper.
      • +
      +Note that @INTLLIBS@ is +for gettext.m4 versions +<= 0.10.40 and @LIBINTL@ +is for gettext.m4 +versions >= 0.11, depending on which gettext.m4 was used to build +the package's configure - +regardless of which gettext you have now installed.
    • +
    • If no: So libintl was not found.
      +Take a look at the package's configure.in/ac. +Does it invoke AM_GNU_GETTEXT?
      +
        +
      • If no: The gettext maintainers take no responsibilities for +lookalikes named CY_GNU_GETTEXT, AM_GLIB_GNU_GETTEXT, AM_GNOME_GETTEXT +and similar, or for homebrewn autoconf checks. Complain to the package +maintainer.
      • +
      • If yes: It looks like the -I and -L options were inconsistent. +You should have a -Isomedir/include in the CFLAGS or CPPFLAGS if and only if you +also have a -Lsomedir/lib in the LDFLAGS. And somedir/include +should contain a libintl.h +if and only if somedir/lib contains libintl.{a,so}.
        +This case can also happen if you have configured a GCC < 3.2 with +the same --prefix option +as you used for GNU libiconv or GNU gettext. This is fatal, because +these versions of GCC implicitly use -Lprefix/lib +but not
        + -Iprefix/include. The +workaround is to use a different --prefix +for GCC.
        +
      • +
      +
    • +
    +
  • +
+

gettextize adds multiple +references to the same directories/files +to Makefile.am and configure.ac

+If gettextize is used on +a package, then the po/, intl/, m4/ directories of the package +are removed, and then gettextize +is invoked on the package again, it will re-add the po/, intl/, m4/ directories and change Makefile.am, configure.ac and ChangeLog accordingly. This is +normal. The second use of gettextize +here is an abuse of the program. gettextize +is a wizard intended to transform a working +source package into a working +source package that uses the newest version of gettext. If you +start out from a nonfunctional source package (it is nonfunctional +since you have omitted some directories), you cannot expect that gettextize corrects it.
+
+Often this question arises in packages that use CVS. See the section +“CVS Issues / Integrating with CVS†of the GNU gettext documentation. +This section mentions a program autopoint +which is designed to reconstruct those files and directories created by +gettextize that can be +omitted from a CVS repository.
+

My program compiles and links fine, +but doesn't output translated +strings.

+There are several possible reasons. Here is a checklist that allows you +to determine the cause.
+
    +
  1. Check that the environment variables LC_ALL, LC_MESSAGES, +LC_CTYPE, LANG, LANGUAGE together specify a valid locale and language.
    +To check this, run the commands
    +
    $ gettext --version
    + $ gettext --help
    +
    +You should see at least some output in your desired language. If not, +either
    +
      +
    • You have chosen a too exotic language. gettext is localized to 33 +languages. Choose a less exotic language, such as Galician or +Ukrainian. Or
      +
    • +
    • There is a problem with your environment variables. Possibly +LC_ALL points to a locale that is not installed, or LC_MESSAGES and +LC_CTYPE are inconsistent.
    • +
    +
  2. +
  3. Check that your program contains a setlocale call.
    +To check this, run your program under ltrace. For example,
    +
    $ ltrace ./myprog
    + ...
    + setlocale(6, +"")                  += "de_DE.UTF-8"
    +
    +If you have no ltrace, you can also do this check by running your +program under the debugger. For example,
    +
    $ gdb ./myprog
    + (gdb) break main
    + (gdb) run
    + Breakpoint 1, main ()
    + (gdb) break setlocale
    + (gdb) continue
    + Breakpoint 2, setlocale ()
    + ;; OK, the breakpoint has been hit, setlocale() is being +called.
    +
    +Either way, check that the return value of setlocale() is non-NULL. A NULL +return value indicates a failure. 
  4. +
  5. Check that your program contains a textdomain call, a bindtextdomain call referring +to the same message domain, and then really calls the gettext, dgettext or dcgettext function.
    +To check this, run the program under ltrace. For example,
    +
    $ ltrace ./myprog
    + ...
    + textdomain("hello-c")                             += "hello-c"
    + bindtextdomain("hello-c", "/opt/share"...) = "/opt/share"...
    + dcgettext(0, 0x08048691, 5, 0x0804a200, 0x08048689) = +0x4001721f
    +
    +If you have no ltrace, you can also do this check by running your +program under the debugger. For example,
    +
    $ gdb ./myprog
    + (gdb) break main
    + (gdb) run
    + Breakpoint 1, main ()
    + (gdb) break textdomain
    + (gdb) break bindtextdomain
    + (gdb) break gettext
    + (gdb) break dgettext
    + (gdb) break dcgettext
    + (gdb) continue
    + Breakpoint 2, textdomain ()
    + (gdb) continue
    + Breakpoint 3, bindtextdomain ()
    + (gdb) continue
    + Breakpoint 6, dcgettext ()
    +
    +Note that here dcgettext() +is called instead of the gettext() +function mentioned in the source code; this is due to an optimization +in <libintl.h>.
    +When using libintl on a non-glibc system, you have to add a prefix “libintl_†to all the function +names mentioned here, because that's what the functions are really +named, under the hood.
    +If gettext/dgettext/dcgettext is not called at all, +the possible cause might be that some autoconf or Makefile macrology +has turned off internationalization entirely (like the --disable-nls configuration +option usually does).
    +
  6. +
  7. Check that the .mo +file that contains the translation is really there where the program +expects it.
    +To check this, run the program under strace and look at the open() calls. For example,
    +
    $ strace ./myprog 2>&1 +| grep '^open('
    + open("/etc/ld.so.preload", O_RDONLY)    = -1 +ENOENT (No such file or directory)
    + open("/etc/ld.so.cache", +O_RDONLY)      = 5
    + open("/lib/libc.so.6", +O_RDONLY)        = 5
    + open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) += 5
    + open("/usr/share/locale/locale.alias", O_RDONLY) = 5
    + open("/opt/share/locale/de/LC_MESSAGES/hello-c.mo", O_RDONLY) += 5
    + ...
    +
    +A nonnegative open() +return value means that the file has been found.
    +If you have no strace, you can also guess the .mo file's location: it is
    +
    localedir/lang/LC_MESSAGES/domain.mo
    +
    +where domain is the argument +passed to textdomain(), localedir is the second argument +passed to bindtextdomain(), +and lang is the language (LL) or language and territory (LL_CC), +depending on the environment variables checked in step 1.
  8. +
  9. Check that the .mo file contains a translation for the string +that is being asked for.
    +To do this, you need to convert the .mo file back to PO file format, +through the command
    +
    $ msgunfmt localedir/lang/LC_MESSAGES/domain.mo
    +
    +and look for an msgid +that matches the given string.
    +
  10. +
+

GNU gettext on Windows

+

What does Woe32 mean?

+“Woe32†denotes the Windows 32-bit operating systems for x86: Windows +NT/2000/XP/Vista and Windows 95/98/ME. Microsoft uses the term “Win32†to +denote these; this is a psychological trick in order to make everyone +believe that these OSes are a “win†for the user. However, for most +users and developers, they are a source of woes, which is why I call +them “Woe32â€.
+

How do I compile, link and run a +program that uses the gettext() +function?

+When you use RedHat's cygwin environment, it's as on Unix:
+
    +
  • You need to add an -I +option to the compilation command line, so that the compiler finds the libintl.h include file, and
  • +
  • You need to add an -L +option to the link command line, so that the linker finds the libintl library.
  • +
+When you use the Mingw environment (either from within cygwin, with CC="gcc -mno-cygwin", or from +MSYS, with CC="gcc"), I +don't know the details.
+
+When you use the Microsoft Visual C/C++ (MSVC) compiler, you will +likely use the precompiled Woe32 binaries. For running a program that +uses gettext(), one needs the .bin.woe32.zip +packages of gettext-runtime +and libiconv. As a +developer, you'll also need the xgettext +and msgfmt programs that +are contained in the .bin.woe32.zip +package of gettext-tools. +Then
+
    +
  • You need to add an -MD +option to all compilation and link command lines. MSVC has six +different, mutually incompatible, compilation models (-ML, -MT, -MD, -MLd, -MTd, -MDd); the default is -ML. intl.dll uses the -MD model, therefore the rest +of the program must use -MD +as well.
    +
  • +
  • You need to add an -I +option to the compilation command line, so that the compiler finds the libintl.h include file.
    +
  • +
  • You need to add an -L +option to the link command line, so that the linker finds the intl.lib library.
  • +
  • You need to copy the intl.dll +and iconv.dll to the +directory where your .exe +files are created, so that they will be found at runtime.
    +
  • +
+

Setting the LANG +environment variable doesn't have any effect

+If neither LC_ALL, LC_MESSAGES nor LANGUAGES is set, it's the LANG +environment variable which determines the language into which gettext() +translates the messages.
+
+You can test your program by setting the LANG environment variable from +outside the program. In a Windows command interpreter:
+
set LANG=de_DE
+.\myprog.exe
+
+Or in a Cygwin shell:
+
$ env LANG=de_DE ./myprog.exe
+
+
+If this test fails, look at the question “My program compiles and links +fine, but doesn't output translated +strings.†above.
+
+If this test succeeds, the problem is related in the way you set the +environment variable. Here is a checklist:
+
    +
  • Check that you are using the -MD option in all compilation +and link command lines. Otherwise you might end up calling the putenv() function from +Microsoft's libc.lib, +whereas intl.dll is using +the getenv() function +from Mictosoft's msvcrt.lib.
  • +
  • Check that you set the environment variable using both SetEnvironmentVariable() and putenv(). A convenient way to +do so, and to deal with the fact that some Unix systems have setenv() and some don't, is the +following function.
    +
    +
    #include <string.h>
    + #include <stdlib.h>
    + #if defined _WIN32
    + # include <windows.h>
    + #endif
    +
    + int my_setenv (const char * name, const char * value) {
    +   size_t namelen = strlen(name);
    +   size_t valuelen = (value==NULL ? 0 : strlen(value));
    + #if defined _WIN32
    +   /* On Woe32, each process has two copies of the +environment variables,
    +      one managed by the OS and one +managed by the C library. We set
    +      the value in both locations, so that +other software that looks in
    +      one place or the other is guaranteed +to see the value. Even if it's
    +      a bit slow. See also
    +      <https://article.gmane.org/gmane.comp.gnu.mingw.user/8272>
    +      <https://article.gmane.org/gmane.comp.gnu.mingw.user/8273>
    +      <https://www.cygwin.com/ml/cygwin/1999-04/msg00478.html> +*/
    +   if (!SetEnvironmentVariableA(name,value))
    +     return -1;
    + #endif
    + #if defined(HAVE_PUTENV)
    +   char* buffer = (char*)malloc(namelen+1+valuelen+1);
    +   if (!buffer)
    +     return -1; /* no need to set errno = +ENOMEM */
    +   memcpy(buffer,name,namelen);
    +   if (value != NULL) {
    +     buffer[namelen] = '=';
    +     memcpy(buffer+namelen+1,value,valuelen);
    +     buffer[namelen+1+valuelen] = 0;
    +   } else
    +     buffer[namelen] = 0;
    +   return putenv(buffer);
    + #elif defined(HAVE_SETENV)
    +   return setenv(name,value,1);
    + #else
    +   /* Uh oh, neither putenv() nor setenv() ... */
    +   return -1;
    + #endif
    + }
    +
    +
    +
  • +
+

Other

+

What does this mean: “'msgid' and 'msgstr' +entries do not both end +with '\n'â€

+It means that when the original string ends in a newline, your +translation must also end in a newline. And if the original string does +not end in a newline, then your translation should likewise not have a +newline at the end.
+

German umlauts are displayed like +“ge"andert†instead of “geändertâ€

+This symptom occurs when the LC_CTYPE +facet of the locale is not set; then gettext() doesn't know which +character set to use, and converts all messages to ASCII, as far as +possible.
+
+If the program is doing
+
+setlocale (LC_MESSAGES, "");
+
+
then change it to
+
+setlocale (LC_CTYPE, "");
+setlocale (LC_MESSAGES, "");
+

+or do both of these in a single call:
+
+setlocale (LC_ALL, "");
+

+If the program is already doing
+
+setlocale (LC_ALL, "");
+

+then the symptom can still occur if the user has not set LANG, but instead has set LC_MESSAGES to a valid locale +and has set LC_CTYPE to +nothing or an invalid locale. The fix for the user is then to set LANG instead of LC_MESSAGES.
+

The LANGUAGE +environment variable is ignored after I set LANG=en

+This is because “en†is a language name, but not a valid locale name. +The documentation says:
+
+In the LANGUAGE +environment variable, but not in the LANG environment variable, LL_CC combinations can be +abbreviated as LL to +denote the language's main dialect.
+Why is LANG=en not +allowed? Because LANG is +a setting for the entire locale, including monetary information, and +this depends on the country: en_GB, en_AU, en_ZA all have different +currencies.
+

I use accented characters in my +source code. How do I tell the +C/C++ compiler in which encoding it is (like xgettext's --from-code option)?

+Short answer: If you want your program to be useful to other people, +then don't use accented characters +(or other non-ASCII characters) in string literals in the source code. Instead, use +only ASCII for string literals, and use gettext() to retrieve their +display-ready form.
+
+Long explanation:
+The reason is that the ISO C standard specifies that the character set +at compilation time can be different from the character set at +execution time.
+The character encoding at compilation time is the one which determines +how the source files are interpreted and also how string literals are +stored in the compiled code. This character encoding is generally +unspecified; for recent versions of GCC, it depends on the LC_CTYPE +locale in effect during the compilation process.
+The character encoding at execution time is the one which determines +how standard functions like isprint(), +wcwidth() etc. work and +how strings written to standard output should be encoded. This +character encoding is specified by POSIX to depend on the LC_CTYPE +locale in effect when the program is executed; see also the description +in the documentation.
+Strings in the compiled code are not magically converted between the +time the program is compiled and the time it is run.
+
+Therefore what could you do to get accented characters to work?
+
+Can you ensure that the execution character set is the same as the +compilation character set? Even if your program is to be used only in a +single country, this is not realistically possible. For example, in +Germany there are currently three character encodings in use: UTF-8, +ISO-8859-15 and ISO-8859-1. Therefore you would have to explicitly +convert the accented strings from the compilation character set to the +execution character set at runtime, for example through iconv().
+
+Can you ensure that the compilation character set is the one in which +your source files are stored? This is not realistically possible +either: For compilers other than GCC, there is no way to specify the +compilation character set. So let's assume for a moment that everyone +uses GCC; then you will specify the LC_CTYPE or LC_ALL environment +variable in the Makefile. But for this you have to assume that everyone +has a locale in a given encoding. Be it UTF-8 or ISO-8859-1 - this is +not realistic. People often have no locale installed besides the one +they use.
+
+Use of wide strings L"..." +doesn't help solving the problem, because on systems like FreeBSD or +Solaris, the way how wide string literals are stored in compiled code +depends on the compilation  character set, just as it does for +narrow strings "...". +Moreover, wide strings have problems of their own.
+
+Use of ISO C 99 Unicode escapes "\uxxxx" +doesn't help either because these characters are converted to the +compilation character set at compile time; so again, since you can't +guarantee that the compilation character set is not ASCII, you're +risking compilation errors just as if the real character had been used +in the source instead of the Unicode escape.
+
+So, in summary, there is no way to make accented characters in string +literals work in C/C++.
+
+You might then wonder what xgettext's +--from-code option is good +for. The answer is
+
    +
  1. For the comments in C/C++ source code. The compiler ignores them.
    +
  2. +
  3. For other programming languages like Java, for which the compiler +converts all string literals to UTF-8.
  4. +
+
+
+
GNU gettext FAQ
+Bruno Haible <bruno@clisp.org>
+

Last modified: 6 June 2020 +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/autopoint.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/autopoint.1.html new file mode 100644 index 000000000..4b609ca24 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/autopoint.1.html @@ -0,0 +1,148 @@ + + + + + + + + +AUTOPOINT + + + + +

AUTOPOINT

+ +NAME
+SYNOPSIS
+DESCRIPTION
+OPTIONS
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

autopoint +- copies standard gettext infrastructure

+ +

SYNOPSIS + +

+ + + +

autopoint +[OPTION]...

+ +

DESCRIPTION + +

+ + +

Copies standard +gettext infrastructure files into a source package.

+ +

OPTIONS + +

+ + + + + + + + + +
+ + +

--help

+ + +

print this help and exit

+
+ + +

--version

+ +

print version information and +exit

+ +

-f, +--force

+ +

force overwriting of files that +already exist

+ +

-n, +--dry-run

+ +

print modifications but +don’t perform them

+ +

AUTHOR + +

+ + +

Written by +Bruno Haible

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 2002-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for autopoint is maintained as a +Texinfo manual. If the info and autopoint +programs are properly installed at your site, the +command

+ +

info +autopoint

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/bind_textdomain_codeset.3.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/bind_textdomain_codeset.3.html new file mode 100644 index 000000000..9369c06ee --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/bind_textdomain_codeset.3.html @@ -0,0 +1,158 @@ + + + + + + + + +BIND_TEXTDOMAIN_CODESET + + + + +

BIND_TEXTDOMAIN_CODESET

+ +NAME
+SYNOPSIS
+DESCRIPTION
+RETURN VALUE
+ERRORS
+BUGS
+SEE ALSO
+ +
+ + +

NAME + +

+ + + +

bind_textdomain_codeset +- set encoding of message translations

+ +

SYNOPSIS + +

+ + +

#include +<libintl.h>

+ +

char * +bind_textdomain_codeset (const char * +domainname,
+const char *
codeset);

+ +

DESCRIPTION + +

+ + +

The +bind_textdomain_codeset function sets the output +codeset for message catalogs for domain +domainname.

+ +

A message +domain is a set of translatable msgid messages. +Usually, every software package has its own message +domain.

+ +

By default, the +gettext family of functions returns translated +messages in the locale’s character encoding, which can +be retrieved as nl_langinfo(CODESET). The need for +calling bind_textdomain_codeset arises for programs +which store strings in a locale independent way (e.g. UTF-8) +and want to avoid an extra character set conversion on the +returned translated messages.

+ + +

domainname +must be a non-empty string.

+ +

If +codeset is not NULL, it must be a valid encoding name +which can be used for the iconv_open function. The +bind_textdomain_codeset function sets the output +codeset for message catalogs belonging to domain +domainname to codeset. The function makes +copies of the argument strings as needed.

+ +

If +codeset is NULL, the function returns the previously +set codeset for domain domainname. The default is +NULL, denoting the locale’s character encoding.

+ +

RETURN VALUE + +

+ + +

If successful, +the bind_textdomain_codeset function returns the +current codeset for domain domainname, after possibly +changing it. The resulting string is valid until the next +bind_textdomain_codeset call for the same +domainname and must not be modified or freed. If a +memory allocation failure occurs, it sets errno to +ENOMEM and returns NULL. If no codeset has been set +for domain domainname, it returns NULL.

+ +

ERRORS + +

+ + +

The following +error can occur, among others:

+ + + + + + + + +
+ + +

ENOMEM

+ + +

Not enough memory available.

+
+ +

BUGS + +

+ + +

The return type +ought to be const char *, but is char * to +avoid warnings in C code predating ANSI C.

+ +

SEE ALSO + +

+ + + +

gettext(3), +dgettext(3), dcgettext(3), ngettext(3), +dngettext(3), dcngettext(3), +textdomain(3), nl_langinfo(3), +iconv_open(3)

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/bindtextdomain.3.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/bindtextdomain.3.html new file mode 100644 index 000000000..622f2fdd6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/bindtextdomain.3.html @@ -0,0 +1,154 @@ + + + + + + + + +BINDTEXTDOMAIN + + + + +

BINDTEXTDOMAIN

+ +NAME
+SYNOPSIS
+DESCRIPTION
+RETURN VALUE
+ERRORS
+BUGS
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

bindtextdomain +- set directory containing message catalogs

+ +

SYNOPSIS + +

+ + +

#include +<libintl.h>

+ +

char * +bindtextdomain (const char * domainname, const +char * dirname);

+ +

DESCRIPTION + +

+ + +

The +bindtextdomain function sets the base directory of +the hierarchy containing message catalogs for a given +message domain.

+ +

A message +domain is a set of translatable msgid messages. +Usually, every software package has its own message domain. +The need for calling bindtextdomain arises because +packages are not always installed with the same prefix as +the <libintl.h> header and the libc/libintl +libraries.

+ +

Message +catalogs will be expected at the pathnames +dirname/locale/category/domainname.mo, +where locale is a locale name and category is +a locale facet such as LC_MESSAGES.

+ + +

domainname +must be a non-empty string.

+ +

If +dirname is not NULL, the base directory for message +catalogs belonging to domain domainname is set to +dirname. The function makes copies of the argument +strings as needed. If the program wishes to call the +chdir function, it is important that dirname +be an absolute pathname; otherwise it cannot be guaranteed +that the message catalogs will be found.

+ +

If +dirname is NULL, the function returns the previously +set base directory for domain domainname.

+ +

RETURN VALUE + +

+ + +

If successful, +the bindtextdomain function returns the current base +directory for domain domainname, after possibly +changing it. The resulting string is valid until the next +bindtextdomain call for the same domainname +and must not be modified or freed. If a memory allocation +failure occurs, it sets errno to ENOMEM and +returns NULL.

+ +

ERRORS + +

+ + +

The following +error can occur, among others:

+ + + + + + + + +
+ + +

ENOMEM

+ + +

Not enough memory available.

+
+ +

BUGS + +

+ + +

The return type +ought to be const char *, but is char * to +avoid warnings in C code predating ANSI C.

+ +

SEE ALSO + +

+ + + +

gettext(3), +dgettext(3), dcgettext(3), ngettext(3), +dngettext(3), dcngettext(3), +textdomain(3), realpath(3)

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/GNU_Gettext.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/GNU_Gettext.html new file mode 100644 index 000000000..ec0ec953c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/GNU_Gettext.html @@ -0,0 +1,8 @@ + + +GNU.Gettext Namespace

+ +GettextResourceManager
+GettextResourceSet
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/GNU_Gettext_GettextResourceManager.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/GNU_Gettext_GettextResourceManager.html new file mode 100644 index 000000000..e23756724 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/GNU_Gettext_GettextResourceManager.html @@ -0,0 +1,305 @@ + + +GNU.Gettext.GettextResourceManager Class + + +

GNU.Gettext.GettextResourceManager Class

+ +
+ + +
public class GettextResourceManager: System.Resources.ResourceManager
+
+ +

Base Types

+ +
+System.Resources.ResourceManager
+  GettextResourceManager

+ +

+ +

Library

+ +
+GNU.Gettext +
+ +

Summary

+ +
+ +Each instance of this class can be used to lookup translations for a +given resource name. For each CultureInfo, it performs the lookup +in several assemblies, from most specific over territory-neutral to +language-neutral. +
+ +

See Also

+ +
+GNU.Gettext Namespace +
+ +

Members

+ +
+

+ +GettextResourceManager Constructors

+ +GettextResourceManager(System.String) Constructor
+GettextResourceManager(System.String, System.Reflection.Assembly) Constructor
+

+ +GettextResourceManager Methods

+ +GettextResourceManager.GetPluralString(System.String, System.String, long, System.Globalization.CultureInfo) Method
+GettextResourceManager.GetPluralString(System.String, System.String, long) Method
+GettextResourceManager.GetString(System.String, System.Globalization.CultureInfo) Method
+GettextResourceManager.GetString(System.String) Method
+

+ +
+ +

GettextResourceManager(System.String) Constructor

+ +
+ + +
public GettextResourceManager(System.String baseName);
+
+ +

Summary

+ +
+ +Constructor. +
+ +

Parameters

+ +
+
+
baseName
+
the resource name, also the assembly base + name
+
+
+ +

See Also

+ +
+GNU.Gettext.GettextResourceManager Class, GNU.Gettext Namespace +
+ +
+ +

GettextResourceManager(System.String, System.Reflection.Assembly) Constructor

+ +
+ + +
public GettextResourceManager(System.String baseName, System.Reflection.Assembly assembly);
+
+ +

Summary

+ +
+ +Constructor. +
+ +

Parameters

+ +
+
+
baseName
+
the resource name, also the assembly base + name
+
+
+ +

See Also

+ +
+GNU.Gettext.GettextResourceManager Class, GNU.Gettext Namespace +
+ +
+ +

GettextResourceManager.GetPluralString(System.String, System.String, long, System.Globalization.CultureInfo) Method

+ +
+ + +
public virtual System.String GetPluralString(System.String msgid, System.String msgidPlural, long n, System.Globalization.CultureInfo culture);
+
+ +

Summary

+ +
+ +Returns the translation of msgid and +msgidPlural in a given culture, choosing the right +plural form depending on the number n. +
+ +

Parameters

+ +
+
+
msgid
+
the key string to be translated, an ASCII + string
+
msgidPlural
+
the English plural of msgid, + an ASCII string
+
n
+
the number, should be >= 0
+
+
+ +

Return Value

+ +
+the translation, or msgid or + msgidPlural if none is found +
+ +

See Also

+ +
+GNU.Gettext.GettextResourceManager Class, GNU.Gettext Namespace +
+ +
+ +

GettextResourceManager.GetPluralString(System.String, System.String, long) Method

+ +
+ + +
public virtual System.String GetPluralString(System.String msgid, System.String msgidPlural, long n);
+
+ +

Summary

+ +
+ +Returns the translation of msgid and +msgidPlural in the current culture, choosing the +right plural form depending on the number n. +
+ +

Parameters

+ +
+
+
msgid
+
the key string to be translated, an ASCII + string
+
msgidPlural
+
the English plural of msgid, + an ASCII string
+
n
+
the number, should be >= 0
+
+
+ +

Return Value

+ +
+the translation, or msgid or + msgidPlural if none is found +
+ +

See Also

+ +
+GNU.Gettext.GettextResourceManager Class, GNU.Gettext Namespace +
+ +
+ +

GettextResourceManager.GetString(System.String, System.Globalization.CultureInfo) Method

+ +
+ + +
public override System.String GetString(System.String msgid, System.Globalization.CultureInfo culture);
+
+ +

Summary

+ +
+ +Returns the translation of msgid in a given culture. +
+ +

Parameters

+ +
+
+
msgid
+
the key string to be translated, an ASCII + string
+
+
+ +

Return Value

+ +
+the translation of msgid, or + msgid if none is found +
+ +

See Also

+ +
+GNU.Gettext.GettextResourceManager Class, GNU.Gettext Namespace +
+ +
+ +

GettextResourceManager.GetString(System.String) Method

+ +
+ + +
public override System.String GetString(System.String msgid);
+
+ +

Summary

+ +
+ +Returns the translation of msgid in the current +culture. +
+ +

Parameters

+ +
+
+
msgid
+
the key string to be translated, an ASCII + string
+
+
+ +

Return Value

+ +
+the translation of msgid, or + msgid if none is found +
+ +

See Also

+ +
+GNU.Gettext.GettextResourceManager Class, GNU.Gettext Namespace +
+ + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/GNU_Gettext_GettextResourceSet.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/GNU_Gettext_GettextResourceSet.html new file mode 100644 index 000000000..64869c997 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/GNU_Gettext_GettextResourceSet.html @@ -0,0 +1,356 @@ + + +GNU.Gettext.GettextResourceSet Class + + +

GNU.Gettext.GettextResourceSet Class

+ +
+ + +
public class GettextResourceSet: System.Resources.ResourceSet
+
+ +

Base Types

+ +
+System.Resources.ResourceSet
+  GettextResourceSet

+ +

+ +

Library

+ +
+GNU.Gettext +
+ +

Summary

+ +
+ +Each instance of this class encapsulates a single PO file. +

+ + +This API of this class is not meant to be used directly; use +GettextResourceManager instead. +

+ +

+ +

See Also

+ +
+GNU.Gettext Namespace +
+ +

Members

+ +
+

+ +GettextResourceSet Constructors

+ +GettextResourceSet() Constructor
+GettextResourceSet(System.Resources.IResourceReader) Constructor
+GettextResourceSet(System.IO.Stream) Constructor
+GettextResourceSet(System.String) Constructor
+

+ +GettextResourceSet Methods

+ +GettextResourceSet.GetPluralString Method
+GettextResourceSet.GetString(System.String) Method
+GettextResourceSet.GetString(System.String, bool) Method
+GettextResourceSet.PluralEval Method
+

+ +GettextResourceSet Properties

+ +GettextResourceSet.Keys Property
+

+ +
+ +

GettextResourceSet() Constructor

+ +
+ + +
protected GettextResourceSet();
+
+ +

Summary

+ +
+ +Creates a new message catalog. When using this constructor, you +must override the ReadResources method, in order to initialize +the Table property. The message catalog will support plural +forms only if the ReadResources method installs values of type +String[] and if the PluralEval method is overridden. +
+ +

See Also

+ +
+GNU.Gettext.GettextResourceSet Class, GNU.Gettext Namespace +
+ +
+ +

GettextResourceSet(System.Resources.IResourceReader) Constructor

+ +
+ + +
public GettextResourceSet(System.Resources.IResourceReader reader);
+
+ +

Summary

+ +
+ +Creates a new message catalog, by reading the string/value pairs from +the given reader. The message catalog will support +plural forms only if the reader can produce values of type +String[] and if the PluralEval method is overridden. +
+ +

See Also

+ +
+GNU.Gettext.GettextResourceSet Class, GNU.Gettext Namespace +
+ +
+ +

GettextResourceSet(System.IO.Stream) Constructor

+ +
+ + +
public GettextResourceSet(System.IO.Stream stream);
+
+ +

Summary

+ +
+ +Creates a new message catalog, by reading the string/value pairs from +the given stream, which should have the format of +a .resources file. The message catalog will not support plural +forms. +
+ +

See Also

+ +
+GNU.Gettext.GettextResourceSet Class, GNU.Gettext Namespace +
+ +
+ +

GettextResourceSet(System.String) Constructor

+ +
+ + +
public GettextResourceSet(System.String fileName);
+
+ +

Summary

+ +
+ +Creates a new message catalog, by reading the string/value pairs from +the file with the given fileName. The file should +be in the format of a .resources file. The message catalog will +not support plural forms. +
+ +

See Also

+ +
+GNU.Gettext.GettextResourceSet Class, GNU.Gettext Namespace +
+ +
+ +

GettextResourceSet.GetPluralString Method

+ +
+ + +
public virtual System.String GetPluralString(System.String msgid, System.String msgidPlural, long n);
+
+ +

Summary

+ +
+ +Returns the translation of msgid and +msgidPlural, choosing the right plural form +depending on the number n. +
+ +

Parameters

+ +
+
+
msgid
+
the key string to be translated, an ASCII + string
+
msgidPlural
+
the English plural of msgid, + an ASCII string
+
n
+
the number, should be >= 0
+
+
+ +

Return Value

+ +
+the translation, or null if none is found +
+ +

See Also

+ +
+GNU.Gettext.GettextResourceSet Class, GNU.Gettext Namespace +
+ +
+ +

GettextResourceSet.GetString(System.String) Method

+ +
+ + +
public override System.String GetString(System.String msgid);
+
+ +

Summary

+ +
+ +Returns the translation of msgid. +
+ +

Parameters

+ +
+
+
msgid
+
the key string to be translated, an ASCII + string
+
+
+ +

Return Value

+ +
+the translation of msgid, or null if + none is found +
+ +

See Also

+ +
+GNU.Gettext.GettextResourceSet Class, GNU.Gettext Namespace +
+ +
+ +

GettextResourceSet.GetString(System.String, bool) Method

+ +
+ + +
public override System.String GetString(System.String msgid, bool ignoreCase);
+
+ +

Summary

+ +
+ +Returns the translation of msgid, with possibly +case-insensitive lookup. +
+ +

Parameters

+ +
+
+
msgid
+
the key string to be translated, an ASCII + string
+
+
+ +

Return Value

+ +
+the translation of msgid, or null if + none is found +
+ +

See Also

+ +
+GNU.Gettext.GettextResourceSet Class, GNU.Gettext Namespace +
+ +
+ +

GettextResourceSet.PluralEval Method

+ +
+ + +
protected virtual long PluralEval(long n);
+
+ +

Summary

+ +
+ +Returns the index of the plural form to be chosen for a given number. +The default implementation is the Germanic plural formula: +zero for n == 1, one for n != 1. +
+ +

See Also

+ +
+GNU.Gettext.GettextResourceSet Class, GNU.Gettext Namespace +
+ +
+ +

GettextResourceSet.Keys Property

+ +
+ + +
public virtual System.Collections.ICollection Keys { get; }
+
+ +

Summary

+ +
+ +Returns the keys of this resource set, i.e. the strings for which +GetObject() can return a non-null value. +
+ +

See Also

+ +
+GNU.Gettext.GettextResourceSet Class, GNU.Gettext Namespace +
+ + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/begin.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/begin.html new file mode 100644 index 000000000..a0917d614 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/begin.html @@ -0,0 +1,11 @@ + +- + +

-

+ +
+GNU.Gettext Namespace
+
+ + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/index.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/index.html new file mode 100644 index 000000000..96aa05a15 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/index.html @@ -0,0 +1,10 @@ + +- + + + + + + + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/namespaces.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/namespaces.html new file mode 100644 index 000000000..9ffd95e7a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/csharpdoc/namespaces.html @@ -0,0 +1,6 @@ + + +Namespaces

+GNU.Gettext
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/envsubst.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/envsubst.1.html new file mode 100644 index 000000000..8b191358f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/envsubst.1.html @@ -0,0 +1,142 @@ + + + + + + + + +ENVSUBST + + + + +

ENVSUBST

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

envsubst +- substitutes environment variables in shell format +strings

+ +

SYNOPSIS + +

+ + + +

envsubst +[OPTION] [SHELL-FORMAT]

+ +

DESCRIPTION + +

+ + +

Substitutes the +values of environment variables.

+ +

Operation +mode:
+-v
, --variables

+ +

output the variables occurring +in SHELL-FORMAT

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

In normal +operation mode, standard input is copied to standard output, +with references to environment variables of the form +$VARIABLE or ${VARIABLE} being replaced with the +corresponding values. If a SHELL-FORMAT is given, only +those environment variables that are referenced in +SHELL-FORMAT are substituted; otherwise all +environment variables references occurring in standard input +are substituted.

+ +

When +--variables is used, standard input is +ignored, and the output consists of the environment +variables that are referenced in SHELL-FORMAT, one per +line.

+ +

AUTHOR + +

+ + +

Written by +Bruno Haible.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 2003-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for envsubst is maintained as a Texinfo +manual. If the info and envsubst programs are +properly installed at your site, the command

+ +

info +envsubst

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/README b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/README new file mode 100644 index 000000000..1deb640c4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/README @@ -0,0 +1,88 @@ +This directory contains simple examples of the use of GNU gettext. +Each example is a simple "hello world" program with a very small message +catalog, written in a particular programming language for a particular +environment. + + Example Language GUI Environment + + hello-c C + hello-c-gnome C GNOME (obsolete) + hello-c-gnome3 C GNOME 3.10 or later + hello-c++ C++ + hello-c++20 C++ 20 + hello-c++-qt C++ Qt + hello-c++-kde C++ KDE + hello-c++-gnome C++ GNOME (obsolete) + hello-c++-wxwidgets C++ wxWidgets + hello-objc ObjectiveC + hello-objc-gnustep ObjectiveC GNUstep + hello-objc-gnome ObjectiveC GNOME (obsolete) + hello-sh Shell + hello-python Python + hello-clisp Lisp + hello-librep librep + hello-guile Scheme + hello-smalltalk Smalltalk + hello-java Java + hello-java-awt Java AWT + hello-java-swing Java Swing + hello-java-qtjambi Java Qt + hello-csharp C# + hello-csharp-forms C# Forms + hello-gawk awk + hello-pascal Pascal + hello-ycp YCP libyui + hello-tcl Tcl + hello-tcl-tk Tcl Tk + hello-perl Perl + hello-php PHP + +Before building an example, you need to + 1. Build and install the GNU gettext package, as described in the INSTALL + file. + 2. cd to the example and do + ./autogen.sh + 3. Then you can build the example as usual: + ./configure --prefix=/some/prefix + make + make install + and see it work by executing + /some/prefix/bin/hello + +The po/ directories of the examples use different binary catalog formats and +Makefile types: + + Example Binary catalog format Makefile type + + hello-c .gmo Makefile.in.in + hello-c-gnome .gmo Makefile.in.in + hello-c-gnome3 .gmo Makefile.in.in + hello-c++ .gmo Makefile.in.in + hello-c++20 .gmo Makefile.in.in + hello-c++-kde .gmo Makefile.in.in + hello-c++-gnome .gmo Makefile.in.in + hello-objc .gmo Makefile.in.in + hello-objc-gnome .gmo Makefile.in.in + hello-c++-wxwidgets .gmo Makefile.am + hello-sh .gmo Makefile.am + hello-python .gmo Makefile.am + hello-clisp .gmo Makefile.am + hello-librep .gmo Makefile.am + hello-guile .gmo Makefile.am + hello-smalltalk .gmo Makefile.am + hello-gawk .gmo Makefile.am + hello-pascal .gmo Makefile.am + hello-ycp .gmo Makefile.am + hello-perl .gmo Makefile.am + hello-php .gmo Makefile.am + hello-java .properties Makefile.am + hello-java-awt .properties Makefile.am + hello-java-swing .properties Makefile.am + hello-java-qtjambi .properties Makefile.am + hello-csharp .resources.dll Makefile.am + hello-csharp-forms .resources.dll Makefile.am + hello-tcl .msg Makefile.am + hello-tcl-tk .msg Makefile.am + hello-c++-qt .qm Makefile.am + hello-objc-gnustep .strings GNUmakefile + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/csharpcomp.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/csharpcomp.m4 new file mode 100644 index 000000000..d009dbf41 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/csharpcomp.m4 @@ -0,0 +1,60 @@ +# csharpcomp.m4 serial 9 +dnl Copyright (C) 2003-2005, 2007, 2009-2023 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Prerequisites of csharpcomp.sh. +# Checks for a C# compiler. +# Sets at most one of HAVE_MCS, HAVE_CSC. +# Sets HAVE_CSHARPCOMP to nonempty if csharpcomp.sh will work. +# Also sets CSHARPCOMPFLAGS. +AC_DEFUN([gt_CSHARPCOMP], +[ + AC_REQUIRE([gt_CSHARP_CHOICE]) + AC_MSG_CHECKING([for C[#] compiler]) + HAVE_CSHARPCOMP=1 + pushdef([AC_MSG_CHECKING],[:])dnl + pushdef([AC_CHECKING],[:])dnl + pushdef([AC_MSG_RESULT],[:])dnl + AC_CHECK_PROG([HAVE_MCS_IN_PATH], [mcs], [yes]) + AC_CHECK_PROG([HAVE_CSC_IN_PATH], [csc], [yes]) + popdef([AC_MSG_RESULT])dnl + popdef([AC_CHECKING])dnl + popdef([AC_MSG_CHECKING])dnl + for impl in "$CSHARP_CHOICE" mono sscli no; do + case "$impl" in + mono) + if test -n "$HAVE_MCS_IN_PATH" \ + && mcs --version >/dev/null 2>/dev/null \ + && mcs --version 2>/dev/null | grep Mono >/dev/null; then + HAVE_MCS=1 + ac_result="mcs" + break + fi + ;; + sscli) + if test -n "$HAVE_CSC_IN_PATH" \ + && csc -help >/dev/null 2>/dev/null \ + && { if csc -help 2>/dev/null | grep -i chicken > /dev/null; then false; else true; fi; }; then + HAVE_CSC=1 + ac_result="csc" + break + fi + ;; + no) + HAVE_CSHARPCOMP= + ac_result="no" + break + ;; + esac + done + AC_MSG_RESULT([$ac_result]) + AC_SUBST([HAVE_MCS]) + AC_SUBST([HAVE_CSC]) + dnl Provide a default for CSHARPCOMPFLAGS. + if test -z "${CSHARPCOMPFLAGS+set}"; then + CSHARPCOMPFLAGS="-O -g" + fi + AC_SUBST([CSHARPCOMPFLAGS]) +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/csharpexec-test.exe b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/csharpexec-test.exe new file mode 100644 index 000000000..bed37080c Binary files /dev/null and b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/csharpexec-test.exe differ diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/csharpexec.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/csharpexec.m4 new file mode 100644 index 000000000..3c0ac492e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/csharpexec.m4 @@ -0,0 +1,76 @@ +# csharpexec.m4 serial 8 +dnl Copyright (C) 2003-2005, 2009-2023 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Prerequisites of csharpexec.sh. +# Checks for a C# execution engine. +# gt_CSHARPEXEC or gt_CSHARPEXEC(testexecutable, its-directory) +# Sets at most one of HAVE_MONO, HAVE_CLIX. +# Sets HAVE_CSHARPEXEC to nonempty if csharpexec.sh will work. +AC_DEFUN([gt_CSHARPEXEC], +[ + AC_REQUIRE([gt_CSHARP_CHOICE]) + AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles + AC_MSG_CHECKING([for C[#] program execution engine]) + AC_EGREP_CPP([yes], [ +#if defined _WIN32 || defined __EMX__ || defined __DJGPP__ + yes +#endif +], MONO_PATH_SEPARATOR=';', MONO_PATH_SEPARATOR=':') + HAVE_CSHARPEXEC=1 + pushdef([AC_MSG_CHECKING],[:])dnl + pushdef([AC_CHECKING],[:])dnl + pushdef([AC_MSG_RESULT],[:])dnl + AC_CHECK_PROG([HAVE_MONO_IN_PATH], [mono], [yes]) + AC_CHECK_PROG([HAVE_CLIX_IN_PATH], [clix], [yes]) + popdef([AC_MSG_RESULT])dnl + popdef([AC_CHECKING])dnl + popdef([AC_MSG_CHECKING])dnl + for impl in "$CSHARP_CHOICE" mono no; do + case "$impl" in + mono) + if test -n "$HAVE_MONO_IN_PATH" \ + && mono --version >/dev/null 2>/dev/null \ + m4_if([$1], , , [&& mono $2/$1 >/dev/null 2>/dev/null]); then + HAVE_MONO=1 + ac_result="mono" + break + fi + ;; + sscli) + if test -n "$HAVE_CLIX_IN_PATH" \ + m4_if([$1], , , [&& clix $2/$1 >/dev/null 2>/dev/null]); then + HAVE_CLIX=1 + case $host_os in + cygwin* | mingw* | pw32*) + CLIX_PATH_VAR=PATH + ;; + darwin* | rhapsody*) + CLIX_PATH_VAR=DYLD_LIBRARY_PATH + ;; + *) + CLIX_PATH_VAR=LD_LIBRARY_PATH + ;; + esac + eval CLIX_PATH=\"\$CLIX_PATH_VAR\" + ac_result="clix" + break + fi + ;; + no) + HAVE_CSHARPEXEC= + ac_result="no" + break + ;; + esac + done + AC_MSG_RESULT([$ac_result]) + AC_SUBST([MONO_PATH]) + AC_SUBST([MONO_PATH_SEPARATOR]) + AC_SUBST([CLIX_PATH_VAR]) + AC_SUBST([CLIX_PATH]) + AC_SUBST([HAVE_MONO]) + AC_SUBST([HAVE_CLIX]) +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/javacomp.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/javacomp.m4 new file mode 100644 index 000000000..240f804ba --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/javacomp.m4 @@ -0,0 +1,493 @@ +# javacomp.m4 serial 26 +dnl Copyright (C) 2001-2003, 2006-2007, 2009-2023 Free Software Foundation, +dnl Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Prerequisites of javacomp.sh. +# gt_JAVACOMP([source-version], [target-version]) +# Sets HAVE_JAVACOMP to nonempty if javacomp.sh will allow Java source code +# according to source-version to be compiled to Java bytecode classes in the +# target-version format. +# +# source-version can be: support for +# 1.6 assert keyword (1.4), generic classes and methods (1.5) +# 1.7 switch(string) +# 1.8 lambdas +# 9 private interface methods +# 10 type inference for local variables +# 11 'var' in parameters of lambda expressions +# ... +# (For reference, see .) +# If source-version 1.3 or 1.4 or 1.5 is requested, it gets mapped to 1.6, for +# backward compatibility. (Currently the minimum Java and javac version we need +# to support is Java 1.6, since that's the default Java version on Solaris 10.) +# +# target-version can be: classfile version: +# 1.6 50.0 +# 1.7 51.0 +# 1.8 52.0 +# 9 53.0 +# 10 54.0 +# 11 55.0 +# ... ... +# The classfile version of a .class file can be determined through the "file" +# command. More portably, the classfile major version can be determined through +# "od -A n -t d1 -j 7 -N 1 classfile". +# If a target-version below 1.6 is requested, it gets mapped to 1.6, for +# backward compatibility. (Currently the minimum Java and javac version we need +# to support is Java 1.6, since that's the default Java version on Solaris 10.) +# +# target-version can also be omitted. In this case, the required target-version +# is determined from the found JVM (see macro gt_JAVAEXEC): +# target-version for JVM +# 1.6 JDK/JRE 6 +# 1.7 JDK/JRE 7 +# 1.8 JDK/JRE 8 +# 9 JDK/JRE 9 +# 10 JDK/JRE 10 +# 11 JDK/JRE 11 +# ... ... +# +# Specifying target-version is useful when building a library (.jar) that is +# useful outside the given package. Omitting target-version is useful when +# building an application. +# +# It is unreasonable to ask for a target-version < source-version, such as +# - target-version < 1.4 with source-version >= 1.4, or +# - target-version < 1.5 with source-version >= 1.5, or +# - target_version < 1.6 with source_version >= 1.6, or +# - target_version < 1.7 with source_version >= 1.7, or +# - target_version < 1.8 with source_version >= 1.8, or +# - target_version < 9 with source_version >= 9, or +# - target_version < 10 with source_version >= 10, or +# - target_version < 11 with source_version >= 11, or +# - ... +# because even Sun's/Oracle's javac doesn't support these combinations. +# +# It is redundant to ask for a target-version > source-version, since the +# smaller target-version = source-version will also always work and newer JVMs +# support the older target-versions too. + +AC_DEFUN([gt_JAVACOMP], +[ + m4_if([$2], [], [AC_REQUIRE([gt_JAVAEXEC])], []) + AC_EGREP_CPP([yes], [ +#if defined _WIN32 || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ + yes +#endif +], CLASSPATH_SEPARATOR=';', CLASSPATH_SEPARATOR=':') + source_version=$1 + test -n "$source_version" || { + AC_MSG_ERROR([missing source-version argument to gt_@&t@JAVACOMP]) + } + case "$source_version" in + 1.1 | 1.2 | 1.3 | 1.4 | 1.5) source_version='1.6' ;; + esac + m4_if([$2], [], + [if test -n "$HAVE_JAVAEXEC"; then + dnl Use $CONF_JAVA to determine the JVM's version. +changequote(,)dnl + cat > conftestver.java <"!=fYpYJmkb_ece_YnejiJpblmeji/!?!@)!A/!B!C"!._jicnbmnpbl"!3fYpYKgYidKSZfb_n"!3fYpYKgYidKUqmnbh"!$jon"!8QfYpYKejKTleinUnlbYhL"!.dbnTljkblnq"!EFQfYpYKgYidKUnleidLGQfYpYKgYidKUnleidL"!6fYpYKejKTleinUnlbYh"!)kleingi"!8FQfYpYKgYidKUnleidLGW!D!(!)!!!!!#!"!*!+!"!,!!!@!"!"!!!&Hu!"r!!!"!.!!!(!"!!!"!+!/!0!"!,!!!F!#!"!!!/s!#5$v!%t!&r!!!"!.!!!,!#!!!$!.!%!"!1!!!#!2' \ + | tr -d '\012\015' \ + | tr '!"#$%&()*+,./0123456789:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzI' '\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\046\050\051\052\056\057\073\074\076\103\106\114\116\117\120\123\124\126\133\141\142\143\144\145\146\147\151\152\154\155\156\157\160\162\163\164\165\166\171\261\262\266\267\270\272\276\312\376\055' \ + > conftestver.class + java_exec_version=`{ + unset JAVA_HOME + echo "$as_me:__oline__: CLASSPATH=.${CLASSPATH:+$CLASSPATH_SEPARATOR$CLASSPATH} $CONF_JAVA conftestver" >&AS_MESSAGE_LOG_FD + CLASSPATH=.${CLASSPATH:+$CLASSPATH_SEPARATOR$CLASSPATH} $CONF_JAVA conftestver 2>&AS_MESSAGE_LOG_FD + }` + case "$java_exec_version" in + null) + dnl JDK 1.1.X returns null. + java_exec_version=1.1 ;; + esac + case "$java_exec_version" in + 1.1 | 1.2 | 1.3 | 1.4 | 1.5) + AC_MSG_WARN([$CONF_JAVA is too old, cannot compile Java code for this old version any more]) + target_version=1.6 ;; +changequote(,)dnl + 1.6 | 1.7 | 1.8 | 9 | [1-9][0-9]) +changequote([,])dnl + dnl Here we could choose any target_version between $source_version + dnl and the $java_exec_version. (If it is too small, it will be + dnl incremented below until it works.) Since we documented above that + dnl it is determined from the JVM, we do that: + target_version="$java_exec_version" ;; + *) AC_MSG_WARN([unknown target-version $target_version, please update gt_@&t@JAVACOMP macro]) + target_version=1.6 ;; + esac + else + target_version="1.6" + fi + ], + [target_version=$2 + case "$target_version" in + 1.1 | 1.2 | 1.3 | 1.4 | 1.5) target_version='1.6' ;; + esac + ]) + case "$source_version" in +changequote(,)dnl + 1.6 | 1.7 | 1.8 | 9 | [1-9][0-9]) ;; +changequote([,])dnl + *) AC_MSG_ERROR([invalid source-version argument to gt_@&t@JAVACOMP: $source_version]) ;; + esac + case "$target_version" in +changequote(,)dnl + 1.6 | 1.7 | 1.8 | 9 | [1-9][0-9]) ;; +changequote([,])dnl + *) AC_MSG_ERROR([invalid target-version argument to gt_@&t@JAVACOMP: $target_version]) ;; + esac + # Function to output the classfile version of a file (8th byte) in decimal. + if od -A x < /dev/null >/dev/null 2>/dev/null; then + # Use POSIX od. + func_classfile_version () + { + od -A n -t d1 -j 7 -N 1 "[$]1" + } + else + # Use BSD hexdump. + func_classfile_version () + { + dd if="[$]1" bs=1 count=1 skip=7 2>/dev/null | hexdump -e '1/1 "%3d "' + echo + } + fi + AC_MSG_CHECKING([for Java compiler]) + dnl + dnl The support of Sun/Oracle javac for target-version and source-version: + dnl + dnl javac 1.6: -target 1.1 1.2 1.3 1.4 1.5 1.6 default: 1.6 + dnl -source 1.3 1.4 1.5 1.6 default: 1.5 + dnl -target 1.1/1.2/1.3 only possible with -source 1.3 + dnl -target 1.4 only possible with -source 1.3/1.4 + dnl -target 1.5 only possible with -source 1.3/1.4/1.5 or no -source + dnl + dnl javac 1.7: -target 1.1 1.2 1.3 1.4 1.5 1.6 1.7 default: 1.7 + dnl -source 1.3 1.4 1.5 1.6 1.7 default: 1.7 + dnl -target 1.1/1.2/1.3 only possible with -source 1.3 + dnl -target 1.4 only possible with -source 1.3/1.4 + dnl -target 1.5 only possible with -source 1.3/1.4/1.5 + dnl -target 1.6 only possible with -source 1.3/1.4/1.5/1.6 + dnl + dnl javac 1.8: -target 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 default: 1.8 + dnl -source 1.3 1.4 1.5 1.6 1.7 1.8 default: 1.8 + dnl -target 1.1/1.2/1.3 only possible with -source 1.3 + dnl -target 1.4 only possible with -source 1.3/1.4 + dnl -target 1.5 only possible with -source 1.3/1.4/1.5 + dnl -target 1.6 only possible with -source 1.3/1.4/1.5/1.6 + dnl -target 1.7 only possible with -source 1.3/1.4/1.5/1.6/1.7 + dnl + dnl javac 9: -target 1.6 1.7 1.8 9 default: 9 + dnl -source 1.6 1.7 1.8 9 default: 9 + dnl -target 1.6 only possible with -source 1.6 + dnl -target 1.7 only possible with -source 1.6/1.7 + dnl -target 1.8 only possible with -source 1.6/1.7/1.8 + dnl + dnl javac 10: -target 1.6 1.7 1.8 9 10 default: 10 + dnl -source 1.6 1.7 1.8 9 10 default: 10 + dnl -target 1.6 only possible with -source 1.6 + dnl -target 1.7 only possible with -source 1.6/1.7 + dnl -target 1.8 only possible with -source 1.6/1.7/1.8 + dnl -target 9 only possible with -source 1.6/1.7/1.8/9 + dnl + dnl and so on. + dnl This can be summarized in this table: + dnl + dnl javac classfile valid -source and obsolete -source + dnl version default version -target values and -target values + dnl ------- --------------- ----------------- ------------------ + dnl 1.6 50.0 1.2 .. 1.6 + dnl 1.7 51.0 1.2 .. 1.7 + dnl 1.8 52.0 1.3 .. 1.8 1.3 .. 1.5 + dnl 9 53.0 1.6 .. 9 1.6 + dnl 10 54.0 1.6 .. 10 1.6 + dnl 11 55.0 1.6 .. 11 1.6 + dnl 12 56.0 1.7 .. 12 1.7 + dnl 13 57.0 1.7 .. 13 1.7 + dnl 14 58.0 1.7 .. 14 1.7 + dnl 15 59.0 1.7 .. 15 1.7 + dnl 16 60.0 1.7 .. 16 1.7 + dnl 17 61.0 1.7 .. 17 1.7 + dnl 18 62.0 1.7 .. 18 1.7 + dnl 19 63.0 1.7 .. 19 1.7 + dnl 20 64.0 1.8 .. 20 1.8 + dnl + dnl The -source option value must be <= the -target option value. + dnl The minimal -source and -target option value produces an "is obsolete" + dnl warning (in javac 1.8 or newer). Additionally, if the -source option + dnl value is not the maximal possible one, i.e. not redundant, it produces a + dnl "bootstrap class path not set in conjunction with -source ..." warning + dnl (in javac 1.7 or newer). + dnl + dnl To get rid of these warnings, two options are available: + dnl * -nowarn. This option is supported since javac 1.6 at least. But + dnl it is overkill, because it would also silence warnings about the + dnl code being compiled. + dnl * -Xlint:-options. This option is supported since javac 1.6 at least. + dnl In javac 1.6 it is an undocumented no-op. + dnl We use -Xlint:-options and omit it only if we find that the compiler + dnl does not support it (which is unlikely). + dnl + dnl Canonicalize source_version and target_version, for easier arithmetic. + case "$source_version" in + 1.*) source_version=`echo "$source_version" | sed -e 's/^1\.//'` ;; + esac + case "$target_version" in + 1.*) target_version=`echo "$target_version" | sed -e 's/^1\.//'` ;; + esac + CONF_JAVAC= + HAVE_JAVAC_ENVVAR= + HAVE_JAVAC= + HAVE_JAVACOMP= + dnl Sanity check. + if expr $source_version '<=' $target_version >/dev/null; then + echo 'class conftest {}' > conftest.java + dnl If the user has set the JAVAC environment variable, use that, if it + dnl satisfies the constraints (possibly after adding -target and -source + dnl options). + if test -n "$JAVAC"; then + dnl Test whether $JAVAC is usable. + dnl At the same time, determine which option to use to inhibit warnings; + dnl see the discussion above. + nowarn_option=' -Xlint:-options' + if { rm -f conftest.class \ + && { echo "$as_me:__oline__: $JAVAC$nowarn_option -d . conftest.java" >&AS_MESSAGE_LOG_FD + $JAVAC$nowarn_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1 + } \ + && test -f conftest.class + } || { \ + nowarn_option= + rm -f conftest.class \ + && { echo "$as_me:__oline__: $JAVAC$nowarn_option -d . conftest.java" >&AS_MESSAGE_LOG_FD + $JAVAC$nowarn_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1 + } \ + && test -f conftest.class + }; then + compiler_cfversion=`func_classfile_version conftest.class` + compiler_target_version=`expr $compiler_cfversion - 44` + dnl It is hard to determine the compiler_source_version. This would + dnl require a list of code snippets that can be compiled only with a + dnl specific '-source' option and up, and this list would need to grow + dnl every 6 months. + dnl Also, $JAVAC may already include a '-source' option. + dnl Therefore, pass a '-source' option always. + source_option=' -source '`case "$source_version" in 6|7|8) echo 1. ;; esac`"$source_version" + dnl And pass a '-target' option as well, if needed. + dnl (All supported javac versions support both, see the table above.) + if expr $target_version = $compiler_target_version >/dev/null; then + target_option= + else + target_option=' -target '`case "$target_version" in 6|7|8) echo 1. ;; esac`"$target_version" + fi + if { echo "$as_me:__oline__: $JAVAC$nowarn_option$source_option$target_option -d . conftest.java" >&AS_MESSAGE_LOG_FD + $JAVAC$nowarn_option$source_option$target_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1 + } \ + && test -f conftest.class; then + dnl The compiler directly supports the desired source_version and + dnl target_version. Perfect. + CONF_JAVAC="$JAVAC$nowarn_option$source_option$target_option" + HAVE_JAVAC_ENVVAR=1 + HAVE_JAVACOMP=1 + else + dnl If the desired source_version or target_version were too large + dnl for the compiler, there's nothing else we can do. + compiler_version=`echo "$as_me:__oline__: $JAVAC -version | sed -e 1q" >&AS_MESSAGE_LOG_FD + $JAVAC -version | sed -e 1q` +changequote(,)dnl + compiler_version=`echo "$compiler_version" | sed -e 's/^[^0-9]*\([0-9][0-9.]*\).*/\1/'` +changequote([,])dnl + case "$compiler_version" in + 1.*) dnl Map 1.6.0_85 to 6, 1.8.0_151 to 8. + compiler_version=`echo "$compiler_version" | sed -e 's/^1\.//' -e 's/\..*//'` + ;; + *) dnl Map 9.0.4 to 9, 10.0.2 to 10, etc. + compiler_version=`echo "$compiler_version" | sed -e 's/\..*//'` + ;; + esac + if expr $source_version '<=' "$compiler_version" >/dev/null \ + && expr $target_version '<=' "$compiler_version" >/dev/null; then + dnl Increase $source_version and $compiler_version until the + dnl compiler accepts these values. This is necessary to make + dnl e.g. $source_version = 6 work with Java 12 or newer, or + dnl $source_version = 7 work with Java 20 or newer. + try_source_version="$source_version" + try_target_version="$target_version" + while true; do + dnl Invariant: $try_source_version <= $try_target_version. + if expr $try_source_version = $try_target_version >/dev/null; then + try_target_version=`expr $try_target_version + 1` + fi + try_source_version=`expr $try_source_version + 1` + expr $try_source_version '<=' $compiler_version >/dev/null || break + source_option=' -source '`case "$try_source_version" in 6|7|8) echo 1. ;; esac`"$try_source_version" + if expr $try_target_version = $compiler_target_version >/dev/null; then + target_option= + else + target_option=' -target '`case "$try_target_version" in 6|7|8) echo 1. ;; esac`"$try_target_version" + fi + if { echo "$as_me:__oline__: $JAVAC$nowarn_option$source_option$target_option -d . conftest.java" >&AS_MESSAGE_LOG_FD + $JAVAC$nowarn_option$source_option$target_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1 + } \ + && test -f conftest.class; then + dnl The compiler supports the try_source_version and + dnl try_target_version. It's better than nothing. + CONF_JAVAC="$JAVAC$nowarn_option$source_option$target_option" + HAVE_JAVAC_ENVVAR=1 + HAVE_JAVACOMP=1 + break + fi + done + fi + fi + fi + fi + if test -z "$HAVE_JAVACOMP"; then + pushdef([AC_MSG_CHECKING],[:])dnl + pushdef([AC_CHECKING],[:])dnl + pushdef([AC_MSG_RESULT],[:])dnl + AC_CHECK_PROG([HAVE_JAVAC_IN_PATH], [javac], [yes]) + popdef([AC_MSG_RESULT])dnl + popdef([AC_CHECKING])dnl + popdef([AC_MSG_CHECKING])dnl + if test -z "$HAVE_JAVACOMP" && test -n "$HAVE_JAVAC_IN_PATH"; then + dnl Test whether javac is usable. + dnl At the same time, determine which option to use to inhibit warnings; + dnl see the discussion above. + nowarn_option=' -Xlint:-options' + if { rm -f conftest.class \ + && { echo "$as_me:__oline__: javac$nowarn_option -d . conftest.java" >&AS_MESSAGE_LOG_FD + javac$nowarn_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1 + } \ + && test -f conftest.class + } || { \ + nowarn_option= + rm -f conftest.class \ + && { echo "$as_me:__oline__: javac$nowarn_option -d . conftest.java" >&AS_MESSAGE_LOG_FD + javac$nowarn_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1 + } \ + && test -f conftest.class + }; then + compiler_cfversion=`func_classfile_version conftest.class` + compiler_target_version=`expr $compiler_cfversion - 44` + dnl It is hard to determine the compiler_source_version. This would + dnl require a list of code snippets that can be compiled only with a + dnl specific '-source' option and up, and this list would need to grow + dnl every 6 months. + dnl Also, javac may point to a shell script that already includes a + dnl '-source' option. + dnl Therefore, pass a '-source' option always. + source_option=' -source '`case "$source_version" in 6|7|8) echo 1. ;; esac`"$source_version" + dnl And pass a '-target' option as well, if needed. + dnl (All supported javac versions support both, see the table above.) + if expr $target_version = $compiler_target_version >/dev/null; then + target_option= + else + target_option=' -target '`case "$target_version" in 6|7|8) echo 1. ;; esac`"$target_version" + fi + if { echo "$as_me:__oline__: javac$nowarn_option$source_option$target_option -d . conftest.java" >&AS_MESSAGE_LOG_FD + javac$nowarn_option$source_option$target_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1 + } \ + && test -f conftest.class; then + dnl The compiler directly supports the desired source_version and + dnl target_version. Perfect. + CONF_JAVAC="javac$nowarn_option$source_option$target_option" + HAVE_JAVAC=1 + HAVE_JAVACOMP=1 + else + dnl If the desired source_version or target_version were too large + dnl for the compiler, there's nothing else we can do. + compiler_version=`echo "$as_me:__oline__: javac -version | sed -e 1q" >&AS_MESSAGE_LOG_FD + javac -version | sed -e 1q` +changequote(,)dnl + compiler_version=`echo "$compiler_version" | sed -e 's/^[^0-9]*\([0-9][0-9.]*\).*/\1/'` +changequote([,])dnl + case "$compiler_version" in + 1.*) dnl Map 1.6.0_85 to 6, 1.8.0_151 to 8. + compiler_version=`echo "$compiler_version" | sed -e 's/^1\.//' -e 's/\..*//'` + ;; + *) dnl Map 9.0.4 to 9, 10.0.2 to 10, etc. + compiler_version=`echo "$compiler_version" | sed -e 's/\..*//'` + ;; + esac + if expr $source_version '<=' "$compiler_version" >/dev/null \ + && expr $target_version '<=' "$compiler_version" >/dev/null; then + dnl Increase $source_version and $compiler_version until the + dnl compiler accepts these values. This is necessary to make + dnl e.g. $source_version = 6 work with Java 12 or newer, or + dnl $source_version = 7 work with Java 20 or newer. + try_source_version="$source_version" + try_target_version="$target_version" + while true; do + dnl Invariant: $try_source_version <= $try_target_version. + if expr $try_source_version = $try_target_version >/dev/null; then + try_target_version=`expr $try_target_version + 1` + fi + try_source_version=`expr $try_source_version + 1` + expr $try_source_version '<=' $compiler_version >/dev/null || break + source_option=' -source '`case "$try_source_version" in 6|7|8) echo 1. ;; esac`"$try_source_version" + if expr $try_target_version = $compiler_target_version >/dev/null; then + target_option= + else + target_option=' -target '`case "$try_target_version" in 6|7|8) echo 1. ;; esac`"$try_target_version" + fi + if { echo "$as_me:__oline__: javac$nowarn_option$source_option$target_option -d . conftest.java" >&AS_MESSAGE_LOG_FD + javac$nowarn_option$source_option$target_option -d . conftest.java >&AS_MESSAGE_LOG_FD 2>&1 + } \ + && test -f conftest.class; then + dnl The compiler supports the try_source_version and + dnl try_target_version. It's better than nothing. + CONF_JAVAC="javac$nowarn_option$source_option$target_option" + HAVE_JAVAC=1 + HAVE_JAVACOMP=1 + break + fi + done + fi + fi + fi + fi + fi + rm -f conftest*.java conftest*.class + fi + if test -n "$HAVE_JAVACOMP"; then + ac_result="$CONF_JAVAC" + else + ac_result="no" + fi + AC_MSG_RESULT([$ac_result]) + AC_SUBST([CONF_JAVAC]) + AC_SUBST([CLASSPATH]) + AC_SUBST([CLASSPATH_SEPARATOR]) + AC_SUBST([HAVE_JAVAC_ENVVAR]) + AC_SUBST([HAVE_JAVAC]) +]) + +# Simulates gt_JAVACOMP when no Java support is desired. +AC_DEFUN([gt_JAVACOMP_DISABLED], +[ + CONF_JAVAC= + HAVE_JAVAC_ENVVAR= + HAVE_JAVAC= + AC_SUBST([CONF_JAVAC]) + AC_SUBST([HAVE_JAVAC_ENVVAR]) + AC_SUBST([HAVE_JAVAC]) +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/javaexec.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/javaexec.m4 new file mode 100644 index 000000000..ede843694 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/build-aux/javaexec.m4 @@ -0,0 +1,91 @@ +# javaexec.m4 serial 10 +dnl Copyright (C) 2001-2003, 2006, 2009-2023 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +# Prerequisites of javaexec.sh. +# gt_JAVAEXEC or gt_JAVAEXEC(testclass, its-directory) +# Sets HAVE_JAVAEXEC to nonempty if javaexec.sh will work. + +AC_DEFUN([gt_JAVAEXEC], +[ + AC_MSG_CHECKING([for Java virtual machine]) + AC_EGREP_CPP([yes], [ +#if defined _WIN32 || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ + yes +#endif +], CLASSPATH_SEPARATOR=';', CLASSPATH_SEPARATOR=':') + CONF_JAVA= + HAVE_JAVA_ENVVAR= + HAVE_JAVA= + HAVE_JRE= + HAVE_JAVAEXEC=1 + if test -n "$JAVA"; then + HAVE_JAVA_ENVVAR=1 + CONF_JAVA="$JAVA" + else + pushdef([AC_MSG_CHECKING],[:])dnl + pushdef([AC_CHECKING],[:])dnl + pushdef([AC_MSG_RESULT],[:])dnl + AC_CHECK_PROG([HAVE_JAVA_IN_PATH], [java], [yes]) + AC_CHECK_PROG([HAVE_JRE_IN_PATH], [jre], [yes]) + popdef([AC_MSG_RESULT])dnl + popdef([AC_CHECKING])dnl + popdef([AC_MSG_CHECKING])dnl + m4_if([$1], , , [ + save_CLASSPATH="$CLASSPATH" + CLASSPATH="$2"${CLASSPATH+"$CLASSPATH_SEPARATOR$CLASSPATH"} + ]) + export CLASSPATH + if test -n "$HAVE_JAVA_IN_PATH" \ + && java -version >/dev/null 2>/dev/null \ + m4_if([$1], , , [&& { + echo "$as_me:__oline__: java $1" >&AS_MESSAGE_LOG_FD + java $1 >&AS_MESSAGE_LOG_FD 2>&1 + }]); then + HAVE_JAVA=1 + CONF_JAVA="java" + else + if test -n "$HAVE_JRE_IN_PATH" \ + && (jre >/dev/null 2>/dev/null || test $? = 1) \ + m4_if([$1], , , [&& { + echo "$as_me:__oline__: jre $1" >&AS_MESSAGE_LOG_FD + jre $1 >&AS_MESSAGE_LOG_FD 2>&1 + }]); then + HAVE_JRE=1 + CONF_JAVA="jre" + else + HAVE_JAVAEXEC= + fi + fi + m4_if([$1], , , [ + CLASSPATH="$save_CLASSPATH" + ]) + fi + if test -n "$HAVE_JAVAEXEC"; then + ac_result="$CONF_JAVA" + else + ac_result="no" + fi + AC_MSG_RESULT([$ac_result]) + AC_SUBST([CONF_JAVA]) + AC_SUBST([CLASSPATH]) + AC_SUBST([CLASSPATH_SEPARATOR]) + AC_SUBST([HAVE_JAVA_ENVVAR]) + AC_SUBST([HAVE_JAVA]) + AC_SUBST([HAVE_JRE]) +]) + +# Simulates gt_JAVAEXEC when no Java support is desired. +AC_DEFUN([gt_JAVAEXEC_DISABLED], +[ + CONF_JAVA= + HAVE_JAVA_ENVVAR= + HAVE_JAVA= + HAVE_JRE= + AC_SUBST([CONF_JAVA]) + AC_SUBST([HAVE_JAVA_ENVVAR]) + AC_SUBST([HAVE_JAVA]) + AC_SUBST([HAVE_JRE]) +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/INSTALL new file mode 100644 index 000000000..45f18a1e1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/INSTALL @@ -0,0 +1,19 @@ +This example relies on: + - the GNOME libraries (libgnomeui, libgnome, libgnomesupport, libart_lgpl) + and their dependencies: imlib (libgdk_imlib), audiofile (libaudiofile), + esound (libesd), zlib (libz). + - the GTK libraries (libgtk, libgdk) + - the glib libraries (libglib, libgmodule) + - the X11 libraries + - the GTK / C++ bindings (libgtkmm, libgdkmm) + - the C++ signal/slot library (libsigc++) + - the C++ runtime libraries (libstdc++) + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/Makefile.am new file mode 100644 index 000000000..7eb62b4ba --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/Makefile.am @@ -0,0 +1,29 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign no-dependencies +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_PROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.cc + +# Define a C macro LOCALEDIR indicating where catalogs will be installed. +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ + +# Make sure the gnome.h include file is found. +AM_CPPFLAGS = $(GTKMM_CFLAGS) $(GNOME_INCLUDEDIR) + +# Link time dependencies. +LDADD = $(GTKMM_LIBS) $(GNOME_LIBDIR) $(GNOMEUI_LIBS) @LIBINTL@ + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/autoclean.sh new file mode 100755 index 000000000..9daa77ce0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/autoclean.sh @@ -0,0 +1,43 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by autopoint. +rm -f ABOUT-NLS +rm -f config.rpath +rm -f m4/gettext.m4 +rm -f m4/build-to-host.m4 +rm -f m4/host-cpu-c-abi.m4 +rm -f m4/iconv.m4 +rm -f m4/intlmacosx.m4 +rm -f m4/lib-ld.m4 +rm -f m4/lib-link.m4 +rm -f m4/lib-prefix.m4 +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/Makefile.in.in +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f config.guess +rm -f config.sub +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/autogen.sh new file mode 100755 index 000000000..7fc228379 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/autogen.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +autopoint -f # was: gettextize -f -c +rm po/Makevars.template +rm po/Rules-quot +rm po/boldquot.sed +rm po/en@boldquot.header +rm po/en@quot.header +rm po/insert-header.sin +rm po/quot.sed + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/configure.ac new file mode 100644 index 000000000..e254b69ce --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/configure.ac @@ -0,0 +1,24 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-c++-gnome], [0], , [hello-c++-gnome]) +AC_CONFIG_SRCDIR([hello.cc]) +AM_INIT_AUTOMAKE([1.11]) + +AC_PROG_CXX + +GNOME_INIT +GTKMM_CFLAGS=`gtkmm-config --cflags` +AC_SUBST([GTKMM_CFLAGS]) +GTKMM_LIBS=`gtkmm-config --libs` +AC_SUBST([GTKMM_LIBS]) + +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION([0.22]) + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile.in]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/hello.cc b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/hello.cc new file mode 100644 index 000000000..5c41ab303 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/hello.cc @@ -0,0 +1,92 @@ +/* Example for use of GNU gettext. + This file is in the public domain. + + Source code of the C++ program. */ + + +/* Get GNOME declarations. */ +#include +#include + +/* Get getpid() declaration. */ +#if defined _WIN32 && !defined __CYGWIN__ +/* native Windows API */ +# include +# define getpid _getpid +#else +/* POSIX API */ +# include +#endif + +static Gtk::Main *application; + +static gint +quit_callback (GdkEventAny*) +{ + application->quit (); +} + +int +main (int argc, char *argv[]) +{ + Gtk::Window *window; + Gtk::VBox *panel; + Gtk::Label *label1; + Gtk::Alignment *label1aligned; + Gtk::Label *label2; + Gtk::Alignment *label2aligned; + Gtk::Button *button; + Gtk::HButtonBox *buttonbar; + + /* Initializations. */ + + setlocale (LC_ALL, ""); + application = new Gtk::Main (argc, argv); + textdomain ("hello-c++-gnome"); + bindtextdomain ("hello-c++-gnome", LOCALEDIR); + + /* Create the GUI elements. */ + + window = new Gtk::Window (GTK_WINDOW_TOPLEVEL); + window->set_title ("Hello example"); + window->realize (); + window->delete_event.connect (SigC::slot (quit_callback)); + + label1 = new Gtk::Label (_("Hello, world!")); + + label1aligned = new Gtk::Alignment (0.0, 0.5, 0, 0); + label1aligned->add (*label1); + + label2 = new Gtk::Label (g_strdup_printf (_("This program is running as process number %d."), getpid ())); + + label2aligned = new Gtk::Alignment (0.0, 0.5, 0, 0); + label2aligned->add (*label2); + + button = new Gtk::Button ("OK"); + button->clicked.connect (Gtk::Main::quit.slot()); //slot (quit_callback)); + + buttonbar = new Gtk::HButtonBox (GTK_BUTTONBOX_END); + buttonbar->pack_start (*button); + + panel = new Gtk::VBox (false, GNOME_PAD_SMALL); + panel->pack_start (*label1aligned); + panel->pack_start (*label2aligned); + panel->pack_start (*buttonbar); + + window->add (*panel); + + /* Make the GUI elements visible. */ + + label1->show (); + label1aligned->show (); + label2->show (); + label2aligned->show (); + button->show (); + buttonbar->show (); + panel->show (); + window->show (); + + /* Start the event loop. */ + + application->run (); +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/Makefile.am new file mode 100644 index 000000000..0df649f71 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/Makefile.am @@ -0,0 +1,6 @@ +EXTRA_DIST = \ + gettext.m4 build-to-host.m4 host-cpu-c-abi.m4 \ + iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \ + nls.m4 po.m4 progtest.m4 \ + gnome.m4 gnome-gnorba-check.m4 gnome-orbit-check.m4 \ + gtk.m4 gtk--.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gnome-gnorba-check.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gnome-gnorba-check.m4 new file mode 100644 index 000000000..dbac0a6cf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gnome-gnorba-check.m4 @@ -0,0 +1,35 @@ +dnl +dnl GNOME_GNORBA_HOOK (script-if-gnorba-found, failflag) +dnl +dnl if failflag is "failure" it aborts if gnorba is not found. +dnl + +AC_DEFUN([GNOME_GNORBA_HOOK],[ + GNOME_ORBIT_HOOK([],$2) + AC_CACHE_CHECK([for gnorba libraries],gnome_cv_gnorba_found,[ + gnome_cv_gnorba_found=no + if test x$gnome_cv_orbit_found = xyes; then + GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" + GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" + if test -n "$GNORBA_LIBS"; then + gnome_cv_gnorba_found=yes + fi + fi + ]) + AM_CONDITIONAL(HAVE_GNORBA, test x$gnome_cv_gnorba_found = xyes) + if test x$gnome_cv_orbit_found = xyes; then + $1 + GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" + GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" + AC_SUBST(GNORBA_CFLAGS) + AC_SUBST(GNORBA_LIBS) + else + if test x$2 = xfailure; then + AC_MSG_ERROR(gnorba library not installed or installation problem) + fi + fi +]) + +AC_DEFUN([GNOME_GNORBA_CHECK], [ + GNOME_GNORBA_HOOK([],failure) +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gnome-orbit-check.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gnome-orbit-check.m4 new file mode 100644 index 000000000..54bf33aa4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gnome-orbit-check.m4 @@ -0,0 +1,33 @@ +dnl +dnl GNOME_ORBIT_HOOK (script-if-orbit-found, failflag) +dnl +dnl if failflag is "failure" it aborts if orbit is not found. +dnl + +AC_DEFUN([GNOME_ORBIT_HOOK],[ + AC_PATH_PROG(ORBIT_CONFIG,orbit-config,no) + AC_PATH_PROG(ORBIT_IDL,orbit-idl,no) + AC_CACHE_CHECK([for working ORBit environment],gnome_cv_orbit_found,[ + if test x$ORBIT_CONFIG = xno -o x$ORBIT_IDL = xno; then + gnome_cv_orbit_found=no + else + gnome_cv_orbit_found=yes + fi + ]) + AM_CONDITIONAL(HAVE_ORBIT, test x$gnome_cv_orbit_found = xyes) + if test x$gnome_cv_orbit_found = xyes; then + $1 + ORBIT_CFLAGS=`orbit-config --cflags client server` + ORBIT_LIBS=`orbit-config --use-service=name --libs client server` + AC_SUBST(ORBIT_CFLAGS) + AC_SUBST(ORBIT_LIBS) + else + if test x$2 = xfailure; then + AC_MSG_ERROR(ORBit not installed or installation problem) + fi + fi +]) + +AC_DEFUN([GNOME_ORBIT_CHECK], [ + GNOME_ORBIT_HOOK([],failure) +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gnome.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gnome.m4 new file mode 100644 index 000000000..659c22c49 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gnome.m4 @@ -0,0 +1,128 @@ +dnl +dnl GNOME_INIT_HOOK (script-if-gnome-enabled, [failflag], [additional-inits]) +dnl +dnl if failflag is "fail" then GNOME_INIT_HOOK will abort if gnomeConf.sh +dnl is not found. +dnl + +AC_DEFUN([GNOME_INIT_HOOK],[ + AC_SUBST(GNOME_LIBS) + AC_SUBST(GNOMEUI_LIBS) + AC_SUBST(GNOMEGNORBA_LIBS) + AC_SUBST(GTKXMHTML_LIBS) + AC_SUBST(ZVT_LIBS) + AC_SUBST(GNOME_LIBDIR) + AC_SUBST(GNOME_INCLUDEDIR) + + AC_ARG_WITH(gnome-includes, + [ --with-gnome-includes Specify location of GNOME headers],[ + CFLAGS="$CFLAGS -I$withval" + ]) + + AC_ARG_WITH(gnome-libs, + [ --with-gnome-libs Specify location of GNOME libs],[ + LDFLAGS="$LDFLAGS -L$withval" + gnome_prefix=$withval + ]) + + AC_ARG_WITH(gnome, + [ --with-gnome Specify prefix for GNOME files], + if test x$withval = xyes; then + want_gnome=yes + dnl Note that an empty true branch is not + dnl valid sh syntax. + ifelse([$1], [], :, [$1]) + else + if test "x$withval" = xno; then + want_gnome=no + else + want_gnome=yes + LDFLAGS="$LDFLAGS -L$withval/lib" + CFLAGS="$CFLAGS -I$withval/include" + gnome_prefix=$withval/lib + fi + fi, + want_gnome=yes) + + if test "x$want_gnome" = xyes; then + + AC_PATH_PROG(GNOME_CONFIG,gnome-config,no) + if test "$GNOME_CONFIG" = "no"; then + no_gnome_config="yes" + else + AC_MSG_CHECKING(if $GNOME_CONFIG works) + if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then + AC_MSG_RESULT(yes) + GNOME_GNORBA_HOOK([],$2) + GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome`" + GNOMEUI_LIBS="`$GNOME_CONFIG --libs-only-l gnomeui`" + GNOMEGNORBA_LIBS="`$GNOME_CONFIG --libs-only-l gnorba gnomeui`" + GTKXMHTML_LIBS="`$GNOME_CONFIG --libs-only-l gtkxmhtml`" + ZVT_LIBS="`$GNOME_CONFIG --libs-only-l zvt`" + GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`" + GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`" + $1 + else + AC_MSG_RESULT(no) + no_gnome_config="yes" + fi + fi + + if test x$exec_prefix = xNONE; then + if test x$prefix = xNONE; then + gnome_prefix=$ac_default_prefix/lib + else + gnome_prefix=$prefix/lib + fi + else + gnome_prefix=`eval echo \`echo $libdir\`` + fi + + if test "$no_gnome_config" = "yes"; then + AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix) + if test -f $gnome_prefix/gnomeConf.sh; then + AC_MSG_RESULT(found) + echo "loading gnome configuration from" \ + "$gnome_prefix/gnomeConf.sh" + . $gnome_prefix/gnomeConf.sh + $1 + else + AC_MSG_RESULT(not found) + if test x$2 = xfail; then + AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install) + fi + fi + fi + fi + + if test -n "$3"; then + n="$3" + for i in $n; do + AC_MSG_CHECKING(extra library \"$i\") + case $i in + applets) + AC_SUBST(GNOME_APPLETS_LIBS) + GNOME_APPLETS_LIBS=`$GNOME_CONFIG --libs-only-l applets` + AC_MSG_RESULT($GNOME_APPLETS_LIBS);; + docklets) + AC_SUBST(GNOME_DOCKLETS_LIBS) + GNOME_DOCKLETS_LIBS=`$GNOME_CONFIG --libs-only-l docklets` + AC_MSG_RESULT($GNOME_DOCKLETS_LIBS);; + capplet) + AC_SUBST(GNOME_CAPPLET_LIBS) + GNOME_CAPPLET_LIBS=`$GNOME_CONFIG --libs-only-l capplet` + AC_MSG_RESULT($GNOME_CAPPLET_LIBS);; + *) + AC_MSG_RESULT(unknown library) + esac + done + fi +]) + +dnl +dnl GNOME_INIT ([additional-inits]) +dnl + +AC_DEFUN([GNOME_INIT],[ + GNOME_INIT_HOOK([],fail,$1) +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gtk--.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gtk--.m4 new file mode 100644 index 000000000..896b64d64 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gtk--.m4 @@ -0,0 +1,195 @@ +# Configure paths for GTK-- +# Erik Andersen 30 May 1998 +# Modified by Tero Pulkkinen (added the compiler checks... I hope they work..) +# Modified by Thomas Langen 16 Jan 2000 (corrected CXXFLAGS) + +dnl Test for GTKMM, and define GTKMM_CFLAGS and GTKMM_LIBS +dnl to be used as follows: +dnl AM_PATH_GTKMM([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl +AC_DEFUN([AM_PATH_GTKMM], +[dnl +dnl Get the cflags and libraries from the gtkmm-config script +dnl +AC_ARG_WITH(gtkmm-prefix,[ --with-gtkmm-prefix=PREFIX + Prefix where GTK-- is installed (optional)], + gtkmm_config_prefix="$withval", gtkmm_config_prefix="") +AC_ARG_WITH(gtkmm-exec-prefix,[ --with-gtkmm-exec-prefix=PREFIX + Exec prefix where GTK-- is installed (optional)], + gtkmm_config_exec_prefix="$withval", gtkmm_config_exec_prefix="") +AC_ARG_ENABLE(gtkmmtest, [ --disable-gtkmmtest Do not try to compile and run a test GTK-- program], + , enable_gtkmmtest=yes) + + if test x$gtkmm_config_exec_prefix != x ; then + gtkmm_config_args="$gtkmm_config_args --exec-prefix=$gtkmm_config_exec_prefix" + if test x${GTKMM_CONFIG+set} != xset ; then + GTKMM_CONFIG=$gtkmm_config_exec_prefix/bin/gtkmm-config + fi + fi + if test x$gtkmm_config_prefix != x ; then + gtkmm_config_args="$gtkmm_config_args --prefix=$gtkmm_config_prefix" + if test x${GTKMM_CONFIG+set} != xset ; then + GTKMM_CONFIG=$gtkmm_config_prefix/bin/gtkmm-config + fi + fi + + AC_PATH_PROG(GTKMM_CONFIG, gtkmm-config, no) + min_gtkmm_version=ifelse([$1], ,0.10.0,$1) + + AC_MSG_CHECKING(for GTK-- - version >= $min_gtkmm_version) + AC_LANG_SAVE + no_gtkmm="" + if test "$GTKMM_CONFIG" = "no" ; then + no_gtkmm=yes + else + AC_LANG_CPLUSPLUS + + GTKMM_CFLAGS=`$GTKMM_CONFIG $gtkmm_config_args --cflags` + GTKMM_LIBS=`$GTKMM_CONFIG $gtkmm_config_args --libs` + gtkmm_config_major_version=`$GTKMM_CONFIG $gtkmm_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + gtkmm_config_minor_version=`$GTKMM_CONFIG $gtkmm_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + gtkmm_config_micro_version=`$GTKMM_CONFIG $gtkmm_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_gtkmmtest" = "xyes" ; then + ac_save_CXXFLAGS="$CXXFLAGS" + ac_save_LIBS="$LIBS" + CXXFLAGS="$CXXFLAGS $GTKMM_CFLAGS" + LIBS="$LIBS $GTKMM_LIBS" +dnl +dnl Now check if the installed GTK-- is sufficiently new. (Also sanity +dnl checks the results of gtkmm-config to some extent +dnl + rm -f conf.gtkmmtest + AC_TRY_RUN([ +#include +#include +#include + +int +main () +{ + int major, minor, micro; + char *tmp_version; + + system ("touch conf.gtkmmtest"); + + /* HP/UX 0 (%@#!) writes to sscanf strings */ + tmp_version = g_strdup("$min_gtkmm_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_gtkmm_version"); + exit(1); + } + + if ((gtkmm_major_version != $gtkmm_config_major_version) || + (gtkmm_minor_version != $gtkmm_config_minor_version) || + (gtkmm_micro_version != $gtkmm_config_micro_version)) + { + printf("\n*** 'gtkmm-config --version' returned %d.%d.%d, but GTK-- (%d.%d.%d)\n", + $gtkmm_config_major_version, $gtkmm_config_minor_version, $gtkmm_config_micro_version, + gtkmm_major_version, gtkmm_minor_version, gtkmm_micro_version); + printf ("*** was found! If gtkmm-config was correct, then it is best\n"); + printf ("*** to remove the old version of GTK--. You may also be able to fix the error\n"); + printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); + printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); + printf("*** required on your system.\n"); + printf("*** If gtkmm-config was wrong, set the environment variable GTKMM_CONFIG\n"); + printf("*** to point to the correct copy of gtkmm-config, and remove the file config.cache\n"); + printf("*** before re-running configure\n"); + } +/* GTK-- does not have the GTKMM_*_VERSION constants */ +/* + else if ((gtkmm_major_version != GTKMM_MAJOR_VERSION) || + (gtkmm_minor_version != GTKMM_MINOR_VERSION) || + (gtkmm_micro_version != GTKMM_MICRO_VERSION)) + { + printf("*** GTK-- header files (version %d.%d.%d) do not match\n", + GTKMM_MAJOR_VERSION, GTKMM_MINOR_VERSION, GTKMM_MICRO_VERSION); + printf("*** library (version %d.%d.%d)\n", + gtkmm_major_version, gtkmm_minor_version, gtkmm_micro_version); + } +*/ + else + { + if ((gtkmm_major_version > major) || + ((gtkmm_major_version == major) && (gtkmm_minor_version > minor)) || + ((gtkmm_major_version == major) && (gtkmm_minor_version == minor) && (gtkmm_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** An old version of GTK-- (%d.%d.%d) was found.\n", + gtkmm_major_version, gtkmm_minor_version, gtkmm_micro_version); + printf("*** You need a version of GTK-- newer than %d.%d.%d. The latest version of\n", + major, minor, micro); + printf("*** GTK-- is always available from ftp://ftp.gtk.org.\n"); + printf("***\n"); + printf("*** If you have already installed a sufficiently new version, this error\n"); + printf("*** probably means that the wrong copy of the gtkmm-config shell script is\n"); + printf("*** being found. The easiest way to fix this is to remove the old version\n"); + printf("*** of GTK--, but you can also set the GTKMM_CONFIG environment to point to the\n"); + printf("*** correct copy of gtkmm-config. (In this case, you will have to\n"); + printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); + printf("*** so that the correct libraries are found at run-time))\n"); + } + } + return 1; +} +],, no_gtkmm=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_gtkmm" = x ; then + AC_MSG_RESULT(yes) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$GTKMM_CONFIG" = "no" ; then + echo "*** The gtkmm-config script installed by GTK-- could not be found" + echo "*** If GTK-- was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the GTKMM_CONFIG environment variable to the" + echo "*** full path to gtkmm-config." + echo "*** The gtkmm-config script was not available in GTK-- versions" + echo "*** prior to 0.9.12. Perhaps you need to update your installed" + echo "*** version to 0.9.12 or later" + else + if test -f conf.gtkmmtest ; then + : + else + echo "*** Could not run GTK-- test program, checking why..." + CXXFLAGS="$CXXFLAGS $GTKMM_CFLAGS" + LIBS="$LIBS $GTKMM_LIBS" + AC_TRY_LINK([ +#include +#include +], [ return ((gtkmm_major_version) || (gtkmm_minor_version) || (gtkmm_micro_version)); ], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding GTK-- or finding the wrong" + echo "*** version of GTK--. If it is not finding GTK--, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means GTK-- was incorrectly installed" + echo "*** or that you have moved GTK-- since it was installed. In the latter case, you" + echo "*** may want to edit the gtkmm-config script: $GTKMM_CONFIG" ]) + CXXFLAGS="$ac_save_CXXFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + GTKMM_CFLAGS="" + GTKMM_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_LANG_RESTORE + AC_SUBST(GTKMM_CFLAGS) + AC_SUBST(GTKMM_LIBS) + rm -f conf.gtkmmtest +]) + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gtk.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gtk.m4 new file mode 100644 index 000000000..f2dd47219 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/m4/gtk.m4 @@ -0,0 +1,194 @@ +# Configure paths for GTK+ +# Owen Taylor 97-11-3 + +dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) +dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS +dnl +AC_DEFUN([AM_PATH_GTK], +[dnl +dnl Get the cflags and libraries from the gtk-config script +dnl +AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)], + gtk_config_prefix="$withval", gtk_config_prefix="") +AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)], + gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="") +AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program], + , enable_gtktest=yes) + + for module in . $4 + do + case "$module" in + gthread) + gtk_config_args="$gtk_config_args gthread" + ;; + esac + done + + if test x$gtk_config_exec_prefix != x ; then + gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix" + if test x${GTK_CONFIG+set} != xset ; then + GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config + fi + fi + if test x$gtk_config_prefix != x ; then + gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix" + if test x${GTK_CONFIG+set} != xset ; then + GTK_CONFIG=$gtk_config_prefix/bin/gtk-config + fi + fi + + AC_PATH_PROG(GTK_CONFIG, gtk-config, no) + min_gtk_version=ifelse([$1], ,0.99.7,$1) + AC_MSG_CHECKING(for GTK - version >= $min_gtk_version) + no_gtk="" + if test "$GTK_CONFIG" = "no" ; then + no_gtk=yes + else + GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags` + GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs` + gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + if test "x$enable_gtktest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GTK_CFLAGS" + LIBS="$GTK_LIBS $LIBS" +dnl +dnl Now check if the installed GTK is sufficiently new. (Also sanity +dnl checks the results of gtk-config to some extent +dnl + rm -f conf.gtktest + AC_TRY_RUN([ +#include +#include +#include + +int +main () +{ + int major, minor, micro; + char *tmp_version; + + system ("touch conf.gtktest"); + + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = g_strdup("$min_gtk_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_gtk_version"); + exit(1); + } + + if ((gtk_major_version != $gtk_config_major_version) || + (gtk_minor_version != $gtk_config_minor_version) || + (gtk_micro_version != $gtk_config_micro_version)) + { + printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", + $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, + gtk_major_version, gtk_minor_version, gtk_micro_version); + printf ("*** was found! If gtk-config was correct, then it is best\n"); + printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); + printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); + printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); + printf("*** required on your system.\n"); + printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n"); + printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n"); + printf("*** before re-running configure\n"); + } +#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION) + else if ((gtk_major_version != GTK_MAJOR_VERSION) || + (gtk_minor_version != GTK_MINOR_VERSION) || + (gtk_micro_version != GTK_MICRO_VERSION)) + { + printf("*** GTK+ header files (version %d.%d.%d) do not match\n", + GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); + printf("*** library (version %d.%d.%d)\n", + gtk_major_version, gtk_minor_version, gtk_micro_version); + } +#endif /* defined (GTK_MAJOR_VERSION) ... */ + else + { + if ((gtk_major_version > major) || + ((gtk_major_version == major) && (gtk_minor_version > minor)) || + ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", + gtk_major_version, gtk_minor_version, gtk_micro_version); + printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", + major, minor, micro); + printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); + printf("***\n"); + printf("*** If you have already installed a sufficiently new version, this error\n"); + printf("*** probably means that the wrong copy of the gtk-config shell script is\n"); + printf("*** being found. The easiest way to fix this is to remove the old version\n"); + printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n"); + printf("*** correct copy of gtk-config. (In this case, you will have to\n"); + printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); + printf("*** so that the correct libraries are found at run-time))\n"); + } + } + return 1; +} +],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_gtk" = x ; then + AC_MSG_RESULT(yes) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT(no) + if test "$GTK_CONFIG" = "no" ; then + echo "*** The gtk-config script installed by GTK could not be found" + echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the GTK_CONFIG environment variable to the" + echo "*** full path to gtk-config." + else + if test -f conf.gtktest ; then + : + else + echo "*** Could not run GTK test program, checking why..." + CFLAGS="$CFLAGS $GTK_CFLAGS" + LIBS="$LIBS $GTK_LIBS" + AC_TRY_LINK([ +#include +#include +], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], + [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding GTK or finding the wrong" + echo "*** version of GTK. If it is not finding GTK, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" + echo "***" + echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that" + echo "*** came with the system with the command" + echo "***" + echo "*** rpm --erase --nodeps gtk gtk-devel" ], + [ echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means GTK was incorrectly installed" + echo "*** or that you have moved GTK since it was installed. In the latter case, you" + echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ]) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + GTK_CFLAGS="" + GTK_LIBS="" + ifelse([$3], , :, [$3]) + fi + AC_SUBST(GTK_CFLAGS) + AC_SUBST(GTK_LIBS) + rm -f conf.gtktest +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/Makevars b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/Makevars new file mode 100644 index 000000000..5c94986f1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/Makevars @@ -0,0 +1,95 @@ +# Makefile variables for PO directory in any package using GNU gettext. +# +# Copyright (C) 2003-2019 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation gives +# unlimited permission to use, copy, distribute, and modify it. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = \ + --keyword=_ --flag=_:1:pass-c-format \ + --keyword=N_ --flag=N_:1:pass-c-format \ + --flag=g_log:3:c-format --flag=g_logv:3:c-format \ + --flag=g_error:1:c-format --flag=g_message:1:c-format \ + --flag=g_critical:1:c-format --flag=g_warning:1:c-format \ + --flag=g_print:1:c-format \ + --flag=g_printerr:1:c-format \ + --flag=g_strdup_printf:1:c-format --flag=g_strdup_vprintf:1:c-format \ + --flag=g_printf_string_upper_bound:1:c-format \ + --flag=g_snprintf:3:c-format --flag=g_vsnprintf:3:c-format \ + --flag=g_string_sprintf:2:c-format \ + --flag=g_string_sprintfa:2:c-format \ + --flag=g_scanner_error:2:c-format \ + --flag=g_scanner_warn:2:c-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = no + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = yes + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = yes diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/af.po new file mode 100644 index 000000000..e4a006d48 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ast.po new file mode 100644 index 000000000..190d25af7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-c++-gnome +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/bg.po new file mode 100644 index 000000000..6d8a42ee9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-c++-gnome package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-gnome 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ca.po new file mode 100644 index 000000000..67f50ae0b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-c++-gnome. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/cs.po new file mode 100644 index 000000000..feebe0f07 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/da.po new file mode 100644 index 000000000..c56ee0b29 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-c++-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/de.po new file mode 100644 index 000000000..aacbad270 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-c++-gnome. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/el.po new file mode 100644 index 000000000..a5763f9a8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-c++-gnome +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/eo.po new file mode 100644 index 000000000..375be65f9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/es.po new file mode 100644 index 000000000..128d909a7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/fi.po new file mode 100644 index 000000000..00d9e053f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/fr.po new file mode 100644 index 000000000..8ae31765b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ga.po new file mode 100644 index 000000000..5cb847e1d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-c++-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/gl.po new file mode 100644 index 000000000..21d067121 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-c++-gnome package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/hr.po new file mode 100644 index 000000000..1197eff30 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-c++-gnome to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/hu.po new file mode 100644 index 000000000..3280c8ce0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-c++-gnome. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/id.po new file mode 100644 index 000000000..377c8f1d2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-c++-gnome-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/it.po new file mode 100644 index 000000000..a14327c57 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-c++-gnome. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ja.po new file mode 100644 index 000000000..1a1b7e437 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-c++-gnome' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ka.po new file mode 100644 index 000000000..a83df83c6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ky.po new file mode 100644 index 000000000..d0b9b90fd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-c++-gnome' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/lv.po new file mode 100644 index 000000000..0efa6c3da --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-c++-gnome +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ms.po new file mode 100644 index 000000000..42bf7391b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ms.po @@ -0,0 +1,28 @@ +# hello-c++-gnome Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/mt.po new file mode 100644 index 000000000..635e80b92 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/mt.po @@ -0,0 +1,27 @@ +# hello-c++-gnome-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/nb.po new file mode 100644 index 000000000..78c27d2df --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-c++-gnome package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/nl.po new file mode 100644 index 000000000..c2dce3fae --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-c++-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/nn.po new file mode 100644 index 000000000..55794ae1b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-c++-gnome +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/pl.po new file mode 100644 index 000000000..5578f438f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-c++-gnome domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/pt.po new file mode 100644 index 000000000..cdc8bf8c3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-c++-gnome' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/pt_BR.po new file mode 100644 index 000000000..a2588ad3e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ro.po new file mode 100644 index 000000000..6c44220b7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-c++-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-c++-gnome 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-c++-gnome-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ru.po new file mode 100644 index 000000000..93f9b0bee --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-c++-gnome-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sk.po new file mode 100644 index 000000000..4021e701c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-c++-gnome package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sl.po new file mode 100644 index 000000000..b97c483c1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-c++-gnome-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sq.po new file mode 100644 index 000000000..cf1807660 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sr.po new file mode 100644 index 000000000..b9b25f923 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-c++-gnome. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sv.po new file mode 100644 index 000000000..78d0f2254 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-c++-gnome. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ta.po new file mode 100644 index 000000000..965b1d6b9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/tr.po new file mode 100644 index 000000000..45f5321a3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-c++-gnome. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/uk.po new file mode 100644 index 000000000..dc22477d0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-c++-gnome +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/vi.po new file mode 100644 index 000000000..1ab57f036 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/zh_CN.po new file mode 100644 index 000000000..59a5fed0c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-c++-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/zh_HK.po new file mode 100644 index 000000000..9d9eb2237 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-c++-gnome. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/zh_TW.po new file mode 100644 index 000000000..696f9d489 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-gnome/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-c++-gnome. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:55 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.cc:60 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/BUGS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/BUGS new file mode 100644 index 000000000..51e11724d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/BUGS @@ -0,0 +1,4 @@ +The language used by the program is not the one set by the environment variables +LANG, LC_MESSAGES, LC_ALL, but rather a setting set in the KDE control center. +The latter may be overridden through the KDE_LANG environment variable, whose +value should be a locale name. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/INSTALL new file mode 100644 index 000000000..adba43a28 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/INSTALL @@ -0,0 +1,13 @@ +This example relies on: + - KDE (libkdeui, libkdecore) and its dependencies + - Qt (libqt) and its dependencies: OpenGL (libGL), libpng, zlib (libz) + - the C++ runtime libraries (libstdc++) + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/Makefile.am new file mode 100644 index 000000000..12880b38e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/Makefile.am @@ -0,0 +1,56 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign no-dependencies +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_PROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.cc hellowindow.cc + +# Use 'moc' for QObject subclasses. +METASOURCES = AUTO + +# Define a C macro LOCALEDIR indicating where catalogs will be installed. +DEFS = -DPREFIX=\"$(prefix)\" @DEFS@ + +# Make sure the KDE, Qt, X include file is found. +AM_CPPFLAGS = $(KDE_INCLUDES) $(QT_INCLUDES) $(X_INCLUDES) + +# CXXFLAGS += $(QT_CXXFLAGS) $(PTHREAD_CFLAGS) + +# Link time dependencies. +LDADD = $(KDE_LDFLAGS) $(QT_LDFLAGS) +LIBS += $(LIB_KDEUI) $(LIB_KDECORE) $(LIB_QT) + +# Generic KDE build mechanism. + +$(top_srcdir)/configure.in: configure.in.in $(top_srcdir)/subdirs + cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in ; + +$(top_srcdir)/subdirs: + cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs + +$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in + @cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in > acinclude.m4 + +MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 configure.files + +package-messages: + $(MAKE) -f admin/Makefile.common package-messages + $(MAKE) -C po merge + +dist-hook: + cd $(top_distdir) && perl admin/am_edit -padmin + cd $(top_distdir) && $(MAKE) -f admin/Makefile.common subdirs + +# Additional files to be distributed. +EXTRA_DIST = admin/config.rpath autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/ChangeLog b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/ChangeLog new file mode 100644 index 000000000..2599e4385 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/ChangeLog @@ -0,0 +1,761 @@ +2002-10-03 Stephan Kulow + + * made config.h.bot obsolete + +2002-04-26 Stephan Kulow + + * acinclude.m4.in removed bogus message + +2001-11-07 Walter Tasin + + * now #MIN_CONFIG tag takes parameters for KDE_USE_QT, too. + e.g. #MIN_CONFIG(2.2) for qt 2.2 usage + +2000-11-30 David Faure + + * acinclude.m4.in: Added kde_moduledir which points to $prefix/lib/kde2/ + +2000-07-24 Alex Zepeda + + * acinclude.m4.in: Remove the test for malloc.h + +2000-04-05 Michael Matz + + * config.pl : added kludge for compiling regexp's even if + perl < 5.005 is installed + * conf.change.pl : added support for autoconf 2.14.1 + +2000-03-27 David Faure + + * acinclude.m4.in, Makefile.common: changed inst-apps semantics + If present, only the subdirs it lists will be configured and compiled. + If absent, then subdirs is used (and inst-apps isn't generated anymore) + +2000-03-22 David Faure + + * am_edit: Added support for KDE_ICON = AUTO + +2000-03-18 David Faure + + * Makefile.common: Rewrote the list-of-Makefiles generation to make it + simpler and nicer, using create_makefiles' way of doing it. + Added support for COMPILE_LAST and COMPILE_FIRST in toplevel Makefile.am + +2000-01-05 David Faure + + * Makefile.common: hacked around autoconf bug (setting INSTALL to ".." + when calling a subconfigure and INSTALL is already set). + +1999-12-15 Waldo Bastian + + * acinclude.m4.in: Test whether Qt compiles AND LINKS without flags. + +1999-06-24 Stephan Kulow + + * am_edit: generate correct Makefile entries for kde-i18n toplevel directories + * am_edit: + +1999-06-14 Stephan Kulow + + * am_edit: remove idl generated files on make clean + +1999-06-09 Stephan Kulow + + * am_edit: skipping programs with variables in sources for final + +1999-06-07 Stephan Kulow + + * am_edit: added support for idl files + +1999-06-02 Stephan Kulow + + * Makefile.common: preserve comments in .pot files to make it + possible for programmers and translators to comment them + +1999-06-02 Simon Hausmann + + * acinclude.m4.in: added kde_servicetypesdir + +1999-06-02 David Faure + + * acinclude.m4.in: removed LIB_KFM and LIB_KDEUTIL aliases + +1999-05-28 Simon Hausmann + + * acinclude.m4.in: added kde_servicesdir + +1999-05-27 Stephan Kulow + + * am_edit: lots of changes for better support of --enable-final + +1999-05-22 Stephan Kulow + + * acinclude.m4.in: added support for --with-dmalloc + +1999-05-19 Stephan Kulow + + * acinclude.m4.in: added support for --enable-final + + * am_edit: added support for --enable-final + +1999-05-06 Stephan Kulow + + * acinclude.m4.in: change the meaning of --disable-debug + +1999-05-04 Helge Deller + + * acinclude.m4.in: the test for the X-includes/directories failed, + when compile & link work without special directories (as on HP-UX). + +1999-04-20 Stephan Kulow + + * am_edit: adding DESTDIR replacement for rm and uninstall-local + too. Seems very useless, but makes testing for uninstall easier + +1999-04-01 David Faure + + * acinclude.m4.in: Added -lkfile to $(LIB_KIO) + +1999-03-30 David Faure + + * acinclude.m4.in: Added AC_CHECK_KDEMAXPATHLEN, which defines KDEMAXPATHLEN. + +1999-03-29 David Faure + + * acinclude.m4.in: added LIB_X11 to XPMLIB and GLLIB, because + on SCO, they need it _after_ themselves. + +1999-03-28 David Faure + + * acinclude.m4.in: added LIB_KFM to LIB_KAB alias + +1999-03-26 David Faure + + * acinclude.m4.in: made LIB_KFILE use LIB_KIO instead of LIB_KFM + added LIB_KFORMULA + +1999-03-20 Stephan Kulow + + * acinclude.m4.in: check for libXext - for Russel :) + +1999-03-16 Stephan Kulow + + * acinclud3.m4.in: extend the MICO test with a list of possible + places where to find CORBA.h + +1999-03-15 Stephan Kulow + + * acinclude.m4.in: move $QTINC and $QTLIB in search path + +1999-03-14 Stephan Kulow + + * am_edit: install-root is obsolute. Use DESTDIR always + +1999-03-03 Stephan Kulow + + * acinclude.m4.in: fixing a bug, that $QTDIR was taken before --with-qt* + * acinclude.m4.in: added KDE_USE_QT, that you can choose if to + use QT 2.0 or KDE 1.0 + + * Makefile.common: added target package-merge + + * am_edit: many fixes to the POFILES handeling of am_edit + +1999-03-02 Stephan Kulow + + * acinclude.m4.in: first look at libjpeg6b (from kdesupport) then + for libjpeg + + * config.*, libtool.*: update to the latest FSF tools + +1999-02-23 Stephan Kulow + + * acinclude.m4.in: error when Sparc CC is used. Better use it in + configure and tell him the story then letting him find it while + compiling + + * acinclude.m4.in: adding KDE_CHECK_EXTRA_LIBS to all possible tests, + so that --with-extra-includes is used when needed. + + * acinclude.m4.in: configure looks for giflib30, so it should say so + + * acinclude.m4.in: don't overwrite x include parameters. Patch by + Ari Lemmke (bug report 741) + +1999-02-20 Stephan Kulow + + * acinclude.m4.in: fixing KDE_CHECK_PATHS for rechecking. In case + of defaults (kdelibs) configure didn't cache the results + +1999-02-18 David Faure + + * acinclude.m4.in: added AC_CHECK_S_ISSOCK, to fix #706. + +1999-02-17 David Faure + + * acinclude.m4.in: added AC_CHECK_RANDOM, just like + AC_CHECK_USLEEP, to enable the fake if necessary. + +1999-02-13 Kurt Granroth + + * acinclude.m4.in: look for QT-2.0 + +1999-02-05 Stephan Kulow + + * acinclude.m4.in: in macro KDE_FIND_PATH treat user given dirs + and $PATH dirs the same. Added seperate test for to find binary + ($5) to replace findperl + +1999-01-28 Stephan Kulow + + * automoc: added patch by jbb to be a little bit more precise about + the number of sourcefiles that include the moc file if it's != 1. + Besides that automoc will fail with exit code, so the Makefile.cvs + process does stop in case a problem accoured. + + * automoc: don't hardcode header suffix, but allow *.h, *.hh and *.H + +1999-01-27 Stephan Kulow + + * acinclude.m4.in: try qobjcoll.h and qapplication.h before saying + OK to qt headers. (I could kill SuSE for splitting into qt-dev + and qt-compat) + +1991-01-23 Stephan Kulow + + * automoc: added fixes by JB + +1999-01-21 Stephan Kulow + + * automoc: added --help and --path (for use in dist-hook) + +1999-01-20 Alex Zepeda + + * ltconfig: added entries for FreeBSD 4.x + +1999-01-19 Stephan Kulow + + * automoc: added a distclean-metasources target which deletes all + moc files and let distclean depend on it + +1999-01-18 Stephan Kulow + + * automoc: several fixes (ignore comment lines + join lines + with \ ) + + * automoc: support META_INCLUDES in case the header files are + not in the same dir as the sources. + +1999-01-17 Stephan Kulow + + * automoc: several fixes. + +1999-01-16 Stephan Kulow + + * automoc: added support for included MOC files. + + * acinclude.m4.in: use srcdir for the subdirs stuff as well + + * automoc: added better command line parsing and some preparation + for handling "normal" moc files + + * acinclude.m4.in: added aliases for libkio and libkdeutil + +1999-01-15 Harri Porten + + * automoc: Carved in stone syntax for Makefile.in: + {program}_METASOURCES = USE_AUTOMOC [{suffix}] + +1999-01-15 Stephan Kulow + + * Makefile.common: set top_srcdir to . + +1999-01-14 Stephan Kulow + + * acinclude.m4.in: don't use config.h.bot any longer + +1999-01-08 Stephan Kulow + + * acinclude.m4.in: added KDE_CHECK_NEWLIBS + + * acinclude.m4.in: test for Qt even if both --with-qt-headers and + --with-qt-libraries are given. They may be wrong. + +1999-01-06 Stephan Kulow + + * acinclude.m4.in: change the MOC test so it can be used for other + tools as well + +1998-12-28 Stephan Kulow + + * acinclude.m4.in: look for QT-1.42 since kpanel needs it + +1998-12-27 Stephan Kulow + + * acinclude.m4.in: added /usr/lib for libpython test + + * acinclude.m4.in: take my email address out of it and added a + reference to www.kde.org/faq + + * acinclude.m4.in: use Qt >= 1.4 + + * acinclude.m4.in: added KDE_CHECK_NAMESPACES + +1998-12-18 Stephan Kulow + + * acinclude.m4.in: test for directories to exist before saying yes + to compilation :) + +1998-12-14 Stephan Kulow + + * acinclude.m4.in: added CPLUSPLUS for the kimgio test. It's + only important for shaman right now, but at least there it is :) + +1998-12-12 Stephan Kulow + + * Makefile.cvs: added common Makefile.cvs + + * acinclude.m4.in: Thomas.Schwarz@pro-sieben.de reported a very ugly + bug in AC_PROG_CXXCPP, so I added my own version + + * acinclude.m4.in: added KDE_CREATE_SUBDIRS_LIST to simplify + most toplevel configures + +1998-12-11 Stephan Kulow + + * acinclude.m4.in: added call to AC_PROG_CXXCPP. Not really sure why + it never caused problems + + * acinclude.m4.in: moved LIBTIFF alias + + * acinclude.m4.in: only test for the existance of libkimgio if the + user wants to. For 99% of the applications it doesn't matter if + configure can find libkimgio :) + +1998-12-10 Stephan Kulow + + * acinclude.m4.in: some changes to the python check to handle $LIBDL + +1998-12-09 Stephan Kulow + + * acinclude.m4.in: make Alex's tiff test a real one + + * acinclude.m4.in: fix the LIB_TIFF alias to really expand + +1998-12-08 Alex Zepeda + + * acinclude.m4.in: Fix tiff test to use libtiff34 if it exists. + This is what the FreeBSD port installs to for whatever reason. + + * acinclude.m4.in: s/kde/KDE/ (at least in some of the + descriptions, obviously no variable names were touched. + +1998-12-08 Stephan Kulow + + * acinclude.m4.in: moved the LIB_QT alias to the Qt check + + * acinclude.m4.in: unset KDEDIR before running conftest + + * acinclude.m4.in: fixed mean typo + + * acinclude.m4.in: added the copyright header for the gettext + tests, so that people know we're legal ;) + + * acinclude.m4.in: set language to C++ before testing QIMGIO + +1998-12-07 Alex Zepeda + + * acinclude.m4.in: Fix PNG test to use correct ANSI C code, and + not trip up gcc. + +1998-12-07 Stephan Kulow + + * acinclude.m4.in: don't hardcode -ldl + + * acinclude.m4.in: move the LIB_X11 alias to the X test to make it + useful for kdesupport as well + + * acinclude.m4.in: give the word CHECK_KIMGIO a meaning in really + checking for it + + * acinclude.m4.in: simple fix to prevent kimgio test from compiling + KDE application in kdelibs + +1998-12-05 Stephan Kulow + + * acinclude.m4.in: let KDE_CHECK_KIMGIO depend on AC_PATH_KDE, + otherwise most tests fail. It didn't mean anything to 90% of the + packages since they test for KDE before kimgio, but for shaman + it does + + * ltconfig: the real fix for the Solaris && gcc problem. + Thanks Kurt for reporting it and Alexandre for fixing it :) + +1998-12-04 Stephan Kulow + + * libtool.*: update again + + * acinclude.m4.in: changed the function to test for libnsl to + inet_ntoa since UnixWare 7's version did not have gethostbyname, + but needs libnsl + +1998-12-02 Stephan Kulow + + * acinclude.m4.in: fixed the MOC test (again) to use the PATH variable + correctly (with the correct seperator) + + * config.guess: update from the soon to be released autoconf-2.13 + +1998-12-01 Stephan Kulow + + * acinclude.m4.in: fixes for the MOC test. Use PATH now when found + +1998-11-30 Stephan Kulow + + * acinclude.m4.in: extended the MOC test. It checks now for the + first line of the output of "moc --help" and looks for Qt in it. + +1998-11-27 Stephan Kulow + + * ltconfig: another libtool update. Fixes an ugly bug on Solaris, + when GNU ld is in path before Solaris ld, but gcc uses the later + +1998-11-26 Stephan Kulow + + * acinclude.m4.in: made the Qt test more advance to check for qt + 1.41 - I still need to make it better, but there shouldn't be too + many qt releases in a row, would there? ;) + + * ltconfig: libtool update with better BSD/OS support + +1998-11-22 Stephan Kulow + + * ltconfig: cool - libtool uses g++ now to link libraries on Solaris. + This means, static objects become usuable on that plattforms (some + others as well). + +1998-11-20 Stephan Kulow + + * ltmain.sh: updated libtool from their CVS - fixes bugs we haven't + found and adds some more features, that we do not need ;-) + +1998-11-19 David Faure + + * acinclude.m4.in: added AC_CHECK_UTMP_FILE, taken from kdebase + +1998-11-16 Harri Porten + + * automoc: take care of "ar" object files, too. + +1998-11-16 Stephan Kulow + + * libtool.m4.in: revised my --silent patch. The solution + Alexandre suggested is much better. + +1998-11-15 Stephan Kulow + + * ltconfig.in: done some tweakings to support -export-dynamic + with egcs + + * config.sub: wow - BeOS support :) + +1998-11-14 Stephan Kulow + + * acinclude.m4.in: don't use rpath for test program, if rpath is + disabled for applications + + * ltconfig: patched libtool to make it silent without making + ltconfig silent + + * acinclude.m4.in: make libtool silent again + + * libtool.m4.in: update to libtool-981114 (untested stuff, but + we have to test it to make it tested - sounds that logical? :-) + + * libtool.m4.in: moved the self stricked libtool tests to "our" + file. + + * acinclude.m4.in: moved ChangeLog of kdebase which I used to + maintain acinclude.m4.in logs to kde-common/admin. Hopefully I + will maintain it more often from now on :) + +1998-07-27 Stephan Kulow + + * acinclude.m4.in: fixed some things in the MOC test + + * acinclude.m4.in: fixed this damn msgfmt test + +1998-06-02 Stephan Kulow + + * acinclude.m4.in: ignore msgfmt, if not GNU gettext + +1998-05-28 Stephan Kulow + + * acinclude.m4.in: fixed KDE_CHECK_STL. Checks for HP and SGI type + + * acinclude.m4.in: embraced every variable with "" to make + it consistent + + * acinclude.m4.in: various fixes for the koffice checks + (mico, ministl and python) + +1998-05-16 Stephan Kulow + + * acinclude.m4.in: don't use KDE_CHECK_QT_DIRECT, when + --with-qt-libs are given + +1998-04-21 Stephan Kulow + + * acinclude.m4.in: cool, I found the trick to suppress the ls + errors + +1998-04-20 Stephan Kulow + + * acinclude.m4.in: rewrote the qt checking test, since it + didn't work under FreeBSD, since it relied on the .so link. + The new version is a little bit buggy, but I need some testing + to make it perfect + + * acinclude.m4.in: fixed the side effects of the PAM test + +1998-04-18 Stephan Kulow + + * acinclude.m4.in: hopefully fixed the PAM test (I rewrote it) + +1998-04-16 Stephan Kulow + + * acinclude.m4.in: extended the getsockname test inspired + by a patch by Martin Baulig + + * configure.in: added test for utmp file + + * acinclude.m4.in: made --without-pam default + + +1998-04-06 Stephan Kulow + + * acinclude.m4.in: don't test compiling, linking, running in + one step. This proved to be too dangerous for my mail box. + +1998-03-21 Stephan Kulow + + * libtool.m4.in: created some new macros to work around this + ugly (because long) help of configure --enable-shared/static + +1998-03-05 Stephan Kulow + + * acinclude.m4.in: set language to C++ before trying the ksize_t + test + + * configure.in: sorted the Makefile entries alphabeticly (and all + together: we love xemacs! we love xemacs! ;) + + * configure.in: added sk + + * acinclude.m4.in: substitute x_libraries to fix the empty -rpath + +1998-03-03 Stephan Kulow + + * acinclude.m4.in: add a rpath for every shared library, that is + linked too (especially X11 libraries) + +Tue Feb 24 22:04:59 1998 Stephan Kulow + + * acinclude.m4.in: added kde_sounddir and set kde_minidir to + kde_icondir/mini to break not too much + +Sun Feb 15 18:25:50 1998 Stephan Kulow + + * configure.in: added bugfix by Bob Miller + (correct reset of IFS) + +Wed Feb 11 00:53:11 1998 Stephan Kulow + + * configure.in: made shadow under Linux default, since the + binaries will work also under non-shadow systems. The only problem + left is PAM, so I disabled shadow in case, PAM is present + +Tue Feb 10 16:46:32 1998 Stephan Kulow + + * configure.in: added test for nice to find out, if the option + -nice works for the screensavers + + * acinclude.m4.in: port to LynxOS. For this I moved all library + search routines in KDE_MISC_TESTS, so I don't need to write this + in every package + + * README: some grammar fixes + + * acinclude.m4.in: search for the libs in the exec_prefix, when + it's present + +Sun Feb 8 14:07:23 1998 Stephan Kulow + + * acinclude.m4.in: updated all packages + + * libtool.m4.in: applied patch for libtool.m4.in to show the + correct default for shared and static + + +Sat Feb 7 10:56:00 1998 Stephan Kulow + + * configure.in: good news - KDE is relocatable again. + + * libtool.m4.in: updated to latest libtool 1.0i + +Fri Feb 6 21:26:51 1998 Stephan Kulow + + * acinclude.m4.in: added a AC_PROVIDE for AC_PROG_CC and + AC_PROG_CPP to KDE_CHECK_COMPILERS + +Thu Feb 5 16:27:47 1998 Stephan Kulow + + * acinclude.m4.in: put $QTDIR/bin before /usr/bin in the path to + look for moc. I don't know why, but I got a report, that configure + found /usr/bin/moc under Solaris + +Fri Jan 30 15:47:50 1998 Stephan Kulow + + * acinclude.m4.in: export LIBRARY_PATH after reset to the saved + value + + * acinclude.m4.in: unset the LIBRARY_PATH to get a relieable + result when trying to find, if Qt compiles without -L + +Sat Jan 24 00:45:52 1998 Stephan Kulow + + * acinclude.m4.in: fixed another bug in AC_PATH_KDE + +Thu Jan 22 14:46:15 1998 Stephan Kulow + + * configure.in: fixed an ugly bug in AC_BASE_PATH_KDE + + * kappfinder/kappfinder.in: let kappfinder create by configure to + allow the use of the kde_ paths + +Wed Jan 21 22:19:35 1998 Stephan Kulow + + * acinclude.m4.in: - added a install_root prefix to all paths, if + set, to enable package managers to move the whole installation at once + - added --with-install-root to set the install_root prefix + +Tue Jan 20 22:41:04 1998 Stephan Kulow + + * configure.in: added NOOPT_CXXFLAGS to allow kioslave to be + compiled without -O2 + +Mon Jan 19 21:55:21 1998 Stephan Kulow + + * configure.in: some little fixes for the Makefiles + + * acinclude.m4.in: --prefix will no longer override the search for + libraries. If they are present somewhere, they are used (through + the methodes in KApplication) + +Mon Jan 12 00:30:36 1998 Stephan Kulow + + * acinclude.m4.in fixed an ugly bug, that accoured, when + qt_libraries is not set (empty/equals X11/not necessary) + + * acinclude.m4.in moved the remove of the files after the error + detection + + +Sun Jan 11 17:27:53 1998 Stephan Kulow + + * acinclude.m4.in added a new macro KDE_CHECK_QT_DIRECT to unset + the Qt library path, if a Qt program compiles without them + + * acinclude.m4.in added a return value in the CREATE_KFSSTND + macro. Perhaps this has caused the problems + +Sat Jan 10 17:40:44 1998 Stephan Kulow + + * ChangeLog started to maintain a ChangeLog file again + * acinclude.m4.in the AC_CREATE_KFSSTND to get better debug output + to find the problem + + +Old logs, Stephan Kulow made: + +0.1 : first steps with libkde +0.2 : first release with libkde, khtmlw, kdehelp, acli, kwm, kpanel +0.3 : added kfm and bugfixes +0.4 : updated khtmlw, kdehelp, kwm, changed install in all subdirs +0.5 : support libtool (chooseable shared libs) +0.6 : split libkde in kdecore and kdeui +0.6.1 : Bugfixes +0.7 : added code from Janos Farkas (configure) + : added @{kde,qt}_{includes,libraries}@ +0.7.1: Bugfixes +0.7.2: Bugfixes +0.7.3: added @all_includes@ and @all_libraries@ + replaced all incompatible flags like $(CC) and -DHAVE_UNISTD_H +0.7.4: changed support for libkde (back in it's own) + added kpat + updated kpanel, kwm, kghostview +0.8: removed a bug in kghostview + lifted installation process of several apps + splitt kdebase into kdelibs and kdeapps + updated khtmlw, kfm and kdehelp + added kcalc and kpaint + updated kdisplay + added kscreensaver + added --enable-kscreensaver + added --enable-debug (and @CXXFLAGS@ to all Makefile.ins) + updated kwm to 0.4.7 + added make uninstall to every app + added kvt + added khexdit + added .kdelnk for kmines, kedit, ktetris + put kwm, kfind's .kdelnk in the right directories + replaced --enable-kscreensaver by --disable-kscreensaver + updated kpanel to 0.15 + some bugfixes (thanks Marco) + some bugfixes (thanks Martin) + changed acinclude.m4, because aclocal won't + updated kwm to 0.4.8 (patched it again for Qt-1.2) + updated kvt to 0.13 (patch from Matthias) + patched kvt and kwm + updated kwm to 0.5.0 + updated kvt for 0.14 (again and again :-) + updated kview to 0.10 + updated kfm to 0.6.3 + patched kscreensaver for FreeBSD (thanks Marc) +0.9: updated kdisplay to 0.5.3 + added klogout + patches from Matthias + updated kfm to 0.6.4 + updated kghostview to 0.4 + added QTINC and QTLIB + updated kdehelp to 0.4.11 + patched kfm to support ktoolbar + updated kedit to kedit+ + added kfontmanager 0.2.1 +0.9.1: changed kpaint's make style + bugfixing + updated kmines to 0.6.5 + updated ktetris to 0.2.4 + changed to Makefiles to depend on Makefile.in + changed the Makefiles to let install depend on all + added kjots-0.2.2 + updated kjots-0.2.3 + updated kfm to 0.6.6 + updated kjots-0.2.4 + updated kpaint-0.2 + updated kedit to 0.5 + updated kfontmanager to 0.2.2 + updated kfm to 0.6.7 + updated ktetris to 0.2.5 + updated kjots to 0.2.5 +0.10: added HAVE_SQRTL + added HAVE_CRYPT_H + updated kfind + updated kfm to kfm-0.8.1 + re-introduced automake to kdebase + bugfixes for the configure.in + added XPM, GL and PAM tests to configure + added morph3d to kscreensavers + updated kfind to 0.3.2 + added some patches for SGI +... lost the time to maintain a Changelog ;) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/Doxyfile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/Doxyfile.am new file mode 100644 index 000000000..46978879e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/Doxyfile.am @@ -0,0 +1,163 @@ +## generate API documentation with doxygen +apidox-am-yes: + @if test "$(subdir)" != "."; then \ + $(mkinstalldirs) $(top_builddir)/apidocs/$(subdir) ;\ + if test ! -x $(top_builddir)/apidocs/common; then \ + if test -d $(top_srcdir)/doc/common; then \ + common_dir=`cd $(top_srcdir)/doc/common && pwd` ;\ + else \ + common_dir=$(kde_libs_htmldir)/en/common ;\ + fi ;\ + $(LN_S) $$common_dir $(top_builddir)/apidocs/common; \ + fi ;\ + cp $(top_srcdir)/admin/Doxyfile.global Doxyfile; \ + echo "PROJECT_NAME = \"$(subdir) Library\"" >> Doxyfile; \ + echo "PROJECT_NUMBER = \"Version $(VERSION)\"" >> Doxyfile; \ + echo "INPUT = $(srcdir)" >> Doxyfile; \ + echo "IMAGE_PATH = $(top_srcdir)/doc/api" >> Doxyfile ;\ + echo "OUTPUT_DIRECTORY = $(top_builddir)/apidocs" >> Doxyfile; \ + echo "HTML_OUTPUT = $(subdir)/html" >> Doxyfile; \ + echo "LATEX_OUTPUT = $(subdir)/latex" >> Doxyfile; \ + echo "RTF_OUTPUT = $(subdir)/rtf" >> Doxyfile; \ + echo "MAN_OUTPUT = $(subdir)/man" >> Doxyfile; \ + echo "GENERATE_HTML = $(GENERATE_FLAG)" >> Doxyfile ;\ + echo "GENERATE_MAN = $(GENERATE_FLAG)" >> Doxyfile ;\ + echo "GENERATE_LATEX = $(GENERATE_FLAG)" >> Doxyfile ;\ + if test -n "$(DOXYGEN_EXCLUDE)"; then \ + echo "EXCLUDE_PATTERNS += $(DOXYGEN_EXCLUDE)" >> Doxyfile; \ + fi ;\ + echo "TAGFILES = \\" >> Doxyfile; \ + tags='$(DOXYGEN_REFERENCES) qt'; for tag in $$tags; do \ + tagpath= ;\ + path="../../$$tag" ;\ + if test -f $(top_builddir)/apidocs/$$tag/$$tag.tag; then \ + tagpath="$(top_builddir)/apidocs/$$tag/$$tag.tag" ;\ + else \ + tagpath=`ls -1 $(kde_htmldir)/en/*-apidocs/$$tag/$$tag.tag 2> /dev/null` ;\ + if test -n "$$tagpath"; then \ + path=`echo $$tagpath | sed -e "s,.*/\([^/]*-apidocs\)/$$tag/$$tag.tag,../../../\1/$$tag,"` ;\ + fi ;\ + fi ;\ + if test "$$tag" = qt; then \ + echo $$tagpath=$(QTDOCDIR) >> Doxyfile ;\ + else if test -n "$$tagpath"; then \ + echo "$$tagpath=$$path/html \\" >> Doxyfile ;\ + fi ;\ + fi ;\ + done ;\ + echo "GENERATE_TAGFILE = $(top_builddir)/apidocs/$(subdir)/$(subdir).tag" >> Doxyfile ;\ + echo "IGNORE_PREFIX = K" >> Doxyfile ;\ + echo "HAVE_DOT = $(KDE_HAVE_DOT)" >> Doxyfile ;\ + $(DOXYGEN) Doxyfile ;\ + fi + +apidox-am-no: + +install-data-local: install-apidox + +## install API documentation +install-apidox: + @if test "$(subdir)" != "."; then \ + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html ; \ + if test -f $(top_builddir)/apidocs/$(subdir)/$(subdir).tag; then \ + echo $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \ + $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \ + fi; \ + if test -d $(top_builddir)/apidocs/$(subdir)/html; then \ + list=`ls $(top_builddir)/apidocs/$(subdir)/html`; \ + for file in $$list; do \ + echo $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \ + $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \ + done; \ + fi; \ + rm -f $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \ + $(LN_S) $(kde_libs_htmldir)/en/common $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/common; \ + else\ + if test -d $(top_builddir)/apidocs; then \ + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs ;\ + list=`cd $(top_builddir)/apidocs && ls -1`; \ + for file in $$list; do \ + if test -f $(top_builddir)/apidocs/$$file; then \ + echo $(INSTALL_DATA) $(top_builddir)/apidocs/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \ + $(INSTALL_DATA) $(top_builddir)/apidocs/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \ + fi; \ + done ; fi; \ + fi + +uninstall-local: uninstall-apidox + +## uninstall API documentation +uninstall-apidox: + @if test "$(subdir)" != "."; then \ + if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); then \ + rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \ + fi\ + else\ + if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; then \ + rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \ + fi\ + fi + +apidox: + @if test "$(subdir)" != "."; then \ + $(MAKE) apidox-am-@KDE_HAS_DOXYGEN@ ;\ + else \ + $(MAKE) apidox-am-toplevel-@KDE_HAS_DOXYGEN@ ;\ + fi + @set fnord $(MAKEFLAGS); amf=$$2; if test -n '$(SUBDIRS)'; then \ + list='$(SUBDIRS)'; \ + for subdir in $$list; do \ + if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am; then \ + echo "Making apidox in $$subdir"; \ + if test "$$subdir" != "."; then \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no apidox) || exit 1; \ + fi ; fi ;\ + done; \ + for subdir in $$list; do \ + if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am; then \ + echo "Making apidox in $$subdir"; \ + if test "$$subdir" != "."; then \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=yes apidox) || exit 1; \ + fi ; fi ;\ + done; \ + fi + +apidox-am-toplevel-no: +apidox-am-toplevel-yes: + @echo "*** Creating API documentation main page"; \ + cp $(top_srcdir)/admin/Doxyfile.global Doxyfile; \ + echo "PROJECT_NAME = $(DOXYGEN_PROJECT_NAME)" >> Doxyfile ; \ + echo "PROJECT_NUMBER = $(DOXYGEN_PROJECT_NUMBER)" >> Doxyfile ; \ + echo "INPUT = $(top_srcdir)" >> Doxyfile ; \ + echo "OUTPUT_DIRECTORY = $(top_builddir)/apidocs" >> Doxyfile ; \ + echo "FILE_PATTERNS = *.dox" >> Doxyfile ; \ + echo "RECURSIVE = NO" >> Doxyfile ; \ + echo "SOURCE_BROWSER = NO" >> Doxyfile ; \ + echo "ALPHABETICAL_INDEX = NO" >> Doxyfile ; \ + echo "HTML_OUTPUT = ." >> Doxyfile ; \ + echo "HTML_HEADER = apidocs/common/mainheader.html" >> Doxyfile ; \ + echo "HTML_FOOTER = apidocs/common/mainfooter.html" >> Doxyfile ; \ + echo "HTML_STYLESHEET = apidocs/common/doxygen.css" >> Doxyfile ; \ + echo "GENERATE_LATEX = NO" >> Doxyfile ; \ + echo "GENERATE_RTF = NO" >> Doxyfile ; \ + echo "GENERATE_MAN = NO" >> Doxyfile ; \ + echo "GENERATE_XML = NO" >> Doxyfile ; \ + echo "GENERATE_AUTOGEN_DEF = NO" >> Doxyfile ; \ + echo "ENABLE_PREPROCESSING = NO" >> Doxyfile ; \ + echo "CLASS_DIAGRAMS = NO" >> Doxyfile ; \ + echo "HAVE_DOT = NO" >> Doxyfile ; \ + echo "GENERATE_HTML = YES" >> Doxyfile ;\ + $(mkinstalldirs) $(top_builddir)/apidocs ; \ + rm -f $(top_builddir)/apidocs/common ; \ + if test -d $(top_srcdir)/doc/common; then \ + common_dir=`cd $(top_srcdir)/doc/common && pwd` ;\ + else \ + common_dir=$(kde_libs_htmldir)/en/common ;\ + fi ;\ + $(LN_S) $$common_dir $(top_builddir)/apidocs/common ;\ + doxygen Doxyfile; \ + rm -f Doxyfile + +# Local Variables: +# mode: makefile +# End: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/Doxyfile.global b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/Doxyfile.global new file mode 100644 index 000000000..2ecb694b9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/Doxyfile.global @@ -0,0 +1,950 @@ +# Doxyfile 1.2.15 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# General configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = "Version 3.0" + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = ../apidocs/ + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, +# German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, +# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish. + +OUTPUT_LANGUAGE = English + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these class will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = YES + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = YES + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited +# members of a class in the documentation of that class as if those members were +# ordinary class members. Constructors, destructors and assignment operators of +# the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. It is allowed to use relative paths in the argument list. + +STRIP_FROM_PATH = + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower case letters. If set to YES upper case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# users are adviced to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explict @brief command for a brief description. + +JAVADOC_AUTOBRIEF = YES + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# reimplements. + +INHERIT_DOCS = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = NO + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = NO + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = NO + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = libdoc=@mainpage \ + sect=

\ + reimplemented= \ + "deprecated=This class or method is obsolete, it is provided for compatibility only." \ + obsolete=@deprecated + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consist of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. +# For instance some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources +# only. Doxygen will then generate output that is more tailored for Java. +# For instance namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. + +WARN_FORMAT = + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp +# *.h++ *.idl *.odl + +FILE_PATTERNS = *.h \ + *.cpp \ + *.cc \ + *.hpp + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories +# that are symbolic links (a Unix filesystem feature) are excluded from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = *.moc.* \ + moc* \ + *.all_cpp.* \ + *unload.* \ + */test/* \ + */tests/* + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. + +INPUT_FILTER = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse. + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 3 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = K + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = NO + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = ../apidocs/common/header.html + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = ../apidocs/common/footer.html + +# The HTML_STYLESHEET tag can be used to specify a user defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet + +HTML_STYLESHEET = ../apidocs/common/doxygen.css + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the Html help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = YES + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, +# or Internet explorer 4.0+). Note that for large projects the tree generation +# can take a very long time. In such cases it is better to disable this feature. +# Windows users are probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimised for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assigments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .kde3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_XML = NO + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. + +PREDEFINED = QT_VERSION=305 + +# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line and do not end with a semicolon. Such function macros are typically +# used for boiler-plate code, and will confuse the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::addtions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES tag can be used to specify one or more tagfiles. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = NO + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or +# super classes. Setting the tag to NO turns the diagrams off. Note that this +# option is superceded by the HAVE_DOT option below. This is only a fallback. It is +# recommended to install and use dot, since it yield more powerful graphs. + +CLASS_DIAGRAMS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = NO + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found on the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 800 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermedate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::addtions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO + +# The CGI_NAME tag should be the name of the CGI script that +# starts the search engine (doxysearch) with the correct parameters. +# A script with this name will be generated by doxygen. + +CGI_NAME = + +# The CGI_URL tag should be the absolute URL to the directory where the +# cgi binaries are located. See the documentation of your http daemon for +# details. + +CGI_URL = + +# The DOC_URL tag should be the absolute URL to the directory where the +# documentation is located. If left blank the absolute path to the +# documentation, with file:// prepended to it, will be used. + +DOC_URL = + +# The DOC_ABSPATH tag should be the absolute path to the directory where the +# documentation is located. If left blank the directory on the local machine +# will be used. + +DOC_ABSPATH = + +# The BIN_ABSPATH tag must point to the directory where the doxysearch binary +# is installed. + +BIN_ABSPATH = + +# The EXT_DOC_PATHS tag can be used to specify one or more paths to +# documentation generated for other projects. This allows doxysearch to search +# the documentation for these projects as well. + +EXT_DOC_PATHS = diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/Makefile.common b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/Makefile.common new file mode 100644 index 000000000..d5c4d8591 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/Makefile.common @@ -0,0 +1,34 @@ +### Makefile.common +### +### Copyright (C) 2002 by the KDE developers + +### All the real work is done by the shellscript cvs.sh + +SHELL=/bin/sh + +cvs dist cvs-clean configure.in configure.files subdirs package-messages package-merge: + @admindir=$(admindir); \ + if test "x$$admindir" = x; then \ + admindir=.; until test -f $$admindir/admin/cvs.sh; do \ + admindir=$$admindir/..; \ + if test `cd $$admindir && pwd` = / ; then break; fi; \ + done; \ + admindir=$$admindir/admin; \ + if test -f $$admindir/cvs.sh; then :; else \ + echo "Can't find the admin/ directory in any parent of the"; \ + echo "current directory. Please set it with admindir=..."; \ + exit 1; \ + fi; \ + fi; \ + if test "$@" = "package-merge"; then \ + MAKE=$(MAKE) POFILES="$(POFILES)" PACKAGE="$(PACKAGE)" \ + $(SHELL) $$admindir/cvs.sh package-merge ;\ + else MAKE=$(MAKE) $(SHELL) $$admindir/cvs.sh $@ ;\ + fi + +configure.in: configure.files $(shell test -f configure.files && cat configure.files) subdirs +configure.files: subdirs + +.SILENT: + +.PHONY: cvs dist cvs-clean package-merge package-messages diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/am_edit b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/am_edit new file mode 100644 index 000000000..a618de1e8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/am_edit @@ -0,0 +1,2037 @@ +#!/usr/bin/perl -w + +# Expands the specialised KDE tags in Makefile.in to (hopefully) valid +# make syntax. +# When called without file parameters, we work recursively on all Makefile.in +# in and below the current subdirectory. When called with file parameters, +# only those Makefile.in are changed. +# The currently supported tags are +# +# {program}_METASOURCES +# where you have a choice of two styles +# {program}_METASOURCES = name1.moc name2.moc ... [\] +# {program}_METASOURCES = AUTO +# The second style requires other tags as well. +# +# To install icons : +# KDE_ICON = iconname iconname2 ... +# KDE_ICON = AUTO +# +# For documentation : +# http://developer.kde.org/documentation/other/developer-faq.html +# +# and more new tags TBD! +# +# The concept (and base code) for this program came from automoc, +# supplied by the following +# +# Matthias Ettrich (The originator) +# Kalle Dalheimer (The original implementator) +# Harri Porten +# Alex Zepeda +# David Faure +# Stephan Kulow + +use Cwd; +use File::Find; +use File::Basename; + +# Prototype the functions +sub initialise (); +sub processMakefile ($); +sub updateMakefile (); +sub restoreMakefile (); + +sub removeLine ($$); +sub appendLines ($); +sub substituteLine ($$); + +sub findMocCandidates (); +sub pruneMocCandidates ($); +sub checkMocCandidates (); +sub addMocRules (); + +sub tag_AUTOMAKE (); +sub tag_META_INCLUDES (); +sub tag_METASOURCES (); +sub tag_POFILES (); +sub tag_DOCFILES (); +sub tag_LOCALINSTALL(); +sub tag_IDLFILES(); +sub tag_UIFILES(); +sub tag_SUBDIRS(); +sub tag_ICON(); +sub tag_CLOSURE(); +sub tag_DIST(); + +# Some global globals... +$verbose = 0; # a debug flag +$thisProg = "$0"; # This programs name +$topdir = cwd(); # The current directory +@makefiles = (); # Contains all the files we'll process +@foreignfiles = (); +$start = (times)[0]; # some stats for testing - comment out for release +$version = "v0.2"; +$errorflag = 0; +$cppExt = "(cpp|cc|cxx|C|c\\+\\+)"; +$hExt = "(h|H|hh|hxx|hpp|h\\+\\+)"; +$progId = "KDE tags expanded automatically by " . basename($thisProg); +$automkCall = "\n"; +$printname = ""; # used to display the directory the Makefile is in +$use_final = 1; # create code for --enable-final +$cleantarget = "clean"; +$dryrun = 0; +$pathoption = 0; +$foreign_libtool = 0; + +while (defined ($ARGV[0])) +{ + $_ = shift; + if (/^--version$/) + { + print STDOUT "\n"; + print STDOUT basename($thisProg), " $version\n", + "This is really free software, unencumbered by the GPL.\n", + "You can do anything you like with it except sueing me.\n", + "Copyright 1998 Kalle Dalheimer \n", + "Concept, design and unnecessary questions about perl\n", + " by Matthias Ettrich \n\n", + "Making it useful by Stephan Kulow and\n", + "Harri Porten \n", + "Updated (Feb-1999), John Birch \n", + "Current Maintainer Stephan Kulow\n\n"; + exit 0; + } + elsif (/^--verbose$|^-v$/) + { + $verbose = 1; # Oh is there a problem...? + } + elsif (/^-p(.+)$|^--path=(.+)$/) + { + $thisProg = "$1/".basename($thisProg) if($1); + $thisProg = "$2/".basename($thisProg) if($2); + warn ("$thisProg doesn't exist\n") if (!(-f $thisProg)); + $pathoption=1; + } + elsif (/^--help$|^-h$/) + { + print STDOUT "Usage $thisProg [OPTION] ... [dir/Makefile.in]...\n", + "\n", + "Patches dir/Makefile.in generated by automake\n", + "(where dir can be an absolute or relative directory name)\n", + "\n", + " -v, --verbose verbosely list files processed\n", + " -h, --help print this help, then exit\n", + " --version print version number, then exit\n", + " -p, --path= use the path to am_edit if the path\n", + " called from is not the one to be used\n", + " --no-final don't patch for --enable-final\n"; + + exit 0; + } + elsif (/^--no-final$/) + { + $use_final = 0; + $thisProg .= " --no-final"; + } + elsif (/^--foreign-libtool$/) + { + $foreign_libtool = 1; + $thisProg .= " --foreign-libtool"; + } + elsif (/^-n$/) + { + $dryrun = 1; + } + else + { + # user selects what input files to check + # add full path if relative path is given + $_ = cwd()."/".$_ if (! /^\//); + print "User wants $_\n" if ($verbose); + push (@makefiles, $_); + } +} + +if ($thisProg =~ /^\// && !$pathoption ) +{ + print STDERR "Illegal full pathname call performed...\n", + "The call to \"$thisProg\"\nwould be inserted in some Makefile.in.\n", + "Please use option --path.\n"; + exit 1; +} + +# Only scan for files when the user hasn't entered data +if (!@makefiles) +{ + print STDOUT "Scanning for Makefile.in\n" if ($verbose); + find (\&add_makefile, cwd()); + #chdir('$topdir'); +} else { + print STDOUT "Using input files specified by user\n" if ($verbose); +} + +foreach $makefile (sort(@makefiles)) +{ + processMakefile ($makefile); + last if ($errorflag); +} + +# Just some debug statistics - comment out for release as it uses printf. +printf STDOUT "Time %.2f CPU sec\n", (times)[0] - $start if ($verbose); + +exit $errorflag; # causes make to fail if erroflag is set + +#----------------------------------------------------------------------------- + +# In conjunction with the "find" call, this builds the list of input files +sub add_makefile () +{ + push (@makefiles, $File::Find::name) if (/Makefile.in$/); +} + +#----------------------------------------------------------------------------- + +# Processes a single make file +# The parameter contains the full path name of the Makefile.in to use +sub processMakefile ($) +{ + # some useful globals for the subroutines called here + local ($makefile) = @_; + local @headerdirs = ('.'); + local $haveAutomocTag = 0; + local $MakefileData = ""; + + local $cxxsuffix = "KKK"; + + local @programs = (); # lists the names of programs and libraries + local $program = ""; + + local %realObjs = (); # lists the objects compiled into $program + local %sources = (); # lists the sources used for $program + local %finalObjs = (); # lists the objects compiled when final + local %realname = (); # the binary name of program variable + local %idlfiles = (); # lists the idl files used for $program + local %globalmocs = ();# list of all mocfiles (in %mocFiles format) + local %important = (); # list of files to be generated asap + local %uiFiles = (); + + local $allidls = ""; + local $idl_output = "";# lists all idl generated files for cleantarget + local $ui_output = "";# lists all uic generated files for cleantarget + + local %depedmocs = (); + + local $metasourceTags = 0; + local $dep_files = ""; + local $dep_finals = ""; + local %target_adds = (); # the targets to add + local $kdelang = ""; + local @cleanfiles = (); + local $cleanMoc = ""; + local $closure_output = ""; + + local %varcontent = (); + + $makefileDir = dirname($makefile); + chdir ($makefileDir); + $printname = $makefile; + $printname =~ s/^\Q$topdir\E\///; + $makefile = basename($makefile); + + print STDOUT "Processing makefile $printname\n" if ($verbose); + + # Setup and see if we need to do this. + return if (!initialise()); + + tag_AUTOMAKE (); # Allows a "make" to redo the Makefile.in + tag_META_INCLUDES (); # Supplies directories for src locations + + foreach $program (@programs) { + $sources_changed{$program} = 0; + $depedmocs{$program} = ""; + $important{$program} = ""; + tag_IDLFILES(); # Sorts out idl rules + tag_CLOSURE(); + tag_UIFILES(); # Sorts out ui rules + tag_METASOURCES (); # Sorts out the moc rules + if ($sources_changed{$program}) { + my $lookup = "$program" . '_SOURCES\s*=\s*(.*)'; + substituteLine($lookup, "$program\_SOURCES=" . $sources{$program}); + } + if ($important{$program}) { + local %source_dict = (); + for $source (split(/[\034\s]+/, $sources{$program})) { + $source_dict{$source} = 1; + } + for $source (@cleanfiles) { + $source_dict{$source} = 0; + } + for $source (keys %source_dict) { + next if (!$source); + if ($source_dict{$source}) { + # sanity check + if (! -f $source) { + print STDERR "Error: $source is listed in a _SOURCE line in $printname, but doesn't exist yet. Put it in DISTCLEANFILES!\n"; + } else { + $target_adds{"\$(srcdir)/$source"} .= $important{$program}; + } + } + } + } + } + if ($cleanMoc) { + # Always add dist clean tag + # Add extra *.moc.cpp files created for USE_AUTOMOC because they + # aren't included in the normal *.moc clean rules. + appendLines ("$cleantarget-metasources:\n\t-rm -f $cleanMoc\n"); + $target_adds{"$cleantarget-am"} .= "$cleantarget-metasources "; + } + + tag_DIST() unless ($kdeopts{"noautodist"}); + + if ($idl_output) { + appendLines ("$cleantarget-idl:\n\t-rm -f $idl_output\n"); + $target_adds{"$cleantarget-am"} .= "$cleantarget-idl "; + } + + if ($ui_output) { + appendLines ("$cleantarget-ui:\n\t-rm -f $ui_output\n"); + $target_adds{"$cleantarget-am"} .= "$cleantarget-ui "; + } + + if ($closure_output) { + appendLines ("$cleantarget-closures:\n\t-rm -f $closure_output\n"); + $target_adds{"$cleantarget-am"} .= "$cleantarget-closures "; + } + + if ($MakefileData =~ /\nKDE_LANG\s*=\s*(\S*)\s*\n/) { + $kdelang = '$(KDE_LANG)' + } else { + $kdelang = ''; + } + + tag_POFILES (); # language rules for po directory + tag_DOCFILES (); # language rules for doc directories + tag_LOCALINSTALL(); # add $(DESTDIR) before all kde_ dirs + tag_ICON(); + tag_SUBDIRS(); + + my $tmp = "force-reedit:\n"; + $tmp .= "\t$automkCall\n\tcd \$(top_srcdir) && perl $thisProg $printname\n\n"; + appendLines($tmp); + + make_meta_classes(); + tag_COMPILE_FIRST(); + tag_FINAL() if (!$kdeopts{"nofinal"}); + + my $final_lines = "final:\n\t\$(MAKE) "; + my $final_install_lines = "final-install:\n\t\$(MAKE) "; + my $nofinal_lines = "no-final:\n\t\$(MAKE) "; + my $nofinal_install_lines = "no-final-install:\n\t\$(MAKE) "; + + foreach $program (@programs) { + + my $lookup = "$program\_OBJECTS.*=[^\n]*"; + + my $new = ""; + + my @list = split(/[\034\s]+/, $realObjs{$program}); + + if (!$kdeopts{"nofinal"} && @list > 1 && $finalObjs{$program}) { + + $new .= "$program\_final\_OBJECTS = " . $finalObjs{$program}; + $new .= "\n$program\_nofinal\_OBJECTS = " . $realObjs{$program}; + $new .= "\n\@KDE_USE_FINAL_FALSE\@$program\_OBJECTS = \$($program\_nofinal\_OBJECTS)"; + $new .= "\n\@KDE_USE_FINAL_TRUE\@$program\_OBJECTS = \$($program\_final\_OBJECTS)"; + + $final_lines .= "$program\_OBJECTS=\"\$($program\_final_OBJECTS)\" "; + $final_install_lines .= "$program\_OBJECTS=\"\$($program\_final_OBJECTS)\" "; + $nofinal_lines .= "$program\_OBJECTS=\"\$($program\_nofinal\_OBJECTS)\" "; + $nofinal_install_lines .= "$program\_OBJECTS=\"\$($program\_nofinal_OBJECTS)\" "; + } else { + $new = "$program\_OBJECTS = " . $realObjs{$program}; + } + substituteLine ($lookup, $new); + } + appendLines($final_lines . "all-am"); + appendLines($final_install_lines . "install-am"); + appendLines($nofinal_lines . "all-am"); + appendLines($nofinal_install_lines . "install-am"); + + my $lookup = '(\@\S+\@)?DEP_FILES\s*=([^\n]*)'; + if ($MakefileData =~ /\n$lookup\n/o) { + my $condition = $1; + my $depfiles = $2; + my $workfiles; + + if ($dep_finals) { + # Add the conditions on every line, since + # there may be line continuations in the list. + $workfiles = "$dep_files $dep_finals $depfiles"; + $workfiles =~ s/\034/\034$condition\@KDE_USE_FINAL_TRUE\@\t/g; + $lines = "$condition\@KDE_USE_FINAL_TRUE\@DEP_FILES = $workfiles\n"; + $workfiles = "$dep_files $depfiles"; + $workfiles =~ s/\034/\034$condition\@KDE_USE_FINAL_FALSE\@\t/g; + $lines .= "$condition\@KDE_USE_FINAL_FALSE\@DEP_FILES = $workfiles\n"; + } else { + $workfiles = "$dep_files $depfiles"; + $workfiles =~ s/\034/\034$condition\t/g; + $lines = $condition . "DEP_FILES = $workfiles\n"; + } + substituteLine($lookup, $lines); + } + + my $cvs_lines = "cvs-clean:\n"; + $cvs_lines .= "\t\$(MAKE) admindir=\$(top_srcdir)/admin -f \$(top_srcdir)/admin/Makefile.common cvs-clean\n"; + appendLines($cvs_lines); + + $cvs_lines = "kde-rpo-clean:\n"; + $cvs_lines .= "\t-rm -f *.rpo\n"; + appendLines($cvs_lines); + $target_adds{"clean"} .= "kde-rpo-clean "; + + my %target_dels = ("install-data-am" => ""); + + # some strange people like to do a install-exec, and expect that also + # all modules are installed. automake doesn't know this, so we need to move + # this here from install-data to install-exec. + if ($MakefileData =~ m/\nkde_module_LTLIBRARIES\s*=/) { +# $target_adds{"install-exec-am"} .= "install-kde_moduleLTLIBRARIES "; +# don't use $target_adds here because we need to append the dependency, not +# prepend it. Fixes #44342 , when a module depends on a lib in the same dir +# and libtool needs it during relinking upon install (Simon) + my $lookup = "install-exec-am:([^\n]*)"; + if($MakefileData =~ /\n$lookup\n/) { + substituteLine("$lookup", "install-exec-am: $1 install-kde_moduleLTLIBRARIES"); + } + $target_dels{"install-data-am"} .= "install-kde_moduleLTLIBRARIES "; + $target_adds{"install-data-am"} .= " "; + } + + my $lines = ""; + + foreach $add (keys %target_adds) { + my $lookup = quotemeta($add) . ':([^\n]*)'; + if ($MakefileData =~ /\n$lookup\n/) { + my $newlines = $1; + my $oldlines = $lookup; + if (defined $target_dels{$add}) { + foreach $del (split(' ', $target_dels{$add})) { + $newlines =~ s/\s*$del\s*/ /g; + } + } + substituteLine($oldlines, "$add: " . $target_adds{$add} . $newlines); + } else { + $lines .= "$add: " . $target_adds{$add} . "\n"; + } + } + if ($lines) { + appendLines($lines); + } + + my $found = 1; + + while ($found) { + if ($MakefileData =~ m/\n(.*)\$\(CXXFLAGS\)(.*)\n/) { + my $vor = $1; # "vor" means before in German + my $nach = $2; # "nach" means after in German + my $lookup = quotemeta("$1\$(CXXFLAGS)$2"); + my $replacement = "$1\$(KCXXFLAGS)$2"; + $MakefileData =~ s/$lookup/$replacement/; + $lookup =~ s/\\\$\\\(CXXFLAGS\\\)/\\\$\\\(KCXXFLAGS\\\)/; + $replacement = "$vor\$(KCXXFLAGS) \$(KDE_CXXFLAGS)$nach"; + substituteLine($lookup, $replacement); + } else { + $found = 0; + } + } + + if($foreign_libtool == 0) { + $lookup = '(\n[^#].*\$\(LIBTOOL\) --mode=link) (\$\(CXXLD\).*\$\(KCXXFLAGS\))'; + + if ($MakefileData =~ m/$lookup/ ) { + $MakefileData =~ s/$lookup/$1 --tag=CXX $2/; + } + + $lookup = '(\n[^#].*\$\(LIBTOOL\) --mode=compile)\s+(\$\(CXX\)\s+)'; + if ($MakefileData =~ m/$lookup/ ) { + $MakefileData =~ s/$lookup/$1 --tag=CXX $2/; + } + } + + $MakefileData =~ s/\$\(KCXXFLAGS\)/\$\(CXXFLAGS\)/g; + + $lookup = '(.*)cp -pr \$\$/\$\$file \$\(distdir\)/\$\$file(.*)'; + if ($MakefileData =~ m/\n$lookup\n/) { + substituteLine($lookup, "$1cp -pr \$\$d/\$\$file \$(distdir)/\$\$file$2"); + } + + # Always update the Makefile.in + updateMakefile (); + return; +} + +#----------------------------------------------------------------------------- + +# Beware: This procedure is not complete. E.g. it also parses lines +# containing a '=' in rules (for instance setting shell vars). For our +# usage this us enough, though. +sub read_variables () +{ + while ($MakefileData =~ /\n\s*(\S+)\s*=([^\n]*)/g) { + $varcontent{$1} = $2; + } +} + +# Check to see whether we should process this make file. +# This is where we look for tags that we need to process. +# A small amount of initialising on the tags is also done here. +# And of course we open and/or create the needed make files. +sub initialise () +{ + if (! -r "Makefile.am") { + print STDOUT "found Makefile.in without Makefile.am\n" if ($verbose); + return 0; + } + + # Checking for files to process... + open (FILEIN, $makefile) + || die "Could not open $makefileDir/$makefile: $!\n"; + # Read the file + # stat(FILEIN)[7] might look more elegant, but is slower as it + # requires stat'ing the file + seek(FILEIN, 0, 2); + my $fsize = tell(FILEIN); + seek(FILEIN, 0, 0); + read FILEIN, $MakefileData, $fsize; + close FILEIN; + print "DOS CRLF within $makefileDir/$makefile!\n" if($MakefileData =~ y/\r//d); + + # Remove the line continuations, but keep them marked + # Note: we lose the trailing spaces but that's ok. + # Don't mangle line-leading spaces (usually tabs) + # since they're important. + $MakefileData =~ s/\\\s*\n/\034/g; + + # If we've processed the file before... + restoreMakefile () if ($MakefileData =~ /$progId/); + + foreach $dir (@foreignfiles) { + if (substr($makefileDir,0,length($dir)) eq $dir) { + return 0; + } + } + + %kdeopts = (); + $kdeopts{"foreign"} = 0; + $kdeopts{"qtonly"} = 0; + $kdeopts{"noautodist"} = 0; + $kdeopts{"foreign-libtool"} = $foreign_libtool; + $kdeopts{"nofinal"} = !$use_final; # default + + read_variables(); + + if ($MakefileData =~ /\nKDE_OPTIONS\s*=\s*([^\n]*)\n/) { + my $kde_options_str = $1; + local @kde_options = split(/[\034\s]+/, $kde_options_str); + if (grep(/^foreign$/, @kde_options)) { + push(@foreignfiles, $makefileDir . "/"); + return 0; # don't touch me + } + for $opt (@kde_options) { + if (!defined $kdeopts{$opt}) { + print STDERR "Warning: unknown option $opt in $printname\n"; + } else { + $kdeopts{$opt} = 1; + } + } + } + + # Look for the tags that mean we should process this file. + $metasourceTags = 0; + $metasourceTags++ while ($MakefileData =~ /\n[^=\#]*METASOURCES\s*=/g); + + my $pofileTag = 0; + $pofileTag++ while ($MakefileData =~ /\nPOFILES\s*=/g); + if ($pofileTag > 1) + { + print STDERR "Error: Only one POFILES tag allowed\n"; + $errorflag = 1; + } + + while ($MakefileData =~ /\n\.SUFFIXES:([^\n]+)\n/g) { + my $suffixes_str = $1; + my @list=split(' ', $suffixes_str); + foreach $ext (@list) { + if ($ext =~ /^\.$cppExt$/) { + $cxxsuffix = $ext; + $cxxsuffix =~ s/\.//g; + print STDOUT "will use suffix $cxxsuffix\n" if ($verbose); + last; + } + } + } + + while ($MakefileData =~ /\n(\S*)_OBJECTS\s*=[\034\s]*([^\n]*)\n/g) { + + my $program = $1; + my $objs = $2; # safe them + + my $ocv = 0; + + my @objlist = split(/[\034\s]+/, $objs); + foreach $obj (@objlist) { + if ($obj =~ /(\S*)\$\((\S+)\)/ ) { + my $pre = $1; + my $variable = $2; + if ($pre eq '' && exists($varcontent{$variable})) { + my @addlist = split(/[\034\s]+/, $varcontent{$variable}); + push(@objlist, @addlist); + } elsif ($variable !~ 'OBJEXT') { + $ocv = 1; + } + } + } + + next if ($ocv); + + $program =~ s/^am_// if ($program =~ /^am_/); + + my $sourceprogram = $program; + $sourceprogram =~ s/\@am_/\@/ if($sourceprogram =~ /^.*\@am_.+/); + + print STDOUT "found program $program\n" if ($verbose); + push(@programs, $program); + + $realObjs{$program} = $objs; + + if ($MakefileData =~ /\n$sourceprogram\_SOURCES\s*=\s*(.*)\n/) { + $sources{$program} = $1; + } + else { + $sources{$program} = ""; + print STDERR "found program with no _SOURCES: $program\n"; + } + + my $realprogram = $program; + $realprogram =~ s/_/./g; # unmask to regexp + if ($MakefileData =~ /\n($realprogram)(\$\(EXEEXT\)?)?:.*\$\($program\_OBJECTS\)/) { + $realname{$program} = $1; + } else { + # not standard Makefile - nothing to worry about + $realname{$program} = ""; + } + } + + my $lookup = 'DEPDIR\s*=.*'; + if ($MakefileData !~ /\n($lookup)\n/o) { + $lookup = 'bindir\s*=.*'; + if ($MakefileData =~ /\n($lookup)\n/) { + substituteLine ($lookup, "DEPDIR = .deps\n$1"); + } + } + + my @marks = ('MAINTAINERCLEANFILES', 'CLEANFILES', 'DISTCLEANFILES'); + foreach $mark (@marks) { + while ($MakefileData =~ /\n($mark)\s*=\s*([^\n]*)/g) { + my $clean_str = $2; + foreach $file (split('[\034\s]+', $clean_str)) { + $file =~ s/\.\///; + push(@cleanfiles, $file); + } + } + } + + my $localTag = 0; + $localTag++ if ($MakefileData =~ /\ninstall-\S+-local:/); + + return (!$errorflag); +} + +#----------------------------------------------------------------------------- + +# Gets the list of user defined directories - relative to $srcdir - where +# header files could be located. +sub tag_META_INCLUDES () +{ + my $lookup = '[^=\n]*META_INCLUDES\s*=\s*(.*)'; + return 1 if ($MakefileData !~ /($lookup)\n/o); + print STDOUT "META_INCLUDE processing <$1>\n" if ($verbose); + + my $headerStr = $2; + removeLine ($lookup, $1); + + my @headerlist = split(/[\034\s]+/, $headerStr); + + foreach $dir (@headerlist) + { + $dir =~ s#\$\(srcdir\)#.#; + if (! -d $dir) + { + print STDERR "Warning: $dir can't be found. ", + "Must be a relative path to \$(srcdir)\n"; + } + else + { + push (@headerdirs, $dir); + } + } + + return 0; +} + +#----------------------------------------------------------------------------- + +sub tag_FINAL() +{ + my @final_names = (); + + foreach $program (@programs) { + + if ($sources{$program} =~ /\(/) { + print STDOUT "found ( in $program\_SOURCES. skipping\n" if ($verbose); + next; + } + + my $mocs = ""; # Moc files (in this program) + my $moc_cpp_added = 0; # If we added some .moc.cpp files, due to + # no other .cpp file including the .moc one. + + my @progsources = split(/[\034\s]+/, $sources{$program}); + my %shash = (); + @shash{@progsources} = 1; # we are only interested in the existence + my %sourcelist = (); + + foreach $source (@progsources) { + my $suffix = $source; + $suffix =~ s/^.*\.([^\.]+)$/$1/; + + $sourcelist{$suffix} .= "$source "; + } + foreach my $mocFile (keys (%globalmocs)) + { + my ($dir, $hFile, $cppFile) = split ("\035", $globalmocs{$mocFile}, 3); + if (defined ($cppFile)) { + $mocs .= " $mocFile.moc" if exists $shash{$cppFile}; + } else { + $sourcelist{$cxxsuffix} .= "$mocFile.moc.$cxxsuffix "; + $moc_cpp_added = 1; + } + } + foreach $suffix (keys %sourcelist) { + + # See if this file contains c++ code. (i.e., just check the file's suffix against c++ extensions) + my $suffix_is_cxx = 0; + if($suffix =~ /($cppExt)$/) { + $cxxsuffix = $1; + $suffix_is_cxx = 1; + } + + my $mocfiles_in = ($suffix eq $cxxsuffix) && $moc_cpp_added; + + my @sourcelist = split(/[\034\s]+/, $sourcelist{$suffix}); + + if ((@sourcelist == 1 && !$mocfiles_in) || $suffix_is_cxx != 1 ) { + + # we support IDL on our own + if ($suffix eq "skel" || $suffix =~ /^stub/ + || $suffix =~ /^signals/ # obsolete, remove in KDE-4 + || $suffix eq "h" || $suffix eq "ui" ) { + next; + } + + foreach $file (@sourcelist) { + $file =~ s/\Q$suffix\E$//; + + $finalObjs{$program} .= $file; + if ($program =~ /_la$/) { + $finalObjs{$program} .= "lo "; + } else { + $finalObjs{$program} .= "o "; + } + } + next; # suffix + } + + my $source_deps = ""; + foreach $source (@sourcelist) { + if (-f $source) { + $source_deps .= " \$(srcdir)/$source"; + } else { + $source_deps .= " $source"; + } + } + + $handling = "$program.all_$suffix.$suffix: \$(srcdir)/Makefile.in" . $source_deps . " " . join(' ', $mocs) . "\n"; + $handling .= "\t\@echo 'creating $program.all_$suffix.$suffix ...'; \\\n"; + $handling .= "\trm -f $program.all_$suffix.files $program.all_$suffix.final; \\\n"; + $handling .= "\techo \"#define KDE_USE_FINAL 1\" >> $program.all_$suffix.final; \\\n"; + $handling .= "\tfor file in " . $sourcelist{$suffix} . "; do \\\n"; + $handling .= "\t echo \"#include \\\"\$\$file\\\"\" >> $program.all_$suffix.files; \\\n"; + $handling .= "\t test ! -f \$\(srcdir\)/\$\$file || egrep '^#pragma +implementation' \$\(srcdir\)/\$\$file >> $program.all_$suffix.final; \\\n"; + $handling .= "\tdone; \\\n"; + $handling .= "\tcat $program.all_$suffix.final $program.all_$suffix.files > $program.all_$suffix.$suffix; \\\n"; + $handling .= "\trm -f $program.all_$suffix.final $program.all_$suffix.files\n"; + + appendLines($handling); + + push(@final_names, "$program.all_$suffix.$suffix"); + my $finalObj = "$program.all_$suffix."; + if ($program =~ /_la$/) { + $finalObj .= "lo"; + } else { + $finalObj .= "o"; + } + $finalObjs{$program} .= $finalObj . " "; + } + } + + if (!$kdeopts{"nofinal"} && @final_names >= 1) { + # add clean-final target + my $lines = "$cleantarget-final:\n"; + $lines .= "\t-rm -f " . join(' ', @final_names) . "\n" if (@final_names); + appendLines($lines); + $target_adds{"$cleantarget-am"} .= "$cleantarget-final "; + + foreach $finalfile (@final_names) { + $finalfile =~ s/\.[^.]*$/.P/; + $dep_finals .= " \$(DEPDIR)/$finalfile"; + } + } +} + +#----------------------------------------------------------------------------- + +sub tag_COMPILE_FIRST() +{ + foreach $program (@programs) { + my $lookup = "$program" . '_COMPILE_FIRST\s*=\s*(.*)'; + if ($MakefileData =~ m/\n$lookup\n/) { + my $compilefirst_str = $1; + my @compilefirst = split(/[\034\s]+/, $compilefirst_str); + my @progsources = split(/[\034\s]+/, $sources{$program}); + my %donesources = (); + $handling = ""; + foreach $source (@progsources) { + my @deps = (); + my $sdeps = ""; + if (-f $source) { + $sdeps = "\$(srcdir)/$source"; + } else { + $sdeps = "$source"; + } + foreach $depend (@compilefirst) { + next if ($source eq $depend); + # avoid cyclic dependencies + next if defined($donesources{$depend}); + push @deps, $depend; + } + $handling .= "$sdeps: " . join(' ', @deps) . "\n" if (@deps); + $donesources{$source} = 1; + } + appendLines($handling) if (length($handling)); + } + } +} + +#----------------------------------------------------------------------------- + + +# Organises the list of headers that we'll use to produce moc files +# from. +sub tag_METASOURCES () +{ + local @newObs = (); # here we add to create object files + local @deped = (); # here we add to create moc files + local $mocExt = ".moc"; + local %mocFiles = (); + + my $line = ""; + my $postEqual = ""; + + my $lookup; + my $found = ""; +#print "$program: tag_METASOURCES\n"; + if ($metasourceTags > 1) { + $lookup = $program . '_METASOURCES\s*=\s*(.*)'; + return 1 if ($MakefileData !~ /\n($lookup)\n/); + $found = $1; + } else { + $lookup = $program . '_METASOURCES\s*=\s*(.*)'; + if ($MakefileData !~ /\n($lookup)\n/) { + $lookup = 'METASOURCES\s*=\s*(.*)'; + return 1 if ($MakefileData !~ /\n($lookup)\n/o); + $found = $1; + $metasourceTags = 0; # we can use the general target only once + } else { + $found = $1; + } + } + print STDOUT "METASOURCE processing <$found>)\n" if ($verbose); + + $postEqual = $found; + $postEqual =~ s/[^=]*=//; + + removeLine ($lookup, $found); + + # Always find the header files that could be used to "moc" + return 1 if (findMocCandidates ()); + + if ($postEqual =~ /AUTO\s*(\S*)|USE_AUTOMOC\s*(\S*)/) + { + print STDERR "$printname: the argument for AUTO|USE_AUTOMOC is obsolete" if ($+); + $mocExt = ".moc.$cxxsuffix"; + $haveAutomocTag = 1; + } + else + { + # Not automoc so read the list of files supplied which + # should be .moc files. + + $postEqual =~ tr/\034/ /; + + # prune out extra headers - This also checks to make sure that + # the list is valid. + pruneMocCandidates ($postEqual); + } + + checkMocCandidates (); + + if (@newObs) { + my $ext = ($program =~ /_la$/) ? ".moc.lo " : ".moc.o "; + $realObjs{$program} .= "\034" . join ($ext, @newObs) . $ext; + $depedmocs{$program} = join (".moc.$cxxsuffix " , @newObs) . ".moc.$cxxsuffix"; + foreach $file (@newObs) { + $dep_files .= " \$(DEPDIR)/$file.moc.P" if($dep_files !~/$file.moc.P/); + } + } + if (@deped) { + $depedmocs{$program} .= " "; + $depedmocs{$program} .= join('.moc ', @deped) . ".moc"; + $depedmocs{$program} .= " "; + } + addMocRules (); + @globalmocs{keys %mocFiles}=values %mocFiles; +} + +#----------------------------------------------------------------------------- + +# Returns 0 if the line was processed - 1 otherwise. +# Errors are logged in the global $errorflags +sub tag_AUTOMAKE () +{ + my $lookup = '.*cd \$\(top_srcdir\)\s+&&[\034\s]+\$\(AUTOMAKE\)(.*)'; + return 1 if ($MakefileData !~ /\n($lookup)\n/); + print STDOUT "AUTOMAKE processing <$1>\n" if ($verbose); + + my $newLine = $1."\n\tcd \$(top_srcdir) && perl $thisProg $printname"; + substituteLine ($lookup, $newLine); + $automkCall = $1; + return 0; +} + +#----------------------------------------------------------------------------- + +sub handle_TOPLEVEL() +{ + my $pofiles = ""; + my @restfiles = (); + opendir (THISDIR, "."); + foreach $entry (readdir(THISDIR)) { + next if (-d $entry); + + next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/ || $entry =~ /.gmo$/); + + if ($entry =~ /\.po$/) { + next; + } + push(@restfiles, $entry); + } + closedir (THISDIR); + + if (@restfiles) { + $target_adds{"install-data-am"} .= "install-nls-files "; + $lines = "install-nls-files:\n"; + $lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$kdelang\n"; + for $file (@restfiles) { + $lines .= "\t\$(INSTALL_DATA) \$\(srcdir\)/$file \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n"; + } + $target_adds{"uninstall"} .= "uninstall-nls-files "; + $lines .= "uninstall-nls-files:\n"; + for $file (@restfiles) { + $lines .= "\t-rm -f \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n"; + } + appendLines($lines); + } + + return 0; +} + +#----------------------------------------------------------------------------- + +sub tag_SUBDIRS () +{ + if ($MakefileData !~ /\nSUBDIRS\s*=\s*\$\(AUTODIRS\)\s*\n/) { + return 1; + } + + my $subdirs = "."; + + opendir (THISDIR, "."); + foreach $entry (readdir(THISDIR)) { + next if ($entry eq "CVS" || $entry =~ /^\./); + if (-d $entry && -f $entry . "/Makefile.am") { + $subdirs .= " $entry"; + next; + } + } + closedir (THISDIR); + + my $lines = "SUBDIRS =$subdirs\n"; + substituteLine('SUBDIRS\s*=.*', $lines); + return 0; +} + +sub tag_IDLFILES () +{ + my @psources = split(/[\034\s]+/, $sources{$program}); + my $dep_lines = ""; + my @cppFiles = (); + + foreach $source (@psources) { + + my $skel = ($source =~ m/\.skel$/); + my $stub = ($source =~ m/\.stub$/); + my $signals = ($source =~ m/\.signals$/); # obsolete, remove in KDE-4 + + if ($stub || $skel || $signals) { + + my $qs = quotemeta($source); + $sources{$program} =~ s/$qs//; + $sources_changed{$program} = 1; + + print STDOUT "adding IDL file $source\n" if ($verbose); + + $source =~ s/\.(stub|skel|signals)$//; + + my $sourcename; + + if ($skel) { + $sourcename = "$source\_skel"; + } elsif ($stub) { + $sourcename = "$source\_stub"; + } else { + $sourcename = "$source\_signals"; + } + + my $sourcedir = ''; + if (-f "$makefileDir/$source.h") { + $sourcedir = '$(srcdir)/'; + } else { + if ($MakefileData =~ /\n$source\_DIR\s*=\s*(\S+)\n/) { + $sourcedir = $1; + $sourcedir .= "/" if ($sourcedir !~ /\/$/); + } + } + + if ($allidls !~ /$source\_kidl/) { + + $dep_lines .= "$source.kidl: $sourcedir$source.h \$(DCOP_DEPENDENCIES)\n"; + $dep_lines .= "\t\$(DCOPIDL) $sourcedir$source.h > $source.kidl || ( rm -f $source.kidl ; false )\n"; + + $allidls .= $source . "_kidl "; + } + + if ($allidls !~ /$sourcename/) { + + $dep_lines_tmp = ""; + + if ($skel) { + $dep_lines .= "$sourcename.$cxxsuffix: $source.kidl\n"; + $dep_lines .= "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-stub $source.kidl\n"; + } elsif ($stub) { + $dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-skel $source.kidl\n"; + } else { # signals - obsolete, remove in KDE 4 + $dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-stub --no-skel $source.kidl\n"; + } + + if ($stub || $signals) { + $target_adds{"$sourcename.$cxxsuffix"} .= "$sourcename.h "; + $dep_lines .= "$sourcename.h: $source.kidl\n"; + $dep_lines .= $dep_lines_tmp; + } + + $allidls .= $sourcename . " "; + } + + $idlfiles{$program} .= $sourcename . " "; + + if ($program =~ /_la$/) { + $realObjs{$program} .= " $sourcename.lo"; + } else { + $realObjs{$program} .= " $sourcename.\$(OBJEXT)"; + } + $sources{$program} .= " $sourcename.$cxxsuffix"; + $sources_changed{$program} = 1; + $important{$program} .= "$sourcename.h " if (!$skel); + $idl_output .= "\\\n\t$sourcename.$cxxsuffix $sourcename.h $source.kidl "; + push(@cleanfiles, "$sourcename.$cxxsuffix"); + push(@cleanfiles, "$sourcename.h"); + push(@cleanfiles, "$sourcename.kidl"); + $dep_files .= " \$(DEPDIR)/$sourcename.P" if ($dep_files !~/$sourcename.P/); + } + } + if ($dep_lines) { + appendLines($dep_lines); + } + + if (0) { + my $lookup = "($program)"; + $lookup .= '(|\$\(EXEEXT\))'; + $lookup =~ s/\_/./g; + $lookup .= ":(.*..$program\_OBJECTS..*)"; + # $lookup = quotemeta($lookup); + if ($MakefileData =~ /\n$lookup\n/) { + + my $line = "$1$2: "; + foreach $file (split(' ', $idlfiles{$program})) { + $line .= "$file.$cxxsuffix "; + } + $line .= $3; + substituteLine($lookup, $line); + } else { + print STDERR "no built dependency found $lookup\n"; + } + } +} + +sub tag_UIFILES () +{ + my @psources = split(/[\034\s]+/, $sources{$program}); + my $dep_lines = ""; + my @depFiles = (); + + foreach $source (@psources) { + + if ($source =~ m/\.ui$/) { + + print STDERR "adding UI file $source\n" if ($verbose); + + my $qs = quotemeta($source); + $sources{$program} =~ s/$qs//; + $sources_changed{$program} = 1; + + $source =~ s/\.ui$//; + + my $sourcedir = ''; + if (-f "$makefileDir/$source.ui") { + $sourcedir = '$(srcdir)/'; + } + + if (!$uiFiles{$source}) { + + $dep_lines .= "$source.$cxxsuffix: $sourcedir$source.ui $source.h $source.moc\n"; + $dep_lines .= "\trm -f $source.$cxxsuffix\n"; + if (!$kdeopts{"qtonly"}) { + $dep_lines .= "\techo '#include ' > $source.$cxxsuffix\n"; + my ($mangled_source) = $source; + $mangled_source =~ s/[^A-Za-z0-9]/_/g; # get rid of garbage + $dep_lines .= "\t\$(UIC) -tr \${UIC_TR} -i $source.h $sourcedir$source.ui > $source.$cxxsuffix.temp ; ret=\$\$?; \\\n"; + $dep_lines .= "\tsed -e \"s,\${UIC_TR}( \\\"\\\" ),QString::null,g\" $source.$cxxsuffix.temp | sed -e \"s,\${UIC_TR}( \\\"\\\"\\, \\\"\\\" ),QString::null,g\" | sed -e \"s,image\\([0-9][0-9]*\\)_data,img\\1_" . $mangled_source . ",g\" >> $source.$cxxsuffix ;\\\n"; + $dep_lines .= "\trm -f $source.$cxxsuffix.temp ;\\\n"; + } else { + $dep_lines .= "\t\$(UIC) -i $source.h $sourcedir$source.ui > $source.$cxxsuffix; ret=\$\$?; \\\n"; + } + $dep_lines .= "\tif test \"\$\$ret\" = 0; then echo '#include \"$source.moc\"' >> $source.$cxxsuffix; else rm -f $source.$cxxsuffix ; exit \$\$ret ; fi\n\n"; + $dep_lines .= "$source.h: $sourcedir$source.ui\n"; + $dep_lines .= "\t\$(UIC) -o $source.h $sourcedir$source.ui\n\n"; + $dep_lines .= "$source.moc: $source.h\n"; + $dep_lines .= "\t\$(MOC) $source.h -o $source.moc\n"; + + $uiFiles{$source} = 1; + $depedmocs{$program} .= " $source.moc"; + $globalmocs{$source} = "\035$source.h\035$source.cpp"; + } + + if ($program =~ /_la$/) { + $realObjs{$program} .= " $source.lo"; + } else { + $realObjs{$program} .= " $source.\$(OBJEXT)"; + } + $sources{$program} .= " $source.$cxxsuffix"; + $sources_changed{$program} = 1; + $important{$program} .= "$source.h "; + $ui_output .= "\\\n\t$source.$cxxsuffix $source.h $source.moc "; + push(@cleanfiles, "$source.$cxxsuffix"); + push(@cleanfiles, "source.h"); + push(@cleanfiles, "$source.moc"); + $dep_files .= " \$(DEPDIR)/$source.P" if($dep_files !~/$source.P/ ); + } + } + if ($dep_lines) { + appendLines($dep_lines); + } +} + +sub tag_ICON() +{ + my $lookup = '([^\s]*)_ICON\s*=\s*([^\n]*)'; + my $install = ""; + my $uninstall = ""; + + while ($MakefileData =~ /\n$lookup/og) { + my $destdir; + if ($1 eq "KDE") { + $destdir = "kde_icondir"; + } else { + $destdir = $1 . "dir"; + } + my $iconauto = ($2 =~ /AUTO\s*$/); + my @appnames = (); + if ( ! $iconauto ) { + my $appicon_str = $2; + my @_appnames = split(" ", $appicon_str); + print STDOUT "KDE_ICON processing <@_appnames>\n" if ($verbose); + foreach $appname (@_appnames) { + push(@appnames, quotemeta($appname)); + } + } else { + print STDOUT "KDE_ICON processing \n" if ($verbose); + } + + my @files = (); + opendir (THISDIR, "."); + foreach $entry (readdir(THISDIR)) { + next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/); + next if (! -f $entry); + if ( $iconauto ) + { + push(@files, $entry) + if ($entry =~ /\.xpm/ || $entry =~ /\.png/ || $entry =~ /\.mng/ || $entry =~ /\.svg/); + } else { + foreach $appname (@appnames) { + push(@files, $entry) + if ($entry =~ /-$appname\.xpm/ || $entry =~ /-$appname\.png/ || $entry =~ /-$appname\.mng/ || $entry =~ /-$appname\.svg/); + } + } + } + closedir (THISDIR); + + my %directories = (); + + foreach $file (@files) { + my $newfile = $file; + my $prefix = $file; + $prefix =~ s/\.(png|xpm|mng|svg|svgz)$//; + my $appname = $prefix; + $appname =~ s/^[^-]+-// if ($appname =~ /-/) ; + $appname =~ s/^[^-]+-// if ($appname =~ /-/) ; + $appname = quotemeta($appname); + $prefix =~ s/$appname$//; + $prefix =~ s/-$//; + + $prefix = 'lo16-app' if ($prefix eq 'mini'); + $prefix = 'lo32-app' if ($prefix eq 'lo'); + $prefix = 'hi48-app' if ($prefix eq 'large'); + $prefix .= '-app' if ($prefix =~ m/^...$/); + + my $type = $prefix; + $type =~ s/^.*-([^-]+)$/$1/; + $prefix =~ s/^(.*)-[^-]+$/$1/; + + my %type_hash = + ( + 'action' => 'actions', + 'app' => 'apps', + 'device' => 'devices', + 'filesys' => 'filesystems', + 'mime' => 'mimetypes' + ); + + if (! defined $type_hash{$type} ) { + print STDERR "unknown icon type $type in $printname ($file)\n"; + next; + } + + my %dir_hash = + ( + 'los' => 'locolor/16x16', + 'lom' => 'locolor/32x32', + 'him' => 'hicolor/32x32', + 'hil' => 'hicolor/48x48', + 'lo16' => 'locolor/16x16', + 'lo22' => 'locolor/22x22', + 'lo32' => 'locolor/32x32', + 'hi16' => 'hicolor/16x16', + 'hi22' => 'hicolor/22x22', + 'hi32' => 'hicolor/32x32', + 'hi48' => 'hicolor/48x48', + 'hi64' => 'hicolor/64x64', + 'hi128' => 'hicolor/128x128', + 'hisc' => 'hicolor/scalable', + 'cr16' => 'crystalsvg/16x16', + 'cr22' => 'crystalsvg/22x22', + 'cr32' => 'crystalsvg/32x32', + 'cr48' => 'crystalsvg/48x48', + 'cr64' => 'crystalsvg/64x64', + 'cr128' => 'crystalsvg/128x128', + 'crsc' => 'crystalsvg/scalable' + ); + + $newfile =~ s@.*-($appname\.(png|xpm|mng|svgz|svg?))@$1@; + + if (! defined $dir_hash{$prefix}) { + print STDERR "unknown icon prefix $prefix in $printname\n"; + next; + } + + my $dir = $dir_hash{$prefix} . "/" . $type_hash{$type}; + if ($newfile =~ /-[^\.]/) { + my $tmp = $newfile; + $tmp =~ s/^([^-]+)-.*$/$1/; + $dir = $dir . "/" . $tmp; + $newfile =~ s/^[^-]+-//; + } + + if (!defined $directories{$dir}) { + $install .= "\t\$(mkinstalldirs) \$(DESTDIR)\$($destdir)/$dir\n"; + $directories{$dir} = 1; + } + + $install .= "\t\$(INSTALL_DATA) \$(srcdir)/$file \$(DESTDIR)\$($destdir)/$dir/$newfile\n"; + $uninstall .= "\t-rm -f \$(DESTDIR)\$($destdir)/$dir/$newfile\n"; + + } + } + + if (length($install)) { + $target_adds{"install-data-am"} .= "install-kde-icons "; + $target_adds{"uninstall-am"} .= "uninstall-kde-icons "; + appendLines("install-kde-icons:\n" . $install . "\nuninstall-kde-icons:\n" . $uninstall); + } +} + +sub handle_POFILES($$) +{ + my @pofiles = split(" ", $_[0]); + my $lang = $_[1]; + + # Build rules for creating the gmo files + my $tmp = ""; + my $allgmofiles = ""; + my $pofileLine = "POFILES ="; + foreach $pofile (@pofiles) + { + $pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension + $tmp .= "$1.gmo: $pofile\n"; + $tmp .= "\trm -f $1.gmo; \$(GMSGFMT) -o $1.gmo \$(srcdir)/$pofile\n"; + $tmp .= "\ttest ! -f $1.gmo || touch $1.gmo\n"; + $allgmofiles .= " $1.gmo"; + $pofileLine .= " $1.po"; + } + appendLines ($tmp); + my $lookup = 'POFILES\s*=([^\n]*)'; + if ($MakefileData !~ /\n$lookup/o) { + appendLines("$pofileLine\nGMOFILES =$allgmofiles"); + } else { + substituteLine ($lookup, "$pofileLine\nGMOFILES =$allgmofiles"); + } + + if ($allgmofiles) { + + # Add the "clean" rule so that the maintainer-clean does something + appendLines ("clean-nls:\n\t-rm -f $allgmofiles\n"); + + $target_adds{"maintainer-clean"} .= "clean-nls "; + + $lookup = 'DISTFILES\s*=\s*(.*)'; + if ($MakefileData =~ /\n$lookup\n/o) { + $tmp = "DISTFILES = \$(GMOFILES) \$(POFILES) $1"; + substituteLine ($lookup, $tmp); + } + } + + $target_adds{"install-data-am"} .= "install-nls "; + + $tmp = "install-nls:\n"; + if ($lang) { + $tmp .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES\n"; + } + $tmp .= "\t\@for base in "; + foreach $pofile (@pofiles) + { + $pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension + $tmp .= "$1 "; + } + + $tmp .= "; do \\\n"; + if ($lang) { + $tmp .= "\t echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n"; + $tmp .= "\t if test -f \$\$base.gmo; then \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n"; + $tmp .= "\t elif test -f \$(srcdir)/\$\$base.gmo; then \$(INSTALL_DATA) \$(srcdir)/\$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n"; + $tmp .= "\t fi ;\\\n"; + } else { + $tmp .= "\t echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n"; + $tmp .= "\t \$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES ; \\\n"; + $tmp .= "\t if test -f \$\$base.gmo; then \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n"; + $tmp .= "\t elif test -f \$(srcdir)/\$\$base.gmo; then \$(INSTALL_DATA) \$(srcdir)/\$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n"; + $tmp .= "\t fi ;\\\n"; + } + $tmp .= "\tdone\n\n"; + appendLines ($tmp); + + $target_adds{"uninstall"} .= "uninstall-nls "; + + $tmp = "uninstall-nls:\n"; + foreach $pofile (@pofiles) + { + $pofile =~ /(.*)\.[^\.]*$/; # Find name minus extension + if ($lang) { + $tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/$1.mo\n"; + } else { + $tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$1/LC_MESSAGES/\$(PACKAGE).mo\n"; + } + } + appendLines($tmp); + + $target_adds{"all"} .= "all-nls "; + + $tmp = "all-nls: \$(GMOFILES)\n"; + + appendLines($tmp); + + $target_adds{"distdir"} .= "distdir-nls "; + + $tmp = "distdir-nls:\$(GMOFILES)\n"; + $tmp .= "\tfor file in \$(POFILES); do \\\n"; + $tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n"; + $tmp .= "\tdone\n"; + $tmp .= "\tfor file in \$(GMOFILES); do \\\n"; + $tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n"; + $tmp .= "\tdone\n"; + + appendLines ($tmp); + + if (!$lang) { + appendLines("merge:\n\t\$(MAKE) -f \$(top_srcdir)/admin/Makefile.common package-merge POFILES=\"\${POFILES}\" PACKAGE=\${PACKAGE}\n\n"); + } + +} + +#----------------------------------------------------------------------------- + +# Returns 0 if the line was processed - 1 otherwise. +# Errors are logged in the global $errorflags +sub tag_POFILES () +{ + my $lookup = 'POFILES\s*=([^\n]*)'; + return 1 if ($MakefileData !~ /\n$lookup/o); + print STDOUT "POFILES processing <$1>\n" if ($verbose); + + my $tmp = $1; + + # make sure these are all gone. + if ($MakefileData =~ /\n\.po\.gmo:\n/) + { + print STDERR "Warning: Found old .po.gmo rules in $printname. New po rules not added\n"; + return 1; + } + + # Either find the pofiles in the directory (AUTO) or use + # only the specified po files. + my $pofiles = ""; + if ($tmp =~ /^\s*AUTO\s*$/) + { + opendir (THISDIR, "."); + $pofiles = join(" ", grep(/\.po$/, readdir(THISDIR))); + closedir (THISDIR); + print STDOUT "pofiles found = $pofiles\n" if ($verbose); + if (-f "charset" && -f "kdelibs.po") { + handle_TOPLEVEL(); + } + } + else + { + $tmp =~ s/\034/ /g; + $pofiles = $tmp; + } + return 1 if (!$pofiles); # Nothing to do + + handle_POFILES($pofiles, $kdelang); + + return 0; +} + +sub helper_LOCALINSTALL($) +{ + my $lookup = "\035" . $_[0] . " *:[^\035]*\035\t"; + my $copy = $MakefileData; + $copy =~ s/\n/\035/g; + if ($copy =~ /($lookup.*)$/) { + + $install = $1; + $install =~ s/\035$_[0] *:[^\035]*\035//; + my $emptyline = 0; + while (! $emptyline ) { + if ($install =~ /([^\035]*)\035(.*)/) { + local $line = $1; + $install = $2; + if ($line !~ /^\s*$/ && $line !~ /^(\@.*\@)*\t/) { + $emptyline = 1; + } else { + replaceDestDir($line); + } + } else { + $emptyline = 1; + } + } + } + +} + +sub tag_LOCALINSTALL () +{ + helper_LOCALINSTALL('install-exec-local'); + helper_LOCALINSTALL('install-data-local'); + helper_LOCALINSTALL('uninstall-local'); + + return 0; +} + +sub replaceDestDir($) { + local $line = $_[0]; + + if ( $line =~ /^\s*(\@.*\@)*\s*\$\(mkinstalldirs\)/ + || $line =~ /^\s*(\@.*\@)*\s*\$\(INSTALL\S*\)/ + || $line =~ /^\s*(\@.*\@)*\s*(-?rm.*) \S*$/) + { + $line =~ s/^(.*) ([^\s]+)\s*$/$1 \$(DESTDIR)$2/ if ($line !~ /\$\(DESTDIR\)/); + } + + if ($line ne $_[0]) { + $_[0] = quotemeta $_[0]; + substituteLine($_[0], $line); + } +} + +#--------------------------------------------------------------------------- +sub tag_CLOSURE () { + return if ($program !~ /_la$/); + + my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n"; + $MakefileData =~ m/$lookup/; + return if ($1 !~ /CXXLINK/); + + if ($MakefileData !~ /\n$program\_LDFLAGS\s*=.*-no-undefined/ && + $MakefileData !~ /\n$program\_LDFLAGS\s*=.*KDE_PLUGIN/ ) { + print STDERR "Report: $program contains undefined in $printname\n" if ($program =~ /^lib/ && $dryrun); + return; + } + + my $closure = $realname{$program} . ".closure"; + my $lines = "$closure: \$($program\_OBJECTS) \$($program\_DEPENDENCIES)\n"; + $lines .= "\t\@echo \"int main() {return 0;}\" > $program\_closure.$cxxsuffix\n"; + $lines .= "\t\@\$\(LTCXXCOMPILE\) -c $program\_closure.$cxxsuffix\n"; + $lines .= "\t\$\(CXXLINK\) $program\_closure.lo \$($program\_LDFLAGS) \$($program\_OBJECTS) \$($program\_LIBADD) \$(LIBS)\n"; + $lines .= "\t\@rm -f $program\_closure.* $closure\n"; + $lines .= "\t\@echo \"timestamp\" > $closure\n"; + $lines .= "\n"; + appendLines($lines); + $lookup = $realname{$program} . ": (.*)"; + if ($MakefileData =~ /\n$lookup\n/) { + $lines = "\@KDE_USE_CLOSURE_TRUE@". $realname{$program} . ": $closure $1"; + $lines .= "\n\@KDE_USE_CLOSURE_FALSE@" . $realname{$program} . ": $1"; + substituteLine($lookup, $lines); + } + $closure_output .= " $closure"; +} + +sub tag_DIST () { + my %foundfiles = (); + opendir (THISDIR, "."); + foreach $entry (readdir(THISDIR)) { + next if ($entry eq "CVS" || $entry =~ /^\./ || $entry eq "Makefile" || $entry =~ /~$/ || $entry =~ /^\#.*\#$/); + next if (! -f $entry); + next if ($entry =~ /\.moc/ || $entry =~ /\.moc.$cppExt$/ || $entry =~ /\.lo$/ || $entry =~ /\.la$/ || $entry =~ /\.o/); + next if ($entry =~ /\.all_$cppExt\.$cppExt$/); + $foundfiles{$entry} = 1; + } + closedir (THISDIR); + + # doing this for MAINTAINERCLEANFILES would be wrong + my @marks = ("EXTRA_DIST", "DIST_COMMON", '\S*_SOURCES', '\S*_HEADERS', 'CLEANFILES', 'DISTCLEANFILES', '\S*_OBJECTS'); + foreach $mark (@marks) { + while ($MakefileData =~ /\n($mark)\s*=\s*([^\n]*)/g) { + my $cleanfiles_str = $2; + foreach $file (split('[\034\s]+', $cleanfiles_str)) { + $file =~ s/\.\///; + $foundfiles{$file} = 0 if (defined $foundfiles{$file}); + } + } + } + my @files = ("Makefile", "config.cache", "config.log", "stamp-h", + "stamp-h1", "stamp-h1", "config.h", "Makefile", + "config.status", "config.h", "libtool", "core" ); + foreach $file (@files) { + $foundfiles{$file} = 0 if (defined $foundfiles{$file}); + } + + my $KDE_DIST = ""; + foreach $file (keys %foundfiles) { + if ($foundfiles{$file} == 1) { + $KDE_DIST .= "$file "; + } + } + if ($KDE_DIST) { + print "KDE_DIST $printname $KDE_DIST\n" if ($verbose); + + my $lookup = "DISTFILES *=(.*)"; + if ($MakefileData =~ /\n$lookup\n/o) { + substituteLine($lookup, "KDE_DIST=$KDE_DIST\n\nDISTFILES=$1 \$(KDE_DIST)\n"); + } + } +} + +#----------------------------------------------------------------------------- +# Returns 0 if the line was processed - 1 otherwise. +# Errors are logged in the global $errorflags +sub tag_DOCFILES () +{ + $target_adds{"all"} .= "docs-am "; + + my $lookup = 'KDE_DOCS\s*=\s*([^\n]*)'; + goto nodocs if ($MakefileData !~ /\n$lookup/o); + print STDOUT "KDE_DOCS processing <$1>\n" if ($verbose); + + my $tmp = $1; + + # Either find the files in the directory (AUTO) or use + # only the specified po files. + my $files = ""; + my $appname = $tmp; + $appname =~ s/^(\S*)\s*.*$/$1/; + if ($appname =~ /AUTO/) { + $appname = basename($makefileDir); + if ("$appname" eq "en") { + print STDERR "Error: KDE_DOCS = AUTO relies on the directory name. Yours is 'en' - you most likely want something else, e.g. KDE_DOCS = myapp\n"; + exit(1); + } + } + + if ($tmp !~ / - /) + { + opendir (THISDIR, "."); + foreach $entry (readdir(THISDIR)) { + next if ($entry eq "CVS" || $entry =~ /^\./ || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/ || $entry eq "core" || $entry eq "index.cache.bz2"); + next if (! -f $entry); + $files .= "$entry "; + } + closedir (THISDIR); + print STDOUT "docfiles found = $files\n" if ($verbose); + } + else + { + $tmp =~ s/\034/ /g; + $tmp =~ s/^\S*\s*-\s*//; + $files = $tmp; + } + goto nodocs if (!$files); # Nothing to do + + if ($files =~ /(^| )index\.docbook($| )/) { + + my $lines = ""; + my $lookup = 'MEINPROC\s*='; + if ($MakefileData !~ /\n($lookup)/) { + $lines = "MEINPROC=/\$(kde_bindir)/meinproc\n"; + } + $lookup = 'KDE_XSL_STYLESHEET\s*='; + if ($MakefileData !~ /\n($lookup)/) { + $lines .= "KDE_XSL_STYLESHEET=/\$(kde_datadir)/ksgmltools2/customization/kde-chunk.xsl\n"; + } + $lookup = '\nindex.cache.bz2:'; + if ($MakefileData !~ /\n($lookup)/) { + $lines .= "index.cache.bz2: \$(srcdir)/index.docbook \$(KDE_XSL_STYLESHEET) $files\n"; + $lines .= "\t\@if test -n \"\$(MEINPROC)\"; then echo \$(MEINPROC) --check --cache index.cache.bz2 \$(srcdir)/index.docbook; \$(MEINPROC) --check --cache index.cache.bz2 \$(srcdir)/index.docbook || true; fi\n"; + $lines .= "\n"; + } + + $lines .= "docs-am: index.cache.bz2\n"; + $lines .= "\n"; + $lines .= "install-docs: docs-am install-nls\n"; + $lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n"; + $lines .= "\t\@if test -f index.cache.bz2; then \\\n"; + $lines .= "\techo \$(INSTALL_DATA) index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n"; + $lines .= "\t\$(INSTALL_DATA) index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n"; + $lines .= "\telif test -f \$(srcdir)/index.cache.bz2; then \\\n"; + $lines .= "\techo \$(INSTALL_DATA) \$(srcdir)/index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n"; + $lines .= "\t\$(INSTALL_DATA) \$(srcdir)/index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n"; + $lines .= "\tfi\n"; + $lines .= "\t-rm -f \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/common\n"; + $lines .= "\t\$(LN_S) \$(kde_libs_htmldir)/$kdelang/common \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/common\n"; + + $lines .= "\n"; + $lines .= "uninstall-docs:\n"; + $lines .= "\t-rm -rf \$(kde_htmldir)/$kdelang/$appname\n"; + $lines .= "\n"; + $lines .= "clean-docs:\n"; + $lines .= "\t-rm -f index.cache.bz2\n"; + $lines .= "\n"; + $target_adds{"install-data-am"} .= "install-docs "; + $target_adds{"uninstall"} .= "uninstall-docs "; + $target_adds{"clean-am"} .= "clean-docs "; + appendLines ($lines); + } else { + appendLines("docs-am: $files\n"); + } + + $target_adds{"install-data-am"} .= "install-nls "; + $target_adds{"uninstall"} .= "uninstall-nls "; + + $tmp = "install-nls:\n"; + $tmp .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n"; + $tmp .= "\t\@for base in $files; do \\\n"; + $tmp .= "\t echo \$(INSTALL_DATA) \$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n"; + $tmp .= "\t \$(INSTALL_DATA) \$(srcdir)/\$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n"; + $tmp .= "\tdone\n"; + if ($appname eq 'common') { + $tmp .= "\t\@echo \"merging common and language specific dir\" ;\\\n"; + $tmp .= "\tif test ! -f \$(kde_htmldir)/en/common/kde-common.css; then echo 'no english docs found in \$(kde_htmldir)/en/common/'; exit 1; fi \n"; + $tmp .= "\t\@com_files=`cd \$(kde_htmldir)/en/common && echo *` ;\\\n"; + $tmp .= "\tcd \$(DESTDIR)\$(kde_htmldir)/$kdelang/common ;\\\n"; + $tmp .= "\tif test -n \"\$\$com_files\"; then for p in \$\$com_files ; do \\\n"; + $tmp .= "\t case \" $files \" in \\\n"; + $tmp .= "\t *\" \$\$p \"*) ;; \\\n"; + $tmp .= "\t *) test ! -f \$\$p && echo \$(LN_S) ../../en/common/\$\$p \$(DESTDIR)\$(kde_htmldir)/$kdelang/common/\$\$p && \$(LN_S) ../../en/common/\$\$p \$\$p ;; \\\n"; + $tmp .= "\t esac ; \\\n"; + $tmp .= "\tdone ; fi ; true\n"; + } + $tmp .= "\n"; + $tmp .= "uninstall-nls:\n"; + $tmp .= "\tfor base in $files; do \\\n"; + $tmp .= "\t rm -f \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n"; + $tmp .= "\tdone\n\n"; + appendLines ($tmp); + + $target_adds{"distdir"} .= "distdir-nls "; + + $tmp = "distdir-nls:\n"; + $tmp .= "\tfor file in $files; do \\\n"; + $tmp .= "\t cp \$(srcdir)/\$\$file \$(distdir); \\\n"; + $tmp .= "\tdone\n"; + + appendLines ($tmp); + + return 0; + + nodocs: + appendLines("docs-am:\n"); + return 1; +} + +#----------------------------------------------------------------------------- +# Find headers in any of the source directories specified previously, that +# are candidates for "moc-ing". +sub findMocCandidates () +{ + foreach $dir (@headerdirs) + { + my @list = (); + opendir (SRCDIR, "$dir"); + @hFiles = grep { /.+\.$hExt$/o && !/^\./ } readdir(SRCDIR); + closedir SRCDIR; + foreach $hf (@hFiles) + { + next if ($hf =~ /^\.\#/); + $hf =~ /(.*)\.[^\.]*$/; # Find name minus extension + next if ($uiFiles{$1}); + open (HFIN, "$dir/$hf") || die "Could not open $dir/$hf: $!\n"; + my $hfsize = 0; + seek(HFIN, 0, 2); + $hfsize = tell(HFIN); + seek(HFIN, 0, 0); + read HFIN, $hfData, $hfsize; + close HFIN; + # push (@list, $hf) if(index($hfData, "Q_OBJECT") >= 0); ### fast but doesn't handle //Q_OBJECT + # handle " { friend class blah; Q_OBJECT ", but don't match antlarr_Q_OBJECT (\b). + if ( $hfData =~ /{([^}]*)\bQ_OBJECT/s ) { + push (@list, $hf) unless $1 =~ m://[^\n]*Q_OBJECT[^\n]*$:s; ## reject "// Q_OBJECT" + } + } + # The assoc array of root of headerfile and header filename + foreach $hFile (@list) + { + $hFile =~ /(.*)\.[^\.]*$/; # Find name minus extension + if ($mocFiles{$1}) + { + print STDERR "Warning: Multiple header files found for $1\n"; + next; # Use the first one + } + $mocFiles{$1} = "$dir\035$hFile"; # Add relative dir + } + } + + return 0; +} + +#----------------------------------------------------------------------------- + +# The programmer has specified a moc list. Prune out the moc candidates +# list that we found based on looking at the header files. This generates +# a warning if the programmer gets the list wrong, but this doesn't have +# to be fatal here. +sub pruneMocCandidates ($) +{ + my %prunedMoc = (); + local @mocList = split(' ', $_[0]); + + foreach $mocname (@mocList) + { + $mocname =~ s/\.moc$//; + if ($mocFiles{$mocname}) + { + $prunedMoc{$mocname} = $mocFiles{$mocname}; + } + else + { + my $print = $makefileDir; + $print =~ s/^\Q$topdir\E\\//; + # They specified a moc file but we can't find a header that + # will generate this moc file. That's possible fatal! + print STDERR "Warning: No moc-able header file for $print/$mocname\n"; + } + } + + undef %mocFiles; + %mocFiles = %prunedMoc; +} + +#----------------------------------------------------------------------------- + +# Finds the cpp files (If they exist). +# The cpp files get appended to the header file separated by \035 +sub checkMocCandidates () +{ + my @cppFiles; + my $cpp2moc; # which c++ file includes which .moc files + my $moc2cpp; # which moc file is included by which c++ files + + return unless (keys %mocFiles); + opendir(THISDIR, ".") || return; + @cppFiles = grep { /.+\.$cppExt$/o && !/.+\.moc\.$cppExt$/o + && !/.+\.all_$cppExt\.$cppExt$/o + && !/^\./ } readdir(THISDIR); + closedir THISDIR; + return unless (@cppFiles); + my $files = join (" ", @cppFiles); + $cpp2moc = {}; + $moc2cpp = {}; + foreach $cxxf (@cppFiles) + { + open (CXXFIN, $cxxf) || die "Could not open $cxxf: $!\n"; + seek(CXXFIN, 0, 2); + my $cxxfsize = tell(CXXFIN); + seek(CXXFIN, 0, 0); + read CXXFIN, $cxxfData, $cxxfsize; + close CXXFIN; + while(($cxxfData =~ m/^[ \t]*\#include\s*[<\"](.*\.moc)[>\"]/gm)) { + $cpp2moc->{$cxxf}->{$1} = 1; + $moc2cpp->{$1}->{$cxxf} = 1; + } + } + foreach my $mocFile (keys (%mocFiles)) + { + @cppFiles = keys %{$moc2cpp->{"$mocFile.moc"}}; + if (@cppFiles == 1) { + $mocFiles{$mocFile} .= "\035" . $cppFiles[0]; + push(@deped, $mocFile); + } elsif (@cppFiles == 0) { + push (@newObs, $mocFile); # Produce new object file + next if ($haveAutomocTag); # This is expected... + # But this is an error we can deal with - let them know + print STDERR + "Warning: No c++ file that includes $mocFile.moc\n"; + } else { + # We can't decide which file to use, so it's fatal. Although as a + # guess we could use the mocFile.cpp file if it's in the list??? + print STDERR + "Error: Multiple c++ files that include $mocFile.moc\n"; + print STDERR "\t",join ("\t", @cppFiles),"\n"; + $errorflag = 1; + delete $mocFiles{$mocFile}; + # Let's continue and see what happens - They have been told! + } + } +} + +#----------------------------------------------------------------------------- + +# Add the rules for generating moc source from header files +# For Automoc output *.moc.cpp but normally we'll output *.moc +# (We must compile *.moc.cpp separately. *.moc files are included +# in the appropriate *.cpp file by the programmer) +sub addMocRules () +{ + my $cppFile; + my $hFile; + + foreach $mocFile (keys (%mocFiles)) + { + undef $cppFile; + ($dir, $hFile, $cppFile) = split ("\035", $mocFiles{$mocFile}, 3); + $dir =~ s#^\.#\$(srcdir)#; + if (defined ($cppFile)) + { + $cppFile =~ s,\.[^.]*$,,; + $target_adds{"$cppFile.o"} .= "$mocFile.moc "; + $target_adds{"$cppFile.lo"} .= "$mocFile.moc "; + appendLines ("$mocFile.moc: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile.moc\n"); + $cleanMoc .= " $mocFile.moc"; + appendLines ("mocs: $mocFile.moc"); + } + else + { + appendLines ("$mocFile$mocExt: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile$mocExt\n"); + $cleanMoc .= " $mocFile$mocExt"; + appendLines ("mocs: $mocFile$mocExt"); + } + } +} + +sub make_meta_classes () +{ + return if ($kdeopts{"qtonly"}); + + my $cppFile; + my $hFile; + my $moc_class_headers = ""; + foreach $program (@programs) { + my $mocs = ""; + my @progsources = split(/[\034\s]+/, $sources{$program}); + my @depmocs = split(' ', $depedmocs{$program}); + my %shash = (), %mhash = (); + @shash{@progsources} = 1; # we are only interested in the existence + @mhash{@depmocs} = 1; + + print STDOUT "program=$program\n" if ($verbose); + print STDOUT "psources=[".join(' ', keys %shash)."]\n" if ($verbose); + print STDOUT "depmocs=[".join(' ', keys %mhash)."]\n" if ($verbose); + print STDOUT "globalmocs=[".join(' ', keys(%globalmocs))."]\n" if ($verbose); + foreach my $mocFile (keys (%globalmocs)) + { + my ($dir, $hFile, $cppFile) = split ("\035", $globalmocs{$mocFile}, 3); + if (defined ($cppFile)) + { + $mocs .= " $mocFile.moc" if exists $shash{$cppFile}; + } + else + { + # Bah. This is the case, if no C++ file includes the .moc + # file. We make a .moc.cpp file for that. Unfortunately this + # is not included in the %sources hash, but rather is mentioned + # in %depedmocs. If the user wants to use AUTO he can't just + # use an unspecific METAINCLUDES. Instead he must use + # program_METAINCLUDES. Anyway, it's not working real nicely. + # E.g. Its not clear what happens if user specifies two + # METAINCLUDES=AUTO in the same Makefile.am. + $mocs .= " $mocFile.moc.$cxxsuffix" + if exists $mhash{$mocFile.".moc.$cxxsuffix"}; + } + } + if ($mocs) { + print STDOUT "==> mocs=[".$mocs."]\n" if ($verbose); + } + print STDOUT "\n" if $verbose; + } + if ($moc_class_headers) { + appendLines ("$cleantarget-moc-classes:\n\t-rm -f $moc_class_headers\n"); + $target_adds{"$cleantarget-am"} .= "$cleantarget-moc-classes "; + } +} + +#----------------------------------------------------------------------------- + +sub updateMakefile () +{ + return if ($dryrun); + + open (FILEOUT, "> $makefile") + || die "Could not create $makefile: $!\n"; + + $MakefileData =~ s/\034/\\\n/g; # Restore continuation lines + # Append our $progId line, _below_ the "generated by automake" line + # because automake-1.6 relies on the first line to be his own. + my $progIdLine = "\# $progId - " . '$Revision: 1.349.2.6 $ '."\n"; + if ( !( $MakefileData =~ s/^(.*generated .*by automake.*\n)/$1$progIdLine/ ) ) { + warn "automake line not found in $makefile\n"; + # Fallback: first line + print FILEOUT $progIdLine; + }; + print FILEOUT $MakefileData; + close FILEOUT; +} + +#----------------------------------------------------------------------------- + +# The given line needs to be removed from the makefile +# Do this by adding the special "removed line" comment at the line start. +sub removeLine ($$) +{ + my ($lookup, $old) = @_; + + $old =~ s/\034/\\\n#>- /g; # Fix continuation lines + $MakefileData =~ s/\n$lookup/\n#>\- $old/; +} + +#----------------------------------------------------------------------------- + +# Replaces the old line with the new line +# old line(s) are retained but tagged as removed. The new line(s) have the +# "added" tag placed before it. +sub substituteLine ($$) +{ + my ($lookup, $new) = @_; + + if ($MakefileData =~ /\n($lookup)/) { + $old = $1; + $old =~ s/\034/\\\n#>\- /g; # Fix continuation lines + my $newCount = ($new =~ tr/\034//) + ($new =~ tr/\n//) + 1; + $new =~ s/\\\n/\034/g; + $MakefileData =~ s/\n$lookup/\n#>- $old\n#>\+ $newCount\n$new/; + } else { + print STDERR "Warning: substitution of \"$lookup\" in $printname failed\n"; + } +} + +#----------------------------------------------------------------------------- + +# Slap new lines on the back of the file. +sub appendLines ($) +{ + my ($new) = @_; + my $newCount = ($new =~ tr/\034//) + ($new =~ tr/\n//) + 1; + $new =~ s/\\\n/\034/g; # Fix continuation lines + $MakefileData .= "\n#>\+ $newCount\n$new"; +} + +#----------------------------------------------------------------------------- + +# Restore the Makefile.in to the state it was before we fiddled with it +sub restoreMakefile () +{ + $MakefileData =~ s/# $progId[^\n\034]*[\n\034]*//g; + # Restore removed lines + $MakefileData =~ s/([\n\034])#>\- /$1/g; + # Remove added lines + while ($MakefileData =~ /[\n\034]#>\+ ([^\n\034]*)/) + { + my $newCount = $1; + my $removeLines = ""; + while ($newCount--) { + $removeLines .= "[^\n\034]*([\n\034]|)"; + } + $MakefileData =~ s/[\n\034]#>\+.*[\n\034]$removeLines/\n/; + } +} + +#----------------------------------------------------------------------------- diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/compile b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/compile new file mode 100644 index 000000000..c47069c48 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/compile @@ -0,0 +1,99 @@ +#! /bin/sh + +# Wrapper for compilers which do not understand `-c -o'. + +# Copyright 1999-2000 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Usage: +# compile PROGRAM [ARGS]... +# `-o FOO.o' is removed from the args passed to the actual compile. + +prog=$1 +shift + +ofile= +cfile= +args= +while test $# -gt 0; do + case "$1" in + -o) + # configure might choose to run compile as `compile cc -o foo foo.c'. + # So we do something ugly here. + ofile=$2 + shift + case "$ofile" in + *.o | *.obj) + ;; + *) + args="$args -o $ofile" + ofile= + ;; + esac + ;; + *.c) + cfile=$1 + args="$args $1" + ;; + *) + args="$args $1" + ;; + esac + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no `-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # `.c' file was seen then we are probably linking. That is also + # ok. + exec "$prog" $args +fi + +# Name of file we expect compiler to create. +cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'` + +# Create the lock directory. +# Note: use `[/.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d +while true; do + if mkdir $lockdir > /dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir $lockdir; exit 1" 1 2 15 + +# Run the compile. +"$prog" $args +status=$? + +if test -f "$cofile"; then + mv "$cofile" "$ofile" +fi + +rmdir $lockdir +exit $status diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/conf.change.pl b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/conf.change.pl new file mode 100644 index 000000000..bb7dcc1a3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/conf.change.pl @@ -0,0 +1,177 @@ +#!/usr/bin/perl -w + +# this script patches a config.status file, to use our own perl script +# in the main loop +# we do it this way to circumvent hacking (and thereby including) +# autoconf function (which are GPL) into our LGPL acinclude.m4.in +# written by Michael Matz +# adapted by Dirk Mueller +# +# This file is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. + +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. + +# You should have received a copy of the GNU Library General Public License +# along with this library; see the file COPYING.LIB. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# we have to change two places +# 1. the splitting of the substitutions into chunks of 90 (or even 48 in +# later autoconf's +# 2. the big main loop which patches all Makefile.in's + +use File::Basename; + +my $ac_aux_dir = dirname($0); +my ($flag); +local $ac_version = 0; +my $vpath_seen = 0; +$flag = 0; + +while (<>) { +# usage of $flag: 0 -- we have seen nothing yet +# 1 -- we are in (1) +# 2 -- we have ended (1) +# 3 -- we are in (2) +# 4 -- we ended (2) + + if ($flag == 4) { + print; + } elsif ($flag == 0) { +# 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..." +# ends with (excluding) "CONFIG_FILE=..." +# in later autoconf (2.14.1) there is no CONFIG_FILES= line, +# but instead the (2) directly follow (1) + if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) { + $flag = 1; + if ($1 eq 'lines') { + # lets hope its different with 2141, + # wasn't able to verify that + if ($2 eq '48') { + $ac_version = 250; + } + else { + $ac_version = 2141; + } + } elsif ($1 eq 'cmds') { + $ac_version = 213; + } + # hmm, we don't know the autoconf version, but we try anyway + } else { + print; + } + } elsif ($flag == 1) { + if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) { + print; + $flag = 2; + } elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) { + $flag = 3; + } + } elsif ($flag == 2) { +# 2. begins with: "for ac_file in.*CONFIG_FILES" (the next 'for' after (1)) +# end with: "rm -f conftest.s\*" +# on autoconf 250, it ends with '# CONFIG_HEADER section' + if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) { + $flag = 3; + } else { + print; + } + } elsif ($flag == 3) { + if (/^\s*rm\s+-f\s+conftest/ ) { + $flag = 4; + &insert_main_loop(); + } elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) { + $flag = 4; + &insert_main_loop(); + #die "hhhhhhh"; + if ($ac_version != 2141) { + print STDERR "hmm, don't know autoconf version\n"; + } + } elsif (/^\#\s*CONFIG_HEADER section.*/) { + $flag = 4; + &insert_main_loop(); + if($ac_version != 250) { + print STDERR "hmm, something went wrong :-(\n"; + } + } elsif (/VPATH/ ) { + $vpath_seen = 1; + } + } +} + +die "wrong input (flag != 4)" unless $flag == 4; +print STDERR "hmm, don't know autoconf version\n" unless $ac_version; + +sub insert_main_loop { + + if ($ac_version == 250) { + &insert_main_loop_250(); + } + else { + &insert_main_loop_213(); + } +} + +sub insert_main_loop_250 { + + print <>\$tmp/subs.sed +EOF + } + print <> \$tmp/subs.files + fi + done + if test -f \$tmp/subs.files ; then + perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL" + fi + rm -f \$tmp/subs.files + +fi +EOF + return; +} + +sub insert_main_loop_213 { + print <> \$ac_cs_root.subs +EOF + } + print <> \$ac_cs_root.sacfiles + fi +done +if test -f \$ac_cs_root.sacfiles ; then + perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL" +fi +rm -f \$ac_cs_root.s* + +EOF + return; +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/config.guess b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/config.guess new file mode 100644 index 000000000..05dbf055d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/config.guess @@ -0,0 +1,1362 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992-2002 Free Software Foundation, Inc. + +timestamp='2002-10-21' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# This shell variable is my proudest work .. or something. --bje + +set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ; +(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old) + || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ; +dummy=$tmpdir/dummy ; +files="$dummy.c $dummy.o $dummy.rel $dummy" ; +trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + rm -f $files ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; +unset files' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit 0 ;; + amiga:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + arc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + hp300:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + macppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme68k:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvme88k:OpenBSD:*:*) + echo m88k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + mvmeppc:OpenBSD:*:*) + echo powerpc-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + pmax:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sgi:OpenBSD:*:*) + echo mipseb-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + sun3:OpenBSD:*:*) + echo m68k-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + wgrisc:OpenBSD:*:*) + echo mipsel-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} + exit 0 ;; + alpha:OSF1:*:*) + if test $UNAME_RELEASE = "V4.0"; then + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + fi + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + eval $set_cc_for_build + cat <$dummy.s + .data +\$Lformat: + .byte 37,100,45,37,120,10,0 # "%d-%x\n" + + .text + .globl main + .align 4 + .ent main +main: + .frame \$30,16,\$26,0 + ldgp \$29,0(\$27) + .prologue 1 + .long 0x47e03d80 # implver \$0 + lda \$2,-1 + .long 0x47e20c21 # amask \$2,\$1 + lda \$16,\$Lformat + mov \$0,\$17 + not \$1,\$18 + jsr \$26,printf + ldgp \$29,0(\$26) + mov 0,\$16 + jsr \$26,exit + .end main +EOF + $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null + if test "$?" = 0 ; then + case `$dummy` in + 0-0) + UNAME_MACHINE="alpha" + ;; + 1-0) + UNAME_MACHINE="alphaev5" + ;; + 1-1) + UNAME_MACHINE="alphaev56" + ;; + 1-101) + UNAME_MACHINE="alphapca56" + ;; + 2-303) + UNAME_MACHINE="alphaev6" + ;; + 2-307) + UNAME_MACHINE="alphaev67" + ;; + 2-1307) + UNAME_MACHINE="alphaev68" + ;; + 3-1307) + UNAME_MACHINE="alphaev7" + ;; + esac + fi + rm -f $dummy.s $dummy && rmdir $tmpdir + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit 0 ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit 0;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit 0 ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit 0 ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit 0;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit 0 ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; + DRS?6000:UNIX_SV:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7 && exit 0 ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit 0 ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit 0 ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit 0 ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c \ + && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 + rm -f $dummy.c $dummy && rmdir $tmpdir + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit 0 ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:*:*:PowerMAX_OS) + echo powerpc-harris-powermax + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 + rm -f $dummy.c $dummy && rmdir $tmpdir + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi + rm -f $dummy.c $dummy && rmdir $tmpdir + fi ;; + esac + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 + rm -f $dummy.c $dummy && rmdir $tmpdir + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3D:*:*:*) + echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit 0 ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + # Determine whether the default compiler uses glibc. + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #if __GLIBC__ >= 2 + LIBC=gnu + #else + LIBC= + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + rm -f $dummy.c && rmdir $tmpdir + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} + exit 0 ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit 0 ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit 0 ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit 0 ;; + x86:Interix*:3*) + echo i386-pc-interix3 + exit 0 ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i386-pc-interix + exit 0 ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit 0 ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` + rm -f $dummy.c && rmdir $tmpdir + test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0 + ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit 0 ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit 0 ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit 0 ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit 0 ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit 0 ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit 0 ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit 0 ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit 0 ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit 0 ;; + coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit 0 ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit 0 ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #ifdef __INTEL_COMPILER + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` + rm -f $dummy.c && rmdir $tmpdir + test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 + test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit 0 ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit 0 ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit 0 ;; + i*86:*:5:[78]*) + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit 0 ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit 0 ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit 0 ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit 0 ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit 0 ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit 0 ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit 0 ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit 0 ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit 0 ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit 0 ;; + *:Darwin:*:*) + echo `uname -p`-apple-darwin${UNAME_RELEASE} + exit 0 ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit 0 ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit 0 ;; + NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit 0 ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit 0 ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit 0 ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit 0 ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit 0 ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit 0 ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit 0 ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit 0 ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit 0 ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit 0 ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit 0 ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit 0 ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit 0 ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit 0 ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 +rm -f $dummy.c $dummy && rmdir $tmpdir + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/config.pl b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/config.pl new file mode 100644 index 000000000..1af1cf27b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/config.pl @@ -0,0 +1,235 @@ +#!/usr/bin/perl +# a script for use by autoconf to make the Makefiles +# from the Makefile.in's +# +# the original autoconf mechanism first splits all substitutions into groups +# of ca. 90, and than invokes sed for _every_ Makefile.in and every group +# (so around 2-3 times per Makefile.in). So this takes forever, as sed +# has to recompile the regexps every time. +# +# this script does better. It changes all Makefile.ins in one process. +# in kdelibs the time for building Makefile went down from 2:59 min to 13 sec! +# +# written by Michael Matz +# adapted by Dirk Mueller + +# This file is free software; you can redistribute it and/or +# modify it under the terms of the GNU Library General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. + +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Library General Public License for more details. + +# You should have received a copy of the GNU Library General Public License +# along with this library; see the file COPYING.LIB. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +my $ac_subs=$ARGV[0]; +my $ac_sacfiles = $ARGV[1]; +my $ac_given_srcdir=$ARGV[2]; +my $ac_given_INSTALL=$ARGV[3]; + +#print "ac_subs=$ac_subs\n"; +#print "ac_sacfiles=$ac_sacfiles\n"; +#print "ac_given_srcdir=$ac_given_srcdir\n"; +#print "ac_given_INSTALL=$ac_given_INSTALL\n"; + +my ($srcdir, $top_srcdir); +my $INSTALL; +my $bad_perl = ($] < 5.005); + +open(CF, "< $ac_subs") || die "can't open $ac_subs: $!"; +my @subs = ; +close(CF); +chomp @subs; +@comp_match=(); +@comp_subs=(); + +if ($bad_perl) { + print "Using perl older than version 5.005\n"; + foreach my $pat (@subs) { + if ( ($pat =~ m/s%([^%]*)%([^%]*)%g/ ) + || ($pat =~ m/s%([^%]*)%([^%]*)%;t/ ) + || ($pat =~ m/s,([^,]*),(.*),;t/) + || ($pat =~ m%s/([^/]*)/([^/]*)/g% ) + || ($pat =~ m%s/([^/]*)/([^/]*)/;t% ) + ) { + # form : s%bla%blubb%g + # or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?) + # or s,bla,blubb,;t t (autoconf 2.52) + my $srch = $1; + my $repl = $2; + $repl =~ s/\\(.)/$1/g; + push @comp_subs, make_closure($srch, $repl); + + } elsif ( ($pat =~ /%([^%]*)%d/ ) + || ($pat =~ m%/([^/]*)/d% ) + ) { + push @comp_subs, make_closure($1, ""); + } else { + die "Uhh. Malformed pattern in $ac_subs ($pat)" + unless ( $pat =~ /^\s*$/ ); # ignore white lines + } + } +} else { + foreach my $pat (@subs) { + if ( ($pat =~ /s%([^%]*)%([^%]*)%g/ ) || + ($pat =~ /s%([^%]*)%([^%]*)%;t/ ) || + ($pat =~ /s,([^,]*),(.*),;t/) ) { + # form : s%bla%blubb%g + # or s%bla%blubb%;t t (autoconf > 2.13 and < 2.52 ?) + # or s,bla,blubb,;t t (autoconf 2.52) + my $srch = $1; + my $repl = $2; + push @comp_match, eval "qr/\Q$srch\E/"; # compile match pattern + $repl =~ s/\\(.)/$1/g; + push @comp_subs, $repl; + } elsif ( ($pat =~ /%([^%]*)%d/ ) + || ($pat =~ m%/([^/]*)/d% ) + ) { + push @comp_match, eval "qr/\Q$1\E/"; + push @comp_subs, ""; + } else { + die "Uhh. Malformed pattern in $ac_cs_root.subs ($pat)" + unless ( $pat =~ /^\s*$/ ); # ignore white lines + } + } +} +undef @subs; + +# read the list of files to be patched, form: +# ./Makefile arts/Makefile arts/examples/Makefile arts/flow/Makefile + +open(CF, "< $ac_sacfiles") || die "can't open $ac_sacfiles: $!"; +my @ac_files = ; +close(CF); +chomp @ac_files; + + +my $ac_file; +foreach $ac_file (@ac_files) { + next if $ac_file =~ /\.\./; + next if $ac_file =~ /^\s*$/; + my $ac_file_in; + my ($ac_dir, $ac_dots, $ac_dir_suffix); + + if ($ac_file =~ /.*:.*/ ) { + ($ac_file_in = $ac_file) =~ s%[^:]*:%%; + $ac_file =~ s%:.*%%; + } else { + $ac_file_in = $ac_file.".in"; + } + +# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + +# Remove last slash and all that follows it. Not all systems have dirname. + ($ac_dir = $ac_file) =~ s%/[^/][^/]*$%%; + if ( ($ac_dir ne $ac_file) && ($ac_dir ne ".")) { +# The file is in a subdirectory. + if (! -d "$ac_dir") { mkdir "$ac_dir", 0777; } + ($ac_dir_suffix = $ac_dir) =~ s%^./%%; + $ac_dir_suffix="/".$ac_dir_suffix; +# A "../" for each directory in $ac_dir_suffix. + ($ac_dots = $ac_dir_suffix) =~ s%/[^/]*%../%g; + } else { + $ac_dir_suffix=""; + $ac_dots=""; + } + + if ($ac_given_srcdir eq ".") { + $srcdir="."; + if ($ac_dots) { + ( $top_srcdir = $ac_dots) =~ s%/$%%; + } else { $top_srcdir="."; } + } elsif ($ac_given_srcdir =~ m%^/%) { + $srcdir=$ac_given_srcdir.$ac_dir_suffix; + $top_srcdir = $ac_given_srcdir; + } else { + $srcdir = $ac_dots.$ac_given_srcdir.$ac_dir_suffix; + $top_srcdir = $ac_dots.$ac_given_srcdir; + } + + if ($ac_given_INSTALL) { + if ($ac_given_INSTALL =~ m%^/% ) { + $INSTALL = $ac_given_INSTALL; + } else { + $INSTALL = $ac_dots.$ac_given_INSTALL; + } + } + + print "fast creating $ac_file\n"; + unlink $ac_file; + my $ac_comsub=""; + my $fname=$ac_file_in; + $fname =~ s%.*/%%; + my $configure_input="Generated automatically from $fname by config.pl."; + if ($ac_file =~ /.*[Mm]akefile.*/) { + $ac_comsub="# ".$configure_input."\n"; # for the first line in $ac_file + } + + my $ac_file_inputs; + ($ac_file_inputs = $ac_file_in) =~ s%^%$ac_given_srcdir/%; + $ac_file_inputs =~ s%:% $ac_given_srcdir/%g; + + patch_file($ac_file, $ac_file_inputs, $ac_comsub); +} + +sub patch_file { + my ($outf, $infiles, $identline) = @_; + my $filedata; + my @infiles=split(' ', $infiles); + my $i=0; + + foreach my $name (@infiles) { + if (open(CF, "< $name")) { + while () { + $filedata .= $_; + } + close(CF); + } else { + print STDERR "can't open $name: $!"."\n"; + } + } + if ($identline) { + # Put the ident in the second line. For shitty automake 1.6x. + $filedata =~ s%\n%\n$identline%; + } + + $filedata =~ s%\@configure_input\@%$configure_input%g; + $filedata =~ s%\@srcdir\@%$srcdir%g; + $filedata =~ s%\@top_srcdir\@%$top_srcdir%g; + $filedata =~ s%\@INSTALL\@%$INSTALL%g; + + if ($bad_perl) { + while ($i <= $#comp_subs) { + my $ref = $comp_subs[$i]; + &$ref(\$filedata); + $i++; + } + } else { + while ($i <= $#comp_match) { + $filedata =~ s/$comp_match[$i]/$comp_subs[$i]/g; + $i++; + } + } + open(CF, "> $outf") || die "can't create $outf: $!"; + print CF $filedata; + close(CF); +} + +sub make_closure { + my ($pat, $sub) = @_; + $pat =~ s/\@/\\@/g; # @bla@ -> \@bla\@ + $pat =~ s/\$/\\\$/g; # $bla -> \$bla + $sub =~ s/\@/\\@/g; + $sub =~ s/\$/\\\$/g; + my $ret = eval "return sub { my \$ref=shift; \$\$ref =~ s%$pat%$sub%g; }"; + if ($@) { + print "can't create CODE: $@\n"; + } + return $ret; +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/config.sub b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/config.sub new file mode 100644 index 000000000..c7d1c0ae3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/config.sub @@ -0,0 +1,1469 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright (C) 1992-2002 Free Software Foundation, Inc. + +timestamp='2002-09-05' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit 0 ;; + --version | -v ) + echo "$version" ; exit 0 ;; + --help | --h* | -h ) + echo "$usage"; exit 0 ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit 0;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k \ + | m32r | m68000 | m68k | m88k | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mipsisa32 | mipsisa32el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | ns16k | ns32k \ + | openrisc | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ + | strongarm \ + | tahoe | thumb | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xscale | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* \ + | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \ + | clipper-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* \ + | m32r-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39 | mipstx39el \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ + | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ + | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + mmix*) + basic_machine=mmix-knuth + os=-mmixware + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + or32 | or32-*) + basic_machine=or32-unknown + os=-coff + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2) + basic_machine=i686-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3d) + basic_machine=alpha-cray + os=-unicos + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic4x | c4x*) + basic_machine=tic4x-unknown + os=-coff + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + windows32) + basic_machine=i386-pc + os=-windows32-msvcrt + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele) + basic_machine=sh-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparc | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto*) + os=-nto-qnx + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/configure.in.bot.end b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/configure.in.bot.end new file mode 100644 index 000000000..fb483b67e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/configure.in.bot.end @@ -0,0 +1,12 @@ +if test "$all_tests" = "bad"; then + if test ! "$cache_file" = "/dev/null"; then + echo "" + echo "Please remove the file $cache_file after changing your setup" + echo "so that configure will find the changes next time." + echo "" + fi +else + echo "" + echo "Good - your configure finished. Start make now" + echo "" +fi diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/configure.in.min b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/configure.in.min new file mode 100644 index 000000000..7c7e25a94 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/configure.in.min @@ -0,0 +1,57 @@ +dnl This file is part of the KDE libraries/packages +dnl Copyright (C) 2001 Stephan Kulow (coolo@kde.org) + +dnl This file is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Library General Public +dnl License as published by the Free Software Foundation; either +dnl version 2 of the License, or (at your option) any later version. + +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Library General Public License for more details. + +dnl You should have received a copy of the GNU Library General Public License +dnl along with this library; see the file COPYING.LIB. If not, write to +dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +dnl Boston, MA 02111-1307, USA. + +# Original Author was Kalle@kde.org +# I lifted it in some mater. (Stephan Kulow) +# I used much code from Janos Farkas + +dnl Process this file with autoconf to produce a configure script. + +AC_INIT(acinclude.m4) dnl a source file from your sub dir + +dnl This is so we can use kde-common +AC_CONFIG_AUX_DIR(admin) + +dnl This ksh/zsh feature conflicts with `cd blah ; pwd` +unset CDPATH + +dnl Checking host/target/build systems, for make, install etc. +AC_CANONICAL_SYSTEM +dnl Perform program name transformation +AC_ARG_PROGRAM + +dnl Automake doc recommends to do this only here. (Janos) +AM_INIT_AUTOMAKE(@MODULENAME@, @VERSION@) dnl searches for some needed programs + +KDE_SET_PREFIX + +dnl generate the config header +AM_CONFIG_HEADER(config.h) dnl at the distribution this done + +dnl Checks for programs. +AC_CHECK_COMPILERS +AC_ENABLE_SHARED(yes) +AC_ENABLE_STATIC(no) +KDE_PROG_LIBTOOL + +dnl for NLS support. Call them in this order! +dnl WITH_NLS is for the po files +AM_KDE_WITH_NLS + +dnl KDE_USE_QT +AC_PATH_KDE diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/cvs-clean.pl b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/cvs-clean.pl new file mode 100644 index 000000000..669dbdc65 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/cvs-clean.pl @@ -0,0 +1,87 @@ +#! /usr/bin/perl + +# +# This script recursively (beginning with the current directory) +# wipes out everything not registered in CVS. +# +# written by Oswald Buddenhagen +# inspired by the "old" cvs-clean target from Makefile.common +# +# This file is free software in terms of the BSD licence. That means +# that you can do anything with it except removing this license or +# the above copyright notice. There is NO WARRANTY of any kind. +# + +sub rmrf() +{ + my $fn = shift; + lstat ($fn); + if (-d _) { + if (opendir (DIR, $fn)) { + for my $efn (grep (!/^\.\.?$/, readdir (DIR))) { + &rmrf ($fn."/".$efn); + } + closedir (DIR); + rmdir ($fn); + } + } else { + unlink ($fn); + } +} + +sub newfiles() +{ + my ($indir, $incvs) = @_; + for my $n (keys (%$incvs)) { delete $$indir{$n} } + return sort (keys (%$indir)); +} + +sub cvsclean() +{ + my $dir = shift; + my (%dirsdir, %filesdir, %dirscvs, %filescvs); + my $dnam = $dir ? $dir : "."; + if (!opendir (DIR, $dnam)) { + print STDERR "Cannot enter \"".$dnam."\".\n"; + return; + } + for my $fn (grep (!/^\.\.?$/, readdir (DIR))) { + if (-d $dir.$fn) { + $fn eq "CVS" or $dirsdir{$fn} = 1; + } else { + $filesdir{$fn} = 1; + } + } + closedir (DIR); + if (!open (FILE, "<".$dir."CVS/Entries")) { + print STDERR "No CVS information in \"".$dnam."\".\n"; + return; + } + while () { + m%^D/([^/]+)/.*$% and $dirscvs{$1} = 1; + m%^/([^/]+)/.*$% and $filescvs{$1} = 1; + } + close (FILE); + if (open (FILE, "<".$dir."CVS/Entries.Log")) { + while () { + m%^A D/([^/]+)/.*$% and $dirscvs{$1} = 1; + m%^A /([^/]+)/.*$% and $filescvs{$1} = 1; + m%^R D/([^/]+)/.*$% and delete $dirscvs{$1}; + m%^R /([^/]+)/.*$% and delete $filescvs{$1}; + } + close (FILE); + } + for my $fn (&newfiles (\%filesdir, \%filescvs)) { + print ("F ".$dir.$fn."\n"); + &rmrf ($dir.$fn); + } + for my $fn (&newfiles (\%dirsdir, \%dirscvs)) { + print ("D ".$dir.$fn."\n"); + &rmrf ($dir.$fn); + } + for my $fn (sort (keys (%dirscvs))) { + &cvsclean ($dir.$fn."/"); + } +} + +&cvsclean (""); diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/cvs.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/cvs.sh new file mode 100644 index 000000000..a39fddd7c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/cvs.sh @@ -0,0 +1,506 @@ +#! /bin/sh +# +# cvs.sh +# +# This file contains support code from Makefile.common +# It defines a shell function for each known target +# and then does a case to call the correct function. + +call_and_fix_autoconf() +{ + $AUTOCONF || exit 1 + if test -r configure.in.in ; then + perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\ + \\n perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\ + \\\\\\n || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\ + \\n rm -f \\\$CONFIG_STATUS.bak\\nfi\ + \\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/;" configure + fi +} + +strip_makefile() +{ + if test -f $makefile_wo; then :; else + perl -e '$in=0; while ( <> ) { $in = 1 if ($_=~ m/^if /); print $_ unless ($in); $in = 0 if ($_ =~ m/^endif/); }' < Makefile.am.in > $makefile_wo + fi +} + +check_autotool_versions() +{ +AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1` +case $AUTOCONF_VERSION in + Autoconf*2.[5-9]* | autoconf*2.[5-9]* ) : ;; + "" ) + echo "*** AUTOCONF NOT FOUND!." + echo "*** KDE requires autoconf 2.52, 2.53 or 2.54" + exit 1 + ;; + * ) + echo "*** YOU'RE USING $AUTOCONF_VERSION." + echo "*** KDE requires autoconf 2.52, 2.53 or 2.54" + exit 1 + ;; +esac + +AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1` +case $AUTOHEADER_VERSION in + Autoconf*2.[5-9]* | autoheader*2.[5-9]* ) : ;; + "" ) + echo "*** AUTOHEADER NOT FOUND!." + echo "*** KDE requires autoheader 2.52 or 2.53 (part of autoconf)" + exit 1 + ;; + * ) + echo "*** YOU'RE USING $AUTOHEADER_VERSION." + echo "*** KDE requires autoheader 2.52 or 2.53 (part of autoconf)" + exit 1 + ;; +esac + +AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1` +case $AUTOMAKE_STRING in + automake*1.5d* ) + echo "*** YOU'RE USING $AUTOMAKE_STRING." + echo "*** KDE requires automake 1.6" + exit 1 + ;; + automake*1.[6-9] | automake*1.[6-9].* | automake*1.1[0-9] | automake*1.1[0-9].* ) : ;; + "" ) + echo "*** AUTOMAKE NOT FOUND!." + echo "*** KDE requires automake 1.6" + exit 1 + ;; + unsermake* ) : + echo "*** YOU'RE USING UNSERMAKE." + echo "*** GOOD LUCK!! :)" + ;; + * ) + echo "*** YOU'RE USING $AUTOMAKE_STRING." + echo "*** KDE requires automake 1.6" + exit 1 + ;; +esac +} + +cvs() +{ +check_autotool_versions + +### Produce acinclude.m4 +if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then + echo "*** Creating acinclude.m4" + rm -f acinclude.m4 configure.files + + strip_makefile + $MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 +fi + +### Make new subdirs and configure.in. +### The make calls could be optimized away here, +### with a little thought. +if test -r configure.in.in; then + rm -f subdirs configure.in + echo "*** Creating list of subdirectories" + subdirs + echo "*** Creating configure.in" + configure_files + strip_makefile + $MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1 +fi + +echo "*** Creating aclocal.m4" +$ACLOCAL || exit 1 +echo "*** Creating configure" +call_and_fix_autoconf + +if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then + echo "*** Creating config.h template" + $AUTOHEADER || exit 1 +fi + +echo "*** Creating Makefile templates" +$AUTOMAKE || exit 1 +if test -z "$UNSERMAKE"; then + echo "*** Postprocessing Makefile templates" + perl -w admin/am_edit || exit 1 +fi + +if egrep "^cvs-local:" $makefile_am >/dev/null; then \ + strip_makefile + $MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1 +fi + +echo "*** Creating date/time stamp" +touch stamp-h.in + +echo "*** Finished" +echo " Don't forget to run ./configure" +echo " If you haven't done so in a while, run ./configure --help" +} + +dist() +{ +check_autotool_versions + +### +### First build all of the files necessary to do just "make" +### +if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then + strip_makefile + $MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 +fi +if test -r configure.in.in; then + subdirs + configure_files + strip_makefile + $MAKE -f $makefile_wo top_srcdir=. ./configure.in +fi +$ACLOCAL +$AUTOHEADER +$AUTOMAKE --foreign --include-deps +perl -w admin/am_edit +call_and_fix_autoconf +touch stamp-h.in +if grep "^cvs-local:" $makefile_am >/dev/null; then + strip_makefile + $MAKE -f $makefile_wo cvs-local top_srcdir=. +fi + +### +### Then make messages +### +if test -d po; then + LIST=`find ./po -name "*.po"` + for i in $LIST; do + file2=`echo $i | sed -e "s#\.po#\.gmo#"` + msgfmt -o $file2 $i || touch $file2 + done +fi +if grep "^cvs-dist-local:" $makefile_am >/dev/null; then + strip_makefile + $MAKE -f $makefile_wo cvs-dist-local top_srcdir=. +fi +} + +subdir_dist() +{ +$ACLOCAL +$AUTOHEADER +$AUTOMAKE --foreign --include-deps +perl -w ../admin/am_edit +call_and_fix_autoconf +touch stamp-h.in +} + +configure_in() +{ +rm -f configure.in configure.in.new +kde_use_qt_param= +test -f configure.files || { echo "need configure.files for configure.in"; exit 1; } +cat `egrep -v "configure.in.bot" < configure.files` > configure.in.new +echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new +if test -f Makefile.am.in; then + subdirs=`cat subdirs` + for dir in $subdirs; do + dir=`echo $dir | sed -e "s,[-+.],_,g"` + echo "AM_CONDITIONAL($dir""_SUBDIR_included, test \"x\$$dir""_SUBDIR_included\" = xyes)" >> configure.in.new + done +fi +# echo "AC_OUTPUT( \\" >> configure.in.new +mfs=`find . -type d -print | fgrep -v "/." | \ + sed -e "s#\./##" -e "/^debian/d" | sort` +for i in $mfs; do + topleveldir=`echo $i| sed -e "s#/.*##"` + if test -f $topleveldir/configure.in; then + continue + fi + if test -f $i/Makefile.am; then :; else + continue + fi + if test -s inst-apps; then + if grep "\"^$topleveldir\"" inst-apps > /dev/null 2>&1; then + continue + fi + fi + if test "$i" = "."; then + echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new + else + echo "AC_CONFIG_FILES([ $i/Makefile ])" >> configure.in.new + fi + if test -n "$UNSERMAKE"; then + if test "$i" = "."; then + echo "AC_CONFIG_FILES([ Makefile.rules ])" >> configure.in.new + else + echo "AC_CONFIG_FILES([ $i/Makefile.rules ])" >> configure.in.new + fi + fi +done + +files=`cat configure.files` +list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"` +for file in $list; do + echo "AC_CONFIG_FILES([ $file ])" >> configure.in.new +done + +if test -n "$UNSERMAKE"; then + echo "AC_CONFIG_FILES([ MakeVars ])" >> configure.in.new +fi +echo "AC_OUTPUT" >> configure.in.new +modulename= +if test -f configure.in.in; then + if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then + kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"` + fi + if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then + line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in` + if test -n "$line"; then + modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"` + VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"` + fi + sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \ + configure.in.new > configure.in && mv configure.in configure.in.new + fi +fi +if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then + VERSION="\"3.1.3\"" +fi +if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then + modulename=`pwd`; + modulename=`basename $modulename` + esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"` + modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"` + +fi +if test -n "$kde_use_qt_param"; then + sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \ + configure.in.new > configure.in && mv configure.in configure.in.new +fi +sed -e "s#@MODULENAME@#$modulename#" configure.in.new | + sed -e "s#@VERSION@#$VERSION#" > configure.in +botfiles=`cat configure.files | egrep "configure.in.bot"` +test -n "$botfiles" && cat $botfiles >> configure.in +cat $admindir/configure.in.bot.end >> configure.in +rm -f configure.in.new +} + +configure_files() +{ +admindir=NO +for i in . .. ../.. ../../..; do + if test -x $i/admin; then admindir=$i/admin; break; fi +done +rm -f configure.files +touch configure.files +if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then + echo $admindir/configure.in.min >> configure.files +fi +test -f configure.in.in && echo configure.in.in >> configure.files +list=`find . -name "configure.in.in" -o -name "configure.in.bot" | \ + sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"` +for i in $list; do if test -f $i && test `dirname $i` != "." ; then + echo $i >> configure.files +fi; done +test -f configure.in.mid && echo configure.in.mid >> configure.files +test -f configure.in.bot && echo configure.in.bot >> configure.files +} + +subdirs() +{ +dirs= +compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1` +compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1` +for i in `ls -1`; do + if test -f $i/Makefile.am; then + case " $compilefirst $compilelast " in + *" $i "*) ;; + *) dirs="$dirs $i" + esac + fi +done + +: > ./_SUBDIRS + +for d in $compilefirst; do + echo $d >> ./_SUBDIRS +done + +(for d in $dirs; do + list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1` + for s in $list; do + echo $s $d + done + list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1` + for s in $list; do + echo $d $s + done + echo $d $d +done ) | tsort >> ./_SUBDIRS + +for d in $compilelast; do + echo $d >> ./_SUBDIRS +done + +if test -f Makefile.am.in; then + cp Makefile.am.in Makefile.am + if test -n "$UNSERMAKE"; then + topsubdirs= + for i in $compilefirst $dirs $compilelast; do + vari=`echo $i | sed -e "s,[-+],_,g"` + echo "if $vari""_SUBDIR_included" >> Makefile.am + echo "$vari""_SUBDIR=$i" >> Makefile.am + echo "endif" >> Makefile.am + topsubdirs="$topsubdirs \$($vari""_SUBDIR)" + done + echo "SUBDIRS=$topsubdirs" >> Makefile.am + else + echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am + fi +fi +if test -r subdirs && diff subdirs _SUBDIRS > /dev/null; then + rm -f _SUBDIRS +fi +test -r _SUBDIRS && mv _SUBDIRS subdirs || true +} + +cvs_clean() +{ +if test -d CVS; then :; else + echo "You don't have a toplevel CVS directory." + echo "You most certainly didn't use cvs to get these sources." + echo "But this function depends on cvs's information." + exit 1 +fi +perl $admindir/cvs-clean.pl +} + +package_merge() +{ +catalogs=$POFILES +for cat in $catalogs; do + msgmerge -o $cat.new $cat $PACKAGE.pot + if test -s $cat.new; then + grep -v "\"POT-Creation" $cat.new > $cat.new.2 + grep -v "\"POT-Creation" $cat >> $cat.new.1 + if diff $cat.new.1 $cat.new.2; then + rm $cat.new + else + mv $cat.new $cat + fi + rm -f $cat.new.1 $cat.new.2 + fi +done +} + +package_messages() +{ +rm -rf po.backup +mkdir po.backup + +for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do + egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i + cp po/$i po.backup/backup_$i + touch -r po/$i po.backup/backup_$i + rm po/$i +done + +podir=${podir:-$PWD/po} +files=`find . -name Makefile.am | xargs egrep -l '^messages:' ` +dirs=`for i in $files; do echo \`dirname $i\`; done` +tmpname="$PWD/messages.log" +if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi +if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi +export EXTRACTRC PREPARETIPS + +for subdir in $dirs; do + test -z "$VERBOSE" || echo "Making messages in $subdir" + (cd $subdir + if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then + $EXTRACTRC *.rc *.ui > rc.cpp + else + candidates=`ls -1 *.rc *.ui 2>/dev/null` + if test -n "$candidates"; then + echo "$subdir has *.rc or *.ui files, but not correct messages line" + fi + fi + if test -n "`grep -r KAboutData *.c* *.C* 2>/dev/null`"; then + echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp + else echo " " > _translatorinfo.cpp + fi + perl -e '$mes=0; while () { next if (/^(if|else|endif)\s/); if (/^messages:/) { $mes=1; print $_; next; } if ($mes) { if (/$\\(XGETTEXT\)/ && / -o/) { s/ -o \$\(podir\)/ _translatorinfo.cpp -o \$\(podir\)/ } print $_; } else { print $_; } }' < Makefile.am | egrep -v '^include ' > _transMakefile + + $MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" \ + XGETTEXT="${XGETTEXT:-xgettext} -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale -x ${includedir:-$KDEDIR/include}/kde.pot" \ + messages + ) 2>&1 | grep -v '^make\[1\]' > $tmpname + test -s $tmpname && { echo $subdir ; cat "$tmpname"; } + test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp + rm -f $subdir/_translatorinfo.cpp + rm -f $subdir/_transMakefile +done +rm -f $tmpname +for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do + test -f po/$i || echo "disappeared: $i" +done +for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do + msgmerge -q -o po/$i po/$i po/$i + egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot + if test -f po.backup/$i && test -n "`diff temp.pot po.backup/$i`"; then + echo "will update $i" + msgmerge -q po.backup/backup_$i po/$i > temp.pot + mv temp.pot po/$i + else + if test -f po.backup/backup_$i; then + test -z "$VERBOSE" || echo "I'm restoring $i" + mv po.backup/backup_$i po/$i + rm po.backup/$i + else + echo "will add $i" + fi + fi +done +rm -f temp.pot +rm -rf po.backup +} + +admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'` +test "x$admindir" = "x$0" && admindir=. + +test "x$MAKE" = x && MAKE=make +makefile_am=Makefile.am +makefile_wo=Makefile.am +if test -f Makefile.am.in; then + makefile_am=Makefile.am.in + makefile_wo=Makefile.am.in.wo +fi + +# Sucking AUTOCONF detection code - commented out +#. $admindir/detect-autoconf.sh +AUTOCONF="autoconf" +AUTOHEADER="autoheader" +AUTOM4TE="autom4te" +AUTOMAKE="automake" +ACLOCAL="aclocal -I m4" + +### +### Main +### + +arg=`echo $1 | tr '\-.' __` +case $arg in + cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \ + cvs_clean | package_merge | package_messages ) $arg ;; + * ) echo "Usage: cvs.sh " + echo "Target can be one of:" + echo " cvs cvs-clean dist" + echo " configure.in configure.files" + echo " package-merge package-messages" + echo "" + echo "Usage: anything but $1" + exit 1 ;; +esac + +if test -f Makefile.am.in.wo; then + rm Makefile.am.in.wo +fi + +exit 0 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/debianrules b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/debianrules new file mode 100644 index 000000000..bdf347dc4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/debianrules @@ -0,0 +1,114 @@ +#!/usr/bin/perl -w + +use Shell qw(mv cp mkdir rm) ; +use File::Find; +use Cwd; + +$origPwd = `pwd`; +chomp $origPwd; + +$kde_confdir = "/etc/kde3"; +$kde_prefix = "/usr"; +$kde_bindir = "$kde_prefix/bin"; +$kde_includedir = "$kde_prefix/include/kde"; +$kde_libdir = "$kde_prefix/lib"; +$kde_cgidir = "$kde_prefix/lib/cgi-bin"; +$kde_moduledir = "$kde_prefix/lib/kde3"; +$kde_appsdir = "$kde_prefix/share/applnk"; +$kde_datadir = "$kde_prefix/share/apps"; +$kde_htmldir = "$kde_prefix/share/doc/kde/HTML"; +$kde_icondir = "$kde_prefix/share/icons"; +$kde_locale = "$kde_prefix/share/locale"; +$kde_mimedir = "$kde_prefix/share/mimelnk"; +$kde_servicesdir = "$kde_prefix/share/services"; +$kde_servicetypesdir = "$kde_prefix/share/servicetypes"; +$kde_sounddir = "$kde_prefix/share/sounds"; +$kde_templatesdir = "$kde_prefix/share/templates"; +$kde_wallpaperdir = "$kde_prefix/share/wallpapers"; + +$mandir = "$kde_prefix/share/man"; +$infodir = "$kde_prefix/share/info"; +$sysconfdir = "/etc"; + +$QTDIR = "/usr/share/qt3"; +$IDL = "$kde_bindir/cuteidl"; +$DCOPIDL = "$kde_bindir/dcopidl"; +$DCOPIDL2CPP = "$kde_bindir/dcopidl2cpp"; +$KDB2HTML = "$kde_bindir/kdb2html"; +$MCOPIDL = "$kde_bindir/mcopidl"; +$ARTSCCONFIG = "$kde_bindir/artsc-config"; + +if (defined $ENV{DEB_BUILD_OPTIONS} && + $ENV{DEB_BUILD_OPTIONS} =~ /\bdebug\b/) { + $enable_debug="--enable-debug"; + $enable_final=""; +} +else { + $enable_debug="--disable-debug"; + $enable_final="--enable-final"; +} + +if (@ARGV && $ARGV[0] eq 'echodirs') { + print STDOUT "export kde_confdir=$kde_confdir\n"; + print STDOUT "export kde_prefix=$kde_prefix\n"; + print STDOUT "export kde_bindir=$kde_bindir\n"; + print STDOUT "export kde_includedir=$kde_includedir\n"; + print STDOUT "export kde_libdir=$kde_libdir\n"; + print STDOUT "export kde_cgidir=$kde_cgidir\n"; + print STDOUT "export kde_moduledir=$kde_moduledir\n"; + print STDOUT "export kde_appsdir=$kde_appsdir\n"; + print STDOUT "export kde_datadir=$kde_datadir\n"; + print STDOUT "export kde_htmldir=$kde_htmldir\n"; + print STDOUT "export kde_icondir=$kde_icondir\n"; + print STDOUT "export kde_locale=$kde_locale\n"; + print STDOUT "export kde_mimedir=$kde_mimedir\n"; + print STDOUT "export kde_servicesdir=$kde_servicesdir\n"; + print STDOUT "export kde_servicetypesdir=$kde_servicetypesdir\n"; + print STDOUT "export kde_sounddir=$kde_sounddir\n"; + print STDOUT "export kde_templatesdir=$kde_templatesdir\n"; + print STDOUT "export kde_wallpaperdir=$kde_wallpaperdir\n"; + + print STDOUT "export mandir=$mandir\n"; + print STDOUT "export infodir=$infodir\n"; + print STDOUT "export sysconfdir=$sysconfdir\n"; + + print STDOUT "export QTDIR=$QTDIR\n"; + print STDOUT "export IDL=$IDL\n"; + print STDOUT "export DCOPIDL=$DCOPIDL\n"; + print STDOUT "export DCOPIDL2CPP=$DCOPIDL2CPP\n"; + print STDOUT "export KDB2HTML=$KDB2HTML\n"; + print STDOUT "export MCOPIDL=$MCOPIDL\n"; + print STDOUT "export ARTSCCONFIG=$ARTSCCONFIG\n"; + print STDOUT "export INSTALL_DATA=install -p -c -m 644\n"; + + print STDOUT "configkde=$enable_debug $enable_final --disable-rpath --prefix=\$(kde_prefix) --libexecdir=\$(kde_bindir) --sysconfdir=\$(sysconfdir) --libdir=\$(kde_libdir) --includedir=\$(kde_includedir) --with-qt-includes=/usr/include/qt3 --mandir=\$(mandir) --infodir=\$(infodir) --with-xinerama\n"; + print STDOUT "configkdevelop=$enable_debug $enable_final --disable-rpath --enable-docbase --enable-kdoc2 --libdir=\$(kde_libdir) --includedir=\$(kde_includedir) --with-qt-includes=/usr/include/qt3 --mandir=\$(mandir) --with-kdelibsdoc-dir=/usr/share/doc/kdelibs3-doc/html --with-xinerama\n"; + print STDOUT "configkdepim=$enable_debug $enable_final --disable-rpath --with-extra-includes=/usr/include/libpisock --enable-shared --prefix=\$(kde_prefix) --libexecdir=\$(kde_bindir) --with-qt-includes=/usr/include/qt3 --mandir=\$(mandir) --infodir=\$(infodir) --with-xinerama\n"; + + exit +} + +if (@ARGV && $ARGV[0] eq 'echoglobals') { + print STDOUT "[Directories]\n"; + print STDOUT "dir_config=$kde_confdir\n"; + print STDOUT "dir_tmp=/tmp\n"; + print STDOUT "dir_socket=/tmp\n"; + print STDOUT "dir_exe=$kde_bindir\n"; + print STDOUT "dir_lib=$kde_libdir\n"; + print STDOUT "dir_cgi=$kde_cgidir\n"; + print STDOUT "dir_module=$kde_moduledir\n"; + print STDOUT "dir_apps=$kde_appsdir\n"; + print STDOUT "dir_data=$kde_datadir\n"; + print STDOUT "dir_html=$kde_htmldir\n"; + print STDOUT "dir_icon=$kde_icondir\n"; + print STDOUT "dir_locale=$kde_locale\n"; + print STDOUT "dir_mime=$kde_mimedir\n"; + print STDOUT "dir_services=$kde_servicesdir\n"; + print STDOUT "dir_servicetypes=$kde_servicetypesdir\n"; + print STDOUT "dir_sound=$kde_sounddir\n"; + print STDOUT "dir_templates=$kde_templatesdir\n"; + print STDOUT "dir_wallpaper=$kde_wallpaperdir\n"; + print STDOUT "[General]\n"; + print STDOUT "TerminalApplication=x-terminal-emulator\n"; + exit +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/depcomp b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/depcomp new file mode 100644 index 000000000..a255d1878 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/depcomp @@ -0,0 +1,411 @@ +#! /bin/sh + +# depcomp - compile a program generating dependencies as side-effects +# Copyright 1999-2000 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi +# `libtool' can also be set to `yes' or `no'. + +depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. + "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> $depfile + echo >> $depfile + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> $depfile + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. This file always lives in the current directory. + # Also, the AIX compiler puts `$object:' at the start of each line; + # $object doesn't have directory information. + stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` + tmpdepfile="$stripped.u" + outname="$stripped.o" + if test "$libtool" = yes; then + "$@" -Wc,-M + else + "$@" -M + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + + if test -f "$tmpdepfile"; then + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" + sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +tru64) + # The Tru64 AIX compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + + tmpdepfile1="$object.d" + tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'` + if test "$libtool" = yes; then + "$@" -Wc,-MD + else + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + if test -f "$tmpdepfile1"; then + tmpdepfile="$tmpdepfile1" + else + tmpdepfile="$tmpdepfile2" + fi + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a space and a tab in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the proprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + test -z "$dashmflag" && dashmflag=-M + ( IFS=" " + case " $* " in + *" --mode=compile "*) # this is libtool, let us make it quiet + for arg + do # cycle over the arguments + case "$arg" in + "--mode=compile") + # insert --quiet before "--mode=compile" + set fnord "$@" --quiet + shift # fnord + ;; + esac + set fnord "$@" "$arg" + shift # fnord + shift # "$arg" + done + ;; + esac + "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + ) & + proc=$! + "$@" + stat=$? + wait "$proc" + if test "$stat" != 0; then exit $stat; fi + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + # X makedepend + ( + shift + cleared=no + for arg in "$@"; do + case $cleared in no) + set ""; shift + cleared=yes + esac + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift;; + -*) + ;; + *) + set fnord "$@" "$arg"; shift;; + esac + done + obj_suffix="`echo $object | sed 's/^.*\././'`" + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@" + ) & + proc=$! + "$@" + stat=$? + wait "$proc" + if test "$stat" != 0; then exit $stat; fi + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tail +3 "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the proprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + ( IFS=" " + case " $* " in + *" --mode=compile "*) + for arg + do # cycle over the arguments + case $arg in + "--mode=compile") + # insert --quiet before "--mode=compile" + set fnord "$@" --quiet + shift # fnord + ;; + esac + set fnord "$@" "$arg" + shift # fnord + shift # "$arg" + done + ;; + esac + "$@" -E | + sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + ) & + proc=$! + "$@" + stat=$? + wait "$proc" + if test "$stat" != 0; then exit $stat; fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the proprocessed file to stdout, regardless of -o, + # because we must use -o when running libtool. + ( IFS=" " + case " $* " in + *" --mode=compile "*) + for arg + do # cycle over the arguments + case $arg in + "--mode=compile") + # insert --quiet before "--mode=compile" + set fnord "$@" --quiet + shift # fnord + ;; + esac + set fnord "$@" "$arg" + shift # fnord + shift # "$arg" + done + ;; + esac + "$@" -E | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" + ) & + proc=$! + "$@" + stat=$? + wait "$proc" + if test "$stat" != 0; then exit $stat; fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/detect-autoconf.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/detect-autoconf.sh new file mode 100644 index 000000000..56950cabf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/detect-autoconf.sh @@ -0,0 +1,81 @@ +#! /bin/sh + +# Global variables... +AUTOCONF="autoconf" +AUTOHEADER="autoheader" +AUTOM4TE="autom4te" +AUTOMAKE="automake" +ACLOCAL="aclocal" + + +# We don't use variable here for remembering the type ... strings. +# local variables are not that portable, but we fear namespace issues with +# our includer. The repeated type calls are not that expensive. +checkAutoconf() +{ + if test -x "`$WHICH autoconf-2.5x`" ; then + AUTOCONF="`$WHICH autoconf-2.5x`" + elif test -x "`$WHICH autoconf-2.54`" ; then + AUTOCONF="`$WHICH autoconf-2.54`" + elif test -x "`$WHICH autoconf-2.53`" ; then + AUTOCONF="`$WHICH autoconf-2.53`" + elif test -x "`$WHICH autoconf-2.53a`" ; then + AUTOCONF="`$WHICH autoconf-2.53a`" + elif test -x "`$WHICH autoconf-2.52`" ; then + AUTOCONF="`$WHICH autoconf-2.52`" + elif test -x "`$WHICH autoconf2.50`" ; then + AUTOCONF="`$WHICH autoconf2.50`" + fi +} + +checkAutoheader() +{ + if test -x "`$WHICH autoheader-2.5x`" ; then + AUTOHEADER="`$WHICH autoheader-2.5x`" + AUTOM4TE="`$WHICH autom4te-2.5x`" + elif test -x "`$WHICH autoheader-2.54`" ; then + AUTOHEADER="`$WHICH autoheader-2.54`" + AUTOM4TE="`$WHICH autom4te-2.54`" + elif test -x "`$WHICH autoheader-2.53`" ; then + AUTOHEADER="`$WHICH autoheader-2.53`" + AUTOM4TE="`$WHICH autom4te-2.53`" + elif test -x "`$WHICH autoheader-2.53a`" ; then + AUTOHEADER="`$WHICH autoheader-2.53a`" + AUTOM4TE="`$WHICH autom4te-2.53a`" + elif test -x "`$WHICH autoheader-2.52`" ; then + AUTOHEADER="`$WHICH autoheader-2.52`" + elif test -x "`$WHICH autoheader2.50`" ; then + AUTOHEADER="`$WHICH autoheader2.50`" + fi +} + +checkAutomakeAclocal () +{ + if test -z "$UNSERMAKE"; then + if test -x "`$WHICH automake-1.6`" ; then + AUTOMAKE="`$WHICH automake-1.6`" + ACLOCAL="`$WHICH aclocal-1.6`" + elif test -x "`$WHICH automake-1.7`" ; then + AUTOMAKE="`$WHICH automake-1.7`" + ACLOCAL="`$WHICH aclocal-1.7`" + fi + else + AUTOMAKE="$UNSERMAKE" + fi +} + +checkWhich () +{ + WHICH="" + for i in "type -p" "which" "type" ; do + T=`$i sh 2> /dev/null` + test -x "$T" && WHICH="$i" && break + done +} + +checkWhich +checkAutoconf +checkAutoheader +checkAutomakeAclocal + +export WHICH AUTOHEADER AUTOCONF AUTOM4TE AUTOMAKE ACLOCAL diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/install-sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/install-sh new file mode 100644 index 000000000..11870f1b0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/install-sh @@ -0,0 +1,251 @@ +#!/bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5 (mit/util/scripts/install.sh). +# +# Copyright 1991 by the Massachusetts Institute of Technology +# +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + : +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + chmodcmd="" + else + instcmd=$mkdirprog + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f "$src" ] || [ -d "$src" ] + then + : + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + : + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + : + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' + ' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + : + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + : + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/ltmain.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/ltmain.sh new file mode 100644 index 000000000..3b15d45a9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/ltmain.sh @@ -0,0 +1,5571 @@ +# ltmain.sh - Provide generalized library-building support services. +# NOTE: Changing this file will not affect anything until you rerun configure. +# +# Copyright (C) 1996-2001 Free Software Foundation, Inc. +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Check that we have a working $echo. +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then + # Yippee, $echo works! + : +else + # Restart under the correct shell, and then maybe $echo will work. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit 1 +fi + +# Global variables. +mode=$default_mode +nonopt= +prev= +prevopt= +run= +show="$echo" +show_help= +execute_dlfiles= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" + +# Parse our command line options once, thoroughly. +while test "$#" -gt 0 +do + arg="$1" + shift + + case $arg in + -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + execute_dlfiles) + execute_dlfiles="$execute_dlfiles $arg" + ;; + tag) + tagname="$arg" + + # Check whether tagname contains only valid characters + case $tagname in + *[!-_A-Za-z0-9,/]*) + echo "$progname: invalid tag name: $tagname" 1>&2 + exit 1 + ;; + esac + + case $tagname in + CC) + # Don't test for the "default" C tag, as we know, it's there, but + # not specially marked. + ;; + *) + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then + taglist="$taglist $tagname" + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`" + else + echo "$progname: ignoring unknown tag $tagname" 1>&2 + fi + ;; + esac + ;; + *) + eval "$prev=\$arg" + ;; + esac + + prev= + prevopt= + continue + fi + + # Have we seen a non-optional argument yet? + case $arg in + --help) + show_help=yes + ;; + + --version) + echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" + echo + echo "Copyright 1996, 1997, 1998, 1999, 2000, 2001" + echo "Free Software Foundation, Inc." + echo "This is free software; see the source for copying conditions. There is NO" + echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + exit 0 + ;; + + --config) + ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 + # Now print the configurations for the tags. + for tagname in $taglist; do + ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0" + done + exit 0 + ;; + + --debug) + echo "$progname: enabling shell trace mode" + set -x + ;; + + --dry-run | -n) + run=: + ;; + + --features) + echo "host: $host" + if test "$build_libtool_libs" = yes; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + exit 0 + ;; + + --finish) mode="finish" ;; + + --mode) prevopt="--mode" prev=mode ;; + --mode=*) mode="$optarg" ;; + + --preserve-dup-deps) duplicate_deps="yes" ;; + + --quiet | --silent) + show=: + ;; + + --tag) prevopt="--tag" prev=tag ;; + --tag=*) + set tag "$optarg" ${1+"$@"} + shift + prev=tag + ;; + + -dlopen) + prevopt="-dlopen" + prev=execute_dlfiles + ;; + + -*) + $echo "$modename: unrecognized option \`$arg'" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; + + *) + nonopt="$arg" + break + ;; + esac +done + +if test -n "$prevopt"; then + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 + $echo "$help" 1>&2 + exit 1 +fi + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +if test -z "$show_help"; then + + # Infer the operation mode. + if test -z "$mode"; then + case $nonopt in + *cc | *++ | gcc* | *-gcc*) + mode=link + for arg + do + case $arg in + -c) + mode=compile + break + ;; + esac + done + ;; + *db | *dbx | *strace | *truss) + mode=execute + ;; + *install*|cp|mv) + mode=install + ;; + *rm) + mode=uninstall + ;; + *) + # If we have no mode, but dlfiles were specified, then do execute mode. + test -n "$execute_dlfiles" && mode=execute + + # Just use the default operation mode. + if test -z "$mode"; then + if test -n "$nonopt"; then + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + else + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + fi + fi + ;; + esac + fi + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$execute_dlfiles" && test "$mode" != execute; then + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$modename --help --mode=$mode' for more information." + + # These modes are in order of execution frequency so that they run quickly. + case $mode in + # libtool compile mode + compile) + modename="$modename: compile" + # Get the compilation command and the source file. + base_compile= + prev= + lastarg= + srcfile="$nonopt" + suppress_output= + + user_target=no + for arg + do + case $prev in + "") ;; + xcompiler) + # Aesthetically quote the previous argument. + prev= + lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + + case $arg in + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + + # Add the previous argument to base_compile. + if test -z "$base_compile"; then + base_compile="$lastarg" + else + base_compile="$base_compile $lastarg" + fi + continue + ;; + esac + + # Accept any command-line options. + case $arg in + -o) + if test "$user_target" != "no"; then + $echo "$modename: you cannot specify \`-o' more than once" 1>&2 + exit 1 + fi + user_target=next + ;; + + -static) + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + lastarg="$lastarg $arg" + done + IFS="$save_ifs" + lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` + + # Add the arguments to base_compile. + if test -z "$base_compile"; then + base_compile="$lastarg" + else + base_compile="$base_compile $lastarg" + fi + continue + ;; + esac + + case $user_target in + next) + # The next one is the -o target name + user_target=yes + continue + ;; + yes) + # We got the output file + user_target=set + libobj="$arg" + continue + ;; + esac + + # Accept the current argument as the source file. + lastarg="$srcfile" + srcfile="$arg" + + # Aesthetically quote the previous argument. + + # Backslashify any backslashes, double quotes, and dollar signs. + # These are the only characters that are still specially + # interpreted inside of double-quoted scrings. + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + case $lastarg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + lastarg="\"$lastarg\"" + ;; + esac + + # Add the previous argument to base_compile. + if test -z "$base_compile"; then + base_compile="$lastarg" + else + base_compile="$base_compile $lastarg" + fi + done + + case $user_target in + set) + ;; + no) + # Get the name of the library object. + libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` + ;; + *) + $echo "$modename: you must specify a target with \`-o'" 1>&2 + exit 1 + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + xform='[cCFSifmso]' + case $libobj in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; + *.asm) xform=asm ;; + *.c++) xform=c++ ;; + *.cc) xform=cc ;; + *.ii) xform=ii ;; + *.class) xform=class ;; + *.cpp) xform=cpp ;; + *.cxx) xform=cxx ;; + *.f90) xform=f90 ;; + *.for) xform=for ;; + *.java) xform=java ;; + esac + + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` + + case $libobj in + *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; + *) + $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 + exit 1 + ;; + esac + + # Infer tagged configuration to use if any are available and + # if one wasn't chosen via the "--tag" command line option. + # Only attempt this if the compiler in the base compile + # command doesn't match the default compiler. + if test -n "$available_tags" && test -z "$tagname"; then + case "$base_compile " in + "$CC "*) ;; + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when ltconfig was run. + "`$echo $CC` "*) ;; + *) + for z in $available_tags; do + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" + case "$base_compile " in + "$CC "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + "`$echo $CC` "*) + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + echo "$modename: unable to infer tagged configuration" + echo "$modename: specify a tag with \`--tag'" 1>&2 + exit 1 +# else +# echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + fi + + objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$obj"; then + xdir= + else + xdir=$xdir/ + fi + lobj=${xdir}$objdir/$objname + + if test -z "$base_compile"; then + $echo "$modename: you must specify a compilation command" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + $run $rm $removelist + trap "$run $rm $removelist; exit 1" 1 2 15 + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + removelist="$removelist $output_obj $lockfile" + trap "$run $rm $removelist; exit 1" 1 2 15 + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $run ln "$0" "$lockfile" 2>/dev/null; do + $show "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + echo "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit 1 + fi + echo $srcfile > "$lockfile" + fi + + if test -n "$fix_srcfile_path"; then + eval srcfile=\"$fix_srcfile_path\" + fi + + $run $rm "$libobj" "${libobj}T" + + # Create a libtool object file (analogous to a ".la" file), + # but don't create it if we're doing a dry run. + test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then + echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit 1 + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + $show "$mv $output_obj $lobj" + if $run $mv $output_obj $lobj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the PIC object to the libtool object file. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then + echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit 1 + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + $show "$mv $output_obj $obj" + if $run $mv $output_obj $obj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the non-PIC object the libtool object file. + # Only append if the libtool object file exists. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + else + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + fi + build_libtool_libs=no + build_old_libs=yes + prefer_static_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + base_compile="$base_compile $arg" + shift + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test + ;; + *) qarg=$arg ;; + esac + libtool_args="$libtool_args $qarg" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + compile_command="$compile_command @OUTPUT@" + finalize_command="$finalize_command @OUTPUT@" + ;; + esac + + case $prev in + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + compile_command="$compile_command @SYMFILE@" + finalize_command="$finalize_command @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + dlfiles="$dlfiles $arg" + else + dlprefiles="$dlprefiles $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + if test ! -f "$arg"; then + $echo "$modename: symbol file \`$arg' does not exist" + exit 1 + fi + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat $save_arg` + do +# moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit 1 + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit 1 + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + done + else + $echo "$modename: link input file \`$save_arg' does not exist" + exit 1 + fi + arg=$save_arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit 1 + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) rpath="$rpath $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) xrpath="$xrpath $arg" ;; + esac + fi + prev= + continue + ;; + xcompiler) + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + xlinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $wl$qarg" + prev= + compile_command="$compile_command $wl$qarg" + finalize_command="$finalize_command $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" + finalize_command="$finalize_command $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 + continue + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: more than one -exported-symbols argument is not allowed" + exit 1 + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + ;; + esac + continue + ;; + + -L*) + dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 + exit 1 + fi + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "*) ;; + *) + deplibs="$deplibs -L$dir" + lib_search_path="$lib_search_path $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + case :$dllsearchpath: in + *":$dir:"*) ;; + *) dllsearchpath="$dllsearchpath:$dir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-pw32* | *-*-beos*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-mingw* | *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + deplibs="$deplibs -framework System" + continue + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + deplibs="$deplibs $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + # The PATH hackery in wrapper scripts is required on Windows + # in order for the loader to find any dlls it needs. + $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 + $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit 1 + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + continue + ;; + + -static) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Wl,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $wl$flag" + linker_flags="$linker_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + # Some other compiler flag. + -* | +*) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + add_flags="$add_flags $arg" + ;; + + *.$objext) + # A standard object. + objs="$objs $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit 1 + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit 1 + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + ;; + + *.$libext) + # An archive. + deplibs="$deplibs $arg" + old_deplibs="$old_deplibs $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + dlfiles="$dlfiles $arg" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + dlprefiles="$dlprefiles $arg" + prev= + else + deplibs="$deplibs $arg" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + add_flags="$add_flags $arg" + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + done # argument parsing loop + + if test -n "$prev"; then + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + # Infer tagged configuration to use if any are available and + # if one wasn't chosen via the "--tag" command line option. + # Only attempt this if the compiler in the base link + # command doesn't match the default compiler. + if test -n "$available_tags" && test -z "$tagname"; then + case $base_compile in + "$CC "*) ;; + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when ltconfig was run. + "`$echo $CC` "*) ;; + *) + for z in $available_tags; do + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`" + case $base_compile in + "$CC "*) + # The compiler in $compile_command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + "`$echo $CC` "*) + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + echo "$modename: unable to infer tagged configuration" + echo "$modename: specify a tag with \`--tag'" 1>&2 + exit 1 +# else +# echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + fi + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` + if test "X$output_objdir" = "X$output"; then + output_objdir="$objdir" + else + output_objdir="$output_objdir/$objdir" + fi + # Create the object directory. + if test ! -d "$output_objdir"; then + $show "$mkdir $output_objdir" + $run $mkdir $output_objdir + status=$? + if test "$status" -ne 0 && test ! -d "$output_objdir"; then + exit $status + fi + fi + + # Determine the type of output + case $output in + "") + $echo "$modename: you must specify an output file" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if test "X$duplicate_deps" = "Xyes" ; then + case "$libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + libs="$libs $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if test "X$duplicate_deps" = "Xyes" ; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac + pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + case $linkmode in + lib) + passes="conv link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 + exit 1 + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + for pass in $passes; do + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + for deplib in $libs; do + lib= + found=no + case $deplib in + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 + continue + fi + if test "$pass" = conv && test "$allow_undefined" = yes; then + deplibs="$deplib $deplibs" + continue + fi + name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` + for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do + # Search the libtool library + lib="$searchdir/lib${name}.la" + if test -f "$lib"; then + found=yes + break + fi + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + ;; + *) + $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) lib="$deplib" ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + if test "$deplibs_check_method" != pass_all; then + echo + echo "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not used here." + else + echo + echo "*** Warning: Linking the shared library $output against the" + echo "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + newdlfiles="$newdlfiles $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + if test "$found" = yes || test -f "$lib"; then : + else + $echo "$modename: cannot find the library \`$lib'" 1>&2 + exit 1 + fi + + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit 1 + fi + + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + # If the library was installed with an old release of libtool, + # it will not redefine variable installed. + installed=yes + + # Read the .la file + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && dlfiles="$dlfiles $dlopen" + test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + tmp_libs= + for deplib in $dependency_libs; do + #echo "Adding $deplib to \$deplibs" + deplibs="$deplib $deplibs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + if test -z "$libdir"; then + if test -z "$old_library"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit 1 + fi + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $ladir/$objdir/$old_library" + old_convenience="$old_convenience $ladir/$objdir/$old_library" + elif test "$linkmode" != prog && test "$linkmode" != lib; then + $echo "$modename: \`$lib' is not a convenience library" 1>&2 + exit 1 + fi + continue + fi # $pass = conv + + # Get the name of the library we link against. + linklib= + for l in $old_library $library_names; do + linklib="$l" + done + if test -z "$linklib"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit 1 + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 + exit 1 + fi + if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + dlprefiles="$dlprefiles $lib $dependency_libs" + else + newdlfiles="$newdlfiles $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 + $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 + abs_ladir="$ladir" + fi + ;; + esac + laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + $echo "$modename: warning: library \`$lib' was moved." 1>&2 + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$libdir" + absdir="$libdir" + fi + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi # $installed = yes + name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 + exit 1 + fi + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + newdlprefiles="$newdlprefiles $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + newdlprefiles="$newdlprefiles $dir/$dlname" + else + newdlprefiles="$newdlprefiles $dir/$linklib" + fi + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + if test "$linkmode" = prog && test "$pass" != link; then + newlib_search_path="$newlib_search_path $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { test "$prefer_static_libs" = no || test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var"; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath " in + *" $dir "*) ;; + *" $absdir "*) ;; + *) temp_rpath="$temp_rpath $dir" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + if test -n "$library_names" && + { test "$prefer_static_libs" = no || test -z "$old_library"; }; then + if test "$installed" = no; then + notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + # This is a shared library + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + realname="$2" + shift; shift + libname=`eval \\$echo \"$libname_spec\"` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin*) + major=`expr $current - $age` + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + soname=`echo $soroot | ${SED} -e 's/^.*\///'` + newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + $show "extracting exported symbol list from \`$soname'" + save_ifs="$IFS"; IFS='~' + eval cmds=\"$extract_expsyms_cmds\" + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + $show "generating import library for \`$soname'" + save_ifs="$IFS"; IFS='~' + eval cmds=\"$old_archive_from_expsyms_cmds\" + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + $echo "$modename: configuration error: unsupported hardcode properties" + exit 1 + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && \ + test "$hardcode_minus_L" != yes && \ + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + add="-l$name" + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + echo "*** Warning: This system can not link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + convenience="$convenience $dir/$old_library" + old_convenience="$old_convenience $dir/$old_library" + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + #if test -n "$dependency_libs" && + # { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || + # test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) xrpath="$xrpath $temp_xrpath";; + esac;; + *) temp_deplibs="$temp_deplibs $libdir";; + esac + done + dependency_libs="$temp_deplibs" + #fi + + newlib_search_path="$newlib_search_path $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + case $deplib in + -L*) path="$deplib" ;; + *.la) + dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$deplib" && dir="." + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 + absdir="$dir" + fi + ;; + esac + if grep "^installed=no" $deplib > /dev/null; then + path="-L$absdir/$objdir" + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -z "$libdir"; then + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit 1 + fi + path="-L$absdir" + fi + ;; + *) continue ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$deplibs $path" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) lib_search_path="$lib_search_path $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + ;; + -R*) + temp_xrpath=`$echo "X$deplib" | $Xsed -e 's/^-R//'` + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) xrpath="$xrpath $temp_xrpath";; + esac;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 + fi + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 + fi + + if test -n "$xrpath"; then + $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 + fi + + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 + fi + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + objs="$objs$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + eval libname=\"$libname_spec\" + ;; + *) + if test "$module" = no; then + $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + eval libname=\"$libname_spec\" + else + libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 + exit 1 + else + echo + echo "*** Warning: Linking the shared library $output against the non-libtool" + echo "*** objects $objs is not portable!" + libobjs="$libobjs $objs" + fi + fi + + if test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 + fi + + set dummy $rpath + if test "$#" -gt 2; then + $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 + fi + install_libdir="$2" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 + fi + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + IFS="$save_ifs" + + if test -n "$8"; then + $echo "$modename: too many parameters to \`-version-info'" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + current="$2" + revision="$3" + age="$4" + + # Check that each of the things are valid numbers. + case $current in + 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac + + case $revision in + 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac + + case $age in + 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; + *) + $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + ;; + esac + + if test "$age" -gt "$current"; then + $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit 1 + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + minor_current=`expr $current + 1` + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current"; + ;; + + irix | nonstopux) + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + major=`expr $current - $age + 1` + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + iface=`expr $revision - $loop` + loop=`expr $loop - 1` + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + ;; + + osf) + major=`expr $current - $age` + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + iface=`expr $current - $loop` + loop=`expr $loop - 1` + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + verstring="$verstring:${current}.0" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + major=`expr $current - $age` + versuffix="-$major" + ;; + + *) + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit 1 + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + fi + + if test "$mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`echo "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + removelist="$removelist $p" + ;; + *) ;; + esac + done + if test -n "$removelist"; then + $show "${rm}r $removelist" + $run ${rm}r $removelist + fi + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + oldlibs="$oldlibs $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + for path in $notinst_path; do + lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'` + deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'` + dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` + done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + temp_xrpath="$temp_xrpath -R$libdir" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + if true || test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) dlfiles="$dlfiles $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) dlprefiles="$dlprefiles $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + deplibs="$deplibs -framework System" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + deplibs="$deplibs -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behaviour. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $rm conftest.c + cat > conftest.c </dev/null` + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null \ + | grep " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ + | ${SED} 10q \ + | egrep "$file_magic_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + echo "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + echo "*** with $libname but no candidates were found. (...for file magic test)" + else + echo "*** with $libname and none of the candidates passed a file format test" + echo "*** using a file magic. Last file checked: $potlib" + fi + fi + else + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + fi + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + for a_deplib in $deplibs; do + name="`expr $a_deplib : '-l\(.*\)'`" + # If $name is empty we are operating on a -L argument. + if test -n "$name" && test "$name" != "0"; then + libname=`eval \\$echo \"$libname_spec\"` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval echo \"$potent_lib\" 2>/dev/null \ + | ${SED} 10q \ + | egrep "$match_pattern_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + echo "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + echo "*** with $libname but no candidates were found. (...for regex pattern test)" + else + echo "*** with $libname and none of the candidates passed a file format test" + echo "*** using a regex pattern. Last file checked: $potlib" + fi + fi + else + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + fi + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ + -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | + grep . >/dev/null; then + echo + if test "X$deplibs_check_method" = "Xnone"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + fi + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + echo "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$mode" != relink && test "$fast_install" = no && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + dep_rpath="$dep_rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval library_names=\"$library_names_spec\" + set dummy $library_names + realname="$2" + shift; shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + for link + do + linknames="$linknames $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + $show "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + eval cmds=\"$export_symbols_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + if test -n "$export_symbols_regex"; then + $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" + $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + $show "$mv \"${export_symbols}T\" \"$export_symbols\"" + $run eval '$mv "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' + fi + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + else + gentop="$output_objdir/${outputname}x" + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "$mkdir $gentop" + $run $mkdir "$gentop" + status=$? + if test "$status" -ne 0 && test ! -d "$gentop"; then + exit $status + fi + generated="$generated $gentop" + + for xlib in $convenience; do + # Extract the objects. + case $xlib in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac + xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` + xdir="$gentop/$xlib" + + $show "${rm}r $xdir" + $run ${rm}r "$xdir" + $show "$mkdir $xdir" + $run $mkdir "$xdir" + status=$? + if test "$status" -ne 0 && test ! -d "$xdir"; then + exit $status + fi + $show "(cd $xdir && $AR x $xabs)" + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? + + libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + linker_flags="$linker_flags $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? + fi + + # Add all flags from the command line. We here create a library, + # but those flags were only added to compile_command and + # finalize_command, which are only used when creating executables. + # So do it by hand here. + compiler_flags="$compiler_flags $add_flags" + # Only add it to commands which use CC, instead of LD, i.e. + # only to $compiler_flags + #linker_flags="$linker_flags $add_flags" + + # Do each of the archive commands. + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval cmds=\"$archive_expsym_cmds\" + else + eval cmds=\"$archive_cmds\" + fi + + if len=`expr "X$cmds" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise. + $echo "creating reloadable object files..." + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + delfiles= + last_robj= + k=1 + output=$output_objdir/$save_output-${k}.$objext + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + eval test_cmds=\"$reload_cmds $objlist $last_robj\" + if test "X$objlist" = X || + { len=`expr "X$test_cmds" : ".*"` && + test "$len" -le "$max_cmd_len"; }; then + objlist="$objlist $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + else + # All subsequent reloadable object files will link in + # the last one created. + eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" + fi + last_robj=$output_objdir/$save_output-${k}.$objext + k=`expr $k + 1` + output=$output_objdir/$save_output-${k}.$objext + objlist=$obj + len=1 + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + + # Set up a command to remove the reloadale object files + # after they are used. + i=0 + while test "$i" -lt "$k" + do + i=`expr $i + 1` + delfiles="$delfiles $output_objdir/$save_output-${i}.$objext" + done + + $echo "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval cmds=\"$archive_expsym_cmds\" + else + eval cmds=\"$archive_cmds\" + fi + + # Append the command to remove the reloadable object files + # to the just-reset $cmds. + eval cmds=\"\$cmds~$rm $delfiles\" + fi + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? + exit 0 + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" + $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 + fi + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 + fi + + if test -n "$xrpath"; then + $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 + fi + + case $output in + *.lo) + if test -n "$objs$old_deplibs"; then + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 + exit 1 + fi + libobj="$output" + obj=`$echo "X$output" | $Xsed -e "$lo2o"` + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $run $rm $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" + else + gentop="$output_objdir/${obj}x" + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "$mkdir $gentop" + $run $mkdir "$gentop" + status=$? + if test "$status" -ne 0 && test ! -d "$gentop"; then + exit $status + fi + generated="$generated $gentop" + + for xlib in $convenience; do + # Extract the objects. + case $xlib in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac + xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` + xdir="$gentop/$xlib" + + $show "${rm}r $xdir" + $run ${rm}r "$xdir" + $show "$mkdir $xdir" + $run $mkdir "$xdir" + status=$? + if test "$status" -ne 0 && test ! -d "$xdir"; then + exit $status + fi + $show "(cd $xdir && $AR x $xabs)" + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? + + reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + fi + fi + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + eval cmds=\"$reload_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit 0 + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $run eval "echo timestamp > $libobj" || exit $? + exit 0 + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + eval cmds=\"$reload_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit 0 + ;; + + prog) + case $host in + *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; + esac + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 + fi + + if test "$preload" = yes; then + if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && + test "$dlopen_self_static" = unknown; then + $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." + fi + fi + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` + finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` + ;; + esac + + compile_command="$compile_command $compile_deplibs" + finalize_command="$finalize_command $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + case :$dllsearchpath: in + *":$libdir:"*) ;; + *) dllsearchpath="$dllsearchpath:$libdir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + fi + + dlsyms= + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + dlsyms="${outputname}S.c" + else + $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 + fi + fi + + if test -n "$dlsyms"; then + case $dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${outputname}.nm" + + $show "$rm $nlist ${nlist}S ${nlist}T" + $run $rm "$nlist" "${nlist}S" "${nlist}T" + + # Parse the name list into a source file. + $show "creating $output_objdir/$dlsyms" + + test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ +/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ +/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +/* Prevent the only kind of declaration conflicts we can make. */ +#define lt_preloaded_symbols some_other_symbol + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + $show "generating symbol list for \`$output'" + + test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + for arg in $progfiles; do + $show "extracting global C symbols from \`$arg'" + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + if test -n "$export_symbols_regex"; then + $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$output.exp" + $run $rm $export_symbols + $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + else + $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' + $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' + $run eval 'mv "$nlist"T "$nlist"' + fi + fi + + for arg in $dlprefiles; do + $show "extracting global C symbols from \`$arg'" + name=`echo "$arg" | ${SED} -e 's%^.*/%%'` + $run eval 'echo ": $name " >> "$nlist"' + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -z "$run"; then + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $mv "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then + : + else + grep -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$dlsyms" + fi + + $echo >> "$output_objdir/$dlsyms" "\ + +#undef lt_preloaded_symbols + +#if defined (__STDC__) && __STDC__ +# define lt_ptr void * +#else +# define lt_ptr char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr address; +} +lt_preloaded_symbols[] = +{\ +" + + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" + + $echo >> "$output_objdir/$dlsyms" "\ + {0, (lt_ptr) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + fi + + pic_flag_for_symtable= + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; + esac;; + *-*-hpux*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag";; + esac + esac + + # Now compile the dynamic symbol file. + $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" + $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? + + # Clean up the generated files. + $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" + $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" + + # Transform the symbol file into the correct name. + compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` + ;; + *) + $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 + exit 1 + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` + finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` + fi + + # AIX runtime linking requires linking programs with -Wl,-brtl and libs with -Wl,-G + # Also add -bnolibpath to the beginning of the link line, to clear the hardcoded runpath. + # Otherwise, things like the -L path to libgcc.a are accidentally hardcoded by ld. + # This does not apply on AIX for ia64, which uses a SysV linker. + case "$host" in + ia64-*-aix5*) ;; + *-*-aix4* | *-*-aix5*) + compile_command=`$echo "X$compile_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` + finalize_command=`$echo "X$finalize_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` ;; + esac + + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + # Replace the output file specification. + compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + $show "$link_command" + $run eval "$link_command" + status=$? + + # Delete the generated files. + if test -n "$dlsyms"; then + $show "$rm $output_objdir/${outputname}S.${objext}" + $run $rm "$output_objdir/${outputname}S.${objext}" + fi + + exit $status + fi + + if test -n "$shlibpath_var"; then + # We should set the shlibpath_var + rpath= + for dir in $temp_rpath; do + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) + # Absolute path. + rpath="$rpath$dir:" + ;; + *) + # Relative path: add a thisdir entry. + rpath="$rpath\$thisdir/$dir:" + ;; + esac + done + temp_rpath="$rpath" + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + rpath="$rpath$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $run $rm $output + # Link the executable and exit + $show "$link_command" + $run eval "$link_command" || exit $? + exit 0 + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 + $echo "$modename: \`$output' will be relinked during installation" 1>&2 + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname + + $show "$link_command" + $run eval "$link_command" || exit $? + + # Now create the wrapper script. + $show "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` + relink_command="$var=\"$var_value\"; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + fi + + # Quote $echo for shipping. + if test "X$echo" = "X$SHELL $0 --fallback-echo"; then + case $0 in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; + *) qecho="$SHELL `pwd`/$0 --fallback-echo";; + esac + qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` + else + qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` + fi + + # Only actually do things if our run command is non-null. + if test -z "$run"; then + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) exeext=.exe ;; + *) exeext= ;; + esac + $rm $output + trap "$rm $output; exit 1" 1 2 15 + + $echo > $output "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='${SED} -e 1s/^X//' +sed_quote_subst='$sed_quote_subst' + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variable: + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$echo are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + echo=\"$qecho\" + file=\"\$0\" + # Make sure echo works. + if test \"X\$1\" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift + elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then + # Yippee, \$echo works! + : + else + # Restart under the correct shell, and then maybe \$echo will work. + exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} + fi + fi\ +" + $echo >> $output "\ + + # Find the directory that this script lives in. + thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + done + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + echo >> $output "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || \\ + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $mkdir \"\$progdir\" + else + $rm \"\$progdir/\$file\" + fi" + + echo >> $output "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $echo \"\$relink_command_output\" >&2 + $rm \"\$progdir/\$file\" + exit 1 + fi + fi + + $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $rm \"\$progdir/\$program\"; + $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $rm \"\$progdir/\$file\" + fi" + else + echo >> $output "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + echo >> $output "\ + + if test -f \"\$progdir/\$program\"; then" + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $echo >> $output "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + + export $shlibpath_var +" + fi + + # fixup the dll searchpath if we need to. + if test -n "$dllsearchpath"; then + $echo >> $output "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + $echo >> $output "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +" + case $host in + # win32 systems need to use the prog path for dll + # lookup to work + *-*-cygwin* | *-*-pw32*) + $echo >> $output "\ + exec \$progdir/\$program \${1+\"\$@\"} +" + ;; + + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2*) + $echo >> $output "\ + exec \$progdir\\\\\$program \${1+\"\$@\"} +" + ;; + + *) + $echo >> $output "\ + # Export the path to the program. + PATH=\"\$progdir:\$PATH\" + export PATH + + exec \$program \${1+\"\$@\"} +" + ;; + esac + $echo >> $output "\ + \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" + exit 1 + fi + else + # The program doesn't exist. + \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 + \$echo \"This script is just a wrapper for \$program.\" 1>&2 + echo \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" + chmod +x $output + fi + exit 0 + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + #oldobjs="$oldobjs$old_deplibs $non_pic_objects" + oldobjs="$old_deplibs $non_pic_objects" + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "$mkdir $gentop" + $run $mkdir "$gentop" + status=$? + if test "$status" -ne 0 && test ! -d "$gentop"; then + exit $status + fi + generated="$generated $gentop" + + # Add in members from convenience archives. + for xlib in $addlibs; do + # Extract the objects. + case $xlib in + [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; + *) xabs=`pwd`"/$xlib" ;; + esac + xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` + xdir="$gentop/$xlib" + + $show "${rm}r $xdir" + $run ${rm}r "$xdir" + $show "$mkdir $xdir" + $run $mkdir "$xdir" + status=$? + if test "$status" -ne 0 && test ! -d "$xdir"; then + exit $status + fi + $show "(cd $xdir && $AR x $xabs)" + $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? + + oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` + done + fi + + compiler_flags="$compiler_flags $add_flags" + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + eval cmds=\"$old_archive_from_new_cmds\" + else + eval cmds=\"$old_archive_cmds\" + + if len=`expr "X$cmds" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # the command line is too long to link in one step, link in parts + $echo "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + for obj in $save_oldobjs + do + oldobjs="$objlist $obj" + objlist="$objlist $obj" + eval test_cmds=\"$old_archive_cmds\" + if len=`expr "X$test_cmds" : ".*"` && + test "$len" -le "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + eval cmds=\"\$concat_cmds~$old_archive_cmds\" + fi + fi + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$generated"; then + $show "${rm}r$generated" + $run ${rm}r$generated + fi + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + $show "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` + relink_command="$var=\"$var_value\"; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="($relink_command; cd `pwd`; $SHELL $0 --mode=relink $libtool_args)" + relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + + # Only create the output if not a dry run. + if test -z "$run"; then + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -z "$libdir"; then + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit 1 + fi + newdependency_libs="$newdependency_libs $libdir/$name" + ;; + *) newdependency_libs="$newdependency_libs $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + for lib in $dlfiles; do + name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + if test -z "$libdir"; then + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit 1 + fi + newdlfiles="$newdlfiles $libdir/$name" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + if test -z "$libdir"; then + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit 1 + fi + newdlprefiles="$newdlprefiles $libdir/$name" + done + dlprefiles="$newdlprefiles" + fi + $rm $output + # place dlname in correct position for cygwin + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + esac + $echo > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes && test "$fast_install" = no; then + $echo >> $output "\ +relink_command=\"$relink_command\"" + fi + done + fi + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" + $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? + ;; + esac + exit 0 + ;; + + # libtool install mode + install) + modename="$modename: install" + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then + # Aesthetically quote it. + arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; + esac + install_prog="$arg " + arg="$1" + shift + else + install_prog= + arg="$nonopt" + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; + esac + install_prog="$install_prog$arg" + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + for arg + do + if test -n "$dest"; then + files="$files $dest" + dest="$arg" + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) prev="-f" ;; + -g) prev="-g" ;; + -m) prev="-m" ;; + -o) prev="-o" ;; + -s) + stripme=" -s" + continue + ;; + -*) ;; + + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + prev= + else + dest="$arg" + continue + fi + ;; + esac + + # Aesthetically quote the argument. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) + arg="\"$arg\"" + ;; + esac + install_prog="$install_prog $arg" + done + + if test -z "$install_prog"; then + $echo "$modename: you must specify an install program" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + if test -n "$prev"; then + $echo "$modename: the \`$prev' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + if test -z "$files"; then + if test -z "$dest"; then + $echo "$modename: no file or destination specified" 1>&2 + else + $echo "$modename: you must specify a destination" 1>&2 + fi + $echo "$help" 1>&2 + exit 1 + fi + + # Strip any trailing slash from the destination. + dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` + test "X$destdir" = "X$dest" && destdir=. + destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` + + # Not a directory, so check to see that there is only one file specified. + set dummy $files + if test "$#" -gt 2; then + $echo "$modename: \`$dest' is not a directory" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + staticlibs="$staticlibs $file" + ;; + + *.la) + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + library_names= + old_library= + relink_command= + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) current_libdirs="$current_libdirs $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) future_libdirs="$future_libdirs $libdir" ;; + esac + fi + + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ + test "X$dir" = "X$file/" && dir= + dir="$dir$objdir" + + if test -n "$relink_command"; then + $echo "$modename: warning: relinking \`$file'" 1>&2 + $show "$relink_command" + if $run eval "$relink_command"; then : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + continue + fi + fi + + # See the names of the shared library. + set dummy $library_names + if test -n "$2"; then + realname="$2" + shift + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + $show "$install_prog $dir/$srcname $destdir/$realname" + $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? + if test -n "$stripme" && test -n "$striplib"; then + $show "$striplib $destdir/$realname" + $run eval "$striplib $destdir/$realname" || exit $? + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + for linkname + do + if test "$linkname" != "$realname"; then + $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" + $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" + fi + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + eval cmds=\"$postinstall_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Install the pseudo-library for information purposes. + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + instname="$dir/$name"i + $show "$install_prog $instname $destdir/$name" + $run eval "$install_prog $instname $destdir/$name" || exit $? + + # Maybe install the static library, too. + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; + esac + + # Install the libtool object if requested. + if test -n "$destfile"; then + $show "$install_prog $file $destfile" + $run eval "$install_prog $file $destfile" || exit $? + fi + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` + + $show "$install_prog $staticobj $staticdest" + $run eval "$install_prog \$staticobj \$staticdest" || exit $? + fi + exit 0 + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin*|*mingw*) + wrapper=`echo $file | ${SED} -e 's,.exe$,,'` + ;; + *) + wrapper=$file + ;; + esac + if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then + notinst_deplibs= + relink_command= + + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $wrapper ;; + *) . ./$wrapper ;; + esac + + # Check the variables that should have been set. + if test -z "$notinst_deplibs"; then + $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 + exit 1 + fi + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + # If there is no directory component, then add one. + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + fi + libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + finalize=no + fi + done + + relink_command= + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + if test "$finalize" = yes && test -z "$run"; then + tmpdir="/tmp" + test -n "$TMPDIR" && tmpdir="$TMPDIR" + tmpdir="$tmpdir/libtool-$$" + if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : + else + $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 + continue + fi + file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + + $show "$relink_command" + if $run eval "$relink_command"; then : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + ${rm}r "$tmpdir" + continue + fi + file="$outputname" + else + $echo "$modename: warning: cannot relink \`$file'" 1>&2 + fi + else + # Install the binary that we compiled earlier. + file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyways + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + destfile=`echo $destfile | ${SED} -e 's,.exe$,,'` + ;; + esac + ;; + esac + $show "$install_prog$stripme $file $destfile" + $run eval "$install_prog\$stripme \$file \$destfile" || exit $? + test -n "$outputname" && ${rm}r "$tmpdir" + ;; + esac + done + + for file in $staticlibs; do + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + + $show "$install_prog $file $oldlib" + $run eval "$install_prog \$file \$oldlib" || exit $? + + if test -n "$stripme" && test -n "$striplib"; then + $show "$old_striplib $oldlib" + $run eval "$old_striplib $oldlib" || exit $? + fi + + # Do each command in the postinstall commands. + eval cmds=\"$old_postinstall_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$future_libdirs"; then + $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 + fi + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + test -n "$run" && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $0 --finish$current_libdirs' + else + exit 0 + fi + ;; + + # libtool finish mode + finish) + modename="$modename: finish" + libdirs="$nonopt" + admincmds= + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for dir + do + libdirs="$libdirs $dir" + done + + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + eval cmds=\"$finish_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || admincmds="$admincmds + $cmd" + done + IFS="$save_ifs" + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $run eval "$cmds" || admincmds="$admincmds + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + exit 0 + + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + echo " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + echo " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + echo " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo + echo "See any operating system documentation about shared libraries for" + echo "more information, such as the ld(1) and ld.so(8) manual pages." + echo "----------------------------------------------------------------------" + exit 0 + ;; + + # libtool execute mode + execute) + modename="$modename: execute" + + # The first argument is the command name. + cmd="$nonopt" + if test -z "$cmd"; then + $echo "$modename: you must specify a COMMAND" 1>&2 + $echo "$help" + exit 1 + fi + + # Handle -dlopen flags immediately. + for file in $execute_dlfiles; do + if test ! -f "$file"; then + $echo "$modename: \`$file' is not a file" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + dir= + case $file in + *.la) + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + # Read the libtool library. + dlname= + library_names= + + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" + continue + fi + + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$file" && dir=. + + if test -f "$dir/$objdir/$dlname"; then + dir="$dir/$objdir" + else + $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 + exit 1 + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$file" && dir=. + ;; + + *) + $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -*) ;; + *) + # Do a test to see if this is really a libtool program. + if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` + args="$args \"$file\"" + done + + if test -z "$run"; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved enviroment variables + if test "${save_LC_ALL+set}" = set; then + LC_ALL="$save_LC_ALL"; export LC_ALL + fi + if test "${save_LANG+set}" = set; then + LANG="$save_LANG"; export LANG + fi + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" + $echo "export $shlibpath_var" + fi + $echo "$cmd$args" + exit 0 + fi + ;; + + # libtool clean and uninstall mode + clean | uninstall) + modename="$modename: $mode" + rm="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) rm="$rm $arg"; rmforce=yes ;; + -*) rm="$rm $arg" ;; + *) files="$files $arg" ;; + esac + done + + if test -z "$rm"; then + $echo "$modename: you must specify an RM program" 1>&2 + $echo "$help" 1>&2 + exit 1 + fi + + rmdirs= + + for file in $files; do + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + if test "X$dir" = "X$file"; then + dir=. + objdir="$objdir" + else + objdir="$dir/$objdir" + fi + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + test "$mode" = uninstall && objdir="$dir" + + # Remember objdir for removal later, being careful to avoid duplicates + if test "$mode" = clean; then + case " $rmdirs " in + *" $objdir "*) ;; + *) rmdirs="$rmdirs $objdir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if (test -L "$file") >/dev/null 2>&1 \ + || (test -h "$file") >/dev/null 2>&1 \ + || test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + . $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + rmfiles="$rmfiles $objdir/$n" + done + test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + + if test "$mode" = uninstall; then + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + eval cmds=\"$postuninstall_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + if test "$?" -ne 0 && test "$rmforce" != yes; then + exit_status=1 + fi + done + IFS="$save_ifs" + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + eval cmds=\"$old_postuninstall_cmds\" + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" + if test "$?" -ne 0 && test "$rmforce" != yes; then + exit_status=1 + fi + done + IFS="$save_ifs" + fi + # FIXME: should reinstall the best remaining shared library. + fi + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + + # Read the .lo file + . $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" \ + && test "$pic_object" != none; then + rmfiles="$rmfiles $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" \ + && test "$non_pic_object" != none; then + rmfiles="$rmfiles $dir/$non_pic_object" + fi + fi + ;; + + *) + # Do a test to see if this is a libtool program. + if test "$mode" = clean && + (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + relink_command= + . $dir/$file + + rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + rmfiles="$rmfiles $objdir/lt-$name" + fi + fi + ;; + esac + $show "$rm $rmfiles" + $run $rm $rmfiles || exit_status=1 + done + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + $show "rmdir $dir" + $run rmdir $dir >/dev/null 2>&1 + fi + done + + exit $exit_status + ;; + + "") + $echo "$modename: you must specify a MODE" 1>&2 + $echo "$generic_help" 1>&2 + exit 1 + ;; + esac + + if test -z "$exec_cmd"; then + $echo "$modename: invalid operation mode \`$mode'" 1>&2 + $echo "$generic_help" 1>&2 + exit 1 + fi +fi # test -z "$show_help" + +if test -n "$exec_cmd"; then + eval exec $exec_cmd + exit 1 +fi + +# We need to display help for each of the modes. +case $mode in +"") $echo \ +"Usage: $modename [OPTION]... [MODE-ARG]... + +Provide generalized library-building support services. + + --config show all configuration variables + --debug enable verbose shell tracing +-n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --finish same as \`--mode=finish' + --help display this help message and exit + --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] + --quiet same as \`--silent' + --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + --version print version information + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for +a more detailed description of MODE." + exit 0 + ;; + +clean) + $echo \ +"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + +compile) + $echo \ +"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -prefer-pic try to building PIC objects only + -prefer-non-pic try to building non-PIC objects only + -static always build a \`.o' file suitable for static linking + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + +execute) + $echo \ +"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + +finish) + $echo \ +"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + +install) + $echo \ +"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + +link) + $echo \ +"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -static do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + +uninstall) + $echo \ +"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + +*) + $echo "$modename: invalid operation mode \`$mode'" 1>&2 + $echo "$help" 1>&2 + exit 1 + ;; +esac + +echo +$echo "Try \`$modename --help' for more information about other modes." + +exit 0 + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/missing b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/missing new file mode 100644 index 000000000..576b500e6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/missing @@ -0,0 +1,337 @@ +#! /bin/sh +# Common stub for a few missing GNU programs while installing. +# Copyright (C) 1996-1997, 1999-2000, 2002 Free Software Foundation, +# Inc. +# Originally by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +case "$1" in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case "$1" in + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch]" + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing 0.4 - GNU automake" + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + + aclocal*) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case "$f" in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is needed, and you do not seem to have it handy on your + system. You might have modified some files without having the + proper tools for further handling them. + You can get \`$1Help2man' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` + test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/sh" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if [ ! -f y.tab.h ]; then + echo >y.tab.h + fi + if [ ! -f y.tab.c ]; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if [ $# -ne 1 ]; then + eval LASTARG="\${$#}" + case "$LASTARG" in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if [ -f "$SRCFILE" ]; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if [ ! -f lex.yy.c ]; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` + fi + if [ -f "$file" ]; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit 1 + fi + ;; + + makeinfo) + if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then + # We have makeinfo, but it failed. + exit 1 + fi + + echo 1>&2 "\ +WARNING: \`$1' is missing on your system. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + if test -z "$file"; then + file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` + fi + touch $file + ;; + + tar) + shift + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + fi + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case "$firstarg" in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case "$firstarg" in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and you do not seem to have it handy on your + system. You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequirements for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/mkinstalldirs b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/mkinstalldirs new file mode 100644 index 000000000..d2d5f21b6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/mkinstalldirs @@ -0,0 +1,111 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy +# Author: Noah Friedman +# Created: 1993-05-16 +# Public domain + +errstatus=0 +dirmode="" + +usage="\ +Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." + +# process command line arguments +while test $# -gt 0 ; do + case $1 in + -h | --help | --h*) # -h for help + echo "$usage" 1>&2 + exit 0 + ;; + -m) # -m PERM arg + shift + test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } + dirmode=$1 + shift + ;; + --) # stop option processing + shift + break + ;; + -*) # unknown option + echo "$usage" 1>&2 + exit 1 + ;; + *) # first non-opt arg + break + ;; + esac +done + +for file +do + if test -d "$file"; then + shift + else + break + fi +done + +case $# in + 0) exit 0 ;; +esac + +case $dirmode in + '') + if mkdir -p -- . 2>/dev/null; then + echo "mkdir -p -- $*" + exec mkdir -p -- "$@" + fi + ;; + *) + if mkdir -m "$dirmode" -p -- . 2>/dev/null; then + echo "mkdir -m $dirmode -p -- $*" + exec mkdir -m "$dirmode" -p -- "$@" + fi + ;; +esac + +for file +do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d + do + pathcomp="$pathcomp$d" + case $pathcomp in + -*) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + else + if test ! -z "$dirmode"; then + echo "chmod $dirmode $pathcomp" + lasterr="" + chmod "$dirmode" "$pathcomp" || lasterr=$? + + if test ! -z "$lasterr"; then + errstatus=$lasterr + fi + fi + fi + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# End: +# mkinstalldirs ends here diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/ylwrap b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/ylwrap new file mode 100644 index 000000000..304b82d9a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/admin/ylwrap @@ -0,0 +1,143 @@ +#! /bin/sh +# ylwrap - wrapper for lex/yacc invocations. +# Copyright 1996-1999 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Usage: +# ylwrap INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... +# * INPUT is the input file +# * OUTPUT is file PROG generates +# * DESIRED is file we actually want +# * PROGRAM is program to run +# * ARGS are passed to PROG +# Any number of OUTPUT,DESIRED pairs may be used. + +# The input. +input="$1" +shift +case "$input" in + [\\/]* | ?:[\\/]*) + # Absolute path; do nothing. + ;; + *) + # Relative path. Make it absolute. + input="`pwd`/$input" + ;; +esac + +# The directory holding the input. +input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'` +# Quote $INPUT_DIR so we can use it in a regexp. +# FIXME: really we should care about more than `.' and `\'. +input_rx=`echo "$input_dir" | sed -e 's,\\\\,\\\\\\\\,g' -e 's,\\.,\\\\.,g'` + +echo "got $input_rx" + +pairlist= +while test "$#" -ne 0; do + if test "$1" = "--"; then + shift + break + fi + pairlist="$pairlist $1" + shift +done + +# The program to run. +prog="$1" +shift +# Make any relative path in $prog absolute. +case "$prog" in + [\\/]* | ?:[\\/]*) ;; + *[\\/]*) prog="`pwd`/$prog" ;; +esac + +# FIXME: add hostname here for parallel makes that run commands on +# other machines. But that might take us over the 14-char limit. +dirname=ylwrap$$ +trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15 +mkdir $dirname || exit 1 + +cd $dirname + +$prog ${1+"$@"} "$input" +status=$? + +if test $status -eq 0; then + set X $pairlist + shift + first=yes + # Since DOS filename conventions don't allow two dots, + # the DOS version of Bison writes out y_tab.c instead of y.tab.c + # and y_tab.h instead of y.tab.h. Test to see if this is the case. + y_tab_nodot="no" + if test -f y_tab.c || test -f y_tab.h; then + y_tab_nodot="yes" + fi + + while test "$#" -ne 0; do + from="$1" + # Handle y_tab.c and y_tab.h output by DOS + if test $y_tab_nodot = "yes"; then + if test $from = "y.tab.c"; then + from="y_tab.c" + else + if test $from = "y.tab.h"; then + from="y_tab.h" + fi + fi + fi + if test -f "$from"; then + # If $2 is an absolute path name, then just use that, + # otherwise prepend `../'. + case "$2" in + [\\/]* | ?:[\\/]*) target="$2";; + *) target="../$2";; + esac + + # Edit out `#line' or `#' directives. We don't want the + # resulting debug information to point at an absolute srcdir; + # it is better for it to just mention the .y file with no + # path. + sed -e "/^#/ s,$input_rx,," "$from" > "$target" || status=$? + else + # A missing file is only an error for the first file. This + # is a blatant hack to let us support using "yacc -d". If -d + # is not specified, we don't want an error when the header + # file is "missing". + if test $first = yes; then + status=1 + fi + fi + shift + shift + first=no + done +else + status=$? +fi + +# Remove the directory. +cd .. +rm -rf $dirname + +exit $status diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/autoclean.sh new file mode 100755 index 000000000..5f821c96a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/autoclean.sh @@ -0,0 +1,49 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +if test "$1" = fromscratch; then + + # Brought in by explicit copy. + rm -rf admin + +fi + +# Brought in by autopoint. +rm -f ABOUT-NLS +rm -f m4/gettext.m4 +rm -f m4/build-to-host.m4 +rm -f m4/host-cpu-c-abi.m4 +rm -f m4/iconv.m4 +rm -f m4/intlmacosx.m4 +rm -f m4/lib-ld.m4 +rm -f m4/lib-link.m4 +rm -f m4/lib-prefix.m4 +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/Makefile.in.in +rm -f po/remove-potcdate.sin +rm -f admin/config.rpath + +# Generated through admin/cvs.sh. + rm -f acinclude.m4 + rm -f subdirs configure.files + rm -f configure.in + # Generated by aclocal. + rm -f aclocal.m4 + # Generated by autoconf. + rm -f configure + rm -f config.h.in stamp-h.in + rm -f Makefile.in m4/Makefile.in + +# Generated. +rm -f po/Makefile.in +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/autogen.sh new file mode 100755 index 000000000..ded134bce --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/autogen.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test "$1" = fromscratch; then + + kdedir= + for d in /usr/lib/kde /usr/local/kde /usr/local /usr/kde /usr /opt/kde3 /opt/kde /suse/opt/kde3 $KDEDIR; do + if test -f $d/share/apps/kdelibs/admin/cvs.sh; then + kdedir=$d + break + fi + done + if test -z "$kdedir"; then + echo "*** KDE directory not found. Try setting KDEDIR." 1>&2 + exit 1 + fi + + cp -a $kdedir/share/apps/kdelibs/admin . + sed -e s/AC_FOREACH/INCOMPATIBLE_FOREACH/g < $kdedir/share/apps/kdelibs/admin/acinclude.m4.in > admin/acinclude.m4.in + sed -e 's/automake\*1.6/automake\*1.[678] | automake\*1.[678]/' < admin/cvs.sh > admin/cvs.sh.new + mv admin/cvs.sh.new admin/cvs.sh + +fi + +autopoint -f # was: gettextize -f -c +mv config.rpath admin/config.rpath +rm -f mkinstalldirs +rm po/Makevars.template +rm po/Rules-quot +rm po/boldquot.sed +rm po/en@boldquot.header +rm po/en@quot.header +rm po/insert-header.sin +rm po/quot.sed + +sh admin/cvs.sh cvs + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/hello.cc b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/hello.cc new file mode 100644 index 000000000..e8fefd3f6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/hello.cc @@ -0,0 +1,73 @@ +// Example for use of GNU gettext. +// Copyright (C) 2003, 2019 Free Software Foundation, Inc. +// This file is published under the GNU General Public License. + +// Source code of the C++ program. + +#if HAVE_CONFIG_H +# include +#endif + +#include +/* Declare KCmdLineArgs, KCmdLineOptions. */ +#include +/* Declare KApplication. */ +#include +/* Declare KAboutData. */ +#include +/* Declare main window widget. */ +#include "hellowindow.h" + +// Comment line options. + +static KCmdLineOptions options[] = +{ + { 0, 0, 0 } // End of options. +}; + +int +main (int argc, char *argv[]) +{ + // Initializations. + + { + // Add our installation directory to KDE's search list for message + // catalogs. By default it looks only in $KDEHOME/share/locale and + // $KDEDIR/share/locale. + QString kdedirs = getenv ("KDEDIRS"); + if (kdedirs.isEmpty ()) + kdedirs = PREFIX; + else + kdedirs = kdedirs + ":" + PREFIX; + setenv ("KDEDIRS", (const char *) kdedirs.local8Bit(), true); + } + + KAboutData aboutData ("hello-c++-kde", + I18N_NOOP ("Hello example"), + VERSION, + I18N_NOOP ("Hello world example"), + KAboutData::License_GPL, + "(C) 2003, 2019 Free Software Foundation", + NULL, + NULL, + "bug-gettext@gnu.org"); + KCmdLineArgs::init (argc, argv, &aboutData); + KCmdLineArgs::addCmdLineOptions (options); + KApplication application; + + // Create the GUI elements. + + HelloMainWindow *window = new HelloMainWindow (); + QObject::connect (window->button, SIGNAL (clicked ()), + &application, SLOT (quit ())); + + application.setMainWidget (window); + + // Make the GUI elements visible. + + window->show (); + + // Start the event loop. + + return application.exec (); +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/hellowindow.cc b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/hellowindow.cc new file mode 100644 index 000000000..f6e341e6b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/hellowindow.cc @@ -0,0 +1,68 @@ +// Example for use of GNU gettext. +// Copyright (C) 2003 Free Software Foundation, Inc. +// This file is published under the GNU General Public License. + +#if HAVE_CONFIG_H +# include +#endif + +/* Specification. */ +#include "hellowindow.h" + +/* Declare i18n. */ +#include +/* Declare KMainWindow. */ +#include +/* Declare QLabel. */ +#include +/* Declare QPushButton. */ +#include +/* Declare QString. */ +#include +/* Declare QVBox. */ +#include +/* Declare QHBox. */ +#include + +/* Get getpid() declaration. */ +#if defined _WIN32 && !defined __CYGWIN__ +/* native Windows API */ +# include +# define getpid _getpid +#else +/* POSIX API */ +# include +#endif + +// The main window widget. + +HelloMainWindow::HelloMainWindow (QWidget * parent, const char * name) + : KMainWindow (parent, name) +{ + setCaption ("Hello example"); + + QVBox *panel = new QVBox (this); + panel->setSpacing (2); + + QLabel *label1 = new QLabel (i18n ("Hello, world!"), panel); + + QString label2text; + // NOT using QString::sprintf because it doesn't support reordering of + // arguments. + //label2text.sprintf (i18n ("This program is running as process number %d"), + // getpid ()); + label2text = i18n ("This program is running as process number %1.").arg(getpid ()); + QLabel *label2 = new QLabel (label2text, panel); + + QHBox *buttonbar = new QHBox (panel); + QWidget *filler = new QWidget (buttonbar); // makes the button right-aligned + button = new QPushButton ("OK", buttonbar); + button->setMaximumWidth (button->sizeHint().width() + 20); + + panel->resize (panel->sizeHint ()); + resize (panel->frameSize ()); +} + +HelloMainWindow::~HelloMainWindow () +{ +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/hellowindow.h b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/hellowindow.h new file mode 100644 index 000000000..6457a487d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/hellowindow.h @@ -0,0 +1,20 @@ +// Example for use of GNU gettext. +// Copyright (C) 2003 Free Software Foundation, Inc. +// This file is published under the GNU General Public License. + +/* Declare KMainWindow. */ +#include +/* Declare QPushButton. */ +#include + +// The main window widget. + +class HelloMainWindow : public KMainWindow +{ + Q_OBJECT +public: + HelloMainWindow (QWidget * parent = NULL, const char * name = NULL); + ~HelloMainWindow (); +public: + QPushButton *button; +}; diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/m4/Makefile.am new file mode 100644 index 000000000..9219ad199 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/m4/Makefile.am @@ -0,0 +1,4 @@ +EXTRA_DIST = \ + gettext.m4 build-to-host.m4 host-cpu-c-abi.m4 \ + iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \ + nls.m4 po.m4 progtest.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/Makevars b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/Makevars new file mode 100644 index 000000000..8feae24fd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/Makevars @@ -0,0 +1,91 @@ +# Makefile variables for PO directory in any package using GNU gettext. +# +# Copyright (C) 2003-2019 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation gives +# unlimited permission to use, copy, distribute, and modify it. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = \ + --qt \ + --keyword=i18n --flag=i18n:1:pass-c-format --flag=i18n:1:pass-qt-format \ + --keyword=tr2i18n --flag=tr2i18n:1:pass-c-format --flag=tr2i18n:1:pass-qt-format \ + --keyword=I18N_NOOP --flag=I18N_NOOP:1:pass-c-format --flag=I18N_NOOP:1:pass-qt-format \ + --keyword=tr --flag=tr:1:pass-c-format --flag=tr:1:pass-qt-format \ + --keyword=translate:2 --flag=translate:2:pass-c-format --flag=translate:2:pass-qt-format \ + --keyword=QT_TR_NOOP --flag=QT_TR_NOOP:1:pass-c-format --flag=QT_TR_NOOP:1:pass-qt-format \ + --keyword=QT_TRANSLATE_NOOP:2 --flag=QT_TRANSLATE_NOOP:2:pass-c-format --flag=QT_TRANSLATE_NOOP:2:pass-qt-format \ + --keyword=_ --flag=_:1:pass-c-format --flag=_:1:pass-qt-format \ + --keyword=N_ --flag=N_:1:pass-c-format --flag=N_:1:pass-qt-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = no + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = yes + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = yes diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/af.po new file mode 100644 index 000000000..fe6863f78 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/af.po @@ -0,0 +1,34 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Hallo voorbeeld" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Hallo wêreld voorbeeld" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Hierdie program loop as prosesnommer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ast.po new file mode 100644 index 000000000..ad4e2882c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ast.po @@ -0,0 +1,37 @@ +# Asturian translation for hello-c++-kde +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Hola d'exemplu" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Hola mundu d'exemplu" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Esti programa ta executándose como procesu númberu %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/bg.po new file mode 100644 index 000000000..286c0bb73 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/bg.po @@ -0,0 +1,34 @@ +# Bulgarian translations for hello-c++-kde package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-kde 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Пример: Здравейте" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Пример: Здравейте на вÑички" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ca.po new file mode 100644 index 000000000..3758276c8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ca.po @@ -0,0 +1,35 @@ +# Catalan messages for GNU hello-c++-kde. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Exemple Hola" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Exemple Hola Món" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Aquest programa està corrent amb el número de procés %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/cs.po new file mode 100644 index 000000000..b316edf4b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/cs.po @@ -0,0 +1,36 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Příklad „Hello“" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Příklad „Hello world“" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Tento program běží jako proces Äíslo %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/da.po new file mode 100644 index 000000000..b8eabcda8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/da.po @@ -0,0 +1,36 @@ +# Danish messages for hello-c++-kde. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Eksempel pÃ¥ hilsen" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "\"Hej verden\"-eksempel" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Dette program kører som proces nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/de.po new file mode 100644 index 000000000..f9263aab6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/de.po @@ -0,0 +1,40 @@ +# German messages for hello-c++-kde. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Beispiel Hallo" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Beispiel Hallo-Welt" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/el.po new file mode 100644 index 000000000..de1ae3ca6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/el.po @@ -0,0 +1,34 @@ +# Greek translation of hello-c++-kde +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "ΠαÏάδειγμα χαιÏετισμοÏ" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "ΠαÏάδειγμα \"γεια σου κόσμε\"" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/eo.po new file mode 100644 index 000000000..b6ca91838 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/eo.po @@ -0,0 +1,35 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Saluton-ekzemplo" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Saluton-mondo-ekzemplo" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/es.po new file mode 100644 index 000000000..cf15c3482 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/es.po @@ -0,0 +1,38 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Ejemplo de hola" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Ejemplo de hola mundo" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Este programa está corriendo como el proceso número %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/fi.po new file mode 100644 index 000000000..58d8a26f2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/fi.po @@ -0,0 +1,37 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Tervehdysesimerkki" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Terve maailma -esimerkki" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Tämän ohjelman prosessinumero on %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/fr.po new file mode 100644 index 000000000..4b1284aa9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/fr.po @@ -0,0 +1,38 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Exemple Bonjour" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Exemple de « Bonjour le monde »" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ce programme est exécuté en tant que processus numéro %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ga.po new file mode 100644 index 000000000..b9c3b66fc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ga.po @@ -0,0 +1,34 @@ +# Irish translations for hello-c++-kde. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Sampla `Dia duit'" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Sampla `Dia duit a dhomhain'" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Tá an clár seo ag rith mar phróiseas %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/gl.po new file mode 100644 index 000000000..8ef75d096 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/gl.po @@ -0,0 +1,39 @@ +# Galician translation for hello-c++-kde package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Exemplo ola" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Exemplo ola mundo" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Este programa estase executando como o proceso número %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/hr.po new file mode 100644 index 000000000..6f6e2bbb6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/hr.po @@ -0,0 +1,42 @@ +# Translation of hello-c++-kde to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Primjer pozdrava" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Primjer pozdrava svijetu" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/hu.po new file mode 100644 index 000000000..2e07d9b2c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/hu.po @@ -0,0 +1,37 @@ +# Hungarian translation for hello-c++-kde. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Hello példa" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Hello világ példa" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ez a program a(z) %1 folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/id.po new file mode 100644 index 000000000..03f17d8ac --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/id.po @@ -0,0 +1,35 @@ +# translation of hello-c++-kde-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Contoh hello" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Contoh hello world" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Program ini berjalan sebagai proses nomor %1" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/it.po new file mode 100644 index 000000000..be5da2248 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/it.po @@ -0,0 +1,34 @@ +# Italian messages for hello-c++-kde. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Esempio di Salve mondo" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Esempio di Salve mondo" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Questo programma è in esecuzione con numero di processo %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ja.po new file mode 100644 index 000000000..222c3fa7a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ja.po @@ -0,0 +1,34 @@ +# Translation of `hello-c++-kde' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "「ã“ã‚“ã«ã¡ã¯ã€ã®ä¾‹" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "「世界よ, ã“ã‚“ã«ã¡ã¯ã€ã®ä¾‹" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %1 ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ka.po new file mode 100644 index 000000000..2f6486965 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ka.po @@ -0,0 +1,36 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘ის მáƒáƒ’áƒáƒšáƒ˜áƒ—ი" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ¡ მáƒáƒ’áƒáƒšáƒ˜áƒ—ი" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ky.po new file mode 100644 index 000000000..9b7c67c24 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ky.po @@ -0,0 +1,36 @@ +# Translation of 'hello-c++-kde' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Салам миÑалы" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Салам дүйнө миÑалы" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Бул программа %1 процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/lv.po new file mode 100644 index 000000000..9fe533e12 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/lv.po @@ -0,0 +1,38 @@ +# Latvian translation of hello-c++-kde +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Sveiki paraugs" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Sveika pasaule paraugs" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ms.po new file mode 100644 index 000000000..6c3b7bb31 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ms.po @@ -0,0 +1,36 @@ +# hello-c++-kde Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Contoh hello" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Contoh hello world" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Program ini dilaksanakan sebagai proses bernombor %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/mt.po new file mode 100644 index 000000000..b0a549de1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/mt.po @@ -0,0 +1,35 @@ +# hello-c++-kde-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "EĊĵempju tal-Hello" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "EĊĵempju ta' Hello lil kulħadd" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/nb.po new file mode 100644 index 000000000..464dd22e2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/nb.po @@ -0,0 +1,37 @@ +# Norwegian Bokmal translations for hello-c++-kde package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Hallo eksempel" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Hallo verden-eksempel" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Dette programmet kjører som prosess nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/nl.po new file mode 100644 index 000000000..37aa20a4d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/nl.po @@ -0,0 +1,39 @@ +# Dutch translations for GNU hello-c++-kde. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "'Hallo'-voorbeeld" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "'Hallo wereld'-voorbeeld" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Dit programma draait als proces nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/nn.po new file mode 100644 index 000000000..83e887167 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/nn.po @@ -0,0 +1,36 @@ +# Norwegian Nynorsk translation of GNU hello-c++-kde +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Hei-eksempel" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "«Hei, verda»-eksempel" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Dette programmet køyrer som prosess nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/pl.po new file mode 100644 index 000000000..017ecfaf9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/pl.po @@ -0,0 +1,35 @@ +# Polish translations for the GNU gettext messages, hello-c++-kde domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "PrzykÅ‚adowy program witajÄ…cy" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "PrzykÅ‚adowy program witajÄ…cy Å›wiat" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ten program dziaÅ‚a jako proces o numerze %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/pt.po new file mode 100644 index 000000000..a124afeab --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/pt.po @@ -0,0 +1,36 @@ +# Portuguese (Portugal) translation of 'hello-c++-kde' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Exemplo Olá" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Exemplo Olá mundo" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Este programa está em execução como processo nº %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/pt_BR.po new file mode 100644 index 000000000..7115f5df6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/pt_BR.po @@ -0,0 +1,38 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Olá exemplo" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Olá mundo exemplo" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Este programa está executando com número de processo %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ro.po new file mode 100644 index 000000000..8b905424a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ro.po @@ -0,0 +1,45 @@ +# Mesajele în limba română pentru pachetul hello-c++-kde. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-c++-kde 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-c++-kde-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Exemplu Salut" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Exemplu Salut lume" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Acest program rulează ca procesul numărul %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ru.po new file mode 100644 index 000000000..213bf7253 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ru.po @@ -0,0 +1,38 @@ +# Translation of hello-c++-kde-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Пример: ЗдравÑтвуйте" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Пример: ЗдравÑтвуй, мир" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sk.po new file mode 100644 index 000000000..9b2b60c16 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sk.po @@ -0,0 +1,34 @@ +# Slovak translations GNU for hello-c++-kde package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Príklad \"Ahoj\"" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Príklad \"Ahoj svet\"" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Tento program beží ako proces s Äíslom %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sl.po new file mode 100644 index 000000000..7755bcccf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sl.po @@ -0,0 +1,37 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-c++-kde-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Zgled Pozdravljen" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Zgled Pozdravljen svet" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ta program teÄe kot proces Å¡tevilka %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sq.po new file mode 100644 index 000000000..9f4dd3e99 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sq.po @@ -0,0 +1,36 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Shembull tungjatjete" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Shembull Tungjatjeta Botë" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ky program po xhiron si procesi numër %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sr.po new file mode 100644 index 000000000..bf5e43178 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sr.po @@ -0,0 +1,36 @@ +# Serbian translation of hello-c++-kde. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Пример „Здраво“" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Пример „Здраво Ñвима“" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sv.po new file mode 100644 index 000000000..826000c57 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/sv.po @@ -0,0 +1,37 @@ +# Swedish messages for hello-c++-kde. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Hälsningsexempel" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Hej världen-exempel" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Detta program kör som process nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ta.po new file mode 100644 index 000000000..4f6950a1d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/ta.po @@ -0,0 +1,35 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "வணகà¯à®•ம௠எடà¯à®¤à¯à®¤à¯à®•à¯à®•ாடà¯à®Ÿà¯" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "வணகà¯à®•ம௠உலக௠எடà¯à®¤à¯à®¤à¯à®•à¯à®•ாடà¯à®Ÿà¯" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%1 ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/tr.po new file mode 100644 index 000000000..c8f9fa980 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/tr.po @@ -0,0 +1,37 @@ +# Turkish translation for hello-c++-kde. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Merhaba örneÄŸi" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Merhaba dünya örneÄŸi" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Bu yazılım %1 süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/uk.po new file mode 100644 index 000000000..1b50bc0f3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/uk.po @@ -0,0 +1,38 @@ +# Ukrainian translation to hello-c++-kde +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Приклад привітаннÑ" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Приклад «ПривітаннÑ»" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/vi.po new file mode 100644 index 000000000..eec31428f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/vi.po @@ -0,0 +1,40 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "Ví dụ “Chàoâ€" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "Ví dụ “Chào thế giá»›iâ€" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/zh_CN.po new file mode 100644 index 000000000..67c1ddc71 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/zh_CN.po @@ -0,0 +1,37 @@ +# zh_CN translation for hello-c++-kde. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "世界你好示例" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "世界你好示例" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %1 è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/zh_HK.po new file mode 100644 index 000000000..bff9612b2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/zh_HK.po @@ -0,0 +1,33 @@ +# Chinese (Hong Kong) translation of hello-c++-kde. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "測試範例" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "è¨Šæ¯æ¸¬è©¦ç¯„例" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %1。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/zh_TW.po new file mode 100644 index 000000000..60e591c41 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-kde/po/zh_TW.po @@ -0,0 +1,35 @@ +# Traditional Chinese translation of hello-c++-kde. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-kde 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:46 +msgid "Hello example" +msgstr "測試範例" + +#: hello.cc:48 +msgid "Hello world example" +msgstr "è¨Šæ¯æ¸¬è©¦ç¯„例" + +#: hellowindow.cc:47 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hellowindow.cc:54 +#, qt-format +msgid "This program is running as process number %1." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %1。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/BUGS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/BUGS new file mode 100644 index 000000000..6899f3e46 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/BUGS @@ -0,0 +1,3 @@ +Qt looks only at the LANG value and ignores LC_MESSAGES and LC_ALL. (Bug in +function QTextCodec::locale().) Therefore, to make it work, you have to set +LANG to the same value as LC_ALL or LC_MESSAGES. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/INSTALL new file mode 100644 index 000000000..351c025b3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/INSTALL @@ -0,0 +1,12 @@ +This example relies on: + - Qt (libqt) and its dependencies: OpenGL (libGL), libpng, zlib (libz) + - the C++ runtime libraries (libstdc++) + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix --with-qt-dir=/usr/lib/qt3 --enable-threads + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/Makefile.am new file mode 100644 index 000000000..44b29ffc2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/Makefile.am @@ -0,0 +1,31 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign no-dependencies +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_PROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.cc + +# Define C macros LOCALEDIR and PKGLOCALEDIR indicating where catalogs will be +# installed. +pkglocaledir = $(pkgdatadir)/locale +DEFS = -DLOCALEDIR=\"$(localedir)\" -DPKGLOCALEDIR=\"$(pkglocaledir)\" @DEFS@ + +CXXFLAGS += $(QT_CXXFLAGS) $(PTHREAD_CFLAGS) + +# Link time dependencies. +LDADD = $(QT_LDFLAGS) +LIBS += $(QT_LIBS) + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/autoclean.sh new file mode 100755 index 000000000..f19191802 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/autoclean.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f config.guess +rm -f config.sub +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.qm diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/autogen.sh new file mode 100755 index 000000000..11df112e1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c --qt -o $lang.qm $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/configure.ac new file mode 100644 index 000000000..5f5ad05a2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/configure.ac @@ -0,0 +1,22 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-c++-qt], [0], , [hello-c++-qt]) +AC_CONFIG_SRCDIR([hello.cc]) +AM_INIT_AUTOMAKE([1.11]) + +AC_PROG_CXX +FUN_TYPE_BOOL +FUN_HEADER_STDCXX +FUN_CHECK_PTHREAD +FUN_CHECK_QT(220) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/hello.cc b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/hello.cc new file mode 100644 index 000000000..25545903a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/hello.cc @@ -0,0 +1,78 @@ +// Example for use of GNU gettext. +// This file is in the public domain. + +// Source code of the C++ program. + +#include +#include +#include +#include +#include +#include +#include +#include + +/* Get getpid() declaration. */ +#if defined _WIN32 && !defined __CYGWIN__ +/* native Windows API */ +# include +# define getpid _getpid +#else +/* POSIX API */ +# include +#endif + +int +main (int argc, char *argv[]) +{ + // Initializations. + + QApplication application (argc, argv); +#if 0 + GettextTranslator *translator = + new GettextTranslator (&application, "hello-c++-qt", LOCALEDIR); +#else + QTranslator *translator = new QTranslator (NULL); + translator->load (QString ("hello-c++-qt") + "_" + QTextCodec::locale(), + PKGLOCALEDIR); +#endif + application.installTranslator (translator); +#define _(string) application.translate ("", string) + + // Create the GUI elements. + + QMainWindow *window = new QMainWindow (); + window->setCaption ("Hello example"); + + QVBox *panel = new QVBox (window); + panel->setSpacing (2); + + QLabel *label1 = new QLabel (_("Hello, world!"), panel); + + QString label2text; + // NOT using QString::sprintf because it doesn't support reordering of + // arguments. + //label2text.sprintf (_("This program is running as process number %d"), + // getpid ()); + label2text = _("This program is running as process number %1.").arg(getpid ()); + QLabel *label2 = new QLabel (label2text, panel); + + QHBox *buttonbar = new QHBox (panel); + QWidget *filler = new QWidget (buttonbar); // makes the button right-aligned + QPushButton *button = new QPushButton ("OK", buttonbar); + button->setMaximumWidth (button->sizeHint().width() + 20); + QObject::connect (button, SIGNAL (clicked ()), &application, SLOT (quit ())); + + panel->resize (panel->sizeHint ()); + window->resize (panel->frameSize ()); + + application.setMainWidget (window); + + // Make the GUI elements visible. + + window->show (); + + // Start the event loop. + + return application.exec (); +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/m4/Makefile.am new file mode 100644 index 000000000..b15ec45d9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/m4/Makefile.am @@ -0,0 +1,3 @@ +EXTRA_DIST = \ + nls.m4 po.m4 \ + qt.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/m4/qt.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/m4/qt.m4 new file mode 100644 index 000000000..b734356a1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/m4/qt.m4 @@ -0,0 +1,466 @@ +# Copyright (C) 2001 David Johnson +# This file is free software; the author gives unlimited permission to copy +# and/or distribute it, with or without modifications, as long as this notice +# is preserved. + +# FUN_TYPE BOOL +# check for a built-in bool type +# HAVE_BOOL will be defined in the config header + +AC_DEFUN([FUN_TYPE_BOOL], +[ + AC_REQUIRE([AC_PROG_CXX]) + + AC_LANG_PUSH(C++) + AC_CHECK_TYPE(bool, ac_check_bool=yes, ac_check_bool=no) + AC_LANG_POP(C++) + if test "x$ac_check_bool" = "xyes" ; then + AC_DEFINE(HAVE_BOOL,,[define if bool is a built-in type]) + fi + + AH_BOTTOM([#ifndef HAVE_BOOL]) + AH_BOTTOM([enum booltyp { false, true }; typedef enum booltyp bool;]) + AH_BOTTOM([#endif]) +])# FUN_TYPE_BOOL + +# FUN_HEADER_STDCXX +# check for standard ISO C++ headers + +AC_DEFUN([FUN_HEADER_STDCXX], +[ + AC_REQUIRE([AC_PROG_CXX]) + + AC_LANG_PUSH(C++) + + ac_check_headers=no + AC_CHECK_HEADER(cstdlib, + ac_check_headers=yes, + ac_check_headers=no) + AC_CHECK_HEADER(cstring, + ac_check_headers=$ac_check_headers, + ac_check_headers=no) + AC_CHECK_HEADER(iostream, + ac_check_headers=$ac_check_headers, + ac_check_headers=no) + + AC_LANG_POP(C++) + + if test "x$ac_check_headers" = "xno" ; then + AC_MSG_ERROR(standard ISO C++ headers not found!) + fi +])#FUN_HEADER_STDCXX + +# FUN_CHECK_PTHREAD +# check for posix pthreads +# sets PTHREAD_LIBS and PTHREAD_CFLAGS +# sets HAVE_PTHREADS in the configuration header + +AC_DEFUN([FUN_CHECK_PTHREAD], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_PROG_CC]) + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + + AC_ARG_ENABLE(threads, AC_HELP_STRING([--enable-threads], + [enable the use of the threads [[default=no]]]), + ac_use_threads=$enableval, ac_use_threads=no) + + if test "x$ac_use_threads" = "xyes" ; then + + AC_CHECK_HEADER(pthread.h, ac_posix_threads=yes, ac_posix_threads=no) + + if test "x$ac_posix_threads" = "xyes" ; then + + AC_MSG_CHECKING([whether ${CC} accepts -pthread]) + ac_cflags_save="$CFLAGS" + CFLAGS="$CFLAGS -pthread" + AC_TRY_COMPILE([#include ], [pthread_attr_init(0)], + ac_cc_pthread=yes, ac_cc_pthread=no) + CFLAGS="$ac_cflags_save" + + if test "x$ac_cc_pthread" = "xyes" ; then + AC_MSG_RESULT([yes]) + PTHREAD_CFLAGS="-pthread" + else + AC_MSG_RESULT([no]) + ac_thread_library=none + + if test "x$ac_thread_library" = "xnone" ; then + AC_CHECK_LIB(c_r, pthread_self, ac_thread_library=c_r) + fi + if test "x$ac_thread_library" = "xnone" ; then + AC_CHECK_LIB(pthread, pthread_self, ac_thread_library=pthread) + fi + if test "x$ac_thread_library" = "xnone" ; then + AC_CHECK_LIB(pthreads, pthread_self, ac_thread_library=pthreads) + fi + if test "x$ac_thread_library" = "xnone" ; then + AC_CHECK_LIB(thread, pthread_self, ac_thread_library=thread) + fi + if test "x$ac_thread_library" = "xnone" ; then + AC_CHECK_LIB(gthreads, pthread_self, ac_thread_library=gthreads) + fi + if test "x$ac_thread_library" = "xnone" ; then + AC_CHECK_LIB(c, pthread_self, ac_thread_library=c) + fi + if test "x$ac_thread_library" = "xnone" ; then + ac_use_threads=no + else + PTHREAD_LIBS="-l$ac_thread_library" + fi + fi + else + ac_use_threads=no + fi + fi + + if test "x$ac_use_threads" = "xyes" ; then + AC_DEFINE(HAVE_PTHREAD, 1, [Define if you have POSIX threads]) + case $host_os in + aix* | freebsd*) + PTHREAD_CFLAGS="$PTHREAD_CFLAGS -D_THREAD_SAFE" + ;; + linux* | solaris*) + PTHREAD_CFLAGS="$PTHREAD_CFLAGS -D_REENTRANT" + ;; + *) + ;; + esac + fi +])#FUN_CHECK_PTHREAD + +# FUN_CHECK_QT([qt_min_version],[qt_max_version]) +# check for qt headers, libs, progs and compilation +# substs QT_CXXFLAGS, QT_LDFLAGS, and QT_LIBS +# substs QTVERSION, MOC and UIC +# LIBQT, MOC and UIC 'precious' variables + +AC_DEFUN([FUN_CHECK_QT], +[ + AC_REQUIRE([AC_PROG_CXX]) + AC_REQUIRE([AC_PATH_X]) + AC_REQUIRE([AC_PATH_XTRA]) + AC_REQUIRE([FUN_CHECK_PTHREAD]) + + # some 'precious' variables for configure --help + AC_ARG_VAR(QTMIN, minimum version of Qt to search for e.g. 220) + AC_ARG_VAR(QTMAX, maximum version of Qt to search for e.g. 399) + AC_ARG_VAR(LIBQT, library flag for the Qt libary e.g. -lqt) + AC_ARG_VAR(MOC, QT meta object compiler command) + AC_ARG_VAR(UIC, Qt UI compiler command) + + AC_CACHE_SAVE + + AC_MSG_NOTICE([checking for Qt]) + + # process our args + if test -z "$1" ; then + qt_min_version=0 + else + qt_min_version=$1 + fi + if test -z "$2" ; then + qt_max_version=9999 + else + qt_max_version=$2 + fi + # adjust for user preferences + if test "x$QTMIN" != "x" ; then + if expr $QTMIN '>' $qt_min_version > /dev/null ; then + qt_min_version=$QTMIN; + fi + fi + if test "x$QTMAX" != "x" ; then + if expr $QTMAX '<' $qt_max_version > /dev/null ; then + qt_max_version=$QTMAX; + fi + fi + + # set up our configuration options + qt_dir="" + qt_includes="" + qt_libraries="" + qt_programs="" + AC_ARG_WITH([qt_dir], AC_HELP_STRING([--with-qt-dir=DIR], + [where the Qt package is installed]), + [ qt_dir="$withval" + qt_includes="$withval"/include + qt_libraries="$withval"/lib + qt_programs="$withval"/bin + ]) + AC_ARG_WITH([qt_includes], AC_HELP_STRING([--with-qt-includes=DIR], + [where the Qt includes are installed]), + [qt_includes="$withval"]) + AC_ARG_WITH([qt_libraries], AC_HELP_STRING([--with-qt-libraries=DIR], + [where the Qt libraries are installed]), + [qt_libraries="$withval"]) + AC_ARG_WITH([qt_programs], AC_HELP_STRING([--with-qt-programs=DIR], + [where the Qt programs are installed]), + [qt_programs="$withval"]) + + QTVERSION="000" + + FUN_QT_HEADERS + + # check for a traditional qt installation tree + if ls $qt_includes/../lib/libqt* > /dev/null 2> /dev/null; then + qt_dir="`echo $qt_includes | sed s,'/include',,`" + qt_libraries="$qt_dir/lib" + qt_programs="$qt_dir/bin" + fi + + FUN_QT_LIBRARIES + FUN_QT_PROGRAMS + FUN_QT_COMPILE + + AC_MSG_NOTICE([Found Qt version $QTVERSION]) + + AC_SUBST(QTVERSION) + AC_SUBST(MOC) + AC_SUBST(UIC) + QT_CXXFLAGS="-I$qt_includes" + AC_SUBST(QT_CXXFLAGS) + QT_LDFLAGS="-L$qt_libraries" + AC_SUBST(QT_LDFLAGS) + QT_LIBS="$LIBQT" + AC_SUBST(QT_LIBS) +])#FUN_CHECK_QT + +# FUN_QT_HEADERS +# helper function for FUN_CHECK_QT +# check for qt headers in standard locations + +AC_DEFUN([FUN_QT_HEADERS], +[ + AC_MSG_CHECKING([for Qt headers]) + + if test "x$qt_includes" = "x" ; then + # look in standard locations + qt_found_dirs="" + qt_include_dirs=" + $QTDIR + /usr/include + /usr/local/include + /usr/X11R6/include + `ls -dr /usr/include/qt* 2>/dev/null` + `ls -dr /usr/local/include/qt* 2>/dev/null` + `ls -dr /usr/X11R6/include/qt* 2>/dev/null` + `ls -dr /usr/lib/qt*/include 2>/dev/null` + `ls -dr /usr/local/lib/qt*/include 2>/dev/null` + `ls -dr /usr/X11R6/lib/qt*/include 2>/dev/null` + `ls -dr /usr/local/qt*/include 2>/dev/null` + `ls -dr /opt/qt*/include 2>/dev/null` " + for n in $qt_include_dirs ; do + if test -r "$n/qglobal.h"; then + qt_found_dirs="$qt_found_dirs $n" + fi + done + + # find the latest version between min_version and max_version + qt_prev_version=$qt_min_version + qt_found_version="" + for n in $qt_found_dirs ; do + qt_current_version=`grep -w '#define QT_VERSION' $n/qglobal.h | + sed s/'#define QT_VERSION'//` + if expr $qt_current_version '>=' $qt_prev_version > /dev/null ; then + if expr $qt_current_version '<=' $qt_max_version > /dev/null ; then + qt_includes=$n + qt_prev_version=$qt_current_version + fi + fi + done + fi + + if test "x$qt_includes" = "x" ; then + AC_MSG_RESULT([no]) + AC_MSG_ERROR([cannot find correct Qt headers!]) + else + dnl TODO need to strip out white space + QTVERSION=$qt_prev_version; + AC_MSG_RESULT([$qt_includes]) + fi +])#FUN_QT_HEADERS + +# FUN_QT_LIBRARIES +# helper function for FUN_CHECK_QT +# check for qt libs in standard locations + +AC_DEFUN([FUN_QT_LIBRARIES], +[ + AC_REQUIRE([FUN_QT_HEADERS]) + + AC_MSG_CHECKING([for Qt libraries]) + + # check which library to look for + if test -z "$LIBQT" ; then + if test "x$ac_use_threads" = "xyes" ; then + LIBQT="-lqt-mt" + else + LIBQT="-lqt" + fi + fi + + lib_qt=`echo $LIBQT | sed s/'-l'//` + + if test "x$qt_libraries" = "x" ; then + # see if it is relative to the includes + qt_tree="$qt_includes" + while test "x$qt_tree" != "x" ; do + # first go around will fail... + if ls $qt_tree/lib/libqt* > /dev/null 2> /dev/null ; then + qt_libraries=$qt_tree/lib + break + else + # lop off tail of path + dnl not as portable as it should be... + qt_tree="`dirname $qt_tree`" + fi + done + fi + + if test "x$qt_libraries" = "x" ; then + AC_MSG_RESULT([no]) + AC_MSG_ERROR([cannot find Qt libraries!]) + else + # check that we're looking at the right library + if ls $qt_libraries/lib$lib_qt.* > /dev/null 2> /dev/null ; then + AC_MSG_RESULT([$qt_libraries]) + else + AC_MSG_RESULT([no]) + if test "x$ac_use_threads" = "xyes" ; then + AC_MSG_ERROR([cannot find the threaded Qt library in $qt_libraries!]) + else + AC_MSG_ERROR([cannot find the non-threaded Qt library in $qt_libraries!]) + fi + fi + fi +])#FUN_QT_LIBRARIES + +# FUN_QT_PROGRAMS +# helper function for FUN_CHECK_QT +# searches for moc and uic + +AC_DEFUN([FUN_QT_PROGRAMS], +[ + AC_REQUIRE([FUN_QT_LIBRARIES]) + + AC_MSG_CHECKING([for Qt utilities]) + + if test "x$q_programs" = "x" ; then + # see if it is relative to the libraries + qt_tree="$qt_libraries" + while test "x$qt_tree" != "x" ; do + # first go around will fail + if ls $qt_tree/bin/moc* > /dev/null 2> /dev/null ; then + qt_programs=$qt_tree/bin + break + else + # lop off tail of path + dnl not as portable as it should be... + qt_tree="`dirname $qt_tree`" + fi + done + # if we haven't found the progs, there's not much more we can do + fi + + if test "x$qt_programs" = "x" ; then + AC_MSG_RESULT([no]) + AC_MSG_ERROR([cannot find Qt utilities!]) + else + AC_MSG_RESULT([$qt_programs]) + # find the right moc + if test -z "$MOC" ; then + AC_CHECK_PROG(MOC, moc, moc) + if test "x$MOC" = "x" ; then + # could be renamed to avoid clashes + if ls $qt_programs/moc > /dev/null 2> /dev/null ; then + MOC="$qt_programs/moc" + else + if expr "$QTVERSION" '>=' "200" > /dev/null ; then + if ls $qt_programs/moc2 > /dev/null 2> /dev/null ; then + MOC="$qt_programs/moc2" + fi + else + if expr "$QTVERSION" '>=' "300" > /dev/null ; then + if $qt_programs/moc3 > /dev/null 2> /dev/null ; then + MOC="$qt_programs/moc3" + fi + fi + fi + fi + fi + if test "x$MOC" = "x" ; then + AC_MSG_RESULT([no]) + AC_MSG_ERROR([cannot find Qt meta object compiler!]) + fi + fi + + # find the right uic + if expr "$QTVERSION" '>=' "220" > /dev/null ; then + if test -z "$UIC" ; then + AC_CHECK_PROG(UIC, uic, uic) + if test "x$UIC" = "x" ; then + # could be renamed to avoid clashes + if ls $qt_programs/uic > /dev/null 2> /dev/null ; then + UIC="$qt_programs/uic" + else + if expr "$QTVERSION" '>=' "300" > /dev/null ; then + if ls $qt_programs/uic3 > /dev/null 2> /dev/null ; then + UIC="$qt_programs/uic3" + fi + fi + fi + fi + fi + else + # if uic is important to the build, change this + UIC="" + fi + fi +])#FUN_QT_PROGRAMS + +# FUN_QT_COMPILE +# helper function for FUN_CHECK_QT +# compile a simple qt program + +AC_DEFUN([FUN_QT_COMPILE], +[ + AC_REQUIRE([FUN_QT_HEADERS]) + AC_REQUIRE([FUN_QT_LIBRARIES]) + AC_REQUIRE([FUN_QT_PROGRAMS]) + + AC_MSG_CHECKING([whether a simple Qt program compiles]) + + AC_LANG_PUSH(C++) + + ac_cxxflags_save="$CXXFLAGS" + ac_ldflags_save="$LDFLAGS" + ac_libs_save="$LIBS" + CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS -I$qt_includes $X_CFLAGS $all_includes" + LDFLAGS="$LDFLAGS -L$qt_libraries $X_LIBS " + LIBS="$LIBS $PTHREAD_LIBS $X_PRE_LIBS $X_EXTRA_LIBS -lXext -lX11 $LIBQT" + + AC_TRY_LINK([ + #include + #include + #include ], + [QString s = "hello world"; + QMessageBox::information(0, s, "no he is not"); + return 0;], + qt_compile=yes, qt_compile=no) + + CXXFLAGS="$ac_cxxflags_save" + LDFLAGS="$ac_ldflags_save" + LIBS="$ac_libs_save" + + AC_LANG_POP(C++) + + if test "x$qt_compile" = "xyes" ; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([cannot compile a Qt program!]) + fi +])#FUN_QT_COMPILE diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/Makefile.am new file mode 100644 index 000000000..8bf2d94eb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/Makefile.am @@ -0,0 +1,360 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.cc + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = \ + --qt \ + --keyword=tr:1,1t --keyword=tr:1,2c,2t --keyword=tr:1,1,2c,3t --flag=tr:1:pass-c-format --flag=tr:1:pass-qt-format \ + --keyword=translate:2 --flag=translate:2:pass-c-format --flag=translate:2:pass-qt-format \ + --keyword=QT_TR_NOOP --flag=QT_TR_NOOP:1:pass-c-format --flag=QT_TR_NOOP:1:pass-qt-format \ + --keyword=QT_TRANSLATE_NOOP:2 --flag=QT_TRANSLATE_NOOP:2:pass-c-format --flag=QT_TRANSLATE_NOOP:2:pass-qt-format \ + --keyword=_ --flag=_:1:pass-c-format --flag=_:1:pass-qt-format \ + --keyword=N_ --flag=N_:1:pass-c-format --flag=N_:1:pass-qt-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).qm) +QMFILES = @QMFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(lang).qm) +CATALOGS = @QTCATALOGS@ + +SUFFIXES = .po .qm .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .qm files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .qm conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(QMFILES): $(srcdir)/$(DOMAIN).pot +.po.qm: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.qm && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --qt --statistics --verbose -o $${lang}.qm $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.qm && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --qt --statistics --verbose -o t-$${lang}.qm $${lang}.1po && \ + mv t-$${lang}.qm $${lang}.qm && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(QMFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(QMFILES)" || $(MAKE) $(QMFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + $(MKDIR_P) $(DESTDIR)$(pkgdatadir)/locale + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$(pkgdatadir)/locale/$(DOMAIN)_$$cat; \ + echo "installing $$realcat as $(DESTDIR)$(pkgdatadir)/locale/$(DOMAIN)_$$cat"; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + $(MKDIR_P) $(DESTDIR)$(pkgdatadir)/locale + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + rm -f $(DESTDIR)$(pkgdatadir)/locale/$(DOMAIN)_$$cat; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(QMFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(QMFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(QMFILES) + @: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/af.po new file mode 100644 index 000000000..b64a769ec --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Hierdie program loop as prosesnommer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ast.po new file mode 100644 index 000000000..9d66e9a06 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-c++-qt +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Esti programa ta executándose como procesu númberu %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/bg.po new file mode 100644 index 000000000..b5b9af8c9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-c++-qt package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-qt 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ca.po new file mode 100644 index 000000000..a393bdd1c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-c++-qt. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Aquest programa està corrent amb el número de procés %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/cs.po new file mode 100644 index 000000000..e2f861305 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Tento program běží jako proces Äíslo %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/da.po new file mode 100644 index 000000000..0cbb63194 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-c++-qt. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Dette program kører som proces nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/de.po new file mode 100644 index 000000000..60bfe54b7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-c++-qt. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/el.po new file mode 100644 index 000000000..afb5372b8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-c++-qt +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/eo.po new file mode 100644 index 000000000..d48dacfa7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/es.po new file mode 100644 index 000000000..47397f152 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Este programa está corriendo como el proceso número %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/fi.po new file mode 100644 index 000000000..0efc92a2c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Tämän ohjelman prosessinumero on %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/fr.po new file mode 100644 index 000000000..0e3130787 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ce programme est exécuté en tant que processus numéro %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ga.po new file mode 100644 index 000000000..3b8350b44 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-c++-qt. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Tá an clár seo ag rith mar phróiseas %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/gl.po new file mode 100644 index 000000000..653f59f5e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-c++-qt package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Este programa estase executando como o proceso número %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/hr.po new file mode 100644 index 000000000..84077d14a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-c++-qt to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/hu.po new file mode 100644 index 000000000..571011b10 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-c++-qt. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ez a program a(z) %1 folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/id.po new file mode 100644 index 000000000..9ab4cde2a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-c++-qt-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Program ini berjalan sebagai proses nomor %1" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/it.po new file mode 100644 index 000000000..ac913cb48 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-c++-qt. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Questo programma è in esecuzione con numero di processo %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ja.po new file mode 100644 index 000000000..2194131a7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-c++-qt' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %1 ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ka.po new file mode 100644 index 000000000..9d5688f15 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ky.po new file mode 100644 index 000000000..90be67a34 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-c++-qt' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Бул программа %1 процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/lv.po new file mode 100644 index 000000000..b3deeb7eb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-c++-qt +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ms.po new file mode 100644 index 000000000..e81baaa7a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ms.po @@ -0,0 +1,28 @@ +# hello-c++-qt Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Program ini dilaksanakan sebagai proses bernombor %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/mt.po new file mode 100644 index 000000000..c034468cd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/mt.po @@ -0,0 +1,27 @@ +# hello-c++-qt-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/nb.po new file mode 100644 index 000000000..7952a874e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-c++-qt package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Dette programmet kjører som prosess nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/nl.po new file mode 100644 index 000000000..a26dee35d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-c++-qt. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Dit programma draait als proces nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/nn.po new file mode 100644 index 000000000..4c3b8898f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-c++-qt +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Dette programmet køyrer som prosess nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/pl.po new file mode 100644 index 000000000..b58853141 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-c++-qt domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ten program dziaÅ‚a jako proces o numerze %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/pt.po new file mode 100644 index 000000000..58f6cde4b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-c++-qt' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Este programa está em execução como processo nº %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/pt_BR.po new file mode 100644 index 000000000..2f8b3bb55 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Este programa está executando com número de processo %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ro.po new file mode 100644 index 000000000..dfc1ed0b3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-c++-qt. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-c++-qt 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-c++-qt-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Acest program rulează ca procesul numărul %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ru.po new file mode 100644 index 000000000..3049c66b8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-c++-qt-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sk.po new file mode 100644 index 000000000..bab235674 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-c++-qt package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Tento program beží ako proces s Äíslom %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sl.po new file mode 100644 index 000000000..3e7291299 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-c++-qt-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ta program teÄe kot proces Å¡tevilka %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sq.po new file mode 100644 index 000000000..2f38e9d34 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ky program po xhiron si procesi numër %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sr.po new file mode 100644 index 000000000..b45b687d7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-c++-qt. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sv.po new file mode 100644 index 000000000..9c6bc989c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-c++-qt. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Detta program kör som process nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ta.po new file mode 100644 index 000000000..05174b94f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%1 ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/tr.po new file mode 100644 index 000000000..f2eb81448 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-c++-qt. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Bu yazılım %1 süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/uk.po new file mode 100644 index 000000000..8085508fa --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-c++-qt +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/vi.po new file mode 100644 index 000000000..6ed73555c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/zh_CN.po new file mode 100644 index 000000000..9616f2a5e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-c++-qt. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %1 è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/zh_HK.po new file mode 100644 index 000000000..176108dbc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-c++-qt. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %1。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/zh_TW.po new file mode 100644 index 000000000..378565803 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-qt/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-c++-qt. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-qt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:50 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.cc:57 +#, qt-format +msgid "This program is running as process number %1." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %1。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/INSTALL new file mode 100644 index 000000000..8658c1556 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/INSTALL @@ -0,0 +1,12 @@ +This example relies on: + - wxWidgets (libwx_*) and its dependencies + - the C++ runtime libraries (libstdc++) + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix --with-wx-prefix=/opt/wxw + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/Makefile.am new file mode 100644 index 000000000..ea1667b16 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/Makefile.am @@ -0,0 +1,31 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign no-dependencies +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_PROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.cc + +# Define a C macro LOCALEDIR indicating where catalogs will be installed. +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ + +CPPFLAGS += $(WX_CPPFLAGS) +CFLAGS = $(WX_CFLAGS_ONLY) +CXXFLAGS += $(WX_CXXFLAGS_ONLY) + +# Link time dependencies. +LDADD = $(WX_LDADD) +LIBS += $(WX_LIBS) + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/autoclean.sh new file mode 100755 index 000000000..fad6d8b9a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/autoclean.sh @@ -0,0 +1,38 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/host-cpu-c-abi.m4 +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f m4/lib-ld.m4 +rm -f m4/lib-link.m4 +rm -f m4/lib-prefix.m4 +rm -f config.rpath +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f config.guess +rm -f config.sub +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/autogen.sh new file mode 100755 index 000000000..4db00bab3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/autogen.sh @@ -0,0 +1,49 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/gnulib-m4}/host-cpu-c-abi.m4 m4/host-cpu-c-abi.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/gnulib-m4}/lib-ld.m4 m4/lib-ld.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/gnulib-m4}/lib-link.m4 m4/lib-link.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/gnulib-m4}/lib-prefix.m4 m4/lib-prefix.m4 +cp -p ${GETTEXTSRCDIR-$GETTEXT_TOPSRCDIR/build-aux}/config.rpath config.rpath +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/configure.ac new file mode 100644 index 000000000..8cb5d1489 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/configure.ac @@ -0,0 +1,22 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-c++-wxwidgets], [0], , [hello-c++-wxwidgets]) +AC_CONFIG_SRCDIR([hello.cc]) +AM_INIT_AUTOMAKE([1.11]) + +AC_PROG_CXX + +AM_OPTIONS_WXCONFIG +AM_PATH_WXCONFIG([2.6.0], [], [AC_MSG_ERROR([wxWidgets not found])]) +AC_LIB_LINKFLAGS_FROM_LIBS([WX_LDADD], [$WX_LIBS]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/hello.cc b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/hello.cc new file mode 100644 index 000000000..258a3673e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/hello.cc @@ -0,0 +1,85 @@ +// Example for use of GNU gettext. +// This file is in the public domain. + +// Source code of the C++ program. + +#include +#include + +/* Get getpid() declaration. */ +#if defined _WIN32 && !defined __CYGWIN__ +/* native Windows API */ +# include +# define getpid _getpid +#else +/* POSIX API */ +# include +#endif + +class MyApp: public wxApp +{ +public: + virtual bool OnInit(); +private: + // wxWidgets has the concept of a "current locale". It is the one returned + // by wxGetLocale() and implicitly used by wxGetTranslation. + // But there is no way to explicitly set this current locale! Rather, it is + // always set to the last constructed locale(!), and is modified when a + // locale is destroyed. In such a way that the current locale points to + // invalid memory after you do + // wxLocale *a = new wxLocale; + // wxLocale *b = new wxLocale; + // delete a; + // delete b; + // So, to avoid problems, we use exactly one instance of wxLocale, and keep + // it alive for the entire application lifetime. + wxLocale appLocale; +}; + +class MyFrame: public wxFrame +{ +public: + MyFrame(); +}; + +// This defines the main() function. +IMPLEMENT_APP(MyApp) + +bool MyApp::OnInit() +{ + // First, register the base directory where to look up .mo files. + wxLocale::AddCatalogLookupPathPrefix(wxT(LOCALEDIR)); + // Second, initialize the locale and set the application-wide message domain. + appLocale.Init(); + appLocale.AddCatalog(wxT("hello-c++-wxwidgets")); + // Now wxGetLocale() is initialized appropriately. + + // Then only start building the GUI elements of the application. + + // Create the main frame window. + MyFrame *frame = new MyFrame(); + + // Show the frame. + frame->Show(true); + SetTopWindow(frame); + + return true; +} + +MyFrame::MyFrame() + : wxFrame(NULL, wxID_ANY, _T("Hello example")) +{ + wxStaticText *label1 = + new wxStaticText(this, wxID_ANY, _("Hello, world!")); + + wxString label2text = + wxString::Format(_("This program is running as process number %d."), + getpid()); + wxStaticText *label2 = + new wxStaticText(this, wxID_ANY, label2text); + + wxBoxSizer *topSizer = new wxBoxSizer(wxVERTICAL); + topSizer->Add(label1); + topSizer->Add(label2); + SetSizer(topSizer); +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/m4/Makefile.am new file mode 100644 index 000000000..9c2d2c216 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/m4/Makefile.am @@ -0,0 +1,3 @@ +EXTRA_DIST = \ + nls.m4 po.m4 \ + wxwidgets.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/m4/wxwidgets.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/m4/wxwidgets.m4 new file mode 100644 index 000000000..24c258a24 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/m4/wxwidgets.m4 @@ -0,0 +1,345 @@ +dnl --------------------------------------------------------------------------- +dnl Macros for wxWidgets detection. Typically used in configure.in as: +dnl +dnl AC_ARG_ENABLE(...) +dnl AC_ARG_WITH(...) +dnl ... +dnl AM_OPTIONS_WXCONFIG +dnl ... +dnl ... +dnl AM_PATH_WXCONFIG(2.6.0, wxWin=1) +dnl if test "$wxWin" != 1; then +dnl AC_MSG_ERROR([ +dnl wxWidgets must be installed on your system +dnl but wx-config script couldn't be found. +dnl +dnl Please check that wx-config is in path, the directory +dnl where wxWidgets libraries are installed (returned by +dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or +dnl equivalent variable and wxWidgets version is 2.3.4 or above. +dnl ]) +dnl fi +dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" +dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" +dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" +dnl +dnl LIBS="$LIBS $WX_LIBS" +dnl --------------------------------------------------------------------------- + +dnl --------------------------------------------------------------------------- +dnl AM_OPTIONS_WXCONFIG +dnl +dnl adds support for --wx-prefix, --wx-exec-prefix, --with-wxdir and +dnl --wx-config command line options +dnl --------------------------------------------------------------------------- + +AC_DEFUN([AM_OPTIONS_WXCONFIG], +[ + AC_ARG_WITH(wxdir, + [ --with-wxdir=PATH Use uninstalled version of wxWidgets in PATH], + [ wx_config_name="$withval/wx-config" + wx_config_args="--inplace"]) + AC_ARG_WITH(wx-config, + [ --with-wx-config=CONFIG wx-config script to use (optional)], + wx_config_name="$withval" ) + AC_ARG_WITH(wx-prefix, + [ --with-wx-prefix=PREFIX Prefix where wxWidgets is installed (optional)], + wx_config_prefix="$withval", wx_config_prefix="") + AC_ARG_WITH(wx-exec-prefix, + [ --with-wx-exec-prefix=PREFIX + Exec prefix where wxWidgets is installed (optional)], + wx_config_exec_prefix="$withval", wx_config_exec_prefix="") +]) + +dnl Helper macro for checking if wx version is at least $1.$2.$3, set's +dnl wx_ver_ok=yes if it is: +AC_DEFUN([_WX_PRIVATE_CHECK_VERSION], +[ + wx_ver_ok="" + if test "x$WX_VERSION" != x ; then + if test $wx_config_major_version -gt $1; then + wx_ver_ok=yes + else + if test $wx_config_major_version -eq $1; then + if test $wx_config_minor_version -gt $2; then + wx_ver_ok=yes + else + if test $wx_config_minor_version -eq $2; then + if test $wx_config_micro_version -ge $3; then + wx_ver_ok=yes + fi + fi + fi + fi + fi + fi +]) + +dnl --------------------------------------------------------------------------- +dnl AM_PATH_WXCONFIG(VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND +dnl [, WX-LIBS [, ADDITIONAL-WX-CONFIG-FLAGS]]]]) +dnl +dnl Test for wxWidgets, and define WX_C*FLAGS, WX_LIBS and WX_LIBS_STATIC +dnl (the latter is for static linking against wxWidgets). Set WX_CONFIG_NAME +dnl environment variable to override the default name of the wx-config script +dnl to use. Set WX_CONFIG_PATH to specify the full path to wx-config - in this +dnl case the macro won't even waste time on tests for its existence. +dnl +dnl Optional WX-LIBS argument contains comma- or space-separated list of +dnl wxWidgets libraries to link against (it may include contrib libraries). If +dnl it is not specified then WX_LIBS and WX_LIBS_STATIC will contain flags to +dnl link with all of the core wxWidgets libraries. +dnl +dnl Optional ADDITIONAL-WX-CONFIG-FLAGS argument is appended to wx-config +dnl invocation command in present. It can be used to fine-tune lookup of +dnl best wxWidgets build available. +dnl +dnl Example use: +dnl AM_PATH_WXCONFIG([2.6.0], [wxWin=1], [wxWin=0], [html,core,net] +dnl [--unicode --debug]) +dnl --------------------------------------------------------------------------- + +dnl +dnl Get the cflags and libraries from the wx-config script +dnl +AC_DEFUN([AM_PATH_WXCONFIG], +[ + dnl do we have wx-config name: it can be wx-config or wxd-config or ... + if test x${WX_CONFIG_NAME+set} != xset ; then + WX_CONFIG_NAME=wx-config + fi + + if test "x$wx_config_name" != x ; then + WX_CONFIG_NAME="$wx_config_name" + fi + + dnl deal with optional prefixes + if test x$wx_config_exec_prefix != x ; then + wx_config_args="$wx_config_args --exec-prefix=$wx_config_exec_prefix" + WX_LOOKUP_PATH="$wx_config_exec_prefix/bin" + fi + if test x$wx_config_prefix != x ; then + wx_config_args="$wx_config_args --prefix=$wx_config_prefix" + WX_LOOKUP_PATH="$WX_LOOKUP_PATH:$wx_config_prefix/bin" + fi + if test "$cross_compiling" = "yes"; then + wx_config_args="$wx_config_args --host=$host_alias" + fi + + dnl don't search the PATH if WX_CONFIG_NAME is absolute filename + if test -x "$WX_CONFIG_NAME" ; then + AC_MSG_CHECKING(for wx-config) + WX_CONFIG_PATH="$WX_CONFIG_NAME" + AC_MSG_RESULT($WX_CONFIG_PATH) + else + AC_PATH_PROG(WX_CONFIG_PATH, $WX_CONFIG_NAME, no, "$WX_LOOKUP_PATH:$PATH") + fi + + if test "$WX_CONFIG_PATH" != "no" ; then + WX_VERSION="" + + min_wx_version=ifelse([$1], ,2.2.1,$1) + if test -z "$5" ; then + AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version]) + else + AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version ($5)]) + fi + + WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args $5 $4" + + WX_VERSION=`$WX_CONFIG_WITH_ARGS --version 2>/dev/null` + wx_config_major_version=`echo $WX_VERSION | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + wx_config_minor_version=`echo $WX_VERSION | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + wx_config_micro_version=`echo $WX_VERSION | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + + wx_requested_major_version=`echo $min_wx_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` + wx_requested_minor_version=`echo $min_wx_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` + wx_requested_micro_version=`echo $min_wx_version | \ + sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` + + _WX_PRIVATE_CHECK_VERSION([$wx_requested_major_version], + [$wx_requested_minor_version], + [$wx_requested_micro_version]) + + if test -n "$wx_ver_ok"; then + + AC_MSG_RESULT(yes (version $WX_VERSION)) + WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs` + + dnl is this even still appropriate? --static is a real option now + dnl and WX_CONFIG_WITH_ARGS is likely to contain it if that is + dnl what the user actually wants, making this redundant at best. + dnl For now keep it in case anyone actually used it in the past. + AC_MSG_CHECKING([for wxWidgets static library]) + WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs 2>/dev/null` + if test "x$WX_LIBS_STATIC" = "x"; then + AC_MSG_RESULT(no) + else + AC_MSG_RESULT(yes) + fi + + dnl starting with version 2.2.6 wx-config has --cppflags argument + wx_has_cppflags="" + if test $wx_config_major_version -gt 2; then + wx_has_cppflags=yes + else + if test $wx_config_major_version -eq 2; then + if test $wx_config_minor_version -gt 2; then + wx_has_cppflags=yes + else + if test $wx_config_minor_version -eq 2; then + if test $wx_config_micro_version -ge 6; then + wx_has_cppflags=yes + fi + fi + fi + fi + fi + + if test "x$wx_has_cppflags" = x ; then + dnl no choice but to define all flags like CFLAGS + WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags` + WX_CPPFLAGS=$WX_CFLAGS + WX_CXXFLAGS=$WX_CFLAGS + + WX_CFLAGS_ONLY=$WX_CFLAGS + WX_CXXFLAGS_ONLY=$WX_CFLAGS + else + dnl we have CPPFLAGS included in CFLAGS included in CXXFLAGS + WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags` + WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags` + WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags` + + WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed "s@^$WX_CPPFLAGS *@@"` + WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed "s@^$WX_CFLAGS *@@"` + fi + + ifelse([$2], , :, [$2]) + + else + + if test "x$WX_VERSION" = x; then + dnl no wx-config at all + AC_MSG_RESULT(no) + else + AC_MSG_RESULT(no (version $WX_VERSION is not new enough)) + fi + + WX_CFLAGS="" + WX_CPPFLAGS="" + WX_CXXFLAGS="" + WX_LIBS="" + WX_LIBS_STATIC="" + ifelse([$3], , :, [$3]) + + fi + else + + WX_CFLAGS="" + WX_CPPFLAGS="" + WX_CXXFLAGS="" + WX_LIBS="" + WX_LIBS_STATIC="" + ifelse([$3], , :, [$3]) + + fi + + AC_SUBST(WX_CPPFLAGS) + AC_SUBST(WX_CFLAGS) + AC_SUBST(WX_CXXFLAGS) + AC_SUBST(WX_CFLAGS_ONLY) + AC_SUBST(WX_CXXFLAGS_ONLY) + AC_SUBST(WX_LIBS) + AC_SUBST(WX_LIBS_STATIC) + AC_SUBST(WX_VERSION) +]) + +dnl --------------------------------------------------------------------------- +dnl Get information on the wxrc program for making C++, Python and xrs +dnl resource files. +dnl +dnl AC_ARG_ENABLE(...) +dnl AC_ARG_WITH(...) +dnl ... +dnl AM_OPTIONS_WXCONFIG +dnl AM_OPTIONS_WXRC +dnl ... +dnl AM_PATH_WXCONFIG(2.6.0, wxWin=1) +dnl if test "$wxWin" != 1; then +dnl AC_MSG_ERROR([ +dnl wxWidgets must be installed on your system +dnl but wx-config script couldn't be found. +dnl +dnl Please check that wx-config is in path, the directory +dnl where wxWidgets libraries are installed (returned by +dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or +dnl equivalent variable and wxWidgets version is 2.6.0 or above. +dnl ]) +dnl fi +dnl +dnl AM_PATH_WXRC([HAVE_WXRC=1], [HAVE_WXRC=0]) +dnl if test "x$HAVE_WXRC" != x1; then +dnl AC_MSG_ERROR([ +dnl The wxrc program was not installed or not found. +dnl +dnl Please check the wxWidgets installation. +dnl ]) +dnl fi +dnl +dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" +dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" +dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" +dnl +dnl LDFLAGS="$LDFLAGS $WX_LIBS" +dnl --------------------------------------------------------------------------- + + + +dnl --------------------------------------------------------------------------- +dnl AM_PATH_WXRC([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) +dnl +dnl Test for wxWidgets' wxrc program for creating either C++, Python or XRS +dnl resources. The variable WXRC will be set and substituted in the configure +dnl script and Makefiles. +dnl +dnl Example use: +dnl AM_PATH_WXRC([wxrc=1], [wxrc=0]) +dnl --------------------------------------------------------------------------- + +dnl +dnl wxrc program from the wx-config script +dnl +AC_DEFUN([AM_PATH_WXRC], +[ + AC_ARG_VAR([WXRC], [Path to wxWidget's wxrc resource compiler]) + + if test "x$WX_CONFIG_NAME" = x; then + AC_MSG_ERROR([The wxrc tests must run after wxWidgets test.]) + else + + AC_MSG_CHECKING([for wxrc]) + + if test "x$WXRC" = x ; then + dnl wx-config --utility is a new addition to wxWidgets: + _WX_PRIVATE_CHECK_VERSION(2,5,3) + if test -n "$wx_ver_ok"; then + WXRC=`$WX_CONFIG_WITH_ARGS --utility=wxrc` + fi + fi + + if test "x$WXRC" = x ; then + AC_MSG_RESULT([not found]) + ifelse([$2], , :, [$2]) + else + AC_MSG_RESULT([$WXRC]) + ifelse([$1], , :, [$1]) + fi + + AC_SUBST(WXRC) + fi +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/Makefile.am new file mode 100644 index 000000000..204419ed0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/Makefile.am @@ -0,0 +1,425 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.cc + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = \ + --keyword=wxGetTranslation:1 --keyword=wxGetTranslation:1,2 \ + --flag=wxGetTranslation:1:pass-c-format --flag=wxGetTranslation:2:pass-c-format \ + --keyword=wxTRANSLATE --flag=wxTRANSLATE:1:pass-c-format \ + --keyword=wxPLURAL:1,2 --flag=wxPLURAL:1:pass-c-format --flag=wxPLURAL:2:pass-c-format \ + --keyword=_ --flag=_:1:pass-c-format \ + --keyword=N_ --flag=N_:1:pass-c-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).gmo) +GMOFILES = @GMOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(lang).gmo) +CATALOGS = @CATALOGS@ + +SUFFIXES = .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(GMOFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(GMOFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/af.po new file mode 100644 index 000000000..1da956ae3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ast.po new file mode 100644 index 000000000..aa9a5e361 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-c++-wxwidgets +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/bg.po new file mode 100644 index 000000000..aad780973 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-c++-wxwidgets package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-wxwidgets 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ca.po new file mode 100644 index 000000000..ff7fcaf96 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-c++-wxwidgets. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/cs.po new file mode 100644 index 000000000..82de8a100 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/da.po new file mode 100644 index 000000000..9faeb7b96 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-c++-wxwidgets. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/de.po new file mode 100644 index 000000000..c3e01bb2a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-c++-wxwidgets. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/el.po new file mode 100644 index 000000000..c5fc8e9d4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-c++-wxwidgets +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/eo.po new file mode 100644 index 000000000..218704d2e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/es.po new file mode 100644 index 000000000..e513e4a2d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/fi.po new file mode 100644 index 000000000..2a338ea8a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/fr.po new file mode 100644 index 000000000..633ee7aa3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ga.po new file mode 100644 index 000000000..0a7cf7f00 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-c++-wxwidgets. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/gl.po new file mode 100644 index 000000000..1bc93b13c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-c++-wxwidgets package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/hr.po new file mode 100644 index 000000000..e197c072e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-c++-wxwidgets to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/hu.po new file mode 100644 index 000000000..68ee3a745 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-c++-wxwidgets. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/id.po new file mode 100644 index 000000000..f9a453e94 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-c++-wxwidgets-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/it.po new file mode 100644 index 000000000..ff18b4580 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-c++-wxwidgets. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ja.po new file mode 100644 index 000000000..f7f3c7ad7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-c++-wxwidgets' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ka.po new file mode 100644 index 000000000..4cee31462 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ky.po new file mode 100644 index 000000000..531e5b485 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-c++-wxwidgets' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/lv.po new file mode 100644 index 000000000..9892c67e0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-c++-wxwidgets +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ms.po new file mode 100644 index 000000000..f0eaa9a67 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ms.po @@ -0,0 +1,28 @@ +# hello-c++-wxwidgets Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/mt.po new file mode 100644 index 000000000..b8e0421de --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/mt.po @@ -0,0 +1,27 @@ +# hello-c++-wxwidgets-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/nb.po new file mode 100644 index 000000000..7ac6b294b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-c++-wxwidgets package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/nl.po new file mode 100644 index 000000000..77d2119b0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-c++-wxwidgets. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/nn.po new file mode 100644 index 000000000..80c56dc3f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-c++-wxwidgets +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/pl.po new file mode 100644 index 000000000..fd0bf2bd9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-c++-wxwidgets domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/pt.po new file mode 100644 index 000000000..0cc7c9ade --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-c++-wxwidgets' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/pt_BR.po new file mode 100644 index 000000000..0b3d9c8af --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ro.po new file mode 100644 index 000000000..3f7ca202f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-c++-wxwidgets. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-c++-wxwidgets 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-c++-wxwidgets-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ru.po new file mode 100644 index 000000000..f92aaa698 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-c++-wxwidgets-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sk.po new file mode 100644 index 000000000..54c3f0b78 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-c++-wxwidgets package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sl.po new file mode 100644 index 000000000..a3653ba2a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-c++-wxwidgets-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sq.po new file mode 100644 index 000000000..becec3733 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sr.po new file mode 100644 index 000000000..abb313fda --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-c++-wxwidgets. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sv.po new file mode 100644 index 000000000..224ce491f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-c++-wxwidgets. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ta.po new file mode 100644 index 000000000..babfed4f0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/tr.po new file mode 100644 index 000000000..1ae048119 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-c++-wxwidgets. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/uk.po new file mode 100644 index 000000000..9d34a7e4a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-c++-wxwidgets +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/vi.po new file mode 100644 index 000000000..0ce166d6d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_CN.po new file mode 100644 index 000000000..1d96f56bb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-c++-wxwidgets. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_HK.po new file mode 100644 index 000000000..ed20f3e9c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-c++-wxwidgets. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_TW.po new file mode 100644 index 000000000..d503cf2a8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-c++-wxwidgets. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-wxwidgets 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:73 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.cc:76 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/INSTALL new file mode 100644 index 000000000..5837269d2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/INSTALL @@ -0,0 +1,10 @@ +This example relies on libstdc++, gettext-runtime. + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix --with-libasprintf-prefix=/previous/gettext/install/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/Makefile.am new file mode 100644 index 000000000..9ff982583 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/Makefile.am @@ -0,0 +1,29 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign no-dependencies +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_PROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.cc gettext.h + +# Define a C macro LOCALEDIR indicating where catalogs will be installed. +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ + +# Make sure the gettext.h include file is found. +AM_CPPFLAGS = -I. -I$(srcdir) + +# Link time dependencies. +LDADD = @LIBASPRINTF@ @LIBINTL@ + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/autoclean.sh new file mode 100755 index 000000000..d18688a59 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/autoclean.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f gettext.h + +# Brought in by autopoint. +rm -f ABOUT-NLS +rm -f config.rpath +rm -f m4/gettext.m4 +rm -f m4/build-to-host.m4 +rm -f m4/host-cpu-c-abi.m4 +rm -f m4/iconv.m4 +rm -f m4/intlmacosx.m4 +rm -f m4/lib-ld.m4 +rm -f m4/lib-link.m4 +rm -f m4/lib-prefix.m4 +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/Makefile.in.in +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f config.guess +rm -f config.sub +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/autogen.sh new file mode 100755 index 000000000..0332a9b21 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/autogen.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${GETTEXTSRCDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-lib}/gettext.h gettext.h + +autopoint -f # was: gettextize -f -c +rm po/Makevars.template +rm po/Rules-quot +rm po/boldquot.sed +rm po/en@boldquot.header +rm po/en@quot.header +rm po/insert-header.sin +rm po/quot.sed + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/configure.ac new file mode 100644 index 000000000..ae6c054ec --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/configure.ac @@ -0,0 +1,18 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-c++], [0], , [hello-c++]) +AC_CONFIG_SRCDIR([hello.cc]) +AM_INIT_AUTOMAKE([1.11]) + +AC_PROG_CXX +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION([0.22]) +AC_LIB_LINKFLAGS([asprintf]) + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile.in]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/hello.cc b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/hello.cc new file mode 100644 index 000000000..fe097df53 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/hello.cc @@ -0,0 +1,48 @@ +// Example for use of GNU gettext. +// This file is in the public domain. + +// Source code of the C++ program. + + +// Avoid deprecation warnings from g++ 3.1 or newer. +#if defined __GNUG__ && defined __DEPRECATED +# include +using namespace std; +#else +# include +#endif + +// Get setlocale() declaration. +#include + +// Get getpid() declaration. +#if defined _WIN32 && !defined __CYGWIN__ +/* native Windows API */ +# include +# define getpid _getpid +#else +/* POSIX API */ +# include +#endif + +// Get gettext(), textdomain(), bindtextdomain() declaration. +#include "gettext.h" +// Define shortcut for gettext(). +#define _(string) gettext (string) + +// Get autosprintf class declaration. +#include "autosprintf.h" +using gnu::autosprintf; + +int +main () +{ + setlocale (LC_ALL, ""); + textdomain ("hello-c++"); + bindtextdomain ("hello-c++", LOCALEDIR); + + cout << _("Hello, world!") << endl; + cout << autosprintf (_("This program is running as process number %d."), + getpid ()) + << endl; +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/m4/Makefile.am new file mode 100644 index 000000000..9219ad199 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/m4/Makefile.am @@ -0,0 +1,4 @@ +EXTRA_DIST = \ + gettext.m4 build-to-host.m4 host-cpu-c-abi.m4 \ + iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \ + nls.m4 po.m4 progtest.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/Makevars b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/Makevars new file mode 100644 index 000000000..df0a9fb1f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/Makevars @@ -0,0 +1,84 @@ +# Makefile variables for PO directory in any package using GNU gettext. +# +# Copyright (C) 2003-2019 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation gives +# unlimited permission to use, copy, distribute, and modify it. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = \ + --keyword=_ --flag=_:1:pass-c-format \ + --keyword=N_ --flag=N_:1:pass-c-format \ + --flag=autosprintf:1:c-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = no + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = yes + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = yes diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/af.po new file mode 100644 index 000000000..821d6b295 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ast.po new file mode 100644 index 000000000..51f24cd6e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-c++ +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/bg.po new file mode 100644 index 000000000..755769523 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-c++ package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++ 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ca.po new file mode 100644 index 000000000..d40cbeadf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-c++. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/cs.po new file mode 100644 index 000000000..a4749eceb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/da.po new file mode 100644 index 000000000..b4db66140 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-c++. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/de.po new file mode 100644 index 000000000..dd78a8169 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-c++. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/el.po new file mode 100644 index 000000000..2e6ea5ebd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-c++ +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/eo.po new file mode 100644 index 000000000..8521ec028 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/es.po new file mode 100644 index 000000000..46741430b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/fi.po new file mode 100644 index 000000000..bb69c4dc6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/fr.po new file mode 100644 index 000000000..1119b2feb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ga.po new file mode 100644 index 000000000..15997c5ed --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-c++. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/gl.po new file mode 100644 index 000000000..84feb9c39 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-c++ package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/hr.po new file mode 100644 index 000000000..824a1e460 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-c++ to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/hu.po new file mode 100644 index 000000000..54c138c94 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-c++. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/id.po new file mode 100644 index 000000000..93c575fdc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-c++-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/it.po new file mode 100644 index 000000000..23f05fa09 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-c++. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ja.po new file mode 100644 index 000000000..16d4136cb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-c++' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ka.po new file mode 100644 index 000000000..be2ce4868 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ky.po new file mode 100644 index 000000000..eb68d20d4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-c++' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/lv.po new file mode 100644 index 000000000..e1a04b7bd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-c++ +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ms.po new file mode 100644 index 000000000..0b1de4816 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ms.po @@ -0,0 +1,28 @@ +# hello-c++ Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/mt.po new file mode 100644 index 000000000..cb41db6db --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/mt.po @@ -0,0 +1,27 @@ +# hello-c++-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/nb.po new file mode 100644 index 000000000..b83deef68 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-c++ package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/nl.po new file mode 100644 index 000000000..1836b373e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-c++. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/nn.po new file mode 100644 index 000000000..84da47193 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-c++ +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/pl.po new file mode 100644 index 000000000..2e9d1c6f3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-c++ domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/pt.po new file mode 100644 index 000000000..14094a6aa --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-c++' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/pt_BR.po new file mode 100644 index 000000000..622ba1194 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ro.po new file mode 100644 index 000000000..19286994b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-c++. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-c++ 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-c++-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ru.po new file mode 100644 index 000000000..5c69dad73 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-c++-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sk.po new file mode 100644 index 000000000..7f3b9e903 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-c++ package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sl.po new file mode 100644 index 000000000..d3afc3761 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-c++-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sq.po new file mode 100644 index 000000000..b4c805fad --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sr.po new file mode 100644 index 000000000..74481a194 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-c++. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sv.po new file mode 100644 index 000000000..c585bbcc0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-c++. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ta.po new file mode 100644 index 000000000..c44038ad7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/tr.po new file mode 100644 index 000000000..c73271e64 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-c++. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/uk.po new file mode 100644 index 000000000..a314fba5b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-c++ +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/vi.po new file mode 100644 index 000000000..4eb098911 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/zh_CN.po new file mode 100644 index 000000000..99be1fecc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-c++. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/zh_HK.po new file mode 100644 index 000000000..11c35aac4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-c++. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/zh_TW.po new file mode 100644 index 000000000..d242e1265 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-c++. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++ 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:44 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.cc:45 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/INSTALL new file mode 100644 index 000000000..5fc66f497 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/INSTALL @@ -0,0 +1,10 @@ +This example relies on libstdc++, gettext-runtime. + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/Makefile.am new file mode 100644 index 000000000..2a371c664 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/Makefile.am @@ -0,0 +1,29 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign no-dependencies +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_PROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.cc gettext.h + +# Define a C macro LOCALEDIR indicating where catalogs will be installed. +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ + +# Make sure the gettext.h include file is found. +AM_CPPFLAGS = -I. -I$(srcdir) + +# Link time dependencies. +LDADD = @LIBINTL@ + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/autoclean.sh new file mode 100755 index 000000000..d18688a59 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/autoclean.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f gettext.h + +# Brought in by autopoint. +rm -f ABOUT-NLS +rm -f config.rpath +rm -f m4/gettext.m4 +rm -f m4/build-to-host.m4 +rm -f m4/host-cpu-c-abi.m4 +rm -f m4/iconv.m4 +rm -f m4/intlmacosx.m4 +rm -f m4/lib-ld.m4 +rm -f m4/lib-link.m4 +rm -f m4/lib-prefix.m4 +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/Makefile.in.in +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f config.guess +rm -f config.sub +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/autogen.sh new file mode 100755 index 000000000..0332a9b21 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/autogen.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${GETTEXTSRCDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-lib}/gettext.h gettext.h + +autopoint -f # was: gettextize -f -c +rm po/Makevars.template +rm po/Rules-quot +rm po/boldquot.sed +rm po/en@boldquot.header +rm po/en@quot.header +rm po/insert-header.sin +rm po/quot.sed + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/configure.ac new file mode 100644 index 000000000..569c53b1c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/configure.ac @@ -0,0 +1,30 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-c++20], [0], , [hello-c++20]) +AC_CONFIG_SRCDIR([hello.cc]) +AM_INIT_AUTOMAKE([1.11]) + +AC_PROG_CXX + +# Try to find compiler option for ISO C++ 20 support. +cat <<\EOF > conftest.cc +#include +using std::vformat; +using std::make_format_args; +EOF +if ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c conftest.cc 2>/dev/null; then + : +elif ${CXX} ${CXXFLAGS} -std=gnu++20 ${CPPFLAGS} -c conftest.cc 2>/dev/null; then + CXXFLAGS="${CXXFLAGS} -std=gnu++20" +fi + +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION([0.22]) + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile.in]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/hello.cc b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/hello.cc new file mode 100644 index 000000000..ee0e24349 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/hello.cc @@ -0,0 +1,40 @@ +// Example for use of GNU gettext. +// This file is in the public domain. + +// Source code of the ISO C++ 20 program. + + +#include +#include +using namespace std; + +// Get setlocale() declaration. +#include + +// Get getpid() declaration. +#if defined _WIN32 && !defined __CYGWIN__ +/* native Windows API */ +# include +# define getpid _getpid +#else +/* POSIX API */ +# include +#endif + +// Get gettext(), textdomain(), bindtextdomain() declaration. +#include "gettext.h" +// Define shortcut for gettext(). +#define _(string) gettext (string) + +int +main () +{ + setlocale (LC_ALL, ""); + textdomain ("hello-c++20"); + bindtextdomain ("hello-c++20", LOCALEDIR); + + cout << _("Hello, world!") << endl; + cout << vformat (_("This program is running as process number {:d}."), + make_format_args (getpid ())) + << endl; +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/m4/Makefile.am new file mode 100644 index 000000000..9219ad199 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/m4/Makefile.am @@ -0,0 +1,4 @@ +EXTRA_DIST = \ + gettext.m4 build-to-host.m4 host-cpu-c-abi.m4 \ + iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \ + nls.m4 po.m4 progtest.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/Makevars b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/Makevars new file mode 100644 index 000000000..df0a9fb1f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/Makevars @@ -0,0 +1,84 @@ +# Makefile variables for PO directory in any package using GNU gettext. +# +# Copyright (C) 2003-2019 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation gives +# unlimited permission to use, copy, distribute, and modify it. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = \ + --keyword=_ --flag=_:1:pass-c-format \ + --keyword=N_ --flag=N_:1:pass-c-format \ + --flag=autosprintf:1:c-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = no + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = yes + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = yes diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/af.po new file mode 100644 index 000000000..49cb86882 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Hierdie program loop as prosesnommer {pid}" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ast.po new file mode 100644 index 000000000..f9c844dc1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-c++20 +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Esti programa ta executándose como procesu númberu {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/bg.po new file mode 100644 index 000000000..8d0656a98 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-c++20 package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++20 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ca.po new file mode 100644 index 000000000..7fab5f43f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-c++20. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Aquest programa està corrent amb el número de procés {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/cs.po new file mode 100644 index 000000000..33854266c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Tento program běží jako proces Äíslo {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/da.po new file mode 100644 index 000000000..740d81e0a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-c++20. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Dette program kører som proces nummer {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/de.po new file mode 100644 index 000000000..448bbeefd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-c++20. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Dieses Programm läuft mit der Prozess-Nummer {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/el.po new file mode 100644 index 000000000..c107d5be0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-c++20 +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/eo.po new file mode 100644 index 000000000..e13f5dd9f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/es.po new file mode 100644 index 000000000..6c30d8f8d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Este programa está corriendo como el proceso número {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/fi.po new file mode 100644 index 000000000..4fb67a424 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Tämän ohjelman prosessinumero on {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/fr.po new file mode 100644 index 000000000..8ce05c624 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Ce programme est exécuté en tant que processus numéro {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ga.po new file mode 100644 index 000000000..b96f80f7d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-c++20. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Tá an clár seo ag rith mar phróiseas {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/gl.po new file mode 100644 index 000000000..48ea9c8d8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-c++20 package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Este programa estase executando como o proceso número {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/hr.po new file mode 100644 index 000000000..93de0b355 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-c++20 to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/hu.po new file mode 100644 index 000000000..0799909d2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-c++20. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Ez a program a(z) {pid} folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/id.po new file mode 100644 index 000000000..0d89699ef --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-c++20-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Program ini berjalan sebagai proses nomor {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/it.po new file mode 100644 index 000000000..e2ff24a4f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-c++20. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Questo programma è in esecuzione con numero di processo {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ja.po new file mode 100644 index 000000000..dade34116 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-c++20' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· {pid} ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ka.po new file mode 100644 index 000000000..a022d5b89 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ky.po new file mode 100644 index 000000000..c6848331c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-c++20' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Бул программа {pid} процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/lv.po new file mode 100644 index 000000000..1eafe79ab --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-c++20 +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Å Ä« programma darbojas kÄ process ar numuru {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ms.po new file mode 100644 index 000000000..b172364ed --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ms.po @@ -0,0 +1,28 @@ +# hello-c++20 Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Program ini dilaksanakan sebagai proses bernombor {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/mt.po new file mode 100644 index 000000000..312408791 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/mt.po @@ -0,0 +1,27 @@ +# hello-c++20-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/nb.po new file mode 100644 index 000000000..178579dd5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-c++20 package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Dette programmet kjører som prosess nummer {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/nl.po new file mode 100644 index 000000000..1900b0a7c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-c++20. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Dit programma draait als proces nummer {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/nn.po new file mode 100644 index 000000000..0506fe50d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-c++20 +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Dette programmet køyrer som prosess nummer {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/pl.po new file mode 100644 index 000000000..a5f62d065 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-c++20 domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Ten program dziaÅ‚a jako proces o numerze {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/pt.po new file mode 100644 index 000000000..7f96a07a2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-c++20' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Este programa está em execução como processo nº {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/pt_BR.po new file mode 100644 index 000000000..ee46d80d3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Este programa está sendo executado com número de processo {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ro.po new file mode 100644 index 000000000..d054f4cc1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-c++20. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-c++20 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-c++20-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Acest program rulează ca procesul numărul {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ru.po new file mode 100644 index 000000000..66a717e43 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-c++20-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sk.po new file mode 100644 index 000000000..befd4fe94 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-c++20 package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Tento program beží ako proces s Äíslom {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sl.po new file mode 100644 index 000000000..4b1969ac9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-c++20-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Ta program teÄe kot proces Å¡tevilka {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sq.po new file mode 100644 index 000000000..122507c98 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Ky program po xhiron si procesi numër {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sr.po new file mode 100644 index 000000000..d53eaba01 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-c++20. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sv.po new file mode 100644 index 000000000..daa63e1d6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-c++20. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Detta program kör som process nummer {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ta.po new file mode 100644 index 000000000..535b2db84 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠{pid} ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/tr.po new file mode 100644 index 000000000..bfd0b4251 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-c++20. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Bu program iÅŸlem numarası {pid} olarak çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/uk.po new file mode 100644 index 000000000..7cee4e16c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-c++20 +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/vi.po new file mode 100644 index 000000000..25ca58aa6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/zh_CN.po new file mode 100644 index 000000000..c66167d1e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-c++20. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· {pid} è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/zh_HK.po new file mode 100644 index 000000000..10916d07d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-c++20. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º {pid}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/zh_TW.po new file mode 100644 index 000000000..d6a952864 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c++20/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-c++20. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c++20 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cc:36 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.cc:37 +#, fuzzy, c++-format +msgid "This program is running as process number {:d}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º {pid}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/INSTALL new file mode 100644 index 000000000..6a6db9af5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/INSTALL @@ -0,0 +1,16 @@ +This example relies on: + - the GNOME libraries (libgnomeui, libgnome, libgnomesupport, libart_lgpl) + and their dependencies: imlib (libgdk_imlib), audiofile (libaudiofile), + esound (libesd), zlib (libz). + - the GTK libraries (libgtk, libgdk) + - the glib libraries (libglib, libgmodule) + - the X11 libraries + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/Makefile.am new file mode 100644 index 000000000..ef6ea7325 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/Makefile.am @@ -0,0 +1,29 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign no-dependencies +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_PROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.c + +# Define a C macro LOCALEDIR indicating where catalogs will be installed. +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ + +# Make sure the gnome.h include file is found. +AM_CPPFLAGS = $(GNOME_INCLUDEDIR) + +# Link time dependencies. +LDADD = $(GNOME_LIBDIR) $(GNOMEUI_LIBS) @LIBINTL@ + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/autoclean.sh new file mode 100755 index 000000000..9daa77ce0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/autoclean.sh @@ -0,0 +1,43 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by autopoint. +rm -f ABOUT-NLS +rm -f config.rpath +rm -f m4/gettext.m4 +rm -f m4/build-to-host.m4 +rm -f m4/host-cpu-c-abi.m4 +rm -f m4/iconv.m4 +rm -f m4/intlmacosx.m4 +rm -f m4/lib-ld.m4 +rm -f m4/lib-link.m4 +rm -f m4/lib-prefix.m4 +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/Makefile.in.in +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f config.guess +rm -f config.sub +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/autogen.sh new file mode 100755 index 000000000..7fc228379 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/autogen.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +autopoint -f # was: gettextize -f -c +rm po/Makevars.template +rm po/Rules-quot +rm po/boldquot.sed +rm po/en@boldquot.header +rm po/en@quot.header +rm po/insert-header.sin +rm po/quot.sed + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/configure.ac new file mode 100644 index 000000000..ab65fff9c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/configure.ac @@ -0,0 +1,18 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-c-gnome], [0]) +AC_CONFIG_SRCDIR([hello.c]) +AM_INIT_AUTOMAKE([1.11]) + +AC_PROG_CC +GNOME_INIT +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION([0.22]) + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile.in]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/hello.c b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/hello.c new file mode 100644 index 000000000..d175c3dfb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/hello.c @@ -0,0 +1,92 @@ +/* Example for use of GNU gettext. + This file is in the public domain. + + Source code of the C program. */ + + +/* Get GNOME declarations. */ +#include + +/* Get getpid() declaration. */ +#if defined _WIN32 && !defined __CYGWIN__ +/* native Windows API */ +# include +# define getpid _getpid +#else +/* POSIX API */ +# include +#endif + +static void +quit_callback (GtkWidget *widget, void *data) +{ + gtk_main_quit (); +} + +int +main (int argc, char *argv[]) +{ + GtkWidget *window; + GtkWidget *panel; + GtkWidget *label1; + GtkWidget *label1aligned; + GtkWidget *label2; + GtkWidget *label2aligned; + GtkWidget *button; + GtkWidget *buttonbar; + + /* Initializations. */ + + gnome_init (PACKAGE, VERSION, argc, argv); + textdomain ("hello-c-gnome"); + bindtextdomain ("hello-c-gnome", LOCALEDIR); + + /* Create the GUI elements. */ + + window = gnome_app_new ("hello-c-gnome", "Hello example"); + gtk_widget_realize (window); + gtk_signal_connect (GTK_OBJECT (window), "delete_event", + GTK_SIGNAL_FUNC (quit_callback), NULL); + + label1 = gtk_label_new (_("Hello, world!")); + + label1aligned = gtk_alignment_new (0.0, 0.5, 0, 0); + gtk_container_add (GTK_CONTAINER (label1aligned), label1); + + label2 = gtk_label_new (g_strdup_printf (_("This program is running as process number %d."), getpid ())); + + label2aligned = gtk_alignment_new (0.0, 0.5, 0, 0); + gtk_container_add (GTK_CONTAINER (label2aligned), label2); + + button = gtk_button_new_with_label ("OK"); + gtk_signal_connect (GTK_OBJECT (button), "clicked", + GTK_SIGNAL_FUNC (quit_callback), NULL); + + buttonbar = gtk_hbutton_box_new (); + gtk_button_box_set_layout (GTK_BUTTON_BOX (buttonbar), GTK_BUTTONBOX_END); + gtk_box_pack_start_defaults (GTK_BOX (buttonbar), button); + + panel = gtk_vbox_new (FALSE, GNOME_PAD_SMALL); + gtk_box_pack_start_defaults (GTK_BOX (panel), label1aligned); + gtk_box_pack_start_defaults (GTK_BOX (panel), label2aligned); + gtk_box_pack_start_defaults (GTK_BOX (panel), buttonbar); + + gnome_app_set_contents (GNOME_APP (window), panel); + + /* Make the GUI elements visible. */ + + gtk_widget_show (label1); + gtk_widget_show (label1aligned); + gtk_widget_show (label2); + gtk_widget_show (label2aligned); + gtk_widget_show (button); + gtk_widget_show (buttonbar); + gtk_widget_show (panel); + gtk_widget_show (window); + + /* Start the event loop. */ + + gtk_main (); + + return 0; +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/m4/Makefile.am new file mode 100644 index 000000000..6cd0bba00 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/m4/Makefile.am @@ -0,0 +1,5 @@ +EXTRA_DIST = \ + gettext.m4 build-to-host.m4 host-cpu-c-abi.m4 \ + iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \ + nls.m4 po.m4 progtest.m4 \ + gnome.m4 gnome-gnorba-check.m4 gnome-orbit-check.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/m4/gnome-gnorba-check.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/m4/gnome-gnorba-check.m4 new file mode 100644 index 000000000..dbac0a6cf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/m4/gnome-gnorba-check.m4 @@ -0,0 +1,35 @@ +dnl +dnl GNOME_GNORBA_HOOK (script-if-gnorba-found, failflag) +dnl +dnl if failflag is "failure" it aborts if gnorba is not found. +dnl + +AC_DEFUN([GNOME_GNORBA_HOOK],[ + GNOME_ORBIT_HOOK([],$2) + AC_CACHE_CHECK([for gnorba libraries],gnome_cv_gnorba_found,[ + gnome_cv_gnorba_found=no + if test x$gnome_cv_orbit_found = xyes; then + GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" + GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" + if test -n "$GNORBA_LIBS"; then + gnome_cv_gnorba_found=yes + fi + fi + ]) + AM_CONDITIONAL(HAVE_GNORBA, test x$gnome_cv_gnorba_found = xyes) + if test x$gnome_cv_orbit_found = xyes; then + $1 + GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" + GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" + AC_SUBST(GNORBA_CFLAGS) + AC_SUBST(GNORBA_LIBS) + else + if test x$2 = xfailure; then + AC_MSG_ERROR(gnorba library not installed or installation problem) + fi + fi +]) + +AC_DEFUN([GNOME_GNORBA_CHECK], [ + GNOME_GNORBA_HOOK([],failure) +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/m4/gnome-orbit-check.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/m4/gnome-orbit-check.m4 new file mode 100644 index 000000000..54bf33aa4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/m4/gnome-orbit-check.m4 @@ -0,0 +1,33 @@ +dnl +dnl GNOME_ORBIT_HOOK (script-if-orbit-found, failflag) +dnl +dnl if failflag is "failure" it aborts if orbit is not found. +dnl + +AC_DEFUN([GNOME_ORBIT_HOOK],[ + AC_PATH_PROG(ORBIT_CONFIG,orbit-config,no) + AC_PATH_PROG(ORBIT_IDL,orbit-idl,no) + AC_CACHE_CHECK([for working ORBit environment],gnome_cv_orbit_found,[ + if test x$ORBIT_CONFIG = xno -o x$ORBIT_IDL = xno; then + gnome_cv_orbit_found=no + else + gnome_cv_orbit_found=yes + fi + ]) + AM_CONDITIONAL(HAVE_ORBIT, test x$gnome_cv_orbit_found = xyes) + if test x$gnome_cv_orbit_found = xyes; then + $1 + ORBIT_CFLAGS=`orbit-config --cflags client server` + ORBIT_LIBS=`orbit-config --use-service=name --libs client server` + AC_SUBST(ORBIT_CFLAGS) + AC_SUBST(ORBIT_LIBS) + else + if test x$2 = xfailure; then + AC_MSG_ERROR(ORBit not installed or installation problem) + fi + fi +]) + +AC_DEFUN([GNOME_ORBIT_CHECK], [ + GNOME_ORBIT_HOOK([],failure) +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/m4/gnome.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/m4/gnome.m4 new file mode 100644 index 000000000..659c22c49 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/m4/gnome.m4 @@ -0,0 +1,128 @@ +dnl +dnl GNOME_INIT_HOOK (script-if-gnome-enabled, [failflag], [additional-inits]) +dnl +dnl if failflag is "fail" then GNOME_INIT_HOOK will abort if gnomeConf.sh +dnl is not found. +dnl + +AC_DEFUN([GNOME_INIT_HOOK],[ + AC_SUBST(GNOME_LIBS) + AC_SUBST(GNOMEUI_LIBS) + AC_SUBST(GNOMEGNORBA_LIBS) + AC_SUBST(GTKXMHTML_LIBS) + AC_SUBST(ZVT_LIBS) + AC_SUBST(GNOME_LIBDIR) + AC_SUBST(GNOME_INCLUDEDIR) + + AC_ARG_WITH(gnome-includes, + [ --with-gnome-includes Specify location of GNOME headers],[ + CFLAGS="$CFLAGS -I$withval" + ]) + + AC_ARG_WITH(gnome-libs, + [ --with-gnome-libs Specify location of GNOME libs],[ + LDFLAGS="$LDFLAGS -L$withval" + gnome_prefix=$withval + ]) + + AC_ARG_WITH(gnome, + [ --with-gnome Specify prefix for GNOME files], + if test x$withval = xyes; then + want_gnome=yes + dnl Note that an empty true branch is not + dnl valid sh syntax. + ifelse([$1], [], :, [$1]) + else + if test "x$withval" = xno; then + want_gnome=no + else + want_gnome=yes + LDFLAGS="$LDFLAGS -L$withval/lib" + CFLAGS="$CFLAGS -I$withval/include" + gnome_prefix=$withval/lib + fi + fi, + want_gnome=yes) + + if test "x$want_gnome" = xyes; then + + AC_PATH_PROG(GNOME_CONFIG,gnome-config,no) + if test "$GNOME_CONFIG" = "no"; then + no_gnome_config="yes" + else + AC_MSG_CHECKING(if $GNOME_CONFIG works) + if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then + AC_MSG_RESULT(yes) + GNOME_GNORBA_HOOK([],$2) + GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome`" + GNOMEUI_LIBS="`$GNOME_CONFIG --libs-only-l gnomeui`" + GNOMEGNORBA_LIBS="`$GNOME_CONFIG --libs-only-l gnorba gnomeui`" + GTKXMHTML_LIBS="`$GNOME_CONFIG --libs-only-l gtkxmhtml`" + ZVT_LIBS="`$GNOME_CONFIG --libs-only-l zvt`" + GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`" + GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`" + $1 + else + AC_MSG_RESULT(no) + no_gnome_config="yes" + fi + fi + + if test x$exec_prefix = xNONE; then + if test x$prefix = xNONE; then + gnome_prefix=$ac_default_prefix/lib + else + gnome_prefix=$prefix/lib + fi + else + gnome_prefix=`eval echo \`echo $libdir\`` + fi + + if test "$no_gnome_config" = "yes"; then + AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix) + if test -f $gnome_prefix/gnomeConf.sh; then + AC_MSG_RESULT(found) + echo "loading gnome configuration from" \ + "$gnome_prefix/gnomeConf.sh" + . $gnome_prefix/gnomeConf.sh + $1 + else + AC_MSG_RESULT(not found) + if test x$2 = xfail; then + AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install) + fi + fi + fi + fi + + if test -n "$3"; then + n="$3" + for i in $n; do + AC_MSG_CHECKING(extra library \"$i\") + case $i in + applets) + AC_SUBST(GNOME_APPLETS_LIBS) + GNOME_APPLETS_LIBS=`$GNOME_CONFIG --libs-only-l applets` + AC_MSG_RESULT($GNOME_APPLETS_LIBS);; + docklets) + AC_SUBST(GNOME_DOCKLETS_LIBS) + GNOME_DOCKLETS_LIBS=`$GNOME_CONFIG --libs-only-l docklets` + AC_MSG_RESULT($GNOME_DOCKLETS_LIBS);; + capplet) + AC_SUBST(GNOME_CAPPLET_LIBS) + GNOME_CAPPLET_LIBS=`$GNOME_CONFIG --libs-only-l capplet` + AC_MSG_RESULT($GNOME_CAPPLET_LIBS);; + *) + AC_MSG_RESULT(unknown library) + esac + done + fi +]) + +dnl +dnl GNOME_INIT ([additional-inits]) +dnl + +AC_DEFUN([GNOME_INIT],[ + GNOME_INIT_HOOK([],fail,$1) +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/Makevars b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/Makevars new file mode 100644 index 000000000..5c94986f1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/Makevars @@ -0,0 +1,95 @@ +# Makefile variables for PO directory in any package using GNU gettext. +# +# Copyright (C) 2003-2019 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation gives +# unlimited permission to use, copy, distribute, and modify it. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = \ + --keyword=_ --flag=_:1:pass-c-format \ + --keyword=N_ --flag=N_:1:pass-c-format \ + --flag=g_log:3:c-format --flag=g_logv:3:c-format \ + --flag=g_error:1:c-format --flag=g_message:1:c-format \ + --flag=g_critical:1:c-format --flag=g_warning:1:c-format \ + --flag=g_print:1:c-format \ + --flag=g_printerr:1:c-format \ + --flag=g_strdup_printf:1:c-format --flag=g_strdup_vprintf:1:c-format \ + --flag=g_printf_string_upper_bound:1:c-format \ + --flag=g_snprintf:3:c-format --flag=g_vsnprintf:3:c-format \ + --flag=g_string_sprintf:2:c-format \ + --flag=g_string_sprintfa:2:c-format \ + --flag=g_scanner_error:2:c-format \ + --flag=g_scanner_warn:2:c-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = no + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = yes + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = yes diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/af.po new file mode 100644 index 000000000..c55235377 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ast.po new file mode 100644 index 000000000..c75baa7b8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-c-gnome +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/bg.po new file mode 100644 index 000000000..37492a2e0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-c-gnome package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c-gnome 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ca.po new file mode 100644 index 000000000..36cf0e883 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-c-gnome. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/cs.po new file mode 100644 index 000000000..f8ffdda1e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/da.po new file mode 100644 index 000000000..a655acdbd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-c-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/de.po new file mode 100644 index 000000000..407e16dc2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-c-gnome. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/el.po new file mode 100644 index 000000000..6fa3727ae --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-c-gnome +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/eo.po new file mode 100644 index 000000000..7b791adb2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/es.po new file mode 100644 index 000000000..6f1010fca --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/fi.po new file mode 100644 index 000000000..fdc5dafd9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.c:51 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/fr.po new file mode 100644 index 000000000..44b26a9e3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ga.po new file mode 100644 index 000000000..67f8cdad5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-c-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/gl.po new file mode 100644 index 000000000..69430fe1a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-c-gnome package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/hr.po new file mode 100644 index 000000000..dfd142f60 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-c-gnome to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/hu.po new file mode 100644 index 000000000..8289959b7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-c-gnome. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/id.po new file mode 100644 index 000000000..13f6a9cde --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-c-gnome-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/it.po new file mode 100644 index 000000000..62b17b1d7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-c-gnome. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ja.po new file mode 100644 index 000000000..a1212967a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-c-gnome' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ka.po new file mode 100644 index 000000000..122bebf30 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ky.po new file mode 100644 index 000000000..facf49d3f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-c-gnome' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/lv.po new file mode 100644 index 000000000..6ed0b32db --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-c-gnome +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ms.po new file mode 100644 index 000000000..85d48f770 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ms.po @@ -0,0 +1,28 @@ +# hello-c-gnome Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/mt.po new file mode 100644 index 000000000..8efecd035 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/mt.po @@ -0,0 +1,27 @@ +# hello-c-gnome-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/nb.po new file mode 100644 index 000000000..3ba039386 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-c-gnome package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/nl.po new file mode 100644 index 000000000..cb86be8c4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-c-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/nn.po new file mode 100644 index 000000000..9238dc99c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-c-gnome +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/pl.po new file mode 100644 index 000000000..7bb186600 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-c-gnome domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/pt.po new file mode 100644 index 000000000..450d5672a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-c-gnome' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/pt_BR.po new file mode 100644 index 000000000..21feb7089 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ro.po new file mode 100644 index 000000000..909ba0892 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-c-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-c-gnome 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-c-gnome-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ru.po new file mode 100644 index 000000000..87422019e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-c-gnome-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sk.po new file mode 100644 index 000000000..95f997121 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-c-gnome package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sl.po new file mode 100644 index 000000000..61e32aacd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-c-gnome-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sq.po new file mode 100644 index 000000000..54eec853f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sr.po new file mode 100644 index 000000000..b140c3526 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-c-gnome. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sv.po new file mode 100644 index 000000000..d4d183905 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-c-gnome. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ta.po new file mode 100644 index 000000000..1a3711f5a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/tr.po new file mode 100644 index 000000000..6646dcfff --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-c-gnome. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/uk.po new file mode 100644 index 000000000..48416644d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-c-gnome +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/vi.po new file mode 100644 index 000000000..5450bcb7e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/zh_CN.po new file mode 100644 index 000000000..534a3d0c4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-c-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/zh_HK.po new file mode 100644 index 000000000..2504e6617 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-c-gnome. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/zh_TW.po new file mode 100644 index 000000000..79973a773 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-c-gnome. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:51 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.c:56 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/INSTALL new file mode 100644 index 000000000..3b9f22fe0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/INSTALL @@ -0,0 +1,12 @@ +This example relies on: + - the GTK libraries (libgtk, libgdk), version 3.10 or later + - the glib libraries (libglib) + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/Makefile.am new file mode 100644 index 000000000..d7168bce8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/Makefile.am @@ -0,0 +1,62 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign no-dependencies +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_PROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.c resources.c + +# Define a C macro LOCALEDIR indicating where catalogs will be installed. +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ + +# Make sure the gnome.h include file is found. +AM_CPPFLAGS = $(GTK_CFLAGS) + +# Link time dependencies. +LDADD = $(GTK_LIBS) @LIBINTL@ + +BUILT_SOURCES = gschemas.compiled resources.c + +# Compile GSettings schema. +gschemas.compiled: hello.gschema.xml + $(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) . + +# Compile assets into a C source and link it with the application. +resources.c: hello.gresource.xml hello.ui + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ \ + --sourcedir=$(srcdir) --generate-source + +desktopdir = $(datadir)/applications +desktop_DATA = hello.desktop + +# Merge translations back into a Desktop Entry file. + +# Note that the resulting file should be included in EXTRA_DIST and +# processed earlier than the variable substitution below. Otherwise, +# the 'msgfmt' command will be required at compile-time. +hello.desktop.in: hello.desktop.in.in + $(AM_V_GEN) $(MSGFMT) --desktop --template $< -d $(top_srcdir)/po -o $@ + +# Substitute variables in a Desktop Entry file. +hello.desktop: hello.desktop.in + $(AM_V_GEN) sed -e 's|@bindir[@]|$(bindir)|g' $< > $@ + +CLEANFILES = $(BUILT_SOURCES) hello.desktop $(desktop_DATA) + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh hello.ui \ + hello.desktop.in.in hello.desktop.in \ + hello.gschema.xml \ + hello.gresource.xml + +MAINTAINERCLEANFILES = hello.desktop.in diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/autoclean.sh new file mode 100755 index 000000000..9daa77ce0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/autoclean.sh @@ -0,0 +1,43 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by autopoint. +rm -f ABOUT-NLS +rm -f config.rpath +rm -f m4/gettext.m4 +rm -f m4/build-to-host.m4 +rm -f m4/host-cpu-c-abi.m4 +rm -f m4/iconv.m4 +rm -f m4/intlmacosx.m4 +rm -f m4/lib-ld.m4 +rm -f m4/lib-link.m4 +rm -f m4/lib-prefix.m4 +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/Makefile.in.in +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f config.guess +rm -f config.sub +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/autogen.sh new file mode 100755 index 000000000..7fc228379 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/autogen.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +autopoint -f # was: gettextize -f -c +rm po/Makevars.template +rm po/Rules-quot +rm po/boldquot.sed +rm po/en@boldquot.header +rm po/en@quot.header +rm po/insert-header.sin +rm po/quot.sed + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/configure.ac new file mode 100644 index 000000000..e7d6ebdff --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/configure.ac @@ -0,0 +1,55 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-c-gnome3], [0]) +AC_CONFIG_SRCDIR([hello.c]) +AM_INIT_AUTOMAKE([1.11]) + +AC_PROG_CC +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION([0.22]) + +dnl Check GNOME specific stuff. +dnl +dnl If you have full GNOME development environment installed on your +dnl system, you should be able to use the following macros: +dnl +dnl AM_PATH_GLIB_2_0 +dnl PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.10], , +dnl [AC_MSG_ERROR([can't find gtk+-3.0])]) +dnl +dnl Here, in gettext-tools/examples, we do the checks manually for +dnl simplicity. + +AC_PATH_PROG([GLIB_COMPILE_RESOURCES], [glib-compile-resources]) +AS_IF([test -z "$GLIB_COMPILE_RESOURCES"], [ + AC_MSG_ERROR([can't find glib-compile-resources]) +]) + +AC_PATH_PROG([GLIB_COMPILE_SCHEMAS], [glib-compile-schemas]) +AS_IF([test -z "$GLIB_COMPILE_SCHEMAS"], [ + AC_MSG_ERROR([can't find glib-compile-schemas]) +]) + +AC_PATH_PROG([PKG_CONFIG], [pkg-config]) +AS_IF([test -z "$PKG_CONFIG"], [ + AC_MSG_ERROR([can't find pkg-config]) +]) + +GTK="gtk+-3.0 >= 3.10" +AS_IF(["$PKG_CONFIG" --exists "$GTK"], , [ + AC_MSG_ERROR([can't find $GTK]) +]) + +GTK_CFLAGS=`"$PKG_CONFIG" --cflags "$GTK"` +AC_SUBST([GTK_CFLAGS]) + +GTK_LIBS=`"$PKG_CONFIG" --libs "$GTK"` +AC_SUBST([GTK_LIBS]) + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile.in]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/hello.c b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/hello.c new file mode 100644 index 000000000..569808e83 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/hello.c @@ -0,0 +1,197 @@ +/* Example for use of GNU gettext. + This file is in the public domain. + + Source code of the C program. */ + + +/* Get GTK declarations. */ +#include +#include + +/* Get getpid() declaration. */ +#if defined _WIN32 && !defined __CYGWIN__ +/* native Windows API */ +# include +# define getpid _getpid +#else +/* POSIX API */ +# include +#endif + +#define UI_PATH "/org/gnu/gettext/examples/hello/hello.ui" +#define APPLICATION_ID "org.gnu.gettext.examples.hello" +#define GSETTINGS_SCHEMA "org.gnu.gettext.examples.hello" + +/* Forward declaration of GObject types. */ + +#define HELLO_TYPE_APPLICATION_WINDOW (hello_application_window_get_type ()) +#define HELLO_APPLICATION_WINDOW(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + HELLO_TYPE_APPLICATION_WINDOW, \ + HelloApplicationWindow)) + +typedef struct _HelloApplicationWindow HelloApplicationWindow; +typedef struct _HelloApplicationWindowClass HelloApplicationWindowClass; + +#define HELLO_TYPE_APPLICATION (hello_application_get_type ()) +#define HELLO_APPLICATION(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + HELLO_TYPE_APPLICATION, \ + HelloApplication)) + +typedef struct _HelloApplication HelloApplication; +typedef struct _HelloApplicationClass HelloApplicationClass; + +/* Custom application window implementation. */ + +struct _HelloApplicationWindow +{ + GtkApplicationWindow parent; + GtkWidget *label; + GtkWidget *button; + GSettings *settings; + gsize label_id; + gchar *labels[3]; +}; + +struct _HelloApplicationWindowClass +{ + GtkApplicationWindowClass parent_class; +}; + +G_DEFINE_TYPE (HelloApplicationWindow, hello_application_window, + GTK_TYPE_APPLICATION_WINDOW); + +static void +update_content (HelloApplicationWindow *window) +{ + gtk_label_set_label (GTK_LABEL (window->label), + window->labels[window->label_id]); + window->label_id = (window->label_id + 1) % G_N_ELEMENTS (window->labels); +} + +static void +hello_application_window_init (HelloApplicationWindow *window) +{ + gtk_widget_init_template (GTK_WIDGET (window)); + + window->settings = g_settings_new (GSETTINGS_SCHEMA); + g_settings_bind (window->settings, "use-markup", + window->label, "use-markup", + G_SETTINGS_BIND_DEFAULT); + + window->labels[0] + = g_strdup_printf (_("Hello world!\n" + "This program is running as " + "process number %d."), + getpid ()); + window->labels[1] + = g_strdup (_("This is another text")); + window->labels[2] + = g_strdup (_("This is yet another text")); + + update_content (window); +} + +static void +hello_application_window_dispose (GObject *object) +{ + HelloApplicationWindow *window = HELLO_APPLICATION_WINDOW (object); + g_clear_object (&window->settings); +} + +static void +hello_application_window_class_init (HelloApplicationWindowClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->dispose = hello_application_window_dispose; + + gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), + UI_PATH); + gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), + HelloApplicationWindow, label); + gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (klass), + HelloApplicationWindow, button); +} + +static HelloApplicationWindow * +hello_application_window_new (HelloApplication *application) +{ + return g_object_new (HELLO_TYPE_APPLICATION_WINDOW, + "application", application, + NULL); +} + +/* Custom application implementation. */ + +struct _HelloApplication +{ + GtkApplication parent; +}; + +struct _HelloApplicationClass +{ + GtkApplicationClass parent_class; +}; + +G_DEFINE_TYPE (HelloApplication, hello_application, GTK_TYPE_APPLICATION); + +static void +hello_application_init (HelloApplication *application) +{ +} + +static void +clicked_callback (GtkWidget *widget, void *data) +{ + update_content (HELLO_APPLICATION_WINDOW (data)); +} + +static void +hello_application_activate (GApplication *application) +{ + HelloApplicationWindow *window; + + window = hello_application_window_new (HELLO_APPLICATION (application)); + g_signal_connect (window->button, "clicked", + G_CALLBACK (clicked_callback), window); + gtk_window_present (GTK_WINDOW (window)); +} + +static void +hello_application_class_init (HelloApplicationClass *klass) +{ + G_APPLICATION_CLASS (klass)->activate = hello_application_activate; +} + +static HelloApplication * +hello_application_new (void) +{ + return g_object_new (HELLO_TYPE_APPLICATION, + "application-id", APPLICATION_ID, + NULL); +} + +int +main (int argc, char *argv[]) +{ + GApplication *application; + int status; + + /* Load the GSettings schema from the current directory. */ + g_setenv ("GSETTINGS_SCHEMA_DIR", ".", FALSE); + + /* Initializations. */ + textdomain ("hello-c-gnome3"); + bindtextdomain ("hello-c-gnome3", LOCALEDIR); + + /* Create application. */ + application = G_APPLICATION (hello_application_new ()); + + /* Start the application. */ + status = g_application_run (application, argc, argv); + g_object_unref (application); + + return status; +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/hello.gresource.xml b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/hello.gresource.xml new file mode 100644 index 000000000..7a00dc836 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/hello.gresource.xml @@ -0,0 +1,7 @@ + + + + + hello.ui + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/hello.gschema.xml b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/hello.gschema.xml new file mode 100644 index 000000000..18d7c8507 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/hello.gschema.xml @@ -0,0 +1,12 @@ + + + + + + true +

Use XML markup + Whether to use XML markup in the text. + + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/hello.ui b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/hello.ui new file mode 100644 index 000000000..b2d13b0f0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/hello.ui @@ -0,0 +1,46 @@ + + + + + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/m4/Makefile.am new file mode 100644 index 000000000..9219ad199 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/m4/Makefile.am @@ -0,0 +1,4 @@ +EXTRA_DIST = \ + gettext.m4 build-to-host.m4 host-cpu-c-abi.m4 \ + iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \ + nls.m4 po.m4 progtest.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/Makevars b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/Makevars new file mode 100644 index 000000000..5c94986f1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/Makevars @@ -0,0 +1,95 @@ +# Makefile variables for PO directory in any package using GNU gettext. +# +# Copyright (C) 2003-2019 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation gives +# unlimited permission to use, copy, distribute, and modify it. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = \ + --keyword=_ --flag=_:1:pass-c-format \ + --keyword=N_ --flag=N_:1:pass-c-format \ + --flag=g_log:3:c-format --flag=g_logv:3:c-format \ + --flag=g_error:1:c-format --flag=g_message:1:c-format \ + --flag=g_critical:1:c-format --flag=g_warning:1:c-format \ + --flag=g_print:1:c-format \ + --flag=g_printerr:1:c-format \ + --flag=g_strdup_printf:1:c-format --flag=g_strdup_vprintf:1:c-format \ + --flag=g_printf_string_upper_bound:1:c-format \ + --flag=g_snprintf:3:c-format --flag=g_vsnprintf:3:c-format \ + --flag=g_string_sprintf:2:c-format \ + --flag=g_string_sprintfa:2:c-format \ + --flag=g_scanner_error:2:c-format \ + --flag=g_scanner_warn:2:c-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = no + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = yes + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = yes diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/af.po new file mode 100644 index 000000000..b21ce8173 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/af.po @@ -0,0 +1,56 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, fuzzy, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "" + +#: hello.ui:34 +msgid "Update text" +msgstr "" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ast.po new file mode 100644 index 000000000..b5086577f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ast.po @@ -0,0 +1,61 @@ +# Asturian translation for hello-c-gnome3 +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"¡Hola mundu!\n" +"Esti programa ta executándose como procesu númberu %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Esto ye otru testu" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Esto ye otru testu más" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Hola" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Aplicación d'exemplu" + +#: hello.ui:34 +msgid "Update text" +msgstr "Anovar testu" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Usar marques XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Usa o non marques XML nel testu." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/bg.po new file mode 100644 index 000000000..23ba9829b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/bg.po @@ -0,0 +1,58 @@ +# Bulgarian translations for hello-c-gnome3 package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c-gnome3 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Здравейте!\n" +"Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Това е друг текÑÑ‚" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Ртова е един друг текÑÑ‚" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Здравейте" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Примерно приложение" + +#: hello.ui:34 +msgid "Update text" +msgstr "Обноваване на текÑÑ‚" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Използване на XML markup" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Дали да Ñе използва XML markup за текÑÑ‚." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ca.po new file mode 100644 index 000000000..31a5e7a7b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ca.po @@ -0,0 +1,59 @@ +# Catalan messages for GNU hello-c-gnome3. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Hola, món!\n" +"Aquest programa està corrent amb el número de procés %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Aquest és un altre text" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Aquest és un altre text més" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Hola" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Aplicació d’exemple" + +#: hello.ui:34 +msgid "Update text" +msgstr "Actualitza el text" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Empra etiquetatge XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Indica si es permet emprar etiquetatge XML al text." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/cs.po new file mode 100644 index 000000000..2b41ae8b6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/cs.po @@ -0,0 +1,60 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Ahoj svÄ›te!\n" +"Tento program běží jako proces Äíslo %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Toto je nÄ›jaký další text" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Toto je nÄ›jaký jeÅ¡tÄ› další text" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Ahoj" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Ukázková aplikace" + +#: hello.ui:34 +msgid "Update text" +msgstr "Aktualizovat text" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Používat znaÄkovací jazyk XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Zda v textu používat znaÄkovací jazyk XML." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/da.po new file mode 100644 index 000000000..be51fe81c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/da.po @@ -0,0 +1,60 @@ +# Danish messages for hello-c-gnome3. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Hej verden!\n" +"Dette program kører som proces nummer %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Dette er en anden tekst" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Endnu en tekst" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Hej" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Eksempelprogram" + +#: hello.ui:34 +msgid "Update text" +msgstr "Opdater tekst" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Brug XML-opmærkning" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Hvorvidt der skal bruges XML-opmærkning i teksten." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/de.po new file mode 100644 index 000000000..5c693ed00 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/de.po @@ -0,0 +1,64 @@ +# German messages for hello-c-gnome3. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Hallo Welt!\n" +"Dieses Programm läuft mit der Prozess-Nummer %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Dies ist ein weiterer Text" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Dies ist noch ein weiterer Text" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Hallo" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Beispielanwendung" + +#: hello.ui:34 +msgid "Update text" +msgstr "Text aktualisieren" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "XML-Markup verwenden" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Ob XML-Markup im Text verwendet werden soll" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/el.po new file mode 100644 index 000000000..f01d1527d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/el.po @@ -0,0 +1,56 @@ +# Greek translation of hello-c-gnome3 +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.c:84 +#, fuzzy, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "" + +#: hello.ui:34 +msgid "Update text" +msgstr "" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/eo.po new file mode 100644 index 000000000..39fc2dfa6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/eo.po @@ -0,0 +1,59 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Saluton mondo!\n" +"Ĉi tiu programo rulas kiel procezo kun numero %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Tio ĉi estas alia teksto" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Tio ĉi estas pli alia teksto" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Saluton" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Ekzempla aplikaĵo" + +#: hello.ui:34 +msgid "Update text" +msgstr "Äœisdatigi tekston" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Uzi marklingvon XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Ĉu uzi marklingvon XML en la teksto." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/es.po new file mode 100644 index 000000000..e653c0969 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/es.po @@ -0,0 +1,62 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"¡Hola, mundo!\n" +"Este programa está corriendo como el proceso número %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Este es otro texto" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Este es otro texto más" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Hola" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Ejemplo de aplicación" + +#: hello.ui:34 +msgid "Update text" +msgstr "Actualizar texto" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Utilizar etiquetas XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Si utilizar etiquetas XML en el texto." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/fi.po new file mode 100644 index 000000000..34a1f8126 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/fi.po @@ -0,0 +1,61 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Hei maailma!\n" +"Tämän ohjelman prosessinumero on %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Tämä on toinen teksti" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Tämä on vielä toinen teksti" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Hei" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Esimerkkisovellus" + +#: hello.ui:34 +msgid "Update text" +msgstr "Päivitä teksti" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Käytä XML-merkintäkieltä" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Käytetäänkö XML-merkintäkieltä tekstissä." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/fr.po new file mode 100644 index 000000000..2fccec585 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/fr.po @@ -0,0 +1,62 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Salut le monde !\n" +"Ce programme est exécuté en tant que processus numéro %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Ceci est un autre texte" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Ceci est encore un autre texte" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Bonjour" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Application d’exemple" + +#: hello.ui:34 +msgid "Update text" +msgstr "Actualiser le texte" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Utiliser le balisage XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "De quelle manière utiliser le balisage XML dans le texte." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ga.po new file mode 100644 index 000000000..f7b1394f3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ga.po @@ -0,0 +1,58 @@ +# Irish translations for hello-c-gnome3. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Dia dhuit a dhomhain!\n" +"Tá an clár seo ag rith mar phróiseas %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Seo é téacs eile" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Seo é téacs eile fós" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Dia dhuit" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Feidhmchlár Samplach" + +#: hello.ui:34 +msgid "Update text" +msgstr "Nuashonraigh an téacs" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Úsáid marcáil XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "An úsáidfear marcáil XML sa téacs." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/gl.po new file mode 100644 index 000000000..fc436853c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/gl.po @@ -0,0 +1,61 @@ +# Galician translation for hello-c-gnome3 package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.c:84 +#, fuzzy, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Aplicativo de exemplo" + +#: hello.ui:34 +msgid "Update text" +msgstr "" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/hr.po new file mode 100644 index 000000000..c2c9b255a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/hr.po @@ -0,0 +1,66 @@ +# Translation of hello-c-gnome3 to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Pozdrav, svijete!\n" +"Ovaj program se izvrÅ¡ava kao proces broj %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Ovo je drukÄiji tekst" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "A ovo je joÅ¡ drukÄiji tekst" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Pozdrav" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Primjer uporabe" + +#: hello.ui:34 +msgid "Update text" +msgstr "Osvježavanje teksta" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Uporaba XML oznaka" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Koristiti li XML oznaku u tekstu." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/hu.po new file mode 100644 index 000000000..89f2a6d3b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/hu.po @@ -0,0 +1,61 @@ +# Hungarian translation for hello-c-gnome3. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Helló, világ!\n" +"Ez a program a(z) %d folyamatazonosítóval fut." + +#: hello.c:89 +msgid "This is another text" +msgstr "Ez egy másik szöveg" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Ez megint egy másik szöveg" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Helló" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Példa alkalmazás" + +#: hello.ui:34 +msgid "Update text" +msgstr "Szöveg frissítése" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "XML-jelölÅ‘nyelv használata" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Használjon-e XML-jelölÅ‘nyelvet a szövegben." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/id.po new file mode 100644 index 000000000..52d20bb41 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/id.po @@ -0,0 +1,57 @@ +# translation of hello-c-gnome3-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.c:84 +#, fuzzy, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" + +#: hello.c:89 +msgid "This is another text" +msgstr "" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "" + +#: hello.ui:34 +msgid "Update text" +msgstr "" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/it.po new file mode 100644 index 000000000..c278004d5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/it.po @@ -0,0 +1,58 @@ +# Italian messages for hello-c-gnome3. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Salve mondo!\n" +"Questo programma è in esecuzione con numero di processo %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Questo è un altro testo" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Questo è un altro testo ancora" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Salve" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Applicazione di esempio" + +#: hello.ui:34 +msgid "Update text" +msgstr "Aggiorna testo" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Usa il markup XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Se usare il markup XML nel testo." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ja.po new file mode 100644 index 000000000..13e738b5a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ja.po @@ -0,0 +1,58 @@ +# Translation of `hello-c-gnome3' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Hello world!\n" +"ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." + +#: hello.c:89 +msgid "This is another text" +msgstr "ã“れã¯ã‚‚ã†ä¸€ã¤ã®ãƒ†ã‚­ã‚¹ãƒˆã§ã™" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "ã“れã¯ã•らã«ã‚‚ã†ä¸€ã¤ã®ãƒ†ã‚­ã‚¹ãƒˆã§ã™" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "ã“ã‚“ã«ã¡ã¯" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "実例応用" + +#: hello.ui:34 +msgid "Update text" +msgstr "テキストを更新" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "XMLマークアップを使用" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "テキスト内ã§XMLマークアップを使ã†ã‹å¦ã‹" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ka.po new file mode 100644 index 000000000..679c5f287 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ka.po @@ -0,0 +1,60 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!\n" +"პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "ეს კი სხვრტექსტიáƒ" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "ეს კიდევ უფრრსხვáƒáƒ" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘áƒ" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "მáƒáƒ’áƒáƒšáƒ˜áƒ—ი áƒáƒžáƒšáƒ˜áƒ™áƒáƒªáƒ˜áƒ" + +#: hello.ui:34 +msgid "Update text" +msgstr "ტექსტის გáƒáƒœáƒáƒ®áƒšáƒ”ბáƒ" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "XML მáƒáƒ áƒ™áƒ˜áƒ áƒ”ბის გáƒáƒ›áƒáƒ§áƒ”ნებáƒ" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "გáƒáƒ›áƒáƒ˜áƒ§áƒ”ნáƒáƒ— თუ áƒáƒ áƒ XML მáƒáƒ áƒ™áƒ˜áƒ áƒ”ბრტექსტში." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ky.po new file mode 100644 index 000000000..a05126d05 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ky.po @@ -0,0 +1,60 @@ +# Translation of 'hello-c-gnome3' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Салам дүйнө!\n" +"Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." + +#: hello.c:89 +msgid "This is another text" +msgstr "Дагы бир текÑÑ‚" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Жана дагы бир текÑÑ‚" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Салам" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "МиÑал программа" + +#: hello.ui:34 +msgid "Update text" +msgstr "ТекÑтти жаңылоо" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "XML белгени колдонуу" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "ТекÑÑ‚ ичинле XML белги ÑÑепке алынÑынбы." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/lv.po new file mode 100644 index 000000000..0f936b62a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/lv.po @@ -0,0 +1,60 @@ +# Latvian translation of hello-c-gnome3 +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.c:84 +#, fuzzy, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "" + +#: hello.ui:34 +msgid "Update text" +msgstr "" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ms.po new file mode 100644 index 000000000..f8c223fe1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ms.po @@ -0,0 +1,60 @@ +# hello-c-gnome3 Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Hello dunia!\n" +"Program ini dilaksanakan sebagai proses bernombor %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Ini adalah teks lain" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Ini adalah satu lagi teks lain" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Hello" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Contoh Aplikasi" + +#: hello.ui:34 +msgid "Update text" +msgstr "Kemaskini teks" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Guna penanda XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Sama ada untuk menggunakan penanda XML dalam teks." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/mt.po new file mode 100644 index 000000000..81816e38e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/mt.po @@ -0,0 +1,57 @@ +# hello-c-gnome3-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, fuzzy, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "" + +#: hello.ui:34 +msgid "Update text" +msgstr "" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/nb.po new file mode 100644 index 000000000..f74f4096a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/nb.po @@ -0,0 +1,61 @@ +# Norwegian Bokmal translations for hello-c-gnome3 package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Hello world!\n" +"Dette programmet kjører som prosess nummer %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Dette er en annen tekst" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Dette er enda en tekst" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Hallo" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Eksempelprogram" + +#: hello.ui:34 +msgid "Update text" +msgstr "Oppdater tekst" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Bruk XML-formatering" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Om det skal bruke XML-formatering i teksten" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/nl.po new file mode 100644 index 000000000..7e5d708dd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/nl.po @@ -0,0 +1,63 @@ +# Dutch translations for GNU hello-c-gnome3. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Hallo wereld!\n" +"Dit programma draait als proces nummer %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Dit is een andere tekst" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Dit is nog weer een andere tekst" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Hallo" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Voorbeeldtoepassing" + +#: hello.ui:34 +msgid "Update text" +msgstr "Tekst bijwerken" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "XML-markup gebruiken" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Of er XML-markup gebruikt moet worden in de tekst." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/nn.po new file mode 100644 index 000000000..9f67096df --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/nn.po @@ -0,0 +1,60 @@ +# Norwegian Nynorsk translation of GNU hello-c-gnome3 +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Hei, verda!\n" +"Dette programmet køyrer som prosess nummer %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Dette er ein annan tekst" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Her er endÃ¥ ein tekst" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Hei" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Eksempelprogram" + +#: hello.ui:34 +msgid "Update text" +msgstr "Oppdater tekst" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Bruk XML-oppmerking" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Om det skal brukast XML-oppmerking i teksten." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/pl.po new file mode 100644 index 000000000..7412c11c3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/pl.po @@ -0,0 +1,59 @@ +# Polish translations for the GNU gettext messages, hello-c-gnome3 domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Cześć, Å›wiecie!\n" +"Ten program dziaÅ‚a jako proces o numerze %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "To jest inny tekst" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "To jest jeszcze inny tekst" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Cześć" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Program przykÅ‚adowy" + +#: hello.ui:34 +msgid "Update text" +msgstr "Aktualizacja tekstu" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Użycie znaczników XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Czy użyć znaczników XML w tekÅ›cie." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/pt.po new file mode 100644 index 000000000..d7f8d43ba --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/pt.po @@ -0,0 +1,60 @@ +# Portuguese (Portugal) translation of 'hello-c-gnome3' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Olá mundo!\n" +"Este programa está em execução como processo nº %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Este é outro texto" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Eis ainda outro texto" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Olá" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Aplicação exemplo" + +#: hello.ui:34 +msgid "Update text" +msgstr "Actualizar texto" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Usar marcação XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Se se deve usar marcação XML no texto." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/pt_BR.po new file mode 100644 index 000000000..51e9d1e21 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/pt_BR.po @@ -0,0 +1,62 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Olá mundo!\n" +"Este programa está executando com número de processo %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Este é outro texto" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Este também é outro texto" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Olá" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Aplicativo exemplo" + +#: hello.ui:34 +msgid "Update text" +msgstr "Atualizar texto" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Usar marcação XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Se deve ser usada marcação XML no texto." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ro.po new file mode 100644 index 000000000..429e5867b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ro.po @@ -0,0 +1,69 @@ +# Mesajele în limba română pentru pachetul hello-c-gnome3. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-c-gnome3 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-c-gnome3-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Salut lume!\n" +"Acest program rulează ca procesul numărul %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Acesta este un alt text" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Acesta este încă un alt text" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Hello" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Exemplu de aplicaÈ›ie" + +#: hello.ui:34 +msgid "Update text" +msgstr "Actualizează text" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "FoloseÈ™te marcaj XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Dacă se foloseÈ™te marcaj XML în text." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ru.po new file mode 100644 index 000000000..cf3b48586 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ru.po @@ -0,0 +1,62 @@ +# Translation of hello-c-gnome3-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"ЗдравÑтвуй, мир!\n" +"Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Ещё один текÑÑ‚" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "И ещё один текÑÑ‚" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "ЗдравÑтвуйте" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Пример приложениÑ" + +#: hello.ui:34 +msgid "Update text" +msgstr "Обновить текÑÑ‚" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "ИÑпользовать разметку XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Учитывать ли в текÑте разметку XML." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sk.po new file mode 100644 index 000000000..814ac916d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sk.po @@ -0,0 +1,58 @@ +# Slovak translations GNU for hello-c-gnome3 package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Ahoj svet!\n" +"Tento program beží ako proces s Äíslom %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Toto je Äalší text" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Toto je eÅ¡te Äalší text" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Ahoj" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Ukážková aplikácia" + +#: hello.ui:34 +msgid "Update text" +msgstr "AktualizovaÅ¥ text" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "PoužiÅ¥ znaÄky XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "ÄŒi v texte použiÅ¥ znaÄky XML." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sl.po new file mode 100644 index 000000000..411282ff8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sl.po @@ -0,0 +1,61 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-c-gnome3-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Pozdravljen, svet!\n" +"Ta program teÄe kot proces Å¡tevilka %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "PodÄrtano besedilo" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Besedilo v kurzivi" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Zdravo" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Zgled aplikacije" + +#: hello.ui:34 +msgid "Update text" +msgstr "Posodobi besedilo" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Uporabi oznake XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Ali naj bodo v besedilu uporabljene oznake XML." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sq.po new file mode 100644 index 000000000..c227ea906 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sq.po @@ -0,0 +1,60 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Tungjatjeta botë!\n" +"Ky program po xhiron si procesi numër %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Ja dhe një tekst tjetër" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Ja edhe një tekst tjetër akoma" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Tungjatjeta" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Aplikacion Shembull" + +#: hello.ui:34 +msgid "Update text" +msgstr "Përditësojeni tekstin" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Përdor markup XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Të përdoret ose jo markup XML te teksti." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sr.po new file mode 100644 index 000000000..c230b000c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sr.po @@ -0,0 +1,60 @@ +# Serbian translation of hello-c-gnome3. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Здраво Ñвима!\n" +"Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Ово је још један текÑÑ‚" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Богами и ово је још један текÑÑ‚" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Здраво" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Програм примера" + +#: hello.ui:34 +msgid "Update text" +msgstr "ÐžÐ¿Ð¸Ñ Ð°Ð¶ÑƒÑ€Ð¸Ñ€Ð°ÑšÐ°" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "КориÑти ИкÑМЛ означавање" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Да ли ће да кориÑти ИкÑМЛ означавање у текÑту." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sv.po new file mode 100644 index 000000000..8472adf7b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/sv.po @@ -0,0 +1,61 @@ +# Swedish messages for hello-c-gnome3. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Hej världen!\n" +"Detta program kör som process nummer %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Detta är en annan text" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Detta är ytterligare en annan text" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Hej" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Exempelprogram" + +#: hello.ui:34 +msgid "Update text" +msgstr "Uppdatera text" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Använd XML-märkning" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Huruvida XML-märkning skall användas i texten." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ta.po new file mode 100644 index 000000000..194f5df13 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/ta.po @@ -0,0 +1,59 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"வணகà¯à®•ம௠உலகà¯!\n" +"இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." + +#: hello.c:89 +msgid "This is another text" +msgstr "இத௠மறà¯à®±à¯Šà®°à¯ உரை\"" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "இத௠மேலà¯à®®à¯ ஒர௠உரை" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "வணகà¯à®•à®®à¯" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "எடà¯à®¤à¯à®¤à¯à®•à¯à®•ாடà¯à®Ÿà¯ நிரலà¯" + +#: hello.ui:34 +msgid "Update text" +msgstr "உரையை மாறà¯à®±à¯" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "XML கà¯à®±à®¿à®®à¯Šà®´à®¿à®¯à¯ˆà®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "உரையில௠XML கà¯à®±à®¿à®®à¯Šà®´à®¿à®¯à¯ˆà®ªà¯ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®µà®¤à®¾." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/tr.po new file mode 100644 index 000000000..781b12909 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/tr.po @@ -0,0 +1,61 @@ +# Turkish translation for hello-c-gnome3. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Merhaba dünya!\n" +"Bu yazılım %d iÅŸlem numarası ile çalışıyor." + +#: hello.c:89 +msgid "This is another text" +msgstr "Bu diÄŸer metindir" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Bu henüz baÅŸka bir metindir" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Merhaba" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Örnek Uygulama" + +#: hello.ui:34 +msgid "Update text" +msgstr "Metni güncelleÅŸtir" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "XML betiÄŸini kullan" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "XML betiÄŸinde kullanılıp kullanılmayacağını belirtir." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/uk.po new file mode 100644 index 000000000..17be21a3b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/uk.po @@ -0,0 +1,62 @@ +# Ukrainian translation to hello-c-gnome3 +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Вітаємо!\n" +"Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Інший фрагмент текÑту" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Ще ÑкийÑÑŒ фрагмент текÑту" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Привіт" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Програма-приклад" + +#: hello.ui:34 +msgid "Update text" +msgstr "Оновити текÑÑ‚" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "ВикориÑтати розмітку XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Визначає, чи Ñлід викориÑтовувати розмітку XML у текÑті." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/vi.po new file mode 100644 index 000000000..e61616bf5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/vi.po @@ -0,0 +1,64 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"Chào thế giá»›i!\n" +"Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." + +#: hello.c:89 +msgid "This is another text" +msgstr "Äây là văn bản khác" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "Äây là văn bản khác nữa" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "Chào" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.ui:6 +msgid "Example Application" +msgstr "Ứng dụng mẫu" + +#: hello.ui:34 +msgid "Update text" +msgstr "Văn bản cập nhật" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "Dùng đánh dấu XML" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "Có dùng đánh dấu XML trong văn bản hay không." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/zh_CN.po new file mode 100644 index 000000000..3009c473a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/zh_CN.po @@ -0,0 +1,61 @@ +# zh_CN translation for hello-c-gnome3. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"你好,世界ï¼\n" +"æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" + +#: hello.c:89 +msgid "This is another text" +msgstr "这是å¦ä¸€æ®µæ–‡æœ¬" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "这还是å¦ä¸€æ®µæ–‡æœ¬" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "你好" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.ui:6 +msgid "Example Application" +msgstr "示例应用" + +#: hello.ui:34 +msgid "Update text" +msgstr "更新文本" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "使用 XML 标记语言" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "是å¦åœ¨æ–‡æœ¬ä¸­ä½¿ç”¨ XML 标记。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/zh_HK.po new file mode 100644 index 000000000..1c9baea42 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/zh_HK.po @@ -0,0 +1,55 @@ +# Chinese (Hong Kong) translation of hello-c-gnome3. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, fuzzy, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" + +#: hello.c:89 +msgid "This is another text" +msgstr "" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.ui:6 +msgid "Example Application" +msgstr "" + +#: hello.ui:34 +msgid "Update text" +msgstr "" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/zh_TW.po new file mode 100644 index 000000000..0867cd6cd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c-gnome3/po/zh_TW.po @@ -0,0 +1,59 @@ +# Traditional Chinese translation of hello-c-gnome3. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-gnome3 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:84 +#, c-format +msgid "" +"Hello world!\n" +"This program is running as process number %d." +msgstr "" +"哈囉,大家好ï¼\n" +"æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" + +#: hello.c:89 +msgid "This is another text" +msgstr "這是å¦ä¸€æ®µæ–‡å­—" + +#: hello.c:91 +msgid "This is yet another text" +msgstr "é€™åˆæ˜¯å¦ä¸€æ®µæ–‡å­—" + +#: hello.desktop.in.in:4 +msgid "Hello" +msgstr "哈囉" + +#: hello.desktop.in.in:5 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.ui:6 +msgid "Example Application" +msgstr "應用軟體範例" + +#: hello.ui:34 +msgid "Update text" +msgstr "更新文字" + +#: hello.gschema.xml:8 +msgid "Use XML markup" +msgstr "使用 XML 標記" + +#: hello.gschema.xml:9 +msgid "Whether to use XML markup in the text." +msgstr "是å¦åœ¨æ–‡å­—中使用 XML 標記" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/INSTALL new file mode 100644 index 000000000..0f981dc96 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/INSTALL @@ -0,0 +1,10 @@ +This example relies just on gettext-runtime (and libc, of course). + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/Makefile.am new file mode 100644 index 000000000..2afd4562a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/Makefile.am @@ -0,0 +1,29 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign no-dependencies +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_PROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.c gettext.h + +# Define a C macro LOCALEDIR indicating where catalogs will be installed. +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ + +# Make sure the gettext.h include file is found. +AM_CPPFLAGS = -I. -I$(srcdir) + +# Link time dependencies. +LDADD = @LIBINTL@ + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/autoclean.sh new file mode 100755 index 000000000..d18688a59 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/autoclean.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f gettext.h + +# Brought in by autopoint. +rm -f ABOUT-NLS +rm -f config.rpath +rm -f m4/gettext.m4 +rm -f m4/build-to-host.m4 +rm -f m4/host-cpu-c-abi.m4 +rm -f m4/iconv.m4 +rm -f m4/intlmacosx.m4 +rm -f m4/lib-ld.m4 +rm -f m4/lib-link.m4 +rm -f m4/lib-prefix.m4 +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/Makefile.in.in +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f config.guess +rm -f config.sub +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/autogen.sh new file mode 100755 index 000000000..78b150395 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/autogen.sh @@ -0,0 +1,50 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${GETTEXTSRCDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-lib}/gettext.h gettext.h + +autopoint -f # was: gettextize -f -c +rm po/Makevars.template +rm po/Rules-quot +rm po/boldquot.sed +rm po/en@boldquot.header +rm po/en@quot.header +rm po/insert-header.sin +rm po/quot.sed + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/configure.ac new file mode 100644 index 000000000..1d4986d13 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/configure.ac @@ -0,0 +1,17 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-c], [0]) +AC_CONFIG_SRCDIR([hello.c]) +AM_INIT_AUTOMAKE([1.11]) + +AC_PROG_CC +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION([0.22]) + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile.in]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/hello.c b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/hello.c new file mode 100644 index 000000000..a4a6278d4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/hello.c @@ -0,0 +1,40 @@ +/* Example for use of GNU gettext. + This file is in the public domain. + + Source code of the C program. */ + + +/* Get setlocale() declaration. */ +#include + +/* Get printf() declaration. */ +#include + +/* Get getpid() declaration. */ +#if defined _WIN32 && !defined __CYGWIN__ +/* native Windows API */ +# include +# define getpid _getpid +#else +/* POSIX API */ +# include +#endif + +/* Get gettext(), textdomain(), bindtextdomain() declaration. */ +#include "gettext.h" +/* Define shortcut for gettext(). */ +#define _(string) gettext (string) + +int +main () +{ + setlocale (LC_ALL, ""); + textdomain ("hello-c"); + bindtextdomain ("hello-c", LOCALEDIR); + + printf ("%s\n", _("Hello, world!")); + printf (_("This program is running as process number %d."), getpid ()); + putchar ('\n'); + + return 0; +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/m4/Makefile.am new file mode 100644 index 000000000..9219ad199 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/m4/Makefile.am @@ -0,0 +1,4 @@ +EXTRA_DIST = \ + gettext.m4 build-to-host.m4 host-cpu-c-abi.m4 \ + iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \ + nls.m4 po.m4 progtest.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/Makevars b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/Makevars new file mode 100644 index 000000000..16af4d267 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/Makevars @@ -0,0 +1,83 @@ +# Makefile variables for PO directory in any package using GNU gettext. +# +# Copyright (C) 2003-2019 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation gives +# unlimited permission to use, copy, distribute, and modify it. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = \ + --keyword=_ --flag=_:1:pass-c-format \ + --keyword=N_ --flag=N_:1:pass-c-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = no + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = yes + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = yes diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/af.po new file mode 100644 index 000000000..6c45bea2b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ast.po new file mode 100644 index 000000000..1a5dc1ade --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-c +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/bg.po new file mode 100644 index 000000000..f9b17d455 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-c package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ca.po new file mode 100644 index 000000000..64b236ab9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-c. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/cs.po new file mode 100644 index 000000000..bbcc26bf7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/da.po new file mode 100644 index 000000000..fa93b46c1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-c. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/de.po new file mode 100644 index 000000000..5fcab1515 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-c. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/el.po new file mode 100644 index 000000000..b1b693142 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-c +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/eo.po new file mode 100644 index 000000000..e84a1a1eb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/es.po new file mode 100644 index 000000000..365fe7812 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/fi.po new file mode 100644 index 000000000..65f23e769 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.c:35 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/fr.po new file mode 100644 index 000000000..2057a25c4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ga.po new file mode 100644 index 000000000..17d4e2a9c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-c. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/gl.po new file mode 100644 index 000000000..6e7431435 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-c package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/hr.po new file mode 100644 index 000000000..9c6a0408a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-c to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/hu.po new file mode 100644 index 000000000..8f49d0f19 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-c. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/id.po new file mode 100644 index 000000000..624384306 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-c-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/it.po new file mode 100644 index 000000000..54b9837d1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-c. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ja.po new file mode 100644 index 000000000..69eeb7dec --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-c' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ka.po new file mode 100644 index 000000000..70cebfedc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ky.po new file mode 100644 index 000000000..defda342a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-c' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/lv.po new file mode 100644 index 000000000..ee881271d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-c +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ms.po new file mode 100644 index 000000000..bcc4e7deb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ms.po @@ -0,0 +1,28 @@ +# hello-c Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/mt.po new file mode 100644 index 000000000..260247aa1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/mt.po @@ -0,0 +1,27 @@ +# hello-c-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/nb.po new file mode 100644 index 000000000..05da65417 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-c package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/nl.po new file mode 100644 index 000000000..6cd5383a0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-c. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/nn.po new file mode 100644 index 000000000..e31d8d143 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-c +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/pl.po new file mode 100644 index 000000000..21f380768 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-c domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/pt.po new file mode 100644 index 000000000..bb5d8bc95 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-c' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/pt_BR.po new file mode 100644 index 000000000..eb4ef495a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ro.po new file mode 100644 index 000000000..51220ce45 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-c. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-c 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-c-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ru.po new file mode 100644 index 000000000..95f111b73 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-c-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sk.po new file mode 100644 index 000000000..d1d00d97d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-c package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sl.po new file mode 100644 index 000000000..58b10c260 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-c-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sq.po new file mode 100644 index 000000000..a795279be --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sr.po new file mode 100644 index 000000000..9ae34254c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-c. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sv.po new file mode 100644 index 000000000..776413ce2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-c. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ta.po new file mode 100644 index 000000000..731b496c0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/tr.po new file mode 100644 index 000000000..c7eba1f10 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-c. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/uk.po new file mode 100644 index 000000000..57707f4d9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-c +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/vi.po new file mode 100644 index 000000000..dc3780ec6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/zh_CN.po new file mode 100644 index 000000000..cc09a4a58 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-c. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/zh_HK.po new file mode 100644 index 000000000..fa395ae99 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-c. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/zh_TW.po new file mode 100644 index 000000000..7e99210b6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-c/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-c. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-c 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.c:35 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.c:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/INSTALL new file mode 100644 index 000000000..2d7511652 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/INSTALL @@ -0,0 +1,10 @@ +This example relies on clisp (GNU clisp). + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/Makefile.am new file mode 100644 index 000000000..3911ff3ca --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/Makefile.am @@ -0,0 +1,29 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_SCRIPTS = hello + +# Compilation of Common Lisp programs. +SUFFIXES = .lisp .fas +.lisp.fas: + clisp -norc -q -c $< -o $@ +CLEANFILES = *.fas *.lib + +# Making a Common Lisp program executable. +hello: hello.fas + (echo '#!@CLISP@'; cat $<) > $@ + chmod a+x $@ +CLEANFILES += hello + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/autoclean.sh new file mode 100755 index 000000000..9367df26c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/autoclean.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/autogen.sh new file mode 100755 index 000000000..7e5197991 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/configure.ac new file mode 100644 index 000000000..a4b006f62 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/configure.ac @@ -0,0 +1,38 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-clisp], [0]) +AC_CONFIG_SRCDIR([hello.lisp.in]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check for availability of the Lisp system. +AC_PATH_PROG([CLISP], [clisp]) +if test -z "$CLISP"; then + echo "*** Essential program clisp not found" 1>&2 + exit 1 +fi +AC_SUBST([CLISP]) + +dnl The installed program must know where to find its message catalogs. +dnl Unfortunately, prefix gets only finally determined at the end of configure. +if test "X$prefix" = "XNONE"; then + final_prefix="$ac_default_prefix" +else + final_prefix="$prefix" +fi +save_prefix="$prefix" +prefix="$final_prefix" +eval "datarootdir=\"${datarootdir}\"" +eval "localedir=\"${datadir}/locale\"" +prefix="$save_prefix" +AC_SUBST([localedir]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile hello.lisp]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/m4/Makefile.am new file mode 100644 index 000000000..8a841b31f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/m4/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + nls.m4 po.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/Makefile.am new file mode 100644 index 000000000..c3ce24a0a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/Makefile.am @@ -0,0 +1,419 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.lisp.in + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --keyword=_ --flag=_:1:pass-lisp-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).gmo) +GMOFILES = @GMOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(lang).gmo) +CATALOGS = @CATALOGS@ + +SUFFIXES = .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(GMOFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(GMOFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/af.po new file mode 100644 index 000000000..eff618c3b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Hierdie program loop as prosesnommer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ast.po new file mode 100644 index 000000000..7d89c16b3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-clisp +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Esti programa ta executándose como procesu númberu ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/bg.po new file mode 100644 index 000000000..706eb3b8b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-clisp package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-clisp 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ca.po new file mode 100644 index 000000000..c5fe596c3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-clisp. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Aquest programa està corrent amb el número de procés ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/cs.po new file mode 100644 index 000000000..cc4aebf65 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Tento program běží jako proces Äíslo ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/da.po new file mode 100644 index 000000000..91a4c511f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-clisp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Dette program kører som proces nummer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/de.po new file mode 100644 index 000000000..563aeb22c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-clisp. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Dieses Programm läuft mit der Prozess-Nummer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/el.po new file mode 100644 index 000000000..2d474a727 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-clisp +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/eo.po new file mode 100644 index 000000000..43467832e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/es.po new file mode 100644 index 000000000..9db3f626d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Este programa está corriendo como el proceso número ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/fi.po new file mode 100644 index 000000000..0ec55ed9d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Tämän ohjelman prosessinumero on ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/fr.po new file mode 100644 index 000000000..b3ee8bd1f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Ce programme est exécuté en tant que processus numéro ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ga.po new file mode 100644 index 000000000..391a1a213 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-clisp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Tá an clár seo ag rith mar phróiseas ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/gl.po new file mode 100644 index 000000000..811a4e4df --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-clisp package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Este programa estase executando como o proceso número ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/hr.po new file mode 100644 index 000000000..d755450cb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-clisp to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/hu.po new file mode 100644 index 000000000..9d5657828 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-clisp. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Ez a program a(z) ~D folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/id.po new file mode 100644 index 000000000..d20e29077 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-clisp-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Program ini berjalan sebagai proses nomor ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/it.po new file mode 100644 index 000000000..55ff14a3c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-clisp. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Questo programma è in esecuzione con numero di processo ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ja.po new file mode 100644 index 000000000..7e0d88ebc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-clisp' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· ~D ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ka.po new file mode 100644 index 000000000..fff0ac6b0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ky.po new file mode 100644 index 000000000..78c6f1682 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-clisp' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Бул программа ~D процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/lv.po new file mode 100644 index 000000000..3ec22f059 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-clisp +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Å Ä« programma darbojas kÄ process ar numuru ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ms.po new file mode 100644 index 000000000..c27fddf3f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ms.po @@ -0,0 +1,28 @@ +# hello-clisp Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Program ini dilaksanakan sebagai proses bernombor ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/mt.po new file mode 100644 index 000000000..ef6166d31 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/mt.po @@ -0,0 +1,27 @@ +# hello-clisp-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/nb.po new file mode 100644 index 000000000..634cf289f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-clisp package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Dette programmet kjører som prosess nummer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/nl.po new file mode 100644 index 000000000..b3cbafe26 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-clisp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Dit programma draait als proces nummer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/nn.po new file mode 100644 index 000000000..4ce4ec438 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-clisp +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Dette programmet køyrer som prosess nummer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/pl.po new file mode 100644 index 000000000..f80858a4d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-clisp domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Ten program dziaÅ‚a jako proces o numerze ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/pt.po new file mode 100644 index 000000000..e4b9a0189 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-clisp' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Este programa está em execução como processo nº ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/pt_BR.po new file mode 100644 index 000000000..34c38b14d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Este programa está sendo executado com número de processo ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ro.po new file mode 100644 index 000000000..62dd65967 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-clisp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-clisp 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-clisp-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Acest program rulează ca procesul numărul ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ru.po new file mode 100644 index 000000000..706b256f6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-clisp-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sk.po new file mode 100644 index 000000000..362e2f682 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-clisp package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Tento program beží ako proces s Äíslom ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sl.po new file mode 100644 index 000000000..6a651f1a3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-clisp-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Ta program teÄe kot proces Å¡tevilka ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sq.po new file mode 100644 index 000000000..cdaadace1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Ky program po xhiron si procesi numër ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sr.po new file mode 100644 index 000000000..4a722a017 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-clisp. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sv.po new file mode 100644 index 000000000..d03106c09 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-clisp. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Detta program kör som process nummer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ta.po new file mode 100644 index 000000000..ce8d8cbff --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠~D ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/tr.po new file mode 100644 index 000000000..99218aab6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-clisp. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Bu yazılım ~D süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/uk.po new file mode 100644 index 000000000..d637ee96b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-clisp +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/vi.po new file mode 100644 index 000000000..06645c84d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/zh_CN.po new file mode 100644 index 000000000..6343b3550 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-clisp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· ~D è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/zh_HK.po new file mode 100644 index 000000000..99e6f09f3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-clisp. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º ~D。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/zh_TW.po new file mode 100644 index 000000000..e3d0eedb4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-clisp/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-clisp. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-clisp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.lisp.in:11 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.lisp.in:13 +#, lisp-format +msgid "This program is running as process number ~D." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º ~D。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/INSTALL new file mode 100644 index 000000000..31c44e480 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/INSTALL @@ -0,0 +1,11 @@ +This example relies on: + - a C# implementation with System.Windows.Forms library: mono + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/Makefile.am new file mode 100644 index 000000000..44a82fc60 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/Makefile.am @@ -0,0 +1,74 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_CSHARPPROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.cs + +# The link dependencies of the 'hello' program. +hello_CSHARPLIBS = @GNU_GETTEXT_LDADD@ @GNU_GETTEXT_LIBS@ -l System -l System.Drawing -l System.Windows.Forms + +# Resources that are generated from PO files. +MAINTAINERCLEANFILES = */*.resources.dll + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh + + +# ----------------- General rules for compiling C# programs ----------------- + +pkgdatadir = $(datadir)/$(PACKAGE) +pkglibdir = $(libdir)/$(PACKAGE) + +CSHARPCOMP = $(SHELL) csharpcomp.sh +CSHARPCOMPFLAGS = -O -g + +EXTRA_DIST += $(hello_SOURCES) +CLEANFILES = hello.net.exe.mdb +DISTCLEANFILES = csharpcomp.sh csharpexec.sh + + +# Rules for compiling C# programs. + +all-local: hello.net.exe hello.sh + +hello.net.exe: $(hello_SOURCES) + $(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ $(hello_CSHARPLIBS) $(srcdir)/hello.cs + +hello.sh: + { echo '#!/bin/sh'; \ + echo "exec /bin/sh '$(pkgdatadir)/csharpexec.sh' @GNU_GETTEXT_LDADD@ '$(pkglibdir)/hello.net.exe' \"\$$@\""; \ + } > $@ + +install-exec-local: all-local + $(MKDIR_P) $(DESTDIR)$(bindir) + $(INSTALL_SCRIPT) hello.sh $(DESTDIR)$(bindir)/hello + $(MKDIR_P) $(DESTDIR)$(pkglibdir) + $(INSTALL_DATA) hello.net.exe $(DESTDIR)$(pkglibdir)/hello.net.exe + +install-data-local: all-local + $(MKDIR_P) $(DESTDIR)$(pkgdatadir) + $(INSTALL_DATA) csharpexec.sh $(DESTDIR)$(pkgdatadir)/csharpexec.sh + +installdirs-local: + $(MKDIR_P) $(DESTDIR)$(bindir) + $(MKDIR_P) $(DESTDIR)$(pkglibdir) + $(MKDIR_P) $(DESTDIR)$(pkgdatadir) + +uninstall-local: + rm -f $(DESTDIR)$(bindir)/hello + rm -f $(DESTDIR)$(pkglibdir)/hello.net.exe + rm -f $(DESTDIR)$(pkgdatadir)/csharpexec.sh + +CLEANFILES += hello.net.exe hello.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/README b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/README new file mode 100644 index 000000000..5756710df --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/README @@ -0,0 +1,81 @@ +Before you read the hello.cs source code: + +Preface about GUI Programming Methodologies +=========================================== + +The traditional GUI programming methodology for Windows GUI programmers +is to assemble controls using a GUI builder. These GUI builders +don't have good techniques for determining the size and position of the +controls depending on their contents. Instead, they *hardcode* the +size and positions of the controls in each panel, as fixed numbers, +measured in pixels. + +What are the consequences? + +1) Consequences for all users: + Such panels would not look nice when the user resizes them. So the + programmer simply makes the dialogs non-resizable. When such a + panel then contains a scrollable list of items, with 100 items and + a scroll window of 5 items, a user's normal reaction is to enlarge + the dialog, to see more items. But the dialog is not resizable! + Frustration. + +2) Consequences for disabled users: + Some users need bigger fonts for working comfortably. Guess what + happens when the user changes the size of the default system font? + Many labels in dialogs are truncated. + +3) Consequences for internationalization: + The translation of a term or label in another language often needs + more screen space. For example, Japanese translations often are 30% + longer than the original English label. Therefore, if only the strings + of a dialog are localized, many labels are truncated. + +Problems 1 and 2 are usually accepted in the Windows programmers +community. (Problem 1 is not fatal, only frustrating. And problem 2 +affects only a small proportion of the users; they are simply ignored.) +Problem 3 is "solved" by letting the localization team not only translate +the strings, but also redo the layout of each dialog. + +In contrast, the methodology of programmers of the Qt/KDE, Gtk/GNOME, +wxWidgets, AWT, Swing, Tk toolkits is to have the positions and sizes +of controls determined at runtime, according to + - the needs of the control itself, + - the needs of the other controls in the panel, + - the available panel size, given by the user through resizing. +The common technology for this approach is to group related controls +together in containers, and perform size and position propagations +between the controls of the container, the container, the container's +container etc. These computations are performed by so-called +"layout manager" objects. +Other technologies such as global constraint systems (as in Garnet) or +spring-like attachments are not so much in use anymore nowadays. + +This programmed-resizing methodology solves the problems 1), 2) and 3). + +What are the associated costs and efforts? Taking the programmed-resizing +methodology as baseline, the hardcoded sizes and positions approach has + - the advantage that the programmer saves about 1/3 of the GUI + programming work (namely choosing the layout managers and setting + alignment hints), + - the drawback that each localization team has much more work, namely + to rearrange the controls in the panel. +In most free software projects, there are at least ca. 5 localizations; +successful projects even have 30 or 50 localizations. +In other words, a program built with hardcoded sizes and positions +cannot afford many localizations, or the effort for localization will +be prohibitively high. + +For this reason, we strongly recommend to use the programmed-resizing +methodology. In this example, since the Windows.Forms package lacks +layout manager classes, we compute the layout by hand, through an +override of the OnResize method. For larger programs, we would recommend +to build a few simple layout managers, to get on par with the layout +abilities found in Qt, Swing, etc. +(The layout system of Gtk/GNOME is somewhat particular: It does not +provide the ability to set a preferred alignment on controls like labels. +Instead one uses intermediate containers for the purpose of alignment.) + +Acknowledgement: This preface borrows ideas from an article of Luke Plant. + +Copyright (C) 2006 Free Software Foundation, Inc. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/autoclean.sh new file mode 100755 index 000000000..4e62a93e1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/autoclean.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Brought in by explicit copy. +rm -f m4/csharpcomp.m4 +rm -f m4/csharpexec.m4 +rm -f m4/csharpexec-test.exe +rm -f m4/csharp.m4 +rm -f csharpcomp.sh.in +rm -f csharpexec.sh.in + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f config.guess +rm -f config.sub +rm -f po/*.pot +rm -f po/stamp-po +for f in po/*/*.resources.dll; do + if test -f "$f"; then + rm -f "$f" + rmdir `echo $f | sed -e 's,/[^/]*$,,'` + fi +done diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/autogen.sh new file mode 100755 index 000000000..09596de49 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/autogen.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/csharpcomp.m4 m4/csharpcomp.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/csharpexec.m4 m4/csharpexec.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/m4}/csharpexec-test.exe m4/csharpexec-test.exe +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/csharp.m4 m4/csharp.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/build-aux}/csharpcomp.sh.in csharpcomp.sh.in +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/build-aux}/csharpexec.sh.in csharpexec.sh.in + +aclocal -I m4 + +autoconf + +automake -a -c + +./configure +cd po +make update-po +cd .. +make distclean diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/configure.ac new file mode 100644 index 000000000..c206f9844 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/configure.ac @@ -0,0 +1,52 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-csharp-forms], [0]) +AC_CONFIG_SRCDIR([hello.cs]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check whether we can build C# programs at all. +gt_CSHARPCOMP +if test -n "$HAVE_CSHARPCOMP"; then + BUILDCSHARP=yes +else + BUILDCSHARP=no +fi +AC_SUBST([BUILDCSHARP]) + +dnl Check whether we can execute C# programs. +gt_CSHARPEXEC([csharpexec-test.exe], [$srcdir/m4]) +if test -n "$HAVE_CSHARPEXEC" && test $BUILDCSHARP = yes; then + TESTCSHARP=yes +else + TESTCSHARP=no +fi +AC_SUBST([TESTCSHARP]) + +dnl Checks for needed libraries. +AM_PATH_PROG_WITH_TEST([GETTEXT_WITH_GNU_GETTEXT_DLL], [gettext], + [{ basedir=`echo "$ac_dir" | sed -e 's,/bin$,,'`; test -r "$basedir"/lib/GNU.Gettext.dll; }]) +if test -z "$GETTEXT_WITH_GNU_GETTEXT_DLL"; then + echo "Required library GNU.Gettext.dll not found." 1>&2 + exit 1 +fi +changequote(,)dnl +basedir=`echo "$GETTEXT_WITH_GNU_GETTEXT_DLL" | sed -e 's,/[^/]*$,,' | sed -e 's,/bin$,,'` +changequote([, ])dnl +GNU_GETTEXT_DLL="$basedir"/lib/GNU.Gettext.dll +GNU_GETTEXT_LDADD="-L $basedir/lib" +GNU_GETTEXT_LIBS="-l GNU.Gettext" +AC_SUBST([GNU_GETTEXT_LDADD]) +AC_SUBST([GNU_GETTEXT_LIBS]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([csharpcomp.sh]) +AC_CONFIG_FILES([csharpexec.sh]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/hello.cs b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/hello.cs new file mode 100644 index 000000000..84103349d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/hello.cs @@ -0,0 +1,81 @@ +// Example for use of GNU gettext. +// This file is in the public domain. +// +// Source code of the C#/Forms program. + +using System; /* String, EventHandler */ +using GNU.Gettext; /* GettextResourceManager */ +using System.Diagnostics; /* Process */ +using System.Threading; /* Thread */ +using System.Drawing; /* Point, Size */ +using System.Windows.Forms; /* Application, Form, Label, Button */ + +public class Hello { + + private static GettextResourceManager catalog = + new GettextResourceManager("hello-csharp-forms"); + + class HelloWindow : Form { + + private int border; + private Label label1; + private Label label2; + private Button ok; + + public HelloWindow () { + border = 2; + + label1 = new Label(); + label1.Text = catalog.GetString("Hello, world!"); + label1.ClientSize = new Size(label1.PreferredWidth, label1.PreferredHeight); + Controls.Add(label1); + + label2 = new Label(); + label2.Text = + String.Format( + catalog.GetString("This program is running as process number {0}."), + Process.GetCurrentProcess().Id); + label2.ClientSize = new Size(label2.PreferredWidth, label2.PreferredHeight); + Controls.Add(label2); + + ok = new Button(); + Label okLabel = new Label(); + ok.Text = okLabel.Text = "OK"; + ok.ClientSize = new Size(okLabel.PreferredWidth + 12, okLabel.PreferredHeight + 4); + ok.Click += new EventHandler(Quit); + Controls.Add(ok); + + Size total = ComputePreferredSizeWithoutBorder(); + LayoutControls(total.Width, total.Height); + ClientSize = new Size(border + total.Width + border, border + total.Height + border); + } + + protected override void OnResize(EventArgs ev) { + LayoutControls(ClientSize.Width - border - border, ClientSize.Height - border - border); + base.OnResize(ev); + } + + // Layout computation, part 1: The preferred size of this panel. + private Size ComputePreferredSizeWithoutBorder () { + int totalWidth = Math.Max(Math.Max(label1.PreferredWidth, label2.PreferredWidth), + ok.Width); + int totalHeight = label1.PreferredHeight + label2.PreferredHeight + 6 + ok.Height; + return new Size(totalWidth, totalHeight); + } + + // Layout computation, part 2: Determine where to put the sub-controls. + private void LayoutControls (int totalWidth, int totalHeight) { + label1.Location = new Point(border, border); + label2.Location = new Point(border, border + label1.PreferredHeight); + ok.Location = new Point(border + totalWidth - ok.Width, border + totalHeight - ok.Height); + } + + private void Quit (Object sender, EventArgs ev) { + Application.Exit(); + } + } + + public static void Main () { + Application.Run(new HelloWindow()); + } +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/m4/Makefile.am new file mode 100644 index 000000000..de22d57cb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/m4/Makefile.am @@ -0,0 +1,3 @@ +EXTRA_DIST = \ + nls.m4 po.m4 \ + csharpcomp.m4 csharpexec.m4 csharpexec-test.exe diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/Makefile.am new file mode 100644 index 000000000..086e3562c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/Makefile.am @@ -0,0 +1,352 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.cs + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +pkglibdir = $(libdir)/$(PACKAGE) + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll) +RESOURCESDLLFILES = @RESOURCESDLLFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(frob $(lang))/$(DOMAIN).resources.dll) +CATALOGS = @CSHARPCATALOGS@ + +SUFFIXES = .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .resources.dll files appear in release +# tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(RESOURCESDLLFILES) are +# empty. In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(RESOURCESDLLFILES)" || $(MAKE) $(RESOURCESDLLFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + $(MKDIR_P) $(DESTDIR)$(pkglibdir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + $(MKDIR_P) $(DESTDIR)$(pkglibdir)/`echo $$cat | sed -e 's,/[^/]*$$,,'`; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$(pkglibdir)/$$cat; \ + echo "installing $$realcat as $(DESTDIR)$(pkglibdir)/$$cat"; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + $(MKDIR_P) $(DESTDIR)$(pkglibdir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + $(MKDIR_P) $(DESTDIR)$(pkglibdir)/`echo $$cat | sed -e 's,/[^/]*$$,,'`; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + rm -f $(DESTDIR)$(pkglibdir)/$$cat; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po +maintainer-clean-local: + if test -n "$(RESOURCESDLLFILES)"; then \ + for file in $(RESOURCESDLLFILES); do \ + rm -f "$$file"; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$$dir"; then rmdir "$$dir"; fi; \ + done; \ + fi + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(RESOURCESDLLFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-resourcesdll + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-resourcesdll: Makefile $(RESOURCESDLLFILES) + @: +# The Makefile rules for $(RESOURCESDLLFILES) are generated by the macro +# AM_POSTPROCESS_PO_MAKEFILE. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/af.po new file mode 100644 index 000000000..41938cdf0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Hierdie program loop as prosesnommer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ast.po new file mode 100644 index 000000000..061e48d00 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-csharp-forms +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Esti programa ta executándose como procesu númberu {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/bg.po new file mode 100644 index 000000000..6e6b0660d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-csharp-forms package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-csharp-forms 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ca.po new file mode 100644 index 000000000..fef51d98c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-csharp-forms. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Aquest programa està corrent amb el número de procés {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/cs.po new file mode 100644 index 000000000..098fff6a4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Tento program běží jako proces Äíslo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/da.po new file mode 100644 index 000000000..d0d186da8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-csharp-forms. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Dette program kører som proces nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/de.po new file mode 100644 index 000000000..20d4bd5d0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-csharp-forms. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Dieses Programm läuft mit der Prozess-Nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/el.po new file mode 100644 index 000000000..07f91e479 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-csharp-forms +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/eo.po new file mode 100644 index 000000000..bb33e2405 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/es.po new file mode 100644 index 000000000..f8c49df0e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Este programa está corriendo como el proceso número {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/fi.po new file mode 100644 index 000000000..7090827b1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Tämän ohjelman prosessinumero on {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/fr.po new file mode 100644 index 000000000..1f948842e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ce programme est exécuté en tant que processus numéro {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ga.po new file mode 100644 index 000000000..4ff11ac5d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-csharp-forms. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Tá an clár seo ag rith mar phróiseas {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/gl.po new file mode 100644 index 000000000..7de129154 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-csharp-forms package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Este programa estase executando como o proceso número {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/hr.po new file mode 100644 index 000000000..ee4cfe3f3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-csharp-forms to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/hu.po new file mode 100644 index 000000000..027f22601 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-csharp-forms. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ez a program a(z) {0} folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/id.po new file mode 100644 index 000000000..3b7878b80 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-csharp-forms-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Program ini berjalan sebagai proses nomor {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/it.po new file mode 100644 index 000000000..d3292efba --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-csharp-forms. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Questo programma è in esecuzione con numero di processo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ja.po new file mode 100644 index 000000000..044b30467 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-csharp-forms' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· {0} ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ka.po new file mode 100644 index 000000000..e2d8051ee --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ky.po new file mode 100644 index 000000000..e1e9ab704 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-csharp-forms' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Бул программа {0} процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/lv.po new file mode 100644 index 000000000..de9c1693e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-csharp-forms +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Å Ä« programma darbojas kÄ process ar numuru {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ms.po new file mode 100644 index 000000000..755b21328 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ms.po @@ -0,0 +1,28 @@ +# hello-csharp-forms Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Program ini dilaksanakan sebagai proses bernombor {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/mt.po new file mode 100644 index 000000000..4c028e52b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/mt.po @@ -0,0 +1,27 @@ +# hello-csharp-forms-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/nb.po new file mode 100644 index 000000000..642ce2435 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-csharp-forms package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Dette programmet kjører som prosess nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/nl.po new file mode 100644 index 000000000..f84bc7601 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-csharp-forms. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Dit programma draait als proces nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/nn.po new file mode 100644 index 000000000..57c95db33 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-csharp-forms +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Dette programmet køyrer som prosess nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/pl.po new file mode 100644 index 000000000..46094d005 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-csharp-forms domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ten program dziaÅ‚a jako proces o numerze {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/pt.po new file mode 100644 index 000000000..15391cfd8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-csharp-forms' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Este programa está em execução como processo nº {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/pt_BR.po new file mode 100644 index 000000000..87a64c7cb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Este programa está sendo executado com número de processo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ro.po new file mode 100644 index 000000000..f16a53c44 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-csharp-forms. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-csharp-forms 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-csharp-forms-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Acest program rulează ca procesul numărul {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ru.po new file mode 100644 index 000000000..cd74188c0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-csharp-forms-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sk.po new file mode 100644 index 000000000..e1215c19a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-csharp-forms package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Tento program beží ako proces s Äíslom {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sl.po new file mode 100644 index 000000000..30abaae25 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-csharp-forms-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ta program teÄe kot proces Å¡tevilka {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sq.po new file mode 100644 index 000000000..5597db04d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ky program po xhiron si procesi numër {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sr.po new file mode 100644 index 000000000..25ff5fa50 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-csharp-forms. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sv.po new file mode 100644 index 000000000..7fef438b9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-csharp-forms. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Detta program kör som process nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ta.po new file mode 100644 index 000000000..b930929b8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠{0} ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/tr.po new file mode 100644 index 000000000..f53dfd3ed --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-csharp-forms. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Bu yazılım {0} süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/uk.po new file mode 100644 index 000000000..9ef352884 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-csharp-forms +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/vi.po new file mode 100644 index 000000000..0694f588a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/zh_CN.po new file mode 100644 index 000000000..26157d1fe --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-csharp-forms. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· {0} è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/zh_HK.po new file mode 100644 index 000000000..46f6ebca0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-csharp-forms. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º {0}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/zh_TW.po new file mode 100644 index 000000000..a13051d36 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp-forms/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-csharp-forms. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-forms 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:29 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.cs:36 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º {0}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/INSTALL new file mode 100644 index 000000000..aacf6bc37 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/INSTALL @@ -0,0 +1,11 @@ +This example relies on: + - a C# implementation: mono + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/Makefile.am new file mode 100644 index 000000000..51b34f989 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/Makefile.am @@ -0,0 +1,74 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_CSHARPPROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.cs + +# The link dependencies of the 'hello' program. +hello_CSHARPLIBS = @GNU_GETTEXT_LDADD@ @GNU_GETTEXT_LIBS@ -l System + +# Resources that are generated from PO files. +MAINTAINERCLEANFILES = */*.resources.dll + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh + + +# ----------------- General rules for compiling C# programs ----------------- + +pkgdatadir = $(datadir)/$(PACKAGE) +pkglibdir = $(libdir)/$(PACKAGE) + +CSHARPCOMP = $(SHELL) csharpcomp.sh +CSHARPCOMPFLAGS = -O -g + +EXTRA_DIST += $(hello_SOURCES) +CLEANFILES = hello.net.exe.mdb +DISTCLEANFILES = csharpcomp.sh csharpexec.sh + + +# Rules for compiling C# programs. + +all-local: hello.net.exe hello.sh + +hello.net.exe: $(hello_SOURCES) + $(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ $(hello_CSHARPLIBS) $(srcdir)/hello.cs + +hello.sh: + { echo '#!/bin/sh'; \ + echo "exec /bin/sh '$(pkgdatadir)/csharpexec.sh' @GNU_GETTEXT_LDADD@ '$(pkglibdir)/hello.net.exe' \"\$$@\""; \ + } > $@ + +install-exec-local: all-local + $(MKDIR_P) $(DESTDIR)$(bindir) + $(INSTALL_SCRIPT) hello.sh $(DESTDIR)$(bindir)/hello + $(MKDIR_P) $(DESTDIR)$(pkglibdir) + $(INSTALL_DATA) hello.net.exe $(DESTDIR)$(pkglibdir)/hello.net.exe + +install-data-local: all-local + $(MKDIR_P) $(DESTDIR)$(pkgdatadir) + $(INSTALL_DATA) csharpexec.sh $(DESTDIR)$(pkgdatadir)/csharpexec.sh + +installdirs-local: + $(MKDIR_P) $(DESTDIR)$(bindir) + $(MKDIR_P) $(DESTDIR)$(pkglibdir) + $(MKDIR_P) $(DESTDIR)$(pkgdatadir) + +uninstall-local: + rm -f $(DESTDIR)$(bindir)/hello + rm -f $(DESTDIR)$(pkglibdir)/hello.net.exe + rm -f $(DESTDIR)$(pkgdatadir)/csharpexec.sh + +CLEANFILES += hello.net.exe hello.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/autoclean.sh new file mode 100755 index 000000000..4e62a93e1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/autoclean.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Brought in by explicit copy. +rm -f m4/csharpcomp.m4 +rm -f m4/csharpexec.m4 +rm -f m4/csharpexec-test.exe +rm -f m4/csharp.m4 +rm -f csharpcomp.sh.in +rm -f csharpexec.sh.in + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f config.guess +rm -f config.sub +rm -f po/*.pot +rm -f po/stamp-po +for f in po/*/*.resources.dll; do + if test -f "$f"; then + rm -f "$f" + rmdir `echo $f | sed -e 's,/[^/]*$,,'` + fi +done diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/autogen.sh new file mode 100755 index 000000000..09596de49 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/autogen.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/csharpcomp.m4 m4/csharpcomp.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/csharpexec.m4 m4/csharpexec.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/m4}/csharpexec-test.exe m4/csharpexec-test.exe +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/csharp.m4 m4/csharp.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/build-aux}/csharpcomp.sh.in csharpcomp.sh.in +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/build-aux}/csharpexec.sh.in csharpexec.sh.in + +aclocal -I m4 + +autoconf + +automake -a -c + +./configure +cd po +make update-po +cd .. +make distclean diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/configure.ac new file mode 100644 index 000000000..c9b95de05 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/configure.ac @@ -0,0 +1,52 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-csharp], [0]) +AC_CONFIG_SRCDIR([hello.cs]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check whether we can build C# programs at all. +gt_CSHARPCOMP +if test -n "$HAVE_CSHARPCOMP"; then + BUILDCSHARP=yes +else + BUILDCSHARP=no +fi +AC_SUBST([BUILDCSHARP]) + +dnl Check whether we can execute C# programs. +gt_CSHARPEXEC([csharpexec-test.exe], [$srcdir/m4]) +if test -n "$HAVE_CSHARPEXEC" && test $BUILDCSHARP = yes; then + TESTCSHARP=yes +else + TESTCSHARP=no +fi +AC_SUBST([TESTCSHARP]) + +dnl Checks for needed libraries. +AM_PATH_PROG_WITH_TEST([GETTEXT_WITH_GNU_GETTEXT_DLL], [gettext], + [{ basedir=`echo "$ac_dir" | sed -e 's,/bin$,,'`; test -r "$basedir"/lib/GNU.Gettext.dll; }]) +if test -z "$GETTEXT_WITH_GNU_GETTEXT_DLL"; then + echo "Required library GNU.Gettext.dll not found." 1>&2 + exit 1 +fi +changequote(,)dnl +basedir=`echo "$GETTEXT_WITH_GNU_GETTEXT_DLL" | sed -e 's,/[^/]*$,,' | sed -e 's,/bin$,,'` +changequote([, ])dnl +GNU_GETTEXT_DLL="$basedir"/lib/GNU.Gettext.dll +GNU_GETTEXT_LDADD="-L $basedir/lib" +GNU_GETTEXT_LIBS="-l GNU.Gettext" +AC_SUBST([GNU_GETTEXT_LDADD]) +AC_SUBST([GNU_GETTEXT_LIBS]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([csharpcomp.sh]) +AC_CONFIG_FILES([csharpexec.sh]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/hello.cs b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/hello.cs new file mode 100644 index 000000000..d46b99c93 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/hello.cs @@ -0,0 +1,20 @@ +// Example for use of GNU gettext. +// This file is in the public domain. +// +// Source code of the C# program. + +using System; /* String, Console */ +using GNU.Gettext; /* GettextResourceManager */ +using System.Diagnostics; /* Process */ + +public class Hello { + public static void Main (String[] args) { + GettextResourceManager catalog = + new GettextResourceManager("hello-csharp"); + Console.WriteLine(catalog.GetString("Hello, world!")); + Console.WriteLine( + String.Format( + catalog.GetString("This program is running as process number {0}."), + Process.GetCurrentProcess().Id)); + } +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/m4/Makefile.am new file mode 100644 index 000000000..de22d57cb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/m4/Makefile.am @@ -0,0 +1,3 @@ +EXTRA_DIST = \ + nls.m4 po.m4 \ + csharpcomp.m4 csharpexec.m4 csharpexec-test.exe diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/Makefile.am new file mode 100644 index 000000000..086e3562c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/Makefile.am @@ -0,0 +1,352 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.cs + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +pkglibdir = $(libdir)/$(PACKAGE) + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll) +RESOURCESDLLFILES = @RESOURCESDLLFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(frob $(lang))/$(DOMAIN).resources.dll) +CATALOGS = @CSHARPCATALOGS@ + +SUFFIXES = .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .resources.dll files appear in release +# tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(RESOURCESDLLFILES) are +# empty. In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(RESOURCESDLLFILES)" || $(MAKE) $(RESOURCESDLLFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + $(MKDIR_P) $(DESTDIR)$(pkglibdir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + $(MKDIR_P) $(DESTDIR)$(pkglibdir)/`echo $$cat | sed -e 's,/[^/]*$$,,'`; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$(pkglibdir)/$$cat; \ + echo "installing $$realcat as $(DESTDIR)$(pkglibdir)/$$cat"; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + $(MKDIR_P) $(DESTDIR)$(pkglibdir) + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + $(MKDIR_P) $(DESTDIR)$(pkglibdir)/`echo $$cat | sed -e 's,/[^/]*$$,,'`; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + rm -f $(DESTDIR)$(pkglibdir)/$$cat; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po +maintainer-clean-local: + if test -n "$(RESOURCESDLLFILES)"; then \ + for file in $(RESOURCESDLLFILES); do \ + rm -f "$$file"; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$$dir"; then rmdir "$$dir"; fi; \ + done; \ + fi + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(RESOURCESDLLFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-resourcesdll + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-resourcesdll: Makefile $(RESOURCESDLLFILES) + @: +# The Makefile rules for $(RESOURCESDLLFILES) are generated by the macro +# AM_POSTPROCESS_PO_MAKEFILE. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/af.po new file mode 100644 index 000000000..32fa5040e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Hierdie program loop as prosesnommer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ast.po new file mode 100644 index 000000000..8520ac579 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-csharp +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Esti programa ta executándose como procesu númberu {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/bg.po new file mode 100644 index 000000000..88491f6a7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-csharp package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-csharp 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ca.po new file mode 100644 index 000000000..aeed2bee8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-csharp. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Aquest programa està corrent amb el número de procés {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/cs.po new file mode 100644 index 000000000..75243e05d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Tento program běží jako proces Äíslo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/da.po new file mode 100644 index 000000000..f9b64e3bc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-csharp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Dette program kører som proces nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/de.po new file mode 100644 index 000000000..31cb7228c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-csharp. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Dieses Programm läuft mit der Prozess-Nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/el.po new file mode 100644 index 000000000..365ed2259 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-csharp +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/eo.po new file mode 100644 index 000000000..18b6e8dd6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/es.po new file mode 100644 index 000000000..61a11562d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Este programa está corriendo como el proceso número {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/fi.po new file mode 100644 index 000000000..3940317fb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Tämän ohjelman prosessinumero on {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/fr.po new file mode 100644 index 000000000..afba034cb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ce programme est exécuté en tant que processus numéro {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ga.po new file mode 100644 index 000000000..b69cfdc31 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-csharp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Tá an clár seo ag rith mar phróiseas {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/gl.po new file mode 100644 index 000000000..220c862bd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-csharp package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Este programa estase executando como o proceso número {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/hr.po new file mode 100644 index 000000000..d3f1ee8ca --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-csharp to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/hu.po new file mode 100644 index 000000000..da1f018c1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-csharp. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ez a program a(z) {0} folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/id.po new file mode 100644 index 000000000..207ee8c2b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-csharp-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Program ini berjalan sebagai proses nomor {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/it.po new file mode 100644 index 000000000..4a59adc87 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-csharp. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Questo programma è in esecuzione con numero di processo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ja.po new file mode 100644 index 000000000..ef5fc367c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-csharp' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· {0} ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ka.po new file mode 100644 index 000000000..5e529b45a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ky.po new file mode 100644 index 000000000..31cc1157d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-csharp' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Бул программа {0} процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/lv.po new file mode 100644 index 000000000..e054cc9e9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-csharp +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Å Ä« programma darbojas kÄ process ar numuru {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ms.po new file mode 100644 index 000000000..960f12250 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ms.po @@ -0,0 +1,28 @@ +# hello-csharp Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Program ini dilaksanakan sebagai proses bernombor {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/mt.po new file mode 100644 index 000000000..1fbe33e37 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/mt.po @@ -0,0 +1,27 @@ +# hello-csharp-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/nb.po new file mode 100644 index 000000000..43771d67a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-csharp package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Dette programmet kjører som prosess nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/nl.po new file mode 100644 index 000000000..60e9d58df --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-csharp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Dit programma draait als proces nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/nn.po new file mode 100644 index 000000000..c63418630 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-csharp +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Dette programmet køyrer som prosess nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/pl.po new file mode 100644 index 000000000..0b4826085 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-csharp domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ten program dziaÅ‚a jako proces o numerze {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/pt.po new file mode 100644 index 000000000..f065c29f2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-csharp' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Este programa está em execução como processo nº {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/pt_BR.po new file mode 100644 index 000000000..8034357c6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Este programa está sendo executado com número de processo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ro.po new file mode 100644 index 000000000..b9963a0f7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-csharp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-csharp 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-csharp-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Acest program rulează ca procesul numărul {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ru.po new file mode 100644 index 000000000..b3d41f779 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-csharp-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sk.po new file mode 100644 index 000000000..cff82ea4b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-csharp package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Tento program beží ako proces s Äíslom {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sl.po new file mode 100644 index 000000000..428dae318 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-csharp-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ta program teÄe kot proces Å¡tevilka {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sq.po new file mode 100644 index 000000000..8da4fe7eb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ky program po xhiron si procesi numër {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sr.po new file mode 100644 index 000000000..e34f6cdc2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-csharp. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sv.po new file mode 100644 index 000000000..e29e2ba1d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-csharp. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Detta program kör som process nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ta.po new file mode 100644 index 000000000..6e756e4c0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠{0} ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/tr.po new file mode 100644 index 000000000..6555408c3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-csharp. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Bu yazılım {0} süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/uk.po new file mode 100644 index 000000000..fe3ebf5a5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-csharp +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/vi.po new file mode 100644 index 000000000..93277d753 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/zh_CN.po new file mode 100644 index 000000000..27c3f72e7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-csharp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· {0} è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/zh_HK.po new file mode 100644 index 000000000..e792282f8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-csharp. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º {0}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/zh_TW.po new file mode 100644 index 000000000..77d15d381 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-csharp/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-csharp. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-csharp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.cs:14 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.cs:17 +#, csharp-format +msgid "This program is running as process number {0}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º {0}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/INSTALL new file mode 100644 index 000000000..1a4f2df33 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/INSTALL @@ -0,0 +1,10 @@ +This example relies on gawk (GNU awk). + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/Makefile.am new file mode 100644 index 000000000..b76e71d94 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/Makefile.am @@ -0,0 +1,17 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_SCRIPTS = hello + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/autoclean.sh new file mode 100755 index 000000000..9367df26c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/autoclean.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/autogen.sh new file mode 100755 index 000000000..7e5197991 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/configure.ac new file mode 100644 index 000000000..a55f324a3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/configure.ac @@ -0,0 +1,39 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-gawk], [0]) +AC_CONFIG_SRCDIR([hello.awk]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check for availability of GNU awk. +AC_PATH_PROG([GAWK], [gawk]) +if test -z "$GAWK"; then + echo "*** Essential program gawk not found" 1>&2 + exit 1 +fi +AC_SUBST([GAWK]) + +dnl The installed program must know where to find its message catalogs. +dnl Unfortunately, prefix gets only finally determined at the end of configure. +if test "X$prefix" = "XNONE"; then + final_prefix="$ac_default_prefix" +else + final_prefix="$prefix" +fi +save_prefix="$prefix" +prefix="$final_prefix" +eval "datarootdir=\"${datarootdir}\"" +eval "localedir=\"${datadir}/locale\"" +prefix="$save_prefix" +AC_SUBST([localedir]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([hello:hello.awk], [chmod a+x hello]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/hello.awk b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/hello.awk new file mode 100644 index 000000000..0e49fe666 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/hello.awk @@ -0,0 +1,14 @@ +#!@GAWK@ -f +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Source code of the GNU awk program. + +BEGIN { + TEXTDOMAIN = "hello-gawk" + bindtextdomain ("@localedir@") + + print _"Hello, world!" + printf _"This program is running as process number %d.", PROCINFO["pid"] + print +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/m4/Makefile.am new file mode 100644 index 000000000..8a841b31f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/m4/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + nls.m4 po.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/Makefile.am new file mode 100644 index 000000000..319df21d8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/Makefile.am @@ -0,0 +1,419 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.awk + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).gmo) +GMOFILES = @GMOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(lang).gmo) +CATALOGS = @CATALOGS@ + +SUFFIXES = .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(GMOFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(GMOFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/af.po new file mode 100644 index 000000000..5c48dff69 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ast.po new file mode 100644 index 000000000..f75657c5c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-gawk +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/bg.po new file mode 100644 index 000000000..6418d0beb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-gawk package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-gawk 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ca.po new file mode 100644 index 000000000..794a74ea3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-gawk. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/cs.po new file mode 100644 index 000000000..c78b3e3f6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/da.po new file mode 100644 index 000000000..0393db16d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-gawk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/de.po new file mode 100644 index 000000000..ae9645ba2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-gawk. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/el.po new file mode 100644 index 000000000..12407bab2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-gawk +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/eo.po new file mode 100644 index 000000000..2a8a2da32 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/es.po new file mode 100644 index 000000000..920e5e552 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/fi.po new file mode 100644 index 000000000..c1f145c48 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/fr.po new file mode 100644 index 000000000..848e0d862 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ga.po new file mode 100644 index 000000000..7f3e87a7a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-gawk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/gl.po new file mode 100644 index 000000000..009028ed4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-gawk package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/hr.po new file mode 100644 index 000000000..1f3cdba91 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-gawk to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/hu.po new file mode 100644 index 000000000..603292734 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-gawk. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/id.po new file mode 100644 index 000000000..0a244ef36 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-gawk-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/it.po new file mode 100644 index 000000000..3ca6fe73e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-gawk. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ja.po new file mode 100644 index 000000000..6a21cf3cd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-gawk' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ka.po new file mode 100644 index 000000000..ba9b6c67e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ky.po new file mode 100644 index 000000000..4fdeccc33 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-gawk' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/lv.po new file mode 100644 index 000000000..8227e6980 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-gawk +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ms.po new file mode 100644 index 000000000..1ed933860 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ms.po @@ -0,0 +1,28 @@ +# hello-gawk Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/mt.po new file mode 100644 index 000000000..4575fc28a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/mt.po @@ -0,0 +1,27 @@ +# hello-gawk-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/nb.po new file mode 100644 index 000000000..ca4574141 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-gawk package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/nl.po new file mode 100644 index 000000000..b92397551 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-gawk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/nn.po new file mode 100644 index 000000000..44bd5611f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-gawk +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/pl.po new file mode 100644 index 000000000..5cf2cdd25 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-gawk domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/pt.po new file mode 100644 index 000000000..0010ff311 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-gawk' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/pt_BR.po new file mode 100644 index 000000000..2d858273e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ro.po new file mode 100644 index 000000000..f3caa6419 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-gawk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-gawk 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-gawk-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ru.po new file mode 100644 index 000000000..78d71b565 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-gawk-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sk.po new file mode 100644 index 000000000..c8b820318 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-gawk package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sl.po new file mode 100644 index 000000000..e3765c00a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-gawk-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sq.po new file mode 100644 index 000000000..601ce0fd6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sr.po new file mode 100644 index 000000000..a5573071f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-gawk. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sv.po new file mode 100644 index 000000000..37e5d9180 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-gawk. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ta.po new file mode 100644 index 000000000..2bda8ad29 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/tr.po new file mode 100644 index 000000000..d10b80ac3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-gawk. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/uk.po new file mode 100644 index 000000000..38fc9aaf7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-gawk +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/vi.po new file mode 100644 index 000000000..a92a572de --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/zh_CN.po new file mode 100644 index 000000000..658e7a458 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-gawk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/zh_HK.po new file mode 100644 index 000000000..052f2b55d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-gawk. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/zh_TW.po new file mode 100644 index 000000000..d74a23566 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-gawk/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-gawk. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-gawk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.awk:11 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.awk:12 +#, awk-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/INSTALL new file mode 100644 index 000000000..c48052f16 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/INSTALL @@ -0,0 +1,10 @@ +This example relies on GNU guile. + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/Makefile.am new file mode 100644 index 000000000..b76e71d94 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/Makefile.am @@ -0,0 +1,17 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_SCRIPTS = hello + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/autoclean.sh new file mode 100755 index 000000000..9367df26c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/autoclean.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/autogen.sh new file mode 100755 index 000000000..7e5197991 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/configure.ac new file mode 100644 index 000000000..4ffe71536 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/configure.ac @@ -0,0 +1,39 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-guile], [0]) +AC_CONFIG_SRCDIR([hello.scm]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check for availability of the guile interpreter. +AC_PATH_PROG([GUILE], [guile]) +if test -z "$GUILE"; then + echo "*** Essential program guile not found" 1>&2 + exit 1 +fi +AC_SUBST([GUILE]) + +dnl The installed program must know where to find its message catalogs. +dnl Unfortunately, prefix gets only finally determined at the end of configure. +if test "X$prefix" = "XNONE"; then + final_prefix="$ac_default_prefix" +else + final_prefix="$prefix" +fi +save_prefix="$prefix" +prefix="$final_prefix" +eval "datarootdir=\"${datarootdir}\"" +eval "localedir=\"${datadir}/locale\"" +prefix="$save_prefix" +AC_SUBST([localedir]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([hello:hello.scm], [chmod a+x hello]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/hello.scm b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/hello.scm new file mode 100644 index 000000000..43c367e54 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/hello.scm @@ -0,0 +1,18 @@ +#!@GUILE@ -s +!# +;;; Example for use of GNU gettext. +;;; This file is in the public domain. + +;;; Source code of the GNU guile program. + +(use-modules (ice-9 format)) + +(catch #t (lambda () (setlocale LC_ALL "")) (lambda args #f)) +(textdomain "hello-guile") +(bindtextdomain "hello-guile" "@localedir@") +(define _ gettext) + +(display (_ "Hello, world!")) +(newline) +(format #t (_ "This program is running as process number ~D.") (getpid)) +(newline) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/m4/Makefile.am new file mode 100644 index 000000000..8a841b31f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/m4/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + nls.m4 po.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/Makefile.am new file mode 100644 index 000000000..c2f2ca9da --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/Makefile.am @@ -0,0 +1,419 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.scm + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --keyword=_ --flag=_:1:pass-scheme-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).gmo) +GMOFILES = @GMOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(lang).gmo) +CATALOGS = @CATALOGS@ + +SUFFIXES = .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(GMOFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(GMOFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/af.po new file mode 100644 index 000000000..0e14e1f2e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Hierdie program loop as prosesnommer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ast.po new file mode 100644 index 000000000..b1ae5198c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-guile +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Esti programa ta executándose como procesu númberu ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/bg.po new file mode 100644 index 000000000..465eadb87 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-guile package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-guile 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ca.po new file mode 100644 index 000000000..7a289531b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-guile. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Aquest programa està corrent amb el número de procés ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/cs.po new file mode 100644 index 000000000..c4a0414e0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Tento program běží jako proces Äíslo ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/da.po new file mode 100644 index 000000000..7e38321ea --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-guile. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Dette program kører som proces nummer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/de.po new file mode 100644 index 000000000..162e74603 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-guile. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Dieses Programm läuft mit der Prozess-Nummer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/el.po new file mode 100644 index 000000000..2ca67162a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-guile +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/eo.po new file mode 100644 index 000000000..d0a91853c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/es.po new file mode 100644 index 000000000..e804bc108 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Este programa está corriendo como el proceso número ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/fi.po new file mode 100644 index 000000000..d03ea4b48 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Tämän ohjelman prosessinumero on ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/fr.po new file mode 100644 index 000000000..46ffcb07c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Ce programme est exécuté en tant que processus numéro ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ga.po new file mode 100644 index 000000000..24ff194a3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-guile. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Tá an clár seo ag rith mar phróiseas ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/gl.po new file mode 100644 index 000000000..b4b13aa99 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-guile package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Este programa estase executando como o proceso número ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/hr.po new file mode 100644 index 000000000..9f256af25 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-guile to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-guile-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/hu.po new file mode 100644 index 000000000..8a04307c0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-guile. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Ez a program a(z) ~D folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/id.po new file mode 100644 index 000000000..d82ea24ac --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-guile-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-guile-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Program ini berjalan sebagai proses nomor ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/it.po new file mode 100644 index 000000000..7e7d6aa82 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-guile. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Questo programma è in esecuzione con numero di processo ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ja.po new file mode 100644 index 000000000..02142e1f6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-guile' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· ~D ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ka.po new file mode 100644 index 000000000..5601da8d1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ky.po new file mode 100644 index 000000000..9411db7dd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-guile' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Бул программа ~D процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/lv.po new file mode 100644 index 000000000..7e7183c42 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-guile +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Å Ä« programma darbojas kÄ process ar numuru ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ms.po new file mode 100644 index 000000000..9364dddb5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ms.po @@ -0,0 +1,28 @@ +# hello-guile Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Program ini dilaksanakan sebagai proses bernombor ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/mt.po new file mode 100644 index 000000000..575751b5a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/mt.po @@ -0,0 +1,27 @@ +# hello-guile-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/nb.po new file mode 100644 index 000000000..3fa711dbc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-guile package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Dette programmet kjører som prosess nummer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/nl.po new file mode 100644 index 000000000..bee1c1c75 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-guile. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-guile-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Dit programma draait als proces nummer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/nn.po new file mode 100644 index 000000000..3321e3a18 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-guile +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-guile-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Dette programmet køyrer som prosess nummer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/pl.po new file mode 100644 index 000000000..31bbeec5d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-guile domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Ten program dziaÅ‚a jako proces o numerze ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/pt.po new file mode 100644 index 000000000..e32c9dfd9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-guile' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Este programa está em execução como processo nº ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/pt_BR.po new file mode 100644 index 000000000..7d1cf56df --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Este programa está sendo executado com número de processo ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ro.po new file mode 100644 index 000000000..58d8c4240 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-guile. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-guile 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-guile-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Acest program rulează ca procesul numărul ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ru.po new file mode 100644 index 000000000..4689c5174 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-guile-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sk.po new file mode 100644 index 000000000..3c58c2dcf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-guile package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Tento program beží ako proces s Äíslom ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sl.po new file mode 100644 index 000000000..492bc7391 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-guile-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Ta program teÄe kot proces Å¡tevilka ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sq.po new file mode 100644 index 000000000..1bb0fbeac --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Ky program po xhiron si procesi numër ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sr.po new file mode 100644 index 000000000..97c3e4cb1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-guile. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-guile-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sv.po new file mode 100644 index 000000000..7b77df78f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-guile. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Detta program kör som process nummer ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ta.po new file mode 100644 index 000000000..e409195f3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠~D ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/tr.po new file mode 100644 index 000000000..2dabda59b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-guile. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Bu yazılım ~D süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/uk.po new file mode 100644 index 000000000..28adcd4b4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-guile +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/vi.po new file mode 100644 index 000000000..aa15feada --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình ~D." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/zh_CN.po new file mode 100644 index 000000000..b2c840edc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-guile. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· ~D è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/zh_HK.po new file mode 100644 index 000000000..cdb581c7e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-guile. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º ~D。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/zh_TW.po new file mode 100644 index 000000000..0d9c4730e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-guile/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-guile. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-guile 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.scm:15 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.scm:17 +#, scheme-format +msgid "This program is running as process number ~D." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º ~D。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/BUGS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/BUGS new file mode 100644 index 000000000..42eb76847 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/BUGS @@ -0,0 +1,5 @@ +Correct display of characters depends on the JVM and its locale-dependent font +configuration. For example, on Linux/x86, in + Sun JDK 1.3.1 de_DE works - zh_CN doesn't work + IBM JDK 1.3.0 de_DE works - ja_JP, sr_YU, zh_CN don't work + Sun JDK 1.4.2 de_DE, ja_JP work - sr_YU, zh_CN don't work diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/Hello.java b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/Hello.java new file mode 100644 index 000000000..e10202b39 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/Hello.java @@ -0,0 +1,66 @@ +// Example for use of GNU gettext. +// This file is in the public domain. +// +// Source code of the Java/AWT program. + +import java.util.*; +import java.io.*; +import java.text.*; +import java.awt.*; +import java.awt.event.*; +import gnu.gettext.*; + +public class Hello { + public static void main (String[] args) { + ResourceBundle catalog = ResourceBundle.getBundle("hello-java-awt"); + Frame frame = new Frame("Hello example"); + frame.addWindowListener( + new WindowAdapter() { + public void windowClosing (WindowEvent event) { + System.exit(0); + } + }); + Label label1 = new Label(GettextResource.gettext(catalog,"Hello, world!")); + Label label2 = + new Label( + MessageFormat.format( + GettextResource.gettext(catalog, + "This program is running as process number {0}."), + new Object[] { getPid() })); + Button button = new Button("OK"); + button.addActionListener( + new ActionListener() { + public void actionPerformed (ActionEvent event) { + System.exit(0); + } + }); + Container labels = new Container(); + labels.setLayout(new GridLayout(2, 1)); + labels.add(label1); + labels.add(label2); + Container buttons = new Container(); + buttons.setLayout(new FlowLayout(FlowLayout.RIGHT)); + buttons.add(button); + frame.setLayout(new BorderLayout()); + frame.add(labels, BorderLayout.CENTER); + frame.add(buttons, BorderLayout.SOUTH); + frame.pack(); + frame.setVisible(true); + } + + /* Return the process ID of the current process. */ + private static String getPid () { + try { + String[] args = new String[] { "/bin/sh", "-c", "echo $PPID" }; + Process p = Runtime.getRuntime().exec(args); + InputStream p_out = p.getInputStream(); + String s = (new BufferedReader(new InputStreamReader(p_out))).readLine(); + p.destroy(); + if (s != null) + return s; + } catch (IOException e) { + e.printStackTrace(); + } + return "???"; + } +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/INSTALL new file mode 100644 index 000000000..693f30244 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/INSTALL @@ -0,0 +1,11 @@ +This example relies on: + - a Java implementation with AWT + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/Makefile.am new file mode 100644 index 000000000..a567df690 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/Makefile.am @@ -0,0 +1,85 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_JAVAPROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = Hello.java +hello_CLASSES = Hello.class + +# The entry point of the 'hello' program. +hello_MAINCLASS = Hello + +# The link dependencies of the 'hello' program. +hello_JAVALIBS = @LIBINTL_JAR@ + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh + + +# ----------------- General rules for compiling Java programs ----------------- + +jardir = $(datadir)/$(PACKAGE) +pkgdatadir = $(datadir)/$(PACKAGE) +pkglibdir = $(libdir)/$(PACKAGE) + +JAR = @JAR@ +JAVACOMP = $(SHELL) javacomp.sh + +EXTRA_DIST += $(hello_SOURCES) +CLEANFILES = +DISTCLEANFILES = javacomp.sh javaexec.sh + + +# Rules for compiling Java programs as jar libraries. +# This is the preferred mode during development, because you can easily test +# the program without installing it, simply by doing "java -jar hello.jar". + +all-local: hello.jar hello.sh + +hello.jar: $(hello_CLASSES) + { echo "Manifest-Version: 1.0"; echo "Main-Class: $(hello_MAINCLASS)"; echo 'Class-Path: @LIBINTL_JAR@'; } > Manifest.mf + $(JAR) cfm $@ Manifest.mf Hello*.class + rm -f Manifest.mf + abs_jar=`pwd`/$@; (cd po && $(MAKE)) && catalogs=`GNUMAKEFLAGS=--no-print-directory $(MAKE) -s -C po echo-catalogs`; test -n "$$catalogs" && (cd $(srcdir)/po && $(JAR) uf "$$abs_jar" $$catalogs) || { rm -f $@ jartmp*; exit 1; } + +Hello.class: $(srcdir)/Hello.java + CLASSPATH=.@CLASSPATH_SEPARATOR@$(hello_JAVALIBS) $(JAVACOMP) -d . $(srcdir)/Hello.java + +hello.sh: + { echo '#!/bin/sh'; \ + echo "CLASSPATH='$(jardir)/hello.jar@CLASSPATH_SEPARATOR@$(hello_JAVALIBS)'\$${CLASSPATH+\"@CLASSPATH_SEPARATOR@\$$CLASSPATH\"}"; \ + echo "export CLASSPATH"; \ + echo "exec /bin/sh '$(pkgdatadir)/javaexec.sh' $(hello_MAINCLASS) \"\$$@\""; \ + } > $@ + +install-exec-local: all-local + $(MKDIR_P) $(DESTDIR)$(bindir) + $(INSTALL_SCRIPT) hello.sh $(DESTDIR)$(bindir)/hello + +install-data-local: all-local + $(MKDIR_P) $(DESTDIR)$(jardir) + $(INSTALL_DATA) hello.jar $(DESTDIR)$(jardir)/hello.jar + $(MKDIR_P) $(DESTDIR)$(pkgdatadir) + $(INSTALL_DATA) javaexec.sh $(DESTDIR)$(pkgdatadir)/javaexec.sh + +installdirs-local: + $(MKDIR_P) $(DESTDIR)$(jardir) + $(MKDIR_P) $(DESTDIR)$(pkgdatadir) + +uninstall-local: + rm -f $(DESTDIR)$(bindir)/hello + rm -f $(DESTDIR)$(jardir)/hello.jar + rm -f $(DESTDIR)$(pkgdatadir)/javaexec.sh + +CLEANFILES += hello.jar Hello*.class Manifest.mf hello.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/autoclean.sh new file mode 100755 index 000000000..efecfcbe9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/autoclean.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Brought in by explicit copy. +rm -f m4/javacomp.m4 +rm -f m4/javaexec.m4 +rm -f javacomp.sh.in +rm -f javaexec.sh.in + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/hello-java-awt*.properties diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/autogen.sh new file mode 100755 index 000000000..467f213af --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/autogen.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/javacomp.m4 m4/javacomp.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/javaexec.m4 m4/javaexec.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/build-aux}/javacomp.sh.in javacomp.sh.in +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/build-aux}/javaexec.sh.in javaexec.sh.in + +aclocal -I m4 + +autoconf + +automake -a -c + +./configure +cd po +make update-po +cd .. +make distclean diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/configure.ac new file mode 100644 index 000000000..57fd16851 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/configure.ac @@ -0,0 +1,53 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-java-awt], [0]) +AC_CONFIG_SRCDIR([Hello.java]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check whether we can execute Java programs. +gt_JAVAEXEC([TestAWT], [$srcdir/m4]) +dnl Check whether we can build Java programs. +gt_JAVACOMP([1.5]) +AC_CHECK_PROG([JAR], [jar], [jar]) +if test -n "$HAVE_JAVACOMP" && test -n "$JAR"; then + BUILDJAVA=yes +else + BUILDJAVA=no +fi +AC_SUBST([BUILDJAVA]) +if test -n "$HAVE_JAVAEXEC" && test "$BUILDJAVA" = yes; then + TESTJAVA=yes +else + TESTJAVA=no +fi +AC_SUBST([TESTJAVA]) + +dnl Checks for compiler output filename suffixes. +AC_OBJEXT +AC_EXEEXT + +dnl Checks for needed libraries. +AM_PATH_PROG_WITH_TEST([GETTEXT_WITH_LIBINTL_JAR], [gettext], + [{ basedir=`echo "$ac_dir" | sed -e 's,/bin$,,'`; test -r "$basedir"/share/gettext/libintl.jar; }]) +if test -z "$GETTEXT_WITH_LIBINTL_JAR"; then + echo "Required library libintl.jar not found." 1>&2 + exit 1 +fi +changequote(,)dnl +basedir=`echo "$GETTEXT_WITH_LIBINTL_JAR" | sed -e 's,/[^/]*$,,' | sed -e 's,/bin$,,'` +changequote([, ])dnl +LIBINTL_JAR="$basedir"/share/gettext/libintl.jar +AC_SUBST([LIBINTL_JAR]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([javacomp.sh]) +AC_CONFIG_FILES([javaexec.sh]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/m4/Makefile.am new file mode 100644 index 000000000..dea6fde27 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/m4/Makefile.am @@ -0,0 +1,3 @@ +EXTRA_DIST = \ + nls.m4 po.m4 \ + javacomp.m4 javaexec.m4 TestAWT.java TestAWT.class diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/m4/TestAWT.class b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/m4/TestAWT.class new file mode 100644 index 000000000..1c993c51e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/m4/TestAWT.class differ diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/m4/TestAWT.java b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/m4/TestAWT.java new file mode 100644 index 000000000..5c403225e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/m4/TestAWT.java @@ -0,0 +1,15 @@ +// Test for working AWT. +// This file is in the public domain. +/** + * @author Bruno Haible + */ +public class TestAWT { + public static void main (String[] args) { + try { + java.awt.Toolkit.getDefaultToolkit(); + } catch (Throwable e) { + System.exit(1); + } + System.exit(0); + } +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/Makefile.am new file mode 100644 index 000000000..3398bc1a3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/Makefile.am @@ -0,0 +1,379 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + Hello.java + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGCAT = msgcat +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).properties) +PROPERTIESFILES = @PROPERTIESFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).class) +CLASSFILES = @CLASSFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(DOMAIN)_$(lang).properties) +CATALOGS = @JAVACATALOGS@ + +SUFFIXES = .po .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .properties or .class files appear +# in release tarballs. The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: $(srcdir)/stamp-po + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(PROPERTIESFILES) are +# empty. In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + $(MAKE) update-properties + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + +MAINTAINERCLEANFILES = \ + $(DOMAIN).pot stamp-po \ + $(DOMAIN).properties $(PROPERTIESFILES) $(CLASSFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(DOMAIN).properties $(PROPERTIESFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-properties + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +# During .po -> .properties or .class conversion, take into account the most +# recent changes to the .pot file. This eliminates the need to update the .po +# files when the .pot file has changed, which would be troublesome if the .po +# files are put under version control. + +update-properties: Makefile $(srcdir)/$(DOMAIN).pot $(POFILES) + @echo "$(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(srcdir)/$(DOMAIN).properties"; \ + $(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(DOMAIN).properties || { rm -f $(DOMAIN).properties; exit 1; } +# Move $(DOMAIN).properties into $(srcdir). But don't provoke a gratuitous error +# in a VPATH build with read-only $(srcdir). + @if test '$(srcdir)' != .; then \ + if test -f $(srcdir)/$(DOMAIN).properties && cmp $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties >/dev/null; then \ + rm -f $(DOMAIN).properties; \ + else \ + mv -f $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties; \ + fi; \ + fi + @for f in $(POFILES); do \ + lang=`echo $$f | sed -e 's,.*/,,' -e 's,\.po$$,,'`; \ + echo "$(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot"; \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot || exit 1; \ + echo "$(GMSGFMT) -c --statistics --verbose -o /dev/null $${lang}.1po"; \ + $(GMSGFMT) -c --statistics --verbose -o /dev/null $${lang}.1po || exit 1; \ + echo "$(MSGCAT) --properties-output -o $(srcdir)/$(DOMAIN)_$$lang.properties $${lang}.1po"; \ + $(MSGCAT) --properties-output -o $(DOMAIN)_$$lang.properties.tmp $${lang}.1po || exit 1; \ + if test '$(srcdir)' = .; then \ + mv -f $(DOMAIN)_$$lang.properties.tmp $(DOMAIN)_$$lang.properties || exit 1; \ + else \ + if test -f $(srcdir)/$(DOMAIN)_$$lang.properties && cmp $(DOMAIN)_$$lang.properties.tmp $(srcdir)/$(DOMAIN)_$$lang.properties >/dev/null; then \ + rm -f $(DOMAIN)_$$lang.properties.tmp; \ + else \ + mv -f $(DOMAIN)_$$lang.properties.tmp $(srcdir)/$(DOMAIN)_$$lang.properties || exit 1; \ + fi; \ + fi; \ + rm -f $${lang}.1po; \ + done + +# Alternatively, we could create classes instead of properties files. +update-classes: Makefile $(srcdir)/$(DOMAIN).pot $(POFILES) + @echo "$(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(srcdir)/$(DOMAIN).properties"; \ + $(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(DOMAIN).properties || { rm -f $(DOMAIN).properties; exit 1; } +# Move $(DOMAIN).properties into $(srcdir). But don't provoke a gratuitous error +# in a VPATH build with read-only $(srcdir). + @if test '$(srcdir)' != .; then \ + if test -f $(srcdir)/$(DOMAIN).properties && cmp $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties >/dev/null; then \ + rm -f $(DOMAIN).properties; \ + else \ + mv -f $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties; \ + fi; \ + fi + @for f in $(POFILES); do \ + lang=`echo $$f | sed -e 's,.*/,,' -e 's,\.po$$,,'`; \ + echo "$(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot"; \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot || exit 1; \ + echo "$(GMSGFMT) -c --statistics --verbose -j -d $(srcdir) -r $(DOMAIN) -l $${lang} $${lang}.1po"; \ + $(GMSGFMT) -c --statistics --verbose -j -d . -r $(DOMAIN) -l $${lang} $${lang}.1po || exit 1; \ + if test '$(srcdir)' != .; then \ + if test -f $(srcdir)/$(DOMAIN)_$$lang.class && cmp $(DOMAIN)_$$lang.class $(srcdir)/$(DOMAIN)_$$lang.class >/dev/null; then \ + rm -f $(DOMAIN)_$$lang.class; \ + else \ + mv -f $(DOMAIN)_$$lang.class $(srcdir)/$(DOMAIN)_$$lang.class || exit 1; \ + fi; \ + fi; \ + rm -f $${lang}.1po; \ + done + +echo-catalogs: +# When packaging the catalogs for installation, include the fallback catalog always. + @echo $(DOMAIN).properties $(CATALOGS) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/af.po new file mode 100644 index 000000000..778e1a5bc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Hierdie program loop as prosesnommer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ast.po new file mode 100644 index 000000000..e97d29315 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-java-awt +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Esti programa ta executándose como procesu númberu {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/bg.po new file mode 100644 index 000000000..6251bdccc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-java-awt package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java-awt 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ca.po new file mode 100644 index 000000000..0aa34c15d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-java-awt. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Aquest programa està corrent amb el número de procés {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/cs.po new file mode 100644 index 000000000..b067ec852 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tento program běží jako proces Äíslo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/da.po new file mode 100644 index 000000000..ca7dbc2a1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-java-awt. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dette program kører som proces nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/de.po new file mode 100644 index 000000000..f8aa5cea0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-java-awt. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dieses Programm läuft mit der Prozess-Nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/el.po new file mode 100644 index 000000000..fabad8b0a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-java-awt +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/eo.po new file mode 100644 index 000000000..ba79b81f3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/es.po new file mode 100644 index 000000000..9aec89c35 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa está corriendo como el proceso número {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/fi.po new file mode 100644 index 000000000..65cc0446e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tämän ohjelman prosessinumero on {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/fr.po new file mode 100644 index 000000000..fa1ef0a27 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ce programme est exécuté en tant que processus numéro {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ga.po new file mode 100644 index 000000000..a7607554b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-java-awt. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tá an clár seo ag rith mar phróiseas {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/gl.po new file mode 100644 index 000000000..bc6a0a50c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-java-awt package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa estase executando como o proceso número {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/hr.po new file mode 100644 index 000000000..8e9ed0a61 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-java-awt to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/hu.po new file mode 100644 index 000000000..ec0071c63 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-java-awt. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ez a program a(z) {0} folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/id.po new file mode 100644 index 000000000..3f64ae563 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-java-awt-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Program ini berjalan sebagai proses nomor {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/it.po new file mode 100644 index 000000000..4111b9cb2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-java-awt. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Questo programma è in esecuzione con numero di processo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ja.po new file mode 100644 index 000000000..9cb29d469 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-java-awt' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· {0} ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ka.po new file mode 100644 index 000000000..ec6eb8e0c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ky.po new file mode 100644 index 000000000..0991f8ab2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-java-awt' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Бул программа {0} процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/lv.po new file mode 100644 index 000000000..35c1ac696 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-java-awt +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Å Ä« programma darbojas kÄ process ar numuru {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ms.po new file mode 100644 index 000000000..eaecfe441 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ms.po @@ -0,0 +1,28 @@ +# hello-java-awt Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Program ini dilaksanakan sebagai proses bernombor {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/mt.po new file mode 100644 index 000000000..93bf50dad --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/mt.po @@ -0,0 +1,27 @@ +# hello-java-awt-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/nb.po new file mode 100644 index 000000000..d8facb712 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-java-awt package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dette programmet kjører som prosess nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/nl.po new file mode 100644 index 000000000..a25fde9c1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-java-awt. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dit programma draait als proces nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/nn.po new file mode 100644 index 000000000..f5faf238d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-java-awt +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dette programmet køyrer som prosess nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/pl.po new file mode 100644 index 000000000..0cdf9d03b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-java-awt domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ten program dziaÅ‚a jako proces o numerze {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/pt.po new file mode 100644 index 000000000..ccd9d14bd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-java-awt' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa está em execução como processo nº {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/pt_BR.po new file mode 100644 index 000000000..9b5a59e2e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa está sendo executado com número de processo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ro.po new file mode 100644 index 000000000..be3df2405 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-java-awt. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-java-awt 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-java-awt-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Acest program rulează ca procesul numărul {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ru.po new file mode 100644 index 000000000..e4bc30bd0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-java-awt-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sk.po new file mode 100644 index 000000000..ad420ed08 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-java-awt package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tento program beží ako proces s Äíslom {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sl.po new file mode 100644 index 000000000..2b71e7981 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-java-awt-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ta program teÄe kot proces Å¡tevilka {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sq.po new file mode 100644 index 000000000..adbe909e9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ky program po xhiron si procesi numër {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sr.po new file mode 100644 index 000000000..d924b52af --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-java-awt. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sv.po new file mode 100644 index 000000000..27480ad11 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-java-awt. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Detta program kör som process nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ta.po new file mode 100644 index 000000000..2874ffb17 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠{0} ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/tr.po new file mode 100644 index 000000000..68d9cace4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-java-awt. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Bu yazılım {0} süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/uk.po new file mode 100644 index 000000000..4cbc58267 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-java-awt +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/vi.po new file mode 100644 index 000000000..861045d29 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/zh_CN.po new file mode 100644 index 000000000..2720390fc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-java-awt. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· {0} è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/zh_HK.po new file mode 100644 index 000000000..4612d8b85 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-java-awt. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º {0}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/zh_TW.po new file mode 100644 index 000000000..30ff5a25f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-awt/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-java-awt. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-awt 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:23 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: Hello.java:28 +#, java-format +msgid "This program is running as process number {0}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º {0}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/BUGS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/BUGS new file mode 100644 index 000000000..c0053e9ee --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/BUGS @@ -0,0 +1,2 @@ +Qt looks only at the LANG and LC_ALL values and ignores LC_MESSAGES if LC_ALL is unset. +Therefore, to make it work, you have to set LC_ALL to the same value as LC_MESSAGES. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/Hello.java b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/Hello.java new file mode 100644 index 000000000..9fc8baa39 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/Hello.java @@ -0,0 +1,73 @@ +// Example for use of GNU gettext. +// This file is in the public domain. +// +// Source code of the Java/QtJambi program. + +import java.util.*; +import java.io.*; +import java.text.*; +import com.trolltech.qt.core.*; +import com.trolltech.qt.gui.*; +import gnu.gettext.*; + +public class Hello { + public static void main (String[] args) { + ResourceBundle catalog = ResourceBundle.getBundle("hello-java-qtjambi"); + + QApplication.initialize(args); + + QMainWindow window = new QMainWindow(); + window.setWindowTitle("Hello example"); + + QWidget panel = new QWidget(); + QVBoxLayout panelLayout = new QVBoxLayout(); + panelLayout.setSpacing(2); + + QLabel label1 = + new QLabel(GettextResource.gettext(catalog,"Hello, world!")); + panelLayout.addWidget(label1); + + QLabel label2 = + new QLabel( + MessageFormat.format( + GettextResource.gettext(catalog, + "This program is running as process number {0}."), + new Object[] { getPid() })); + panelLayout.addWidget(label2); + + QWidget buttonBar = new QWidget(); + QHBoxLayout buttonBarLayout = new QHBoxLayout(); + QWidget filler = new QWidget(); // makes the button right-aligned + buttonBarLayout.addWidget(filler); + QPushButton button = new QPushButton("OK"); + button.setMaximumWidth(button.sizeHint().width()+20); + button.clicked.connect(window, "close()"); + buttonBarLayout.addWidget(button); + buttonBar.setLayout(buttonBarLayout); + panelLayout.addWidget(buttonBar); + + panel.setLayout(panelLayout); + + window.setCentralWidget(panel); + + window.show(); + + QApplication.exec(); + } + + /* Return the process ID of the current process. */ + private static String getPid () { + try { + String[] args = new String[] { "/bin/sh", "-c", "echo $PPID" }; + Process p = Runtime.getRuntime().exec(args); + InputStream p_out = p.getInputStream(); + String s = (new BufferedReader(new InputStreamReader(p_out))).readLine(); + p.destroy(); + if (s != null) + return s; + } catch (IOException e) { + e.printStackTrace(); + } + return "???"; + } +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/INSTALL new file mode 100644 index 000000000..fd166ed3b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/INSTALL @@ -0,0 +1,17 @@ +This example relies on: + - a recent Java implementation + (i.e. when using Sun's JDK: at least JDK 1.5) + - the Qt4/Java binding (libqtjambi) + - Qt4 (libQtGui, libQtCore) and its dependencies: libpng, zlib (libz) + - the C++ runtime libraries (libstdc++) + +Installation: + ./autogen.sh + export LD_LIBRARY_PATH= + export CLASSPATH=.:.../qtjambi.jar:.../libintl.jar + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/Makefile.am new file mode 100644 index 000000000..2e80750a9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/Makefile.am @@ -0,0 +1,85 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_JAVAPROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = Hello.java +hello_CLASSES = Hello.class + +# The entry point of the 'hello' program. +hello_MAINCLASS = Hello + +# The link dependencies of the 'hello' program. +hello_JAVALIBS = @LIBINTL_JAR@ + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh + + +# ----------------- General rules for compiling Java programs ----------------- + +jardir = $(datadir)/$(PACKAGE) +pkgdatadir = $(datadir)/$(PACKAGE) +pkglibdir = $(libdir)/$(PACKAGE) + +JAR = @JAR@ +JAVACOMP = $(SHELL) javacomp.sh + +EXTRA_DIST += $(hello_SOURCES) +CLEANFILES = +DISTCLEANFILES = javacomp.sh javaexec.sh + + +# Rules for compiling Java programs as jar libraries. +# This is the preferred mode during development, because you can easily test +# the program without installing it, simply by doing "java -jar hello.jar". + +all-local: hello.jar hello.sh + +hello.jar: $(hello_CLASSES) + { echo "Manifest-Version: 1.0"; echo "Main-Class: $(hello_MAINCLASS)"; echo 'Class-Path: @LIBINTL_JAR@'; } > Manifest.mf + $(JAR) cfm $@ Manifest.mf Hello*.class + rm -f Manifest.mf + abs_jar=`pwd`/$@; (cd po && $(MAKE)) && catalogs=`GNUMAKEFLAGS=--no-print-directory $(MAKE) -s -C po echo-catalogs`; test -n "$$catalogs" && (cd $(srcdir)/po && $(JAR) uf "$$abs_jar" $$catalogs) || { rm -f $@ jartmp*; exit 1; } + +Hello.class: $(srcdir)/Hello.java + CLASSPATH=.@CLASSPATH_SEPARATOR@$(hello_JAVALIBS)@CLASSPATH_SEPARATOR@$$CLASSPATH $(JAVACOMP) -d . $(srcdir)/Hello.java + +hello.sh: + { echo '#!/bin/sh'; \ + echo "CLASSPATH='$(jardir)/hello.jar@CLASSPATH_SEPARATOR@$(hello_JAVALIBS)'\$${CLASSPATH+\"@CLASSPATH_SEPARATOR@\$$CLASSPATH\"}"; \ + echo "export CLASSPATH"; \ + echo "exec /bin/sh '$(pkgdatadir)/javaexec.sh' $(hello_MAINCLASS) \"\$$@\""; \ + } > $@ + +install-exec-local: all-local + $(MKDIR_P) $(DESTDIR)$(bindir) + $(INSTALL_SCRIPT) hello.sh $(DESTDIR)$(bindir)/hello + +install-data-local: all-local + $(MKDIR_P) $(DESTDIR)$(jardir) + $(INSTALL_DATA) hello.jar $(DESTDIR)$(jardir)/hello.jar + $(MKDIR_P) $(DESTDIR)$(pkgdatadir) + $(INSTALL_DATA) javaexec.sh $(DESTDIR)$(pkgdatadir)/javaexec.sh + +installdirs-local: + $(MKDIR_P) $(DESTDIR)$(jardir) + $(MKDIR_P) $(DESTDIR)$(pkgdatadir) + +uninstall-local: + rm -f $(DESTDIR)$(bindir)/hello + rm -f $(DESTDIR)$(jardir)/hello.jar + rm -f $(DESTDIR)$(pkgdatadir)/javaexec.sh + +CLEANFILES += hello.jar Hello*.class Manifest.mf hello.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/autoclean.sh new file mode 100755 index 000000000..1329c3715 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/autoclean.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Brought in by explicit copy. +rm -f m4/javacomp.m4 +rm -f m4/javaexec.m4 +rm -f javacomp.sh.in +rm -f javaexec.sh.in + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/hello-java-qtjambi*.properties diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/autogen.sh new file mode 100755 index 000000000..467f213af --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/autogen.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/javacomp.m4 m4/javacomp.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/javaexec.m4 m4/javaexec.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/build-aux}/javacomp.sh.in javacomp.sh.in +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/build-aux}/javaexec.sh.in javaexec.sh.in + +aclocal -I m4 + +autoconf + +automake -a -c + +./configure +cd po +make update-po +cd .. +make distclean diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/configure.ac new file mode 100644 index 000000000..0d4a23cdd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/configure.ac @@ -0,0 +1,53 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-java-qtjambi], [0]) +AC_CONFIG_SRCDIR([Hello.java]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check whether we can execute Java programs. +gt_JAVAEXEC([Test15], [$srcdir/m4]) +dnl Check whether we can build Java programs. +gt_JAVACOMP([1.5], [1.6]) +AC_CHECK_PROG([JAR], [jar], [jar]) +if test -n "$HAVE_JAVACOMP" && test -n "$JAR"; then + BUILDJAVA=yes +else + BUILDJAVA=no +fi +AC_SUBST([BUILDJAVA]) +if test -n "$HAVE_JAVAEXEC" && test "$BUILDJAVA" = yes; then + TESTJAVA=yes +else + TESTJAVA=no +fi +AC_SUBST([TESTJAVA]) + +dnl Checks for compiler output filename suffixes. +AC_OBJEXT +AC_EXEEXT + +dnl Checks for needed libraries. +AM_PATH_PROG_WITH_TEST([GETTEXT_WITH_LIBINTL_JAR], [gettext], + [{ basedir=`echo "$ac_dir" | sed -e 's,/bin$,,'`; test -r "$basedir"/share/gettext/libintl.jar; }]) +if test -z "$GETTEXT_WITH_LIBINTL_JAR"; then + echo "Required library libintl.jar not found." 1>&2 + exit 1 +fi +changequote(,)dnl +basedir=`echo "$GETTEXT_WITH_LIBINTL_JAR" | sed -e 's,/[^/]*$,,' | sed -e 's,/bin$,,'` +changequote([, ])dnl +LIBINTL_JAR="$basedir"/share/gettext/libintl.jar +AC_SUBST([LIBINTL_JAR]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([javacomp.sh]) +AC_CONFIG_FILES([javaexec.sh]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/m4/Makefile.am new file mode 100644 index 000000000..1beb8a926 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/m4/Makefile.am @@ -0,0 +1,3 @@ +EXTRA_DIST = \ + nls.m4 po.m4 \ + javacomp.m4 javaexec.m4 Test15.java Test15.class diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.class b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.class new file mode 100644 index 000000000..17812cc32 Binary files /dev/null and b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.class differ diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.java b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.java new file mode 100644 index 000000000..fce492536 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.java @@ -0,0 +1,30 @@ +// Test for Java 1.5 or newer. +// This file is in the public domain. +import java.util.*; +/** + * @author Bruno Haible + */ +public class Test15 { + public static void main (String[] args) { + try { + foo(); + } catch (Throwable e) { + System.exit(1); + } + // Check the JVM version is at least 1.5. + String version = System.getProperty("java.specification.version"); + int i = 0; + while (i < version.length() + && (Character.isDigit(version.charAt(i)) || version.charAt(i)=='.')) + i++; + float fversion = Float.valueOf(version.substring(0,i)); + if (!(fversion >= 1.5f)) System.exit(1); + // Check the VM is not GNU libgcj. + String vm = System.getProperty("java.vm.name"); + if (vm.startsWith("GNU")) System.exit(1); + System.exit(0); + } + private static List foo() { + return new ArrayList(); + } +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/Makefile.am new file mode 100644 index 000000000..3398bc1a3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/Makefile.am @@ -0,0 +1,379 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + Hello.java + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGCAT = msgcat +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).properties) +PROPERTIESFILES = @PROPERTIESFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).class) +CLASSFILES = @CLASSFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(DOMAIN)_$(lang).properties) +CATALOGS = @JAVACATALOGS@ + +SUFFIXES = .po .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .properties or .class files appear +# in release tarballs. The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: $(srcdir)/stamp-po + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(PROPERTIESFILES) are +# empty. In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + $(MAKE) update-properties + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + +MAINTAINERCLEANFILES = \ + $(DOMAIN).pot stamp-po \ + $(DOMAIN).properties $(PROPERTIESFILES) $(CLASSFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(DOMAIN).properties $(PROPERTIESFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-properties + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +# During .po -> .properties or .class conversion, take into account the most +# recent changes to the .pot file. This eliminates the need to update the .po +# files when the .pot file has changed, which would be troublesome if the .po +# files are put under version control. + +update-properties: Makefile $(srcdir)/$(DOMAIN).pot $(POFILES) + @echo "$(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(srcdir)/$(DOMAIN).properties"; \ + $(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(DOMAIN).properties || { rm -f $(DOMAIN).properties; exit 1; } +# Move $(DOMAIN).properties into $(srcdir). But don't provoke a gratuitous error +# in a VPATH build with read-only $(srcdir). + @if test '$(srcdir)' != .; then \ + if test -f $(srcdir)/$(DOMAIN).properties && cmp $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties >/dev/null; then \ + rm -f $(DOMAIN).properties; \ + else \ + mv -f $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties; \ + fi; \ + fi + @for f in $(POFILES); do \ + lang=`echo $$f | sed -e 's,.*/,,' -e 's,\.po$$,,'`; \ + echo "$(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot"; \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot || exit 1; \ + echo "$(GMSGFMT) -c --statistics --verbose -o /dev/null $${lang}.1po"; \ + $(GMSGFMT) -c --statistics --verbose -o /dev/null $${lang}.1po || exit 1; \ + echo "$(MSGCAT) --properties-output -o $(srcdir)/$(DOMAIN)_$$lang.properties $${lang}.1po"; \ + $(MSGCAT) --properties-output -o $(DOMAIN)_$$lang.properties.tmp $${lang}.1po || exit 1; \ + if test '$(srcdir)' = .; then \ + mv -f $(DOMAIN)_$$lang.properties.tmp $(DOMAIN)_$$lang.properties || exit 1; \ + else \ + if test -f $(srcdir)/$(DOMAIN)_$$lang.properties && cmp $(DOMAIN)_$$lang.properties.tmp $(srcdir)/$(DOMAIN)_$$lang.properties >/dev/null; then \ + rm -f $(DOMAIN)_$$lang.properties.tmp; \ + else \ + mv -f $(DOMAIN)_$$lang.properties.tmp $(srcdir)/$(DOMAIN)_$$lang.properties || exit 1; \ + fi; \ + fi; \ + rm -f $${lang}.1po; \ + done + +# Alternatively, we could create classes instead of properties files. +update-classes: Makefile $(srcdir)/$(DOMAIN).pot $(POFILES) + @echo "$(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(srcdir)/$(DOMAIN).properties"; \ + $(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(DOMAIN).properties || { rm -f $(DOMAIN).properties; exit 1; } +# Move $(DOMAIN).properties into $(srcdir). But don't provoke a gratuitous error +# in a VPATH build with read-only $(srcdir). + @if test '$(srcdir)' != .; then \ + if test -f $(srcdir)/$(DOMAIN).properties && cmp $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties >/dev/null; then \ + rm -f $(DOMAIN).properties; \ + else \ + mv -f $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties; \ + fi; \ + fi + @for f in $(POFILES); do \ + lang=`echo $$f | sed -e 's,.*/,,' -e 's,\.po$$,,'`; \ + echo "$(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot"; \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot || exit 1; \ + echo "$(GMSGFMT) -c --statistics --verbose -j -d $(srcdir) -r $(DOMAIN) -l $${lang} $${lang}.1po"; \ + $(GMSGFMT) -c --statistics --verbose -j -d . -r $(DOMAIN) -l $${lang} $${lang}.1po || exit 1; \ + if test '$(srcdir)' != .; then \ + if test -f $(srcdir)/$(DOMAIN)_$$lang.class && cmp $(DOMAIN)_$$lang.class $(srcdir)/$(DOMAIN)_$$lang.class >/dev/null; then \ + rm -f $(DOMAIN)_$$lang.class; \ + else \ + mv -f $(DOMAIN)_$$lang.class $(srcdir)/$(DOMAIN)_$$lang.class || exit 1; \ + fi; \ + fi; \ + rm -f $${lang}.1po; \ + done + +echo-catalogs: +# When packaging the catalogs for installation, include the fallback catalog always. + @echo $(DOMAIN).properties $(CATALOGS) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/af.po new file mode 100644 index 000000000..1e6263026 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Hierdie program loop as prosesnommer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ast.po new file mode 100644 index 000000000..bc50a0de5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-java-qtjambi +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Esti programa ta executándose como procesu númberu {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/bg.po new file mode 100644 index 000000000..088bd0ddc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-java-qtjambi package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java-qtjambi 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ca.po new file mode 100644 index 000000000..098ff7c1f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-java-qtjambi. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Aquest programa està corrent amb el número de procés {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/cs.po new file mode 100644 index 000000000..78f11a6ce --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tento program běží jako proces Äíslo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/da.po new file mode 100644 index 000000000..89cca70d0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-java-qtjambi. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dette program kører som proces nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/de.po new file mode 100644 index 000000000..b2b7e4a6d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-java-qtjambi. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dieses Programm läuft mit der Prozess-Nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/el.po new file mode 100644 index 000000000..71f69533b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-java-qtjambi +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/eo.po new file mode 100644 index 000000000..72b487bab --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/es.po new file mode 100644 index 000000000..0941c90dd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa está corriendo como el proceso número {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/fi.po new file mode 100644 index 000000000..37d99d30b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tämän ohjelman prosessinumero on {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/fr.po new file mode 100644 index 000000000..394805c9d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ce programme est exécuté en tant que processus numéro {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ga.po new file mode 100644 index 000000000..486b880bd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-java-qtjambi. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tá an clár seo ag rith mar phróiseas {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/gl.po new file mode 100644 index 000000000..1d55dbf40 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-java-qtjambi package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa estase executando como o proceso número {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/hr.po new file mode 100644 index 000000000..b46dc79f9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-java-qtjambi to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/hu.po new file mode 100644 index 000000000..29c4bb575 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-java-qtjambi. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ez a program a(z) {0} folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/id.po new file mode 100644 index 000000000..bbbd83621 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-java-qtjambi-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Program ini berjalan sebagai proses nomor {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/it.po new file mode 100644 index 000000000..04e5eb6b7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-java-qtjambi. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Questo programma è in esecuzione con numero di processo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ja.po new file mode 100644 index 000000000..ae1796fee --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-java-qtjambi' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· {0} ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ka.po new file mode 100644 index 000000000..1117ed52d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ky.po new file mode 100644 index 000000000..6ac18767f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-java-qtjambi' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Бул программа {0} процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/lv.po new file mode 100644 index 000000000..0e999fc3f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-java-qtjambi +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Å Ä« programma darbojas kÄ process ar numuru {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ms.po new file mode 100644 index 000000000..4a0b2c581 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ms.po @@ -0,0 +1,28 @@ +# hello-java-qtjambi Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Program ini dilaksanakan sebagai proses bernombor {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/mt.po new file mode 100644 index 000000000..e6bb853a2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/mt.po @@ -0,0 +1,27 @@ +# hello-java-qtjambi-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/nb.po new file mode 100644 index 000000000..af6ce9bf9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-java-qtjambi package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dette programmet kjører som prosess nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/nl.po new file mode 100644 index 000000000..961028cf3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-java-qtjambi. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dit programma draait als proces nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/nn.po new file mode 100644 index 000000000..a3af09e69 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-java-qtjambi +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dette programmet køyrer som prosess nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/pl.po new file mode 100644 index 000000000..f16c4baaa --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-java-qtjambi domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ten program dziaÅ‚a jako proces o numerze {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/pt.po new file mode 100644 index 000000000..eadaf82e9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-java-qtjambi' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa está em execução como processo nº {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/pt_BR.po new file mode 100644 index 000000000..29e6fd373 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa está sendo executado com número de processo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ro.po new file mode 100644 index 000000000..96afcbdd0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-java-qtjambi. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-java-qtjambi 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-java-qtjambi-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Acest program rulează ca procesul numărul {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ru.po new file mode 100644 index 000000000..d9b4838b7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-java-qtjambi-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sk.po new file mode 100644 index 000000000..9121349d3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-java-qtjambi package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tento program beží ako proces s Äíslom {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sl.po new file mode 100644 index 000000000..c488b6086 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-java-qtjambi-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ta program teÄe kot proces Å¡tevilka {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sq.po new file mode 100644 index 000000000..f9c41e385 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ky program po xhiron si procesi numër {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sr.po new file mode 100644 index 000000000..ab77bb7ce --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-java-qtjambi. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sv.po new file mode 100644 index 000000000..fd280dcfd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-java-qtjambi. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Detta program kör som process nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ta.po new file mode 100644 index 000000000..7d9cf0c88 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠{0} ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/tr.po new file mode 100644 index 000000000..217a85ea8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-java-qtjambi. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Bu yazılım {0} süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/uk.po new file mode 100644 index 000000000..567e719f4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-java-qtjambi +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/vi.po new file mode 100644 index 000000000..555bdb631 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/zh_CN.po new file mode 100644 index 000000000..51d2032f9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-java-qtjambi. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· {0} è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/zh_HK.po new file mode 100644 index 000000000..a9331f9cc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-java-qtjambi. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º {0}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/zh_TW.po new file mode 100644 index 000000000..af1e7d169 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-qtjambi/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-java-qtjambi. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-qtjambi 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:27 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: Hello.java:34 +#, java-format +msgid "This program is running as process number {0}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º {0}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/BUGS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/BUGS new file mode 100644 index 000000000..085ef9e18 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/BUGS @@ -0,0 +1,5 @@ +Correct display of characters depends on the JVM and its locale-dependent font +configuration. For example, on Linux/x86, in + Sun JDK 1.3.1 de_DE, zh_CN work + IBM JDK 1.3.0 de_DE, sr_YU work - ja_JP, zh_CN don't work (displays squares) + Sun JDK 1.4.2 de_DE, sr_YU work - ja_JP, zh_CN don't work (displays squares) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/Hello.java b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/Hello.java new file mode 100644 index 000000000..7bdef7ede --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/Hello.java @@ -0,0 +1,63 @@ +// Example for use of GNU gettext. +// This file is in the public domain. +// +// Source code of the Java/Swing program. + +import java.util.*; +import java.io.*; +import java.text.*; +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import gnu.gettext.*; + +public class Hello { + public static void main (String[] args) { + ResourceBundle catalog = ResourceBundle.getBundle("hello-java-swing"); + JFrame frame = new JFrame("Hello example"); + frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); + JLabel label1 = + new JLabel(GettextResource.gettext(catalog,"Hello, world!")); + JLabel label2 = + new JLabel( + MessageFormat.format( + GettextResource.gettext(catalog, + "This program is running as process number {0}."), + new Object[] { getPid() })); + JButton button = new JButton("OK"); + button.addActionListener( + new ActionListener() { + public void actionPerformed (ActionEvent event) { + System.exit(0); + } + }); + JPanel labels = new JPanel(); + labels.setLayout(new GridLayout(2, 1)); + labels.add(label1); + labels.add(label2); + JPanel buttons = new JPanel(); + buttons.setLayout(new FlowLayout(FlowLayout.RIGHT)); + buttons.add(button); + frame.getContentPane().setLayout(new BorderLayout()); + frame.getContentPane().add(labels, BorderLayout.CENTER); + frame.getContentPane().add(buttons, BorderLayout.SOUTH); + frame.pack(); + frame.setVisible(true); + } + + /* Return the process ID of the current process. */ + private static String getPid () { + try { + String[] args = new String[] { "/bin/sh", "-c", "echo $PPID" }; + Process p = Runtime.getRuntime().exec(args); + InputStream p_out = p.getInputStream(); + String s = (new BufferedReader(new InputStreamReader(p_out))).readLine(); + p.destroy(); + if (s != null) + return s; + } catch (IOException e) { + e.printStackTrace(); + } + return "???"; + } +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/INSTALL new file mode 100644 index 000000000..79edfa77a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/INSTALL @@ -0,0 +1,12 @@ +This example relies on: + - a Java implementation with AWT and Swing + (i.e. when using Sun's JDK: at least JDK 1.2) + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/Makefile.am new file mode 100644 index 000000000..a567df690 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/Makefile.am @@ -0,0 +1,85 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_JAVAPROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = Hello.java +hello_CLASSES = Hello.class + +# The entry point of the 'hello' program. +hello_MAINCLASS = Hello + +# The link dependencies of the 'hello' program. +hello_JAVALIBS = @LIBINTL_JAR@ + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh + + +# ----------------- General rules for compiling Java programs ----------------- + +jardir = $(datadir)/$(PACKAGE) +pkgdatadir = $(datadir)/$(PACKAGE) +pkglibdir = $(libdir)/$(PACKAGE) + +JAR = @JAR@ +JAVACOMP = $(SHELL) javacomp.sh + +EXTRA_DIST += $(hello_SOURCES) +CLEANFILES = +DISTCLEANFILES = javacomp.sh javaexec.sh + + +# Rules for compiling Java programs as jar libraries. +# This is the preferred mode during development, because you can easily test +# the program without installing it, simply by doing "java -jar hello.jar". + +all-local: hello.jar hello.sh + +hello.jar: $(hello_CLASSES) + { echo "Manifest-Version: 1.0"; echo "Main-Class: $(hello_MAINCLASS)"; echo 'Class-Path: @LIBINTL_JAR@'; } > Manifest.mf + $(JAR) cfm $@ Manifest.mf Hello*.class + rm -f Manifest.mf + abs_jar=`pwd`/$@; (cd po && $(MAKE)) && catalogs=`GNUMAKEFLAGS=--no-print-directory $(MAKE) -s -C po echo-catalogs`; test -n "$$catalogs" && (cd $(srcdir)/po && $(JAR) uf "$$abs_jar" $$catalogs) || { rm -f $@ jartmp*; exit 1; } + +Hello.class: $(srcdir)/Hello.java + CLASSPATH=.@CLASSPATH_SEPARATOR@$(hello_JAVALIBS) $(JAVACOMP) -d . $(srcdir)/Hello.java + +hello.sh: + { echo '#!/bin/sh'; \ + echo "CLASSPATH='$(jardir)/hello.jar@CLASSPATH_SEPARATOR@$(hello_JAVALIBS)'\$${CLASSPATH+\"@CLASSPATH_SEPARATOR@\$$CLASSPATH\"}"; \ + echo "export CLASSPATH"; \ + echo "exec /bin/sh '$(pkgdatadir)/javaexec.sh' $(hello_MAINCLASS) \"\$$@\""; \ + } > $@ + +install-exec-local: all-local + $(MKDIR_P) $(DESTDIR)$(bindir) + $(INSTALL_SCRIPT) hello.sh $(DESTDIR)$(bindir)/hello + +install-data-local: all-local + $(MKDIR_P) $(DESTDIR)$(jardir) + $(INSTALL_DATA) hello.jar $(DESTDIR)$(jardir)/hello.jar + $(MKDIR_P) $(DESTDIR)$(pkgdatadir) + $(INSTALL_DATA) javaexec.sh $(DESTDIR)$(pkgdatadir)/javaexec.sh + +installdirs-local: + $(MKDIR_P) $(DESTDIR)$(jardir) + $(MKDIR_P) $(DESTDIR)$(pkgdatadir) + +uninstall-local: + rm -f $(DESTDIR)$(bindir)/hello + rm -f $(DESTDIR)$(jardir)/hello.jar + rm -f $(DESTDIR)$(pkgdatadir)/javaexec.sh + +CLEANFILES += hello.jar Hello*.class Manifest.mf hello.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/autoclean.sh new file mode 100755 index 000000000..41997040b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/autoclean.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Brought in by explicit copy. +rm -f m4/javacomp.m4 +rm -f m4/javaexec.m4 +rm -f javacomp.sh.in +rm -f javaexec.sh.in + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/hello-java-swing*.properties diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/autogen.sh new file mode 100755 index 000000000..467f213af --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/autogen.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/javacomp.m4 m4/javacomp.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/javaexec.m4 m4/javaexec.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/build-aux}/javacomp.sh.in javacomp.sh.in +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/build-aux}/javaexec.sh.in javaexec.sh.in + +aclocal -I m4 + +autoconf + +automake -a -c + +./configure +cd po +make update-po +cd .. +make distclean diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/configure.ac new file mode 100644 index 000000000..cdedcd6ba --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/configure.ac @@ -0,0 +1,53 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-java-swing], [0]) +AC_CONFIG_SRCDIR([Hello.java]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check whether we can execute Java programs. +gt_JAVAEXEC([TestAWT], [$srcdir/m4]) +dnl Check whether we can build Java programs. +gt_JAVACOMP([1.5]) +AC_CHECK_PROG([JAR], [jar], [jar]) +if test -n "$HAVE_JAVACOMP" && test -n "$JAR"; then + BUILDJAVA=yes +else + BUILDJAVA=no +fi +AC_SUBST([BUILDJAVA]) +if test -n "$HAVE_JAVAEXEC" && test "$BUILDJAVA" = yes; then + TESTJAVA=yes +else + TESTJAVA=no +fi +AC_SUBST([TESTJAVA]) + +dnl Checks for compiler output filename suffixes. +AC_OBJEXT +AC_EXEEXT + +dnl Checks for needed libraries. +AM_PATH_PROG_WITH_TEST([GETTEXT_WITH_LIBINTL_JAR], [gettext], + [{ basedir=`echo "$ac_dir" | sed -e 's,/bin$,,'`; test -r "$basedir"/share/gettext/libintl.jar; }]) +if test -z "$GETTEXT_WITH_LIBINTL_JAR"; then + echo "Required library libintl.jar not found." 1>&2 + exit 1 +fi +changequote(,)dnl +basedir=`echo "$GETTEXT_WITH_LIBINTL_JAR" | sed -e 's,/[^/]*$,,' | sed -e 's,/bin$,,'` +changequote([, ])dnl +LIBINTL_JAR="$basedir"/share/gettext/libintl.jar +AC_SUBST([LIBINTL_JAR]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([javacomp.sh]) +AC_CONFIG_FILES([javaexec.sh]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/m4/Makefile.am new file mode 100644 index 000000000..dea6fde27 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/m4/Makefile.am @@ -0,0 +1,3 @@ +EXTRA_DIST = \ + nls.m4 po.m4 \ + javacomp.m4 javaexec.m4 TestAWT.java TestAWT.class diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/m4/TestAWT.class b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/m4/TestAWT.class new file mode 100644 index 000000000..1c993c51e Binary files /dev/null and b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/m4/TestAWT.class differ diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/m4/TestAWT.java b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/m4/TestAWT.java new file mode 100644 index 000000000..5c403225e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/m4/TestAWT.java @@ -0,0 +1,15 @@ +// Test for working AWT. +// This file is in the public domain. +/** + * @author Bruno Haible + */ +public class TestAWT { + public static void main (String[] args) { + try { + java.awt.Toolkit.getDefaultToolkit(); + } catch (Throwable e) { + System.exit(1); + } + System.exit(0); + } +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/Makefile.am new file mode 100644 index 000000000..3398bc1a3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/Makefile.am @@ -0,0 +1,379 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + Hello.java + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGCAT = msgcat +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).properties) +PROPERTIESFILES = @PROPERTIESFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).class) +CLASSFILES = @CLASSFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(DOMAIN)_$(lang).properties) +CATALOGS = @JAVACATALOGS@ + +SUFFIXES = .po .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .properties or .class files appear +# in release tarballs. The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: $(srcdir)/stamp-po + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(PROPERTIESFILES) are +# empty. In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + $(MAKE) update-properties + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + +MAINTAINERCLEANFILES = \ + $(DOMAIN).pot stamp-po \ + $(DOMAIN).properties $(PROPERTIESFILES) $(CLASSFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(DOMAIN).properties $(PROPERTIESFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-properties + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +# During .po -> .properties or .class conversion, take into account the most +# recent changes to the .pot file. This eliminates the need to update the .po +# files when the .pot file has changed, which would be troublesome if the .po +# files are put under version control. + +update-properties: Makefile $(srcdir)/$(DOMAIN).pot $(POFILES) + @echo "$(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(srcdir)/$(DOMAIN).properties"; \ + $(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(DOMAIN).properties || { rm -f $(DOMAIN).properties; exit 1; } +# Move $(DOMAIN).properties into $(srcdir). But don't provoke a gratuitous error +# in a VPATH build with read-only $(srcdir). + @if test '$(srcdir)' != .; then \ + if test -f $(srcdir)/$(DOMAIN).properties && cmp $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties >/dev/null; then \ + rm -f $(DOMAIN).properties; \ + else \ + mv -f $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties; \ + fi; \ + fi + @for f in $(POFILES); do \ + lang=`echo $$f | sed -e 's,.*/,,' -e 's,\.po$$,,'`; \ + echo "$(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot"; \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot || exit 1; \ + echo "$(GMSGFMT) -c --statistics --verbose -o /dev/null $${lang}.1po"; \ + $(GMSGFMT) -c --statistics --verbose -o /dev/null $${lang}.1po || exit 1; \ + echo "$(MSGCAT) --properties-output -o $(srcdir)/$(DOMAIN)_$$lang.properties $${lang}.1po"; \ + $(MSGCAT) --properties-output -o $(DOMAIN)_$$lang.properties.tmp $${lang}.1po || exit 1; \ + if test '$(srcdir)' = .; then \ + mv -f $(DOMAIN)_$$lang.properties.tmp $(DOMAIN)_$$lang.properties || exit 1; \ + else \ + if test -f $(srcdir)/$(DOMAIN)_$$lang.properties && cmp $(DOMAIN)_$$lang.properties.tmp $(srcdir)/$(DOMAIN)_$$lang.properties >/dev/null; then \ + rm -f $(DOMAIN)_$$lang.properties.tmp; \ + else \ + mv -f $(DOMAIN)_$$lang.properties.tmp $(srcdir)/$(DOMAIN)_$$lang.properties || exit 1; \ + fi; \ + fi; \ + rm -f $${lang}.1po; \ + done + +# Alternatively, we could create classes instead of properties files. +update-classes: Makefile $(srcdir)/$(DOMAIN).pot $(POFILES) + @echo "$(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(srcdir)/$(DOMAIN).properties"; \ + $(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(DOMAIN).properties || { rm -f $(DOMAIN).properties; exit 1; } +# Move $(DOMAIN).properties into $(srcdir). But don't provoke a gratuitous error +# in a VPATH build with read-only $(srcdir). + @if test '$(srcdir)' != .; then \ + if test -f $(srcdir)/$(DOMAIN).properties && cmp $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties >/dev/null; then \ + rm -f $(DOMAIN).properties; \ + else \ + mv -f $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties; \ + fi; \ + fi + @for f in $(POFILES); do \ + lang=`echo $$f | sed -e 's,.*/,,' -e 's,\.po$$,,'`; \ + echo "$(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot"; \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot || exit 1; \ + echo "$(GMSGFMT) -c --statistics --verbose -j -d $(srcdir) -r $(DOMAIN) -l $${lang} $${lang}.1po"; \ + $(GMSGFMT) -c --statistics --verbose -j -d . -r $(DOMAIN) -l $${lang} $${lang}.1po || exit 1; \ + if test '$(srcdir)' != .; then \ + if test -f $(srcdir)/$(DOMAIN)_$$lang.class && cmp $(DOMAIN)_$$lang.class $(srcdir)/$(DOMAIN)_$$lang.class >/dev/null; then \ + rm -f $(DOMAIN)_$$lang.class; \ + else \ + mv -f $(DOMAIN)_$$lang.class $(srcdir)/$(DOMAIN)_$$lang.class || exit 1; \ + fi; \ + fi; \ + rm -f $${lang}.1po; \ + done + +echo-catalogs: +# When packaging the catalogs for installation, include the fallback catalog always. + @echo $(DOMAIN).properties $(CATALOGS) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/af.po new file mode 100644 index 000000000..9c5f1b562 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Hierdie program loop as prosesnommer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ast.po new file mode 100644 index 000000000..56f0acf8c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-java-swing +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Esti programa ta executándose como procesu númberu {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/bg.po new file mode 100644 index 000000000..ff395bfff --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-java-swing package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java-swing 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ca.po new file mode 100644 index 000000000..68644cba2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-java-swing. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Aquest programa està corrent amb el número de procés {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/cs.po new file mode 100644 index 000000000..d3cfa29ee --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tento program běží jako proces Äíslo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/da.po new file mode 100644 index 000000000..ce0496673 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-java-swing. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dette program kører som proces nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/de.po new file mode 100644 index 000000000..d02896e29 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-java-swing. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dieses Programm läuft mit der Prozess-Nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/el.po new file mode 100644 index 000000000..8cabb341e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-java-swing +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/eo.po new file mode 100644 index 000000000..55f617778 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/es.po new file mode 100644 index 000000000..060a7e1ef --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa está corriendo como el proceso número {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/fi.po new file mode 100644 index 000000000..534b3c898 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tämän ohjelman prosessinumero on {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/fr.po new file mode 100644 index 000000000..ff152f356 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ce programme est exécuté en tant que processus numéro {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ga.po new file mode 100644 index 000000000..812c040be --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-java-swing. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tá an clár seo ag rith mar phróiseas {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/gl.po new file mode 100644 index 000000000..2a749fa51 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-java-swing package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa estase executando como o proceso número {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/hr.po new file mode 100644 index 000000000..ba60eb6c5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-java-swing to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/hu.po new file mode 100644 index 000000000..b908734d9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-java-swing. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ez a program a(z) {0} folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/id.po new file mode 100644 index 000000000..fd21f47f3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-java-swing-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Program ini berjalan sebagai proses nomor {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/it.po new file mode 100644 index 000000000..1222a7494 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-java-swing. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Questo programma è in esecuzione con numero di processo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ja.po new file mode 100644 index 000000000..0f3d279b0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-java-swing' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· {0} ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ka.po new file mode 100644 index 000000000..20edd0bd0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ky.po new file mode 100644 index 000000000..36f91671b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-java-swing' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Бул программа {0} процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/lv.po new file mode 100644 index 000000000..ec4b5ed56 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-java-swing +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Å Ä« programma darbojas kÄ process ar numuru {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ms.po new file mode 100644 index 000000000..5ee968c50 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ms.po @@ -0,0 +1,28 @@ +# hello-java-swing Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Program ini dilaksanakan sebagai proses bernombor {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/mt.po new file mode 100644 index 000000000..153c14d16 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/mt.po @@ -0,0 +1,27 @@ +# hello-java-swing-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/nb.po new file mode 100644 index 000000000..b661e3b8f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-java-swing package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dette programmet kjører som prosess nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/nl.po new file mode 100644 index 000000000..903d8d990 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-java-swing. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dit programma draait als proces nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/nn.po new file mode 100644 index 000000000..074fa5dd9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-java-swing +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dette programmet køyrer som prosess nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/pl.po new file mode 100644 index 000000000..8bee74d8c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-java-swing domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ten program dziaÅ‚a jako proces o numerze {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/pt.po new file mode 100644 index 000000000..2822592a0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-java-swing' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa está em execução como processo nº {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/pt_BR.po new file mode 100644 index 000000000..6493b7947 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa está sendo executado com número de processo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ro.po new file mode 100644 index 000000000..3306c5e3b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-java-swing. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-java-swing 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-java-swing-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Acest program rulează ca procesul numărul {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ru.po new file mode 100644 index 000000000..5d6d82175 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-java-swing-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sk.po new file mode 100644 index 000000000..27def38ec --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-java-swing package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tento program beží ako proces s Äíslom {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sl.po new file mode 100644 index 000000000..762858eb8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-java-swing-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ta program teÄe kot proces Å¡tevilka {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sq.po new file mode 100644 index 000000000..d4d83e789 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ky program po xhiron si procesi numër {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sr.po new file mode 100644 index 000000000..d035a4be2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-java-swing. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sv.po new file mode 100644 index 000000000..99ac1e442 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-java-swing. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Detta program kör som process nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ta.po new file mode 100644 index 000000000..35d0d659b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠{0} ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/tr.po new file mode 100644 index 000000000..547206fdf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-java-swing. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Bu yazılım {0} süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/uk.po new file mode 100644 index 000000000..94d8d270b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-java-swing +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/vi.po new file mode 100644 index 000000000..7d1a145d4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/zh_CN.po new file mode 100644 index 000000000..926472e2a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-java-swing. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· {0} è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/zh_HK.po new file mode 100644 index 000000000..a3bbbdd1b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-java-swing. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º {0}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/zh_TW.po new file mode 100644 index 000000000..2a4a98898 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java-swing/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-java-swing. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-swing 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:20 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: Hello.java:25 +#, java-format +msgid "This program is running as process number {0}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º {0}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/Hello.java b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/Hello.java new file mode 100644 index 000000000..bb4c5b31b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/Hello.java @@ -0,0 +1,37 @@ +// Example for use of GNU gettext. +// This file is in the public domain. +// +// Source code of the Java program. + +import java.util.*; +import java.io.*; +import java.text.*; +import gnu.gettext.*; + +public class Hello { + public static void main (String[] args) { + ResourceBundle catalog = ResourceBundle.getBundle("hello-java"); + System.out.println(GettextResource.gettext(catalog,"Hello, world!")); + System.out.println( + MessageFormat.format( + GettextResource.gettext(catalog, + "This program is running as process number {0}."), + new Object[] { getPid() })); + } + + /* Return the process ID of the current process. */ + private static String getPid () { + try { + String[] args = new String[] { "/bin/sh", "-c", "echo $PPID" }; + Process p = Runtime.getRuntime().exec(args); + InputStream p_out = p.getInputStream(); + String s = (new BufferedReader(new InputStreamReader(p_out))).readLine(); + p.destroy(); + if (s != null) + return s; + } catch (IOException e) { + e.printStackTrace(); + } + return "???"; + } +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/INSTALL new file mode 100644 index 000000000..99cf9c808 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/INSTALL @@ -0,0 +1,11 @@ +This example relies on: + - a Java implementation + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/Makefile.am new file mode 100644 index 000000000..6ea587e5b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/Makefile.am @@ -0,0 +1,86 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_JAVAPROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = Hello.java +hello_CLASSES = Hello.class + +# The entry point of the 'hello' program. +hello_MAINCLASS = Hello + +# The link dependencies of the 'hello' program. +hello_JAVALIBS = @LIBINTL_JAR@ + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh + + +# ----------------- General rules for compiling Java programs ----------------- + +jardir = $(datadir)/$(PACKAGE) +pkgdatadir = $(datadir)/$(PACKAGE) +pkglibdir = $(libdir)/$(PACKAGE) + +JAR = @JAR@ +JAVACOMP = $(SHELL) javacomp.sh +AR = ar + +EXTRA_DIST += $(hello_SOURCES) +CLEANFILES = +DISTCLEANFILES = javacomp.sh javaexec.sh + + +# Rules for compiling Java programs as jar libraries. +# This is the preferred mode during development, because you can easily test +# the program without installing it, simply by doing "java -jar hello.jar". + +all-local: hello.jar hello.sh + +hello.jar: $(hello_CLASSES) + { echo "Manifest-Version: 1.0"; echo "Main-Class: $(hello_MAINCLASS)"; echo 'Class-Path: @LIBINTL_JAR@'; } > Manifest.mf + $(JAR) cfm $@ Manifest.mf Hello*.class + rm -f Manifest.mf + abs_jar=`pwd`/$@; (cd po && $(MAKE)) && catalogs=`GNUMAKEFLAGS=--no-print-directory $(MAKE) -s -C po echo-catalogs`; test -n "$$catalogs" && (cd $(srcdir)/po && $(JAR) uf "$$abs_jar" $$catalogs) || { rm -f $@ jartmp*; exit 1; } + +Hello.class: $(srcdir)/Hello.java + CLASSPATH=.@CLASSPATH_SEPARATOR@$(hello_JAVALIBS) $(JAVACOMP) -d . $(srcdir)/Hello.java + +hello.sh: + { echo '#!/bin/sh'; \ + echo "CLASSPATH='$(jardir)/hello.jar@CLASSPATH_SEPARATOR@$(hello_JAVALIBS)'\$${CLASSPATH+\"@CLASSPATH_SEPARATOR@\$$CLASSPATH\"}"; \ + echo "export CLASSPATH"; \ + echo "exec /bin/sh '$(pkgdatadir)/javaexec.sh' $(hello_MAINCLASS) \"\$$@\""; \ + } > $@ + +install-exec-local: all-local + $(MKDIR_P) $(DESTDIR)$(bindir) + $(INSTALL_SCRIPT) hello.sh $(DESTDIR)$(bindir)/hello + +install-data-local: all-local + $(MKDIR_P) $(DESTDIR)$(jardir) + $(INSTALL_DATA) hello.jar $(DESTDIR)$(jardir)/hello.jar + $(MKDIR_P) $(DESTDIR)$(pkgdatadir) + $(INSTALL_DATA) javaexec.sh $(DESTDIR)$(pkgdatadir)/javaexec.sh + +installdirs-local: + $(MKDIR_P) $(DESTDIR)$(jardir) + $(MKDIR_P) $(DESTDIR)$(pkgdatadir) + +uninstall-local: + rm -f $(DESTDIR)$(bindir)/hello + rm -f $(DESTDIR)$(jardir)/hello.jar + rm -f $(DESTDIR)$(pkgdatadir)/javaexec.sh + +CLEANFILES += hello.jar Hello*.class Manifest.mf hello.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/autoclean.sh new file mode 100755 index 000000000..bac7f4ab0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/autoclean.sh @@ -0,0 +1,37 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Brought in by explicit copy. +rm -f m4/javacomp.m4 +rm -f m4/javaexec.m4 +rm -f javacomp.sh.in +rm -f javaexec.sh.in + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/hello-java*.properties diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/autogen.sh new file mode 100755 index 000000000..467f213af --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/autogen.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/javacomp.m4 m4/javacomp.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-m4}/javaexec.m4 m4/javaexec.m4 +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/build-aux}/javacomp.sh.in javacomp.sh.in +cp -p ${EXAMPLESCONFIGDIR-$GETTEXT_TOPSRCDIR/build-aux}/javaexec.sh.in javaexec.sh.in + +aclocal -I m4 + +autoconf + +automake -a -c + +./configure +cd po +make update-po +cd .. +make distclean diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/configure.ac new file mode 100644 index 000000000..2206ce9ca --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/configure.ac @@ -0,0 +1,53 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-java], [0]) +AC_CONFIG_SRCDIR([Hello.java]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check whether we can execute Java programs. +gt_JAVAEXEC +dnl Check whether we can build Java programs. +gt_JAVACOMP([1.5]) +AC_CHECK_PROG([JAR], [jar], [jar]) +if test -n "$HAVE_JAVACOMP" && test -n "$JAR"; then + BUILDJAVA=yes +else + BUILDJAVA=no +fi +AC_SUBST([BUILDJAVA]) +if test -n "$HAVE_JAVAEXEC" && test "$BUILDJAVA" = yes; then + TESTJAVA=yes +else + TESTJAVA=no +fi +AC_SUBST([TESTJAVA]) + +dnl Checks for compiler output filename suffixes. +AC_OBJEXT +AC_EXEEXT + +dnl Checks for needed libraries. +AM_PATH_PROG_WITH_TEST([GETTEXT_WITH_LIBINTL_JAR], [gettext], + [{ basedir=`echo "$ac_dir" | sed -e 's,/bin$,,'`; test -r "$basedir"/share/gettext/libintl.jar; }]) +if test -z "$GETTEXT_WITH_LIBINTL_JAR"; then + echo "Required library libintl.jar not found." 1>&2 + exit 1 +fi +changequote(,)dnl +basedir=`echo "$GETTEXT_WITH_LIBINTL_JAR" | sed -e 's,/[^/]*$,,' | sed -e 's,/bin$,,'` +changequote([, ])dnl +LIBINTL_JAR="$basedir"/share/gettext/libintl.jar +AC_SUBST([LIBINTL_JAR]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([javacomp.sh]) +AC_CONFIG_FILES([javaexec.sh]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/m4/Makefile.am new file mode 100644 index 000000000..e89cfb5c7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/m4/Makefile.am @@ -0,0 +1,3 @@ +EXTRA_DIST = \ + nls.m4 po.m4 \ + javacomp.m4 javaexec.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/Makefile.am new file mode 100644 index 000000000..3398bc1a3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/Makefile.am @@ -0,0 +1,379 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + Hello.java + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGCAT = msgcat +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).properties) +PROPERTIESFILES = @PROPERTIESFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).class) +CLASSFILES = @CLASSFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(DOMAIN)_$(lang).properties) +CATALOGS = @JAVACATALOGS@ + +SUFFIXES = .po .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .properties or .class files appear +# in release tarballs. The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: $(srcdir)/stamp-po + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(PROPERTIESFILES) are +# empty. In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + $(MAKE) update-properties + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po + +MAINTAINERCLEANFILES = \ + $(DOMAIN).pot stamp-po \ + $(DOMAIN).properties $(PROPERTIESFILES) $(CLASSFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(DOMAIN).properties $(PROPERTIESFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-properties + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +# During .po -> .properties or .class conversion, take into account the most +# recent changes to the .pot file. This eliminates the need to update the .po +# files when the .pot file has changed, which would be troublesome if the .po +# files are put under version control. + +update-properties: Makefile $(srcdir)/$(DOMAIN).pot $(POFILES) + @echo "$(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(srcdir)/$(DOMAIN).properties"; \ + $(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(DOMAIN).properties || { rm -f $(DOMAIN).properties; exit 1; } +# Move $(DOMAIN).properties into $(srcdir). But don't provoke a gratuitous error +# in a VPATH build with read-only $(srcdir). + @if test '$(srcdir)' != .; then \ + if test -f $(srcdir)/$(DOMAIN).properties && cmp $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties >/dev/null; then \ + rm -f $(DOMAIN).properties; \ + else \ + mv -f $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties; \ + fi; \ + fi + @for f in $(POFILES); do \ + lang=`echo $$f | sed -e 's,.*/,,' -e 's,\.po$$,,'`; \ + echo "$(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot"; \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot || exit 1; \ + echo "$(GMSGFMT) -c --statistics --verbose -o /dev/null $${lang}.1po"; \ + $(GMSGFMT) -c --statistics --verbose -o /dev/null $${lang}.1po || exit 1; \ + echo "$(MSGCAT) --properties-output -o $(srcdir)/$(DOMAIN)_$$lang.properties $${lang}.1po"; \ + $(MSGCAT) --properties-output -o $(DOMAIN)_$$lang.properties.tmp $${lang}.1po || exit 1; \ + if test '$(srcdir)' = .; then \ + mv -f $(DOMAIN)_$$lang.properties.tmp $(DOMAIN)_$$lang.properties || exit 1; \ + else \ + if test -f $(srcdir)/$(DOMAIN)_$$lang.properties && cmp $(DOMAIN)_$$lang.properties.tmp $(srcdir)/$(DOMAIN)_$$lang.properties >/dev/null; then \ + rm -f $(DOMAIN)_$$lang.properties.tmp; \ + else \ + mv -f $(DOMAIN)_$$lang.properties.tmp $(srcdir)/$(DOMAIN)_$$lang.properties || exit 1; \ + fi; \ + fi; \ + rm -f $${lang}.1po; \ + done + +# Alternatively, we could create classes instead of properties files. +update-classes: Makefile $(srcdir)/$(DOMAIN).pot $(POFILES) + @echo "$(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(srcdir)/$(DOMAIN).properties"; \ + $(MSGINIT) -i $(srcdir)/$(DOMAIN).pot --no-translator -l en --properties-output -o $(DOMAIN).properties || { rm -f $(DOMAIN).properties; exit 1; } +# Move $(DOMAIN).properties into $(srcdir). But don't provoke a gratuitous error +# in a VPATH build with read-only $(srcdir). + @if test '$(srcdir)' != .; then \ + if test -f $(srcdir)/$(DOMAIN).properties && cmp $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties >/dev/null; then \ + rm -f $(DOMAIN).properties; \ + else \ + mv -f $(DOMAIN).properties $(srcdir)/$(DOMAIN).properties; \ + fi; \ + fi + @for f in $(POFILES); do \ + lang=`echo $$f | sed -e 's,.*/,,' -e 's,\.po$$,,'`; \ + echo "$(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot"; \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $(srcdir)/$${lang}.po $(srcdir)/$(DOMAIN).pot || exit 1; \ + echo "$(GMSGFMT) -c --statistics --verbose -j -d $(srcdir) -r $(DOMAIN) -l $${lang} $${lang}.1po"; \ + $(GMSGFMT) -c --statistics --verbose -j -d . -r $(DOMAIN) -l $${lang} $${lang}.1po || exit 1; \ + if test '$(srcdir)' != .; then \ + if test -f $(srcdir)/$(DOMAIN)_$$lang.class && cmp $(DOMAIN)_$$lang.class $(srcdir)/$(DOMAIN)_$$lang.class >/dev/null; then \ + rm -f $(DOMAIN)_$$lang.class; \ + else \ + mv -f $(DOMAIN)_$$lang.class $(srcdir)/$(DOMAIN)_$$lang.class || exit 1; \ + fi; \ + fi; \ + rm -f $${lang}.1po; \ + done + +echo-catalogs: +# When packaging the catalogs for installation, include the fallback catalog always. + @echo $(DOMAIN).properties $(CATALOGS) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/af.po new file mode 100644 index 000000000..02178e803 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Hierdie program loop as prosesnommer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ast.po new file mode 100644 index 000000000..e4e8ab9be --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-java +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Esti programa ta executándose como procesu númberu {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/bg.po new file mode 100644 index 000000000..abad2330d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-java package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ca.po new file mode 100644 index 000000000..3406020f5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-java. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Aquest programa està corrent amb el número de procés {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/cs.po new file mode 100644 index 000000000..e9d3019b8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tento program běží jako proces Äíslo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/da.po new file mode 100644 index 000000000..d007439f4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-java. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dette program kører som proces nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/de.po new file mode 100644 index 000000000..a0e432688 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-java. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dieses Programm läuft mit der Prozess-Nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/el.po new file mode 100644 index 000000000..9816c1f13 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-java +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/eo.po new file mode 100644 index 000000000..8482500f6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/es.po new file mode 100644 index 000000000..957c9e873 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa está corriendo como el proceso número {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/fi.po new file mode 100644 index 000000000..6a004d70e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tämän ohjelman prosessinumero on {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/fr.po new file mode 100644 index 000000000..efe59737c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ce programme est exécuté en tant que processus numéro {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ga.po new file mode 100644 index 000000000..b35d94b2a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-java. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tá an clár seo ag rith mar phróiseas {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/gl.po new file mode 100644 index 000000000..b941d80c8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-java package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa estase executando como o proceso número {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/hr.po new file mode 100644 index 000000000..5aa2be81f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-java to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/hu.po new file mode 100644 index 000000000..f2b9af39a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-java. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ez a program a(z) {0} folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/id.po new file mode 100644 index 000000000..ae42d70bf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-java-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Program ini berjalan sebagai proses nomor {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/it.po new file mode 100644 index 000000000..c3641b9fa --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-java. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Questo programma è in esecuzione con numero di processo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ja.po new file mode 100644 index 000000000..1246bc210 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-java' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· {0} ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ka.po new file mode 100644 index 000000000..d2e4a1f07 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ky.po new file mode 100644 index 000000000..fda27f3f7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-java' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Бул программа {0} процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/lv.po new file mode 100644 index 000000000..92043f072 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-java +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Å Ä« programma darbojas kÄ process ar numuru {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ms.po new file mode 100644 index 000000000..830aa41ce --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ms.po @@ -0,0 +1,28 @@ +# hello-java Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Program ini dilaksanakan sebagai proses bernombor {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/mt.po new file mode 100644 index 000000000..5f5f14393 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/mt.po @@ -0,0 +1,27 @@ +# hello-java-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/nb.po new file mode 100644 index 000000000..3d179bf92 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-java package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dette programmet kjører som prosess nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/nl.po new file mode 100644 index 000000000..594773b88 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-java. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dit programma draait als proces nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/nn.po new file mode 100644 index 000000000..cd314f492 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-java +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Dette programmet køyrer som prosess nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/pl.po new file mode 100644 index 000000000..b945d2f40 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-java domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ten program dziaÅ‚a jako proces o numerze {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/pt.po new file mode 100644 index 000000000..aab52cc2b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-java' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa está em execução como processo nº {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/pt_BR.po new file mode 100644 index 000000000..17a1f8d49 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Este programa está sendo executado com número de processo {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ro.po new file mode 100644 index 000000000..bbd366e9f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-java. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-java 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-java-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Acest program rulează ca procesul numărul {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ru.po new file mode 100644 index 000000000..70af1e833 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-java-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sk.po new file mode 100644 index 000000000..3baec01fb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-java package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Tento program beží ako proces s Äíslom {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sl.po new file mode 100644 index 000000000..565c5c66b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-java-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ta program teÄe kot proces Å¡tevilka {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sq.po new file mode 100644 index 000000000..0889b0202 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ky program po xhiron si procesi numër {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sr.po new file mode 100644 index 000000000..41885f905 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-java. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sv.po new file mode 100644 index 000000000..a93d3290c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-java. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Detta program kör som process nummer {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ta.po new file mode 100644 index 000000000..1bbbbc03b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠{0} ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/tr.po new file mode 100644 index 000000000..c966e0724 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-java. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Bu yazılım {0} süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/uk.po new file mode 100644 index 000000000..ce7aac6ec --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-java +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/vi.po new file mode 100644 index 000000000..0d109d625 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình {0}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/zh_CN.po new file mode 100644 index 000000000..3678fbd16 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-java. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· {0} è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/zh_HK.po new file mode 100644 index 000000000..6facded3a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-java. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º {0}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/zh_TW.po new file mode 100644 index 000000000..fbd0598cb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-java/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-java. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-java 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.java:14 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: Hello.java:18 +#, java-format +msgid "This program is running as process number {0}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º {0}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/INSTALL new file mode 100644 index 000000000..c9970d8ba --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/INSTALL @@ -0,0 +1,10 @@ +This example relies on librep. + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/Makefile.am new file mode 100644 index 000000000..86f070868 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/Makefile.am @@ -0,0 +1,29 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_SCRIPTS = hello + +# Compilation of librep programs. +SUFFIXES = .jl .jlc +.jl.jlc: + rep --batch --no-rc -l compiler -f compile-batch $< +CLEANFILES = *.jlc + +# Making a librep program executable. +hello: hello.jlc + (echo '#!@REP@'; echo '!#'; cat $<) > $@ + chmod a+x $@ +CLEANFILES += hello + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/autoclean.sh new file mode 100755 index 000000000..9367df26c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/autoclean.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/autogen.sh new file mode 100755 index 000000000..7e5197991 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/configure.ac new file mode 100644 index 000000000..d7dddda84 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/configure.ac @@ -0,0 +1,38 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-librep], [0]) +AC_CONFIG_SRCDIR([hello.jl.in]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check for availability of the librep interpreter. +AC_PATH_PROG([REP], [rep]) +if test -z "$REP"; then + echo "*** Essential program rep not found" 1>&2 + exit 1 +fi +AC_SUBST([REP]) + +dnl The installed program must know where to find its message catalogs. +dnl Unfortunately, prefix gets only finally determined at the end of configure. +if test "X$prefix" = "XNONE"; then + final_prefix="$ac_default_prefix" +else + final_prefix="$prefix" +fi +save_prefix="$prefix" +prefix="$final_prefix" +eval "datarootdir=\"${datarootdir}\"" +eval "localedir=\"${datadir}/locale\"" +prefix="$save_prefix" +AC_SUBST([localedir]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile hello.jl]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/m4/Makefile.am new file mode 100644 index 000000000..8a841b31f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/m4/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + nls.m4 po.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/Makefile.am new file mode 100644 index 000000000..98e9fbf8b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/Makefile.am @@ -0,0 +1,419 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.jl.in + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).gmo) +GMOFILES = @GMOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(lang).gmo) +CATALOGS = @CATALOGS@ + +SUFFIXES = .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(GMOFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(GMOFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/af.po new file mode 100644 index 000000000..fbbf166e7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ast.po new file mode 100644 index 000000000..d5043ecdb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-librep +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/bg.po new file mode 100644 index 000000000..68367acf0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-librep package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-librep 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ca.po new file mode 100644 index 000000000..7153464bf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-librep. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/cs.po new file mode 100644 index 000000000..07757123d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/da.po new file mode 100644 index 000000000..19fb5fe0f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-librep. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/de.po new file mode 100644 index 000000000..c50c63cc3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-librep. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/el.po new file mode 100644 index 000000000..89a6794c1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-librep +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/eo.po new file mode 100644 index 000000000..18a2cb120 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/es.po new file mode 100644 index 000000000..69224599b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/fi.po new file mode 100644 index 000000000..40de12666 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/fr.po new file mode 100644 index 000000000..a2590918e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ga.po new file mode 100644 index 000000000..f8e80f24f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-librep. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/gl.po new file mode 100644 index 000000000..d01e8ca2f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-librep package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/hr.po new file mode 100644 index 000000000..cf5fc755e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-librep to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-librep-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/hu.po new file mode 100644 index 000000000..c4c6b2bf9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-librep. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/id.po new file mode 100644 index 000000000..189d4e888 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-librep-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-librep-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/it.po new file mode 100644 index 000000000..9ba0d71c7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-librep. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ja.po new file mode 100644 index 000000000..dfe7e91e0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-librep' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ka.po new file mode 100644 index 000000000..d383a049b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ky.po new file mode 100644 index 000000000..ac2cdadf3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-librep' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/lv.po new file mode 100644 index 000000000..7f257ef57 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-librep +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ms.po new file mode 100644 index 000000000..6917fe405 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ms.po @@ -0,0 +1,28 @@ +# hello-librep Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/mt.po new file mode 100644 index 000000000..2d3adae34 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/mt.po @@ -0,0 +1,27 @@ +# hello-librep-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/nb.po new file mode 100644 index 000000000..3eec3c8d6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-librep package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/nl.po new file mode 100644 index 000000000..de8e64db9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-librep. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-librep-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/nn.po new file mode 100644 index 000000000..aecfdc16a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-librep +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-librep-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/pl.po new file mode 100644 index 000000000..a47a92dad --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-librep domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/pt.po new file mode 100644 index 000000000..f1ebe9a66 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-librep' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/pt_BR.po new file mode 100644 index 000000000..02d1a96ed --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ro.po new file mode 100644 index 000000000..d6ae6c046 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-librep. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-librep 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-librep-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ru.po new file mode 100644 index 000000000..ee47deb53 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-librep-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sk.po new file mode 100644 index 000000000..7765d94e8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-librep package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sl.po new file mode 100644 index 000000000..efec8288e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-librep-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sq.po new file mode 100644 index 000000000..32eb76277 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sr.po new file mode 100644 index 000000000..50aa06ced --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-librep. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-librep-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sv.po new file mode 100644 index 000000000..e1ebb25a2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-librep. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ta.po new file mode 100644 index 000000000..38440f3f5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/tr.po new file mode 100644 index 000000000..79c7083d5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-librep. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/uk.po new file mode 100644 index 000000000..5b68677ea --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-librep +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/vi.po new file mode 100644 index 000000000..d67fd152e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/zh_CN.po new file mode 100644 index 000000000..3c1ecb4ec --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-librep. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/zh_HK.po new file mode 100644 index 000000000..e54ecb7fe --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-librep. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/zh_TW.po new file mode 100644 index 000000000..78fdf0e77 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-librep/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-librep. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-librep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.jl.in:12 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.jl.in:14 +#, librep-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/INSTALL new file mode 100644 index 000000000..1e82f28ee --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/INSTALL @@ -0,0 +1,19 @@ +This example relies on: + - the GNOME libraries (libgnomeui, libgnome, libgnomesupport, libart_lgpl) + and their dependencies: imlib (libgdk_imlib), audiofile (libaudiofile), + esound (libesd), zlib (libz). + - the GTK libraries (libgtk, libgdk) + - the glib libraries (libglib, libgmodule) + - the X11 libraries + - the GNOME / Objective C bindings (libobgnome) + - the GTK / Objective C bindings (libobgtk) + - the Objective C runtime libraries (libobjc) + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/Makefile.am new file mode 100644 index 000000000..5756f6a72 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/Makefile.am @@ -0,0 +1,29 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign no-dependencies +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_PROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.m + +# Define a C macro LOCALEDIR indicating where catalogs will be installed. +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ + +# Make sure the gnome.h include file is found. +AM_CPPFLAGS = $(OBGNOME_INCLUDES) $(GNOME_INCLUDEDIR) + +# Link time dependencies. +LDADD = $(GNOME_LIBDIR) $(GNOMEUI_LIBS) -lobgnome -lobgtk -lobjc @LIBINTL@ + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/autoclean.sh new file mode 100755 index 000000000..9daa77ce0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/autoclean.sh @@ -0,0 +1,43 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by autopoint. +rm -f ABOUT-NLS +rm -f config.rpath +rm -f m4/gettext.m4 +rm -f m4/build-to-host.m4 +rm -f m4/host-cpu-c-abi.m4 +rm -f m4/iconv.m4 +rm -f m4/intlmacosx.m4 +rm -f m4/lib-ld.m4 +rm -f m4/lib-link.m4 +rm -f m4/lib-prefix.m4 +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/Makefile.in.in +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f config.guess +rm -f config.sub +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/autogen.sh new file mode 100755 index 000000000..7fc228379 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/autogen.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +autopoint -f # was: gettextize -f -c +rm po/Makevars.template +rm po/Rules-quot +rm po/boldquot.sed +rm po/en@boldquot.header +rm po/en@quot.header +rm po/insert-header.sin +rm po/quot.sed + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/configure.ac new file mode 100644 index 000000000..316c7a5bc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/configure.ac @@ -0,0 +1,28 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-objc-gnome], [0]) +AC_CONFIG_SRCDIR([hello.m]) +AM_INIT_AUTOMAKE([1.11]) + +AC_PROG_CC +AC_SUBST([OBJC],["$CC"]) +AC_SUBST([OBJCFLAGS],["$CFLAGS"]) + +GNOME_INIT +OBGNOME_INCLUDES= +obgnome_prefix=`obgnome-config --prefix` +if test -n "$obgnome_prefix"; then + OBGNOME_INCLUDES="-I $obgnome_prefix/include" +fi +AC_SUBST([OBGNOME_INCLUDES]) + +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION([0.22]) + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile.in]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/hello.m b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/hello.m new file mode 100644 index 000000000..cb3a7dbe1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/hello.m @@ -0,0 +1,93 @@ +/* Example for use of GNU gettext. + This file is in the public domain. + + Source code of the Objective C program. */ + + +/* Get GNOME declarations. */ +#include + +/* Get getpid() declaration. */ +#if defined _WIN32 && !defined __CYGWIN__ +/* native Windows API */ +# include +# define getpid _getpid +#else +/* POSIX API */ +# include +#endif + +static void +quit_callback (GtkWidget *widget, void *data) +{ + gtk_main_quit (); +} + +int +main (int argc, char *argv[]) +{ + Gnome_App *application; + Gtk_Window *window; + Gtk_VBox *panel; + Gtk_Label *label1; + Gtk_Alignment *label1aligned; + Gtk_Label *label2; + Gtk_Alignment *label2aligned; + Gtk_Button *button; + Gtk_ButtonBox *buttonbar; + + /* Initializations. */ + + application = [[Gnome_App alloc] initApp: PACKAGE : VERSION : argc : argv]; + textdomain ("hello-objc-gnome"); + bindtextdomain ("hello-objc-gnome", LOCALEDIR); + + /* Create the GUI elements. */ + + window = [[Gtk_Window alloc] initWithWindowInfo: GTK_WINDOW_TOPLEVEL]; + [window set_title: "Hello example"]; + [window realize]; + [window signal_connect: "delete_event" signalFunc: quit_callback funcData: NULL]; + + label1 = [[Gtk_Label alloc] initWithLabelInfo: _("Hello, world!")]; + + label1aligned = [[Gtk_Alignment alloc] initWithAlignmentInfo: 0.0 : 0.5 : 0 : 0]; + [label1aligned add: label1]; + + label2 = [[Gtk_Label alloc] initWithLabelInfo: g_strdup_printf (_("This program is running as process number %d."), getpid ())]; + + label2aligned = [[Gtk_Alignment alloc] initWithAlignmentInfo: 0.0 : 0.5 : 0 : 0]; + [label2aligned add: label2]; + + button = [Gtk_Button alloc]; + [button initWithLabel: "OK"]; + [button signal_connect: "clicked" signalFunc: quit_callback funcData: NULL]; + + buttonbar = [Gtk_HButtonBox new]; + [buttonbar set_layout: GTK_BUTTONBOX_END]; + [buttonbar pack_start_defaults: button]; + + panel = [[Gtk_VBox alloc] initWithVBoxInfo: FALSE : GNOME_PAD_SMALL]; + [panel pack_start_defaults: label1aligned]; + [panel pack_start_defaults: label2aligned]; + [panel pack_start_defaults: buttonbar]; + + [window add: panel]; + + /* Make the GUI elements visible. */ + + [label1 show]; + [label1aligned show]; + [label2 show]; + [label2aligned show]; + [button show]; + [buttonbar show]; + [panel show]; + [window show]; + + /* Start the event loop. */ + + gtk_main (); + + return 0; +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/m4/Makefile.am new file mode 100644 index 000000000..9219ad199 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/m4/Makefile.am @@ -0,0 +1,4 @@ +EXTRA_DIST = \ + gettext.m4 build-to-host.m4 host-cpu-c-abi.m4 \ + iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \ + nls.m4 po.m4 progtest.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/m4/gnome-gnorba-check.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/m4/gnome-gnorba-check.m4 new file mode 100644 index 000000000..dbac0a6cf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/m4/gnome-gnorba-check.m4 @@ -0,0 +1,35 @@ +dnl +dnl GNOME_GNORBA_HOOK (script-if-gnorba-found, failflag) +dnl +dnl if failflag is "failure" it aborts if gnorba is not found. +dnl + +AC_DEFUN([GNOME_GNORBA_HOOK],[ + GNOME_ORBIT_HOOK([],$2) + AC_CACHE_CHECK([for gnorba libraries],gnome_cv_gnorba_found,[ + gnome_cv_gnorba_found=no + if test x$gnome_cv_orbit_found = xyes; then + GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" + GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" + if test -n "$GNORBA_LIBS"; then + gnome_cv_gnorba_found=yes + fi + fi + ]) + AM_CONDITIONAL(HAVE_GNORBA, test x$gnome_cv_gnorba_found = xyes) + if test x$gnome_cv_orbit_found = xyes; then + $1 + GNORBA_CFLAGS="`gnome-config --cflags gnorba gnomeui`" + GNORBA_LIBS="`gnome-config --libs gnorba gnomeui`" + AC_SUBST(GNORBA_CFLAGS) + AC_SUBST(GNORBA_LIBS) + else + if test x$2 = xfailure; then + AC_MSG_ERROR(gnorba library not installed or installation problem) + fi + fi +]) + +AC_DEFUN([GNOME_GNORBA_CHECK], [ + GNOME_GNORBA_HOOK([],failure) +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/m4/gnome-orbit-check.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/m4/gnome-orbit-check.m4 new file mode 100644 index 000000000..54bf33aa4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/m4/gnome-orbit-check.m4 @@ -0,0 +1,33 @@ +dnl +dnl GNOME_ORBIT_HOOK (script-if-orbit-found, failflag) +dnl +dnl if failflag is "failure" it aborts if orbit is not found. +dnl + +AC_DEFUN([GNOME_ORBIT_HOOK],[ + AC_PATH_PROG(ORBIT_CONFIG,orbit-config,no) + AC_PATH_PROG(ORBIT_IDL,orbit-idl,no) + AC_CACHE_CHECK([for working ORBit environment],gnome_cv_orbit_found,[ + if test x$ORBIT_CONFIG = xno -o x$ORBIT_IDL = xno; then + gnome_cv_orbit_found=no + else + gnome_cv_orbit_found=yes + fi + ]) + AM_CONDITIONAL(HAVE_ORBIT, test x$gnome_cv_orbit_found = xyes) + if test x$gnome_cv_orbit_found = xyes; then + $1 + ORBIT_CFLAGS=`orbit-config --cflags client server` + ORBIT_LIBS=`orbit-config --use-service=name --libs client server` + AC_SUBST(ORBIT_CFLAGS) + AC_SUBST(ORBIT_LIBS) + else + if test x$2 = xfailure; then + AC_MSG_ERROR(ORBit not installed or installation problem) + fi + fi +]) + +AC_DEFUN([GNOME_ORBIT_CHECK], [ + GNOME_ORBIT_HOOK([],failure) +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/m4/gnome.m4 b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/m4/gnome.m4 new file mode 100644 index 000000000..659c22c49 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/m4/gnome.m4 @@ -0,0 +1,128 @@ +dnl +dnl GNOME_INIT_HOOK (script-if-gnome-enabled, [failflag], [additional-inits]) +dnl +dnl if failflag is "fail" then GNOME_INIT_HOOK will abort if gnomeConf.sh +dnl is not found. +dnl + +AC_DEFUN([GNOME_INIT_HOOK],[ + AC_SUBST(GNOME_LIBS) + AC_SUBST(GNOMEUI_LIBS) + AC_SUBST(GNOMEGNORBA_LIBS) + AC_SUBST(GTKXMHTML_LIBS) + AC_SUBST(ZVT_LIBS) + AC_SUBST(GNOME_LIBDIR) + AC_SUBST(GNOME_INCLUDEDIR) + + AC_ARG_WITH(gnome-includes, + [ --with-gnome-includes Specify location of GNOME headers],[ + CFLAGS="$CFLAGS -I$withval" + ]) + + AC_ARG_WITH(gnome-libs, + [ --with-gnome-libs Specify location of GNOME libs],[ + LDFLAGS="$LDFLAGS -L$withval" + gnome_prefix=$withval + ]) + + AC_ARG_WITH(gnome, + [ --with-gnome Specify prefix for GNOME files], + if test x$withval = xyes; then + want_gnome=yes + dnl Note that an empty true branch is not + dnl valid sh syntax. + ifelse([$1], [], :, [$1]) + else + if test "x$withval" = xno; then + want_gnome=no + else + want_gnome=yes + LDFLAGS="$LDFLAGS -L$withval/lib" + CFLAGS="$CFLAGS -I$withval/include" + gnome_prefix=$withval/lib + fi + fi, + want_gnome=yes) + + if test "x$want_gnome" = xyes; then + + AC_PATH_PROG(GNOME_CONFIG,gnome-config,no) + if test "$GNOME_CONFIG" = "no"; then + no_gnome_config="yes" + else + AC_MSG_CHECKING(if $GNOME_CONFIG works) + if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then + AC_MSG_RESULT(yes) + GNOME_GNORBA_HOOK([],$2) + GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome`" + GNOMEUI_LIBS="`$GNOME_CONFIG --libs-only-l gnomeui`" + GNOMEGNORBA_LIBS="`$GNOME_CONFIG --libs-only-l gnorba gnomeui`" + GTKXMHTML_LIBS="`$GNOME_CONFIG --libs-only-l gtkxmhtml`" + ZVT_LIBS="`$GNOME_CONFIG --libs-only-l zvt`" + GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`" + GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`" + $1 + else + AC_MSG_RESULT(no) + no_gnome_config="yes" + fi + fi + + if test x$exec_prefix = xNONE; then + if test x$prefix = xNONE; then + gnome_prefix=$ac_default_prefix/lib + else + gnome_prefix=$prefix/lib + fi + else + gnome_prefix=`eval echo \`echo $libdir\`` + fi + + if test "$no_gnome_config" = "yes"; then + AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix) + if test -f $gnome_prefix/gnomeConf.sh; then + AC_MSG_RESULT(found) + echo "loading gnome configuration from" \ + "$gnome_prefix/gnomeConf.sh" + . $gnome_prefix/gnomeConf.sh + $1 + else + AC_MSG_RESULT(not found) + if test x$2 = xfail; then + AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install) + fi + fi + fi + fi + + if test -n "$3"; then + n="$3" + for i in $n; do + AC_MSG_CHECKING(extra library \"$i\") + case $i in + applets) + AC_SUBST(GNOME_APPLETS_LIBS) + GNOME_APPLETS_LIBS=`$GNOME_CONFIG --libs-only-l applets` + AC_MSG_RESULT($GNOME_APPLETS_LIBS);; + docklets) + AC_SUBST(GNOME_DOCKLETS_LIBS) + GNOME_DOCKLETS_LIBS=`$GNOME_CONFIG --libs-only-l docklets` + AC_MSG_RESULT($GNOME_DOCKLETS_LIBS);; + capplet) + AC_SUBST(GNOME_CAPPLET_LIBS) + GNOME_CAPPLET_LIBS=`$GNOME_CONFIG --libs-only-l capplet` + AC_MSG_RESULT($GNOME_CAPPLET_LIBS);; + *) + AC_MSG_RESULT(unknown library) + esac + done + fi +]) + +dnl +dnl GNOME_INIT ([additional-inits]) +dnl + +AC_DEFUN([GNOME_INIT],[ + GNOME_INIT_HOOK([],fail,$1) +]) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/Makevars b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/Makevars new file mode 100644 index 000000000..5c94986f1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/Makevars @@ -0,0 +1,95 @@ +# Makefile variables for PO directory in any package using GNU gettext. +# +# Copyright (C) 2003-2019 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation gives +# unlimited permission to use, copy, distribute, and modify it. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = \ + --keyword=_ --flag=_:1:pass-c-format \ + --keyword=N_ --flag=N_:1:pass-c-format \ + --flag=g_log:3:c-format --flag=g_logv:3:c-format \ + --flag=g_error:1:c-format --flag=g_message:1:c-format \ + --flag=g_critical:1:c-format --flag=g_warning:1:c-format \ + --flag=g_print:1:c-format \ + --flag=g_printerr:1:c-format \ + --flag=g_strdup_printf:1:c-format --flag=g_strdup_vprintf:1:c-format \ + --flag=g_printf_string_upper_bound:1:c-format \ + --flag=g_snprintf:3:c-format --flag=g_vsnprintf:3:c-format \ + --flag=g_string_sprintf:2:c-format \ + --flag=g_string_sprintfa:2:c-format \ + --flag=g_scanner_error:2:c-format \ + --flag=g_scanner_warn:2:c-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = no + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = yes + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = yes diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/af.po new file mode 100644 index 000000000..d40476217 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ast.po new file mode 100644 index 000000000..0809cd33f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-objc-gnome +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/bg.po new file mode 100644 index 000000000..d4c668562 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-objc-gnome package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-objc-gnome 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ca.po new file mode 100644 index 000000000..a84bc0066 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-objc-gnome. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/cs.po new file mode 100644 index 000000000..7c0404862 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/da.po new file mode 100644 index 000000000..b98c16227 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-objc-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/de.po new file mode 100644 index 000000000..bbb7d958b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-objc-gnome. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/el.po new file mode 100644 index 000000000..3e87be8c9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-objc-gnome +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/eo.po new file mode 100644 index 000000000..caf253916 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/es.po new file mode 100644 index 000000000..1413a1ff7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/fi.po new file mode 100644 index 000000000..5738994cd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.m:52 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/fr.po new file mode 100644 index 000000000..f0c9c9105 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ga.po new file mode 100644 index 000000000..e154cf15a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-objc-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/gl.po new file mode 100644 index 000000000..fccc6fe85 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-objc-gnome package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/hr.po new file mode 100644 index 000000000..a518aef8a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-objc-gnome to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/hu.po new file mode 100644 index 000000000..34b6b6e0a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-objc-gnome. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/id.po new file mode 100644 index 000000000..5a917f18b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-objc-gnome-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/it.po new file mode 100644 index 000000000..428fbb311 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-objc-gnome. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ja.po new file mode 100644 index 000000000..f3a63fbed --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-objc-gnome' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ka.po new file mode 100644 index 000000000..d0d90b1b1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ky.po new file mode 100644 index 000000000..ad2bea582 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-objc-gnome' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/lv.po new file mode 100644 index 000000000..02753777a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-objc-gnome +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ms.po new file mode 100644 index 000000000..28bb43ba0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ms.po @@ -0,0 +1,28 @@ +# hello-objc-gnome Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/mt.po new file mode 100644 index 000000000..af04543c0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/mt.po @@ -0,0 +1,27 @@ +# hello-objc-gnome-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/nb.po new file mode 100644 index 000000000..d827aea7f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-objc-gnome package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/nl.po new file mode 100644 index 000000000..3f5f54145 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-objc-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/nn.po new file mode 100644 index 000000000..250e504f9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-objc-gnome +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/pl.po new file mode 100644 index 000000000..6cabd7806 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-objc-gnome domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/pt.po new file mode 100644 index 000000000..c3df6ea02 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-objc-gnome' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/pt_BR.po new file mode 100644 index 000000000..0b0231be4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ro.po new file mode 100644 index 000000000..411e6f2d0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-objc-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-objc-gnome 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-objc-gnome-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ru.po new file mode 100644 index 000000000..3ea227f14 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-objc-gnome-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sk.po new file mode 100644 index 000000000..2a143fb4d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-objc-gnome package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sl.po new file mode 100644 index 000000000..79c79c30a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-objc-gnome-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sq.po new file mode 100644 index 000000000..cef61243a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sr.po new file mode 100644 index 000000000..2847fc74b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-objc-gnome. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sv.po new file mode 100644 index 000000000..33fd4e93a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-objc-gnome. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ta.po new file mode 100644 index 000000000..9b24a4ef2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/tr.po new file mode 100644 index 000000000..d3cf64d4c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-objc-gnome. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/uk.po new file mode 100644 index 000000000..b3806a94d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-objc-gnome +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/vi.po new file mode 100644 index 000000000..de80462d3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/zh_CN.po new file mode 100644 index 000000000..d3dce5240 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-objc-gnome. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/zh_HK.po new file mode 100644 index 000000000..a90e790b3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-objc-gnome. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/zh_TW.po new file mode 100644 index 000000000..a0924e0f7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnome/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-objc-gnome. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnome 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:52 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.m:57 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/AppController.h b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/AppController.h new file mode 100644 index 000000000..7b1912a70 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/AppController.h @@ -0,0 +1,35 @@ +/* Example for use of GNU gettext. + This file is in the public domain. + + Interface of the AppController class. */ + +#include + +@class Hello; + +@interface AppController : NSObject +{ + Hello *hello; +} + ++ (void)initialize; + +- (id)init; +- (void)dealloc; + +- (void)awakeFromNib; + +- (void)applicationDidFinishLaunching + :(NSNotification *)notif; + +- (BOOL)applicationShouldTerminate:(id)sender; +- (void)applicationWillTerminate:(NSNotification *)notification; + +- (BOOL)application:(NSApplication *)application openFile:(NSString *)fileName; + +- (void)showPrefPanel:(id)sender; +- (void)showInfoPanel:(id)sender; + +- (void)showHelloWindow:(id)sender; + +@end diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/AppController.m b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/AppController.m new file mode 100644 index 000000000..96475cd38 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/AppController.m @@ -0,0 +1,81 @@ +/* Example for use of GNU gettext. + This file is in the public domain. + + Source code of the AppController class. */ + +#include "AppController.h" +#include "Hello.h" + +@implementation AppController + +static NSDictionary *infoDict = nil; + ++ (void)initialize +{ + NSMutableDictionary *defaults = [NSMutableDictionary dictionary]; + + [[NSUserDefaults standardUserDefaults] registerDefaults: defaults]; + [[NSUserDefaults standardUserDefaults] synchronize]; +} + +- (id)init +{ + self = [super init]; + return self; +} + +- (void)dealloc +{ + if (hello) + RELEASE (hello); + + [super dealloc]; +} + +- (void)awakeFromNib +{ +} + +- (void)applicationDidFinishLaunching:(NSNotification *)notif +{ +} + +- (BOOL)applicationShouldTerminate:(id)sender +{ + return YES; +} + +- (void)applicationWillTerminate:(NSNotification *)notification +{ +} + +- (BOOL)application:(NSApplication *)application openFile:(NSString *)fileName +{ +} + +- (void)showPrefPanel:(id)sender +{ +} + +- (void)showInfoPanel:(id)sender +{ + if (!infoDict) + { + NSString *fp; + NSBundle *bundle = [NSBundle mainBundle]; + + fp = [bundle pathForResource: @"Info-project" ofType: @"plist"]; + infoDict = [[NSDictionary dictionaryWithContentsOfFile: fp] retain]; + } + [[NSApplication sharedApplication] orderFrontStandardInfoPanelWithOptions: infoDict]; +} + +- (void)showHelloWindow:(id)sender +{ + if (!hello) + hello = [[Hello alloc] init]; + + [hello makeKeyAndOrderFront]; +} + +@end diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/BUGS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/BUGS new file mode 100644 index 000000000..0120751bf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/BUGS @@ -0,0 +1,3 @@ +Correct display of characters depends on the GNUstep display engine; as of +GNUstep-1.8.0, it works only for ISO-8859-1 characters (regardless of whether +GNUSTEP_STRING_ENCODING is set to NSUTF8StringEncoding or not). diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/GNUmakefile b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/GNUmakefile new file mode 100644 index 000000000..ba4c565d4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/GNUmakefile @@ -0,0 +1,39 @@ +# Example for use of GNU gettext. +# This file is in the public domain. + +include $(GNUSTEP_MAKEFILES)/common.make + +# Subprojects +SUBPROJECTS = po + +# Main application +PACKAGE_NAME = Hello +APP_NAME = Hello +GNUSTEP_INSTALLATION_DIR = $(GNUSTEP_LOCAL_ROOT) +Hello_APPLICATION_ICON = + +# Additional libraries +ADDITIONAL_GUI_LIBS += + +# Resource files +Hello_RESOURCE_FILES = +Hello_LOCALIZED_RESOURCE_FILES = Localizable.strings +Hello_LANGUAGES := $(sort English $(shell MAKEFLAGS= $(MAKE) -s -C po echo-languages)) + +# Header files +Hello_HEADERS = AppController.h Hello.h + +# Class files +Hello_OBJC_FILES = main.m AppController.m Hello.m + +# C files +Hello_C_FILES = + +-include GNUmakefile.preamble +-include GNUmakefile.local +include $(GNUSTEP_MAKEFILES)/aggregate.make +include $(GNUSTEP_MAKEFILES)/application.make +-include GNUmakefile.postamble + +internal-distclean:: + rm -rf *.lproj diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/Hello.h b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/Hello.h new file mode 100644 index 000000000..89458eda2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/Hello.h @@ -0,0 +1,31 @@ +/* Example for use of GNU gettext. + This file is in the public domain. + + Interface of the Hello class. */ + +#include + +@interface Hello : NSObject +{ + NSWindow *window; + + NSTextField *label1; + NSTextField *label2; + + id okButton; +} + +- (id)init; +- (void)dealloc; + +- (void)makeKeyAndOrderFront; + +- (void)done; + +@end + +@interface Hello (UIBuilder) + +- (void)createUI; + +@end diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/Hello.m b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/Hello.m new file mode 100644 index 000000000..56f31f63f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/Hello.m @@ -0,0 +1,99 @@ +/* Example for use of GNU gettext. + This file is in the public domain. + + Source code of the Hello class. */ + +#include +#include "Hello.h" +#include +#include + +@implementation Hello + +- (id)init +{ + if ((self = [super init])) + [self createUI]; + return self; +} + +- (void)dealloc +{ + RELEASE (window); + [super dealloc]; +} + +- (void)makeKeyAndOrderFront +{ + if (![window isVisible]) + [window center]; + [window makeKeyAndOrderFront:self]; +} + +- (void)done +{ + [window close]; +} + +@end + +@implementation Hello (UIBuilder) + +- (void)createUI +{ + GSVbox *cview; + GSHbox *buttonbar; + int i; + + label1 = [NSTextField new]; + [label1 setStringValue: _(@"Hello, world!")]; + [label1 setAlignment: NSLeftTextAlignment]; + [label1 setBordered: NO]; + [label1 setEditable: NO]; + [label1 setBezeled: NO]; + [label1 setDrawsBackground: NO]; + [label1 sizeToFit]; + + label2 = [NSTextField new]; + [label2 setStringValue: [NSString stringWithFormat: _(@"This program is running as process number %d."), [[NSProcessInfo processInfo] processIdentifier]]]; + [label2 setAlignment: NSLeftTextAlignment]; + [label2 setBordered: NO]; + [label2 setEditable: NO]; + [label2 setBezeled: NO]; + [label2 setDrawsBackground: NO]; + [label2 sizeToFit]; + + okButton = [NSButton new]; + [okButton setTitle: @"OK"]; + [okButton setTarget: self]; + [okButton setAction: @selector(done)]; + [okButton setFrameSize: NSMakeSize(60,22)]; + [okButton setAutoresizingMask: 7]; + + buttonbar = [GSHbox new]; + [buttonbar setAutoresizingMask: NSViewMinXMargin]; + [buttonbar addView: okButton]; + AUTORELEASE (okButton); + + cview = [GSVbox new]; + // GSVbox is flawed: We have to add the controls bottom-up, and mark the + // last one (= the topmost one) as non-resizable in Y direction, so that the + // Y space becomes equally distributed _between_ (not above) the subviews. + [cview addView: buttonbar]; + AUTORELEASE (buttonbar); + [cview addView: label2]; + AUTORELEASE (label2); + [cview addView: label1 enablingYResizing: NO]; + AUTORELEASE (label1); + + window = [[NSWindow alloc] initWithContentRect: NSMakeRect(0,0, [cview frame].size.width, [cview frame].size.height) + styleMask: (NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask) + backing: NSBackingStoreBuffered + defer: NO]; + [window setDelegate: self]; + [window setTitle: @"Hello example"]; + [window setReleasedWhenClosed: NO]; + [window setContentView: cview]; +} + +@end diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/INSTALL new file mode 100644 index 000000000..8652d6ace --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/INSTALL @@ -0,0 +1,15 @@ +This example relies on: + - the GNUstep libraries (libgnustep-gui, libgnustep-base) + and their dependencies (libiconv or glibc, and ffcall) + - the Objective C runtime libraries (libobjc) + +GNUstep applications don't need to be configured or installed in order to run; +all you need is to + - Prepare your environment, as described in the GNUstep-HOWTO. E.g. + . /usr/share/GNUstep/Makefiles/GNUstep.sh + - ./autogen.sh + - make + - openapp ./Hello +Cleanup: + - make distclean + - ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/autoclean.sh new file mode 100755 index 000000000..1fbc5e8ca --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/autoclean.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +make distclean + +rm -f po/remove-potcdate.sed +rm -f po/remove-potcdate.sin +rm -f po/*.pot +rm -rf *.lproj diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/autogen.sh new file mode 100755 index 000000000..1528b5017 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/autogen.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/main.m b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/main.m new file mode 100644 index 000000000..6da032b4f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/main.m @@ -0,0 +1,113 @@ +/* Example for use of GNU gettext. + This file is in the public domain. + + Source code of the main program. */ + +#include +#include "AppController.h" + +#define APP_NAME @"Hello" + +/* Create the application's menu. */ +static void +createMenu () +{ + NSMenu *menu; + NSMenu *info; + NSMenu *edit; + NSMenu *services; + NSMenu *windows; + + SEL action = @selector(method:); + + menu = [[NSMenu alloc] initWithTitle: APP_NAME]; + [menu addItemWithTitle: @"Info" + action: action + keyEquivalent: @""]; + [menu addItemWithTitle: @"Edit" + action: action + keyEquivalent: @""]; + [menu addItemWithTitle: @"Hello..." + action: @selector(showHelloWindow:) + keyEquivalent: @""]; + [menu addItemWithTitle: @"Windows" + action: action + keyEquivalent: @""]; + [menu addItemWithTitle: @"Services" + action: action + keyEquivalent: @""]; + [menu addItemWithTitle: @"Hide" + action: @selector(hide:) + keyEquivalent: @"h"]; + [menu addItemWithTitle: @"Quit" + action: @selector(terminate:) + keyEquivalent: @"q"]; + + info = AUTORELEASE ([[NSMenu alloc] init]); + [info addItemWithTitle: @"Info Panel..." + action: @selector(showInfoPanel:) + keyEquivalent: @""]; + [info addItemWithTitle: @"Preferences" + action: @selector(showPrefPanel:) + keyEquivalent: @""]; + [info addItemWithTitle: @"Help" + action: action + keyEquivalent: @"?"]; + [menu setSubmenu: info forItem: [menu itemWithTitle: @"Info"]]; + + edit = AUTORELEASE ([[NSMenu alloc] init]); + [edit addItemWithTitle: @"Cut" + action: @selector(cut:) + keyEquivalent: @"x"]; + [edit addItemWithTitle: @"Copy" + action: @selector(copy:) + keyEquivalent: @"c"]; + [edit addItemWithTitle: @"Paste" + action: @selector(paste:) + keyEquivalent: @"v"]; + [edit addItemWithTitle: @"Delete" + action: @selector(delete:) + keyEquivalent: @""]; + [edit addItemWithTitle: @"Select All" + action: @selector(selectAll:) + keyEquivalent: @"a"]; + [menu setSubmenu: edit forItem: [menu itemWithTitle: @"Edit"]]; + + windows = AUTORELEASE ([[NSMenu alloc] init]); + [windows addItemWithTitle: @"Arrange" + action: @selector(arrangeInFront:) + keyEquivalent: @""]; + [windows addItemWithTitle: @"Miniaturize" + action: @selector(performMiniaturize:) + keyEquivalent: @"m"]; + [windows addItemWithTitle: @"Close" + action: @selector(performClose:) + keyEquivalent: @"w"]; + [menu setSubmenu: windows forItem: [menu itemWithTitle: @"Windows"]]; + + services = AUTORELEASE ([[NSMenu alloc] init]); + [menu setSubmenu: services forItem: [menu itemWithTitle: @"Services"]]; + + [[NSApplication sharedApplication] setMainMenu: menu]; + [[NSApplication sharedApplication] setServicesMenu: services]; + [[NSApplication sharedApplication] setWindowsMenu: windows]; +} + +/* Initialise and go! */ +int +main(int argc, const char *argv[]) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + AppController *controller; + + [NSApplication sharedApplication]; + + createMenu (); + + controller = [[AppController alloc] init]; + [NSApp setDelegate:controller]; + + RELEASE (pool); + + return NSApplicationMain (argc, argv); +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/GNUmakefile b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/GNUmakefile new file mode 100644 index 000000000..3e28e176b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/GNUmakefile @@ -0,0 +1,272 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile - processed by GNU make. + +# NLS is enabled by default. +USE_NLS = yes + +# List of files which contain translatable strings. +POTFILES = \ + Hello.m + +# Usually the message domain is the same as the package name in lower case. +DOMAIN = hello-objc-gnustep + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages, +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +-include $(GNUSTEP_MAKEFILES)/rules.make + +# Main application +PACKAGE_NAME = Hello +PACKAGE_VERSION = 0 + +XGETTEXT = xgettext +MSGMERGE = msgmerge +MSGMERGE_UPDATE = msgmerge --update +MSGMERGE_FOR_MSGFMT_OPTION = --for-msgfmt +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# Set of available languages. +LINGUAS := $(shell sed -e "/^\#/d" LINGUAS) +# Set of languages which use msgen. +ENLINGUAS := $(filter-out $(LINGUAS), en) + +top_srcdir = .. + +include LocaleAliases + +POTFILES_DEPS = $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POFILES = $(foreach lang, $(LINGUAS), $(lang).po) +UPDATEPOFILES = $(foreach lang, $(LINGUAS), $(lang).po-update) +DUMMYPOFILES = $(foreach lang, $(LINGUAS), $(lang).nop) +STRINGSFILES = $(foreach lang, $(LINGUAS), $(top_srcdir)/$(NSLOCALE_$(lang)).lproj/Localizable.strings) +ENSTRINGSFILES = $(foreach lang, $(ENLINGUAS), $(top_srcdir)/$(NSLOCALE_$(lang)).lproj/Localizable.strings) +CATALOGS = $(STRINGSFILES) $(ENSTRINGSFILES) + +.SUFFIXES: .po .sed .sin .nop .po-create .po-update + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +internal-all:: all-local-$(USE_NLS) + +all-local-yes: $(CATALOGS) +all-local-no: + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE_NAME)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE_NAME)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE_NAME)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).pot && \ + mv $(DOMAIN).po $(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f $${lang}.po; then \ + echo "$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + +internal-clean:: + rm -f remove-potcdate.sed + +update-po: + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-strings + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + echo "$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-7] | 0.1[1-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + + +update-strings: $(CATALOGS) + @: + +# During .po -> .strings conversion, take into account the most recent changes +# to the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(STRINGSFILES): $(DOMAIN).pot $(POFILES) + mkdir -p $(patsubst %/,%, $(dir $@)) + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $@.1po $(UNIXLOCALE_$(patsubst %.lproj,%, $(notdir $(patsubst %/,%, $(dir $@))))).po $(DOMAIN).pot + msgcat --stringtable-output -o $@.tmp $@.1po + mv $@.tmp $@ + rm -f $@.1po + +$(ENSTRINGSFILES): $(DOMAIN).pot + mkdir -p $(patsubst %/,%, $(dir $@)) + $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $(UNIXLOCALE_$(patsubst %.lproj,%, $(notdir $(patsubst %/,%, $(dir $@))))) --stringtable-output -o $@.tmp + mv $@.tmp $@ + +echo-languages: + @echo $(foreach lang, $(LINGUAS), $(NSLOCALE_$(lang))) + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/LocaleAliases b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/LocaleAliases new file mode 100644 index 000000000..bac4e7135 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/LocaleAliases @@ -0,0 +1,784 @@ +# The correspondence between Unix style and NeXTstep style locale names is +# taken from +# $prefix/System/Library/Libraries/Resources/gnustep-base/Languages/Locale.aliases +# and converted through +# sed -n -e 's,^ *\(..*\) = \(..*\);$,NSLOCALE_\1 = \2,p' < Locale.aliases +# sed -n -e 's,^ *\(..*\) = \(..*\);$,UNIXLOCALE_\2 = \1,p' < Locale.aliases + +NSLOCALE_aa = Afar +NSLOCALE_aa_DJ = DjiboutiAfar +NSLOCALE_aa_ER = EritreaAfar +NSLOCALE_aa_ET = EthiopiaAfar +NSLOCALE_ab = Abkhazian +NSLOCALE_ace = Achinese +NSLOCALE_ach = Acoli +NSLOCALE_ada = Adangme +NSLOCALE_ady = Adyghe +NSLOCALE_af = Afrikaans +NSLOCALE_ak = Akan +NSLOCALE_am = Amharic +NSLOCALE_an = Aragonese +NSLOCALE_anp = Angika +NSLOCALE_ar = Arabic +NSLOCALE_ar_AE = UnitedArabEmiratesArabic +NSLOCALE_ar_BH = BahrainArabic +NSLOCALE_ar_DZ = AlgeriaArabic +NSLOCALE_ar_EG = EgyptArabic +NSLOCALE_ar_IN = IndiaArabic +NSLOCALE_ar_IQ = IraqArabic +NSLOCALE_ar_JO = JordanArabic +NSLOCALE_ar_KW = KuwaitArabic +NSLOCALE_ar_LB = LebanonArabic +NSLOCALE_ar_LY = LibyaArabic +NSLOCALE_ar_MA = MoroccoArabic +NSLOCALE_ar_OM = OmanArabic +NSLOCALE_ar_QA = QatarArabic +NSLOCALE_ar_SA = SaudiArabiaArabic +NSLOCALE_ar_SD = SudanArabic +NSLOCALE_ar_SY = SyriaArabic +NSLOCALE_ar_TN = TunisiaArabic +NSLOCALE_ar_YE = YemenArabic +NSLOCALE_arn = Mapudungun +NSLOCALE_as = Assamese +NSLOCALE_ast = Asturian +NSLOCALE_av = Avaric +NSLOCALE_awa = Awadhi +NSLOCALE_ay = Aymara +NSLOCALE_az = Azerbaijani +NSLOCALE_ba = Bashkir +NSLOCALE_bal = Baluchi +NSLOCALE_ban = Balinese +NSLOCALE_bas = Basa +NSLOCALE_be = Belarusian +NSLOCALE_bej = Beja +NSLOCALE_bem = Bemba +NSLOCALE_bg = Bulgarian +NSLOCALE_bh = Bihari +NSLOCALE_bho = Bhojpuri +NSLOCALE_bi = Bislama +NSLOCALE_bik = Bikol +NSLOCALE_bin = Bini +NSLOCALE_bm = Bambara +NSLOCALE_bn = Bengali +NSLOCALE_bn_BD = BangladeshBengali +NSLOCALE_bn_IN = IndiaBengali +NSLOCALE_bo = Tibetan +NSLOCALE_br = Breton +NSLOCALE_bs = Bosnian +NSLOCALE_bua = Buriat +NSLOCALE_bug = Buginese +NSLOCALE_byn = Blin +NSLOCALE_ca = Catalan +NSLOCALE_ce = Chechen +NSLOCALE_ceb = Cebuano +NSLOCALE_ch = Chamorro +NSLOCALE_chm = Mari +NSLOCALE_co = Corsican +NSLOCALE_cr = Cree +NSLOCALE_crh = CrimeanTatar +NSLOCALE_cs = Czech +NSLOCALE_cu = ChurchSlavic +NSLOCALE_cv = Chuvash +NSLOCALE_cy = Welsh +NSLOCALE_da = Danish +NSLOCALE_de = German +NSLOCALE_de_AT = AustriaGerman +NSLOCALE_de_BE = BelgiumGerman +NSLOCALE_de_CH = SwitzerlandGerman +NSLOCALE_de_LU = LuxemburgGerman +NSLOCALE_din = Dinka +NSLOCALE_doi = Dogri +NSLOCALE_dv = Maldivian +NSLOCALE_dyu = Dyula +NSLOCALE_dz = Bhutani +NSLOCALE_efi = Efik +NSLOCALE_el = Greek +NSLOCALE_el_GR = GreeceGreek +NSLOCALE_en = English +NSLOCALE_en_AU = AustraliaEnglish +NSLOCALE_en_BW = BotswanaEnglish +NSLOCALE_en_CA = CanadaEnglish +NSLOCALE_en_DK = DenmarkEnglish +NSLOCALE_en_GB = BritainEnglish +NSLOCALE_en_HK = HongKongEnglish +NSLOCALE_en_IE = IrelandEnglish +NSLOCALE_en_IN = IndiaEnglish +NSLOCALE_en_NZ = NewZealandEnglish +NSLOCALE_en_PH = PhilippinesEnglish +NSLOCALE_en_SG = SingaporeEnglish +NSLOCALE_en_US = AmericanEnglish +NSLOCALE_en_ZA = SouthAfricaEnglish +NSLOCALE_en_ZW = ZimbabweEnglish +NSLOCALE_eo = Esperanto +NSLOCALE_es = Spanish +NSLOCALE_es_AR = ArgentinaSpanish +NSLOCALE_es_BO = BoliviaSpanish +NSLOCALE_es_CL = ChileSpanish +NSLOCALE_es_CO = ColombiaSpanish +NSLOCALE_es_CR = CostaRicaSpanish +NSLOCALE_es_DO = DominicanRepublicSpanish +NSLOCALE_es_EC = EcuadorSpanish +NSLOCALE_es_ES = SpainSpanish +NSLOCALE_es_GT = GuatemalaSpanish +NSLOCALE_es_HN = HondurasSpanish +NSLOCALE_es_MX = MexicoSpanish +NSLOCALE_es_NI = NicaraguaSpanish +NSLOCALE_es_PA = PanamaSpanish +NSLOCALE_es_PE = PeruSpanish +NSLOCALE_es_PR = PuertoRicoSpanish +NSLOCALE_es_PY = ParaguaySpanish +NSLOCALE_es_SV = ElSalvadorSpanish +NSLOCALE_es_US = USASpanish +NSLOCALE_es_UY = UruguaySpanish +NSLOCALE_es_VE = VenezuelaSpanish +NSLOCALE_et = Estonian +NSLOCALE_et_EE = EstoniaEstonian +NSLOCALE_eu = Basque +NSLOCALE_eu_ES = SpainBasque +NSLOCALE_ewo = Ewondo +NSLOCALE_fa = Persian +NSLOCALE_fan = Fang +NSLOCALE_ff = Fulah +NSLOCALE_fi = Finnish +NSLOCALE_fil = Filipino +NSLOCALE_fj = Fijian +NSLOCALE_fo = Faroese +NSLOCALE_fon = Fon +NSLOCALE_fr = French +NSLOCALE_fr_BE = BelgiumFrench +NSLOCALE_fr_CA = CanadaFrench +NSLOCALE_fr_CH = SwitzerlandFrench +NSLOCALE_fr_LU = LuxemburgFrench +NSLOCALE_fur = Friulian +NSLOCALE_fy = WesternFrisian +NSLOCALE_ga = Irish +NSLOCALE_gaa = Ga +NSLOCALE_gay = Gayo +NSLOCALE_gba = Gbaya +NSLOCALE_gd = Gaelic +NSLOCALE_gd_GB = ScotsGaelic +NSLOCALE_gez = Geez +NSLOCALE_gez_ER = EritreaGeez +NSLOCALE_gez_ET = EthiopiaGeez +NSLOCALE_gl = Gallegan +NSLOCALE_gn = Guarani +NSLOCALE_gon = Gondi +NSLOCALE_gor = Gorontalo +NSLOCALE_grb = Grebo +NSLOCALE_gu = Gujarati +NSLOCALE_gv = Manx +NSLOCALE_ha = Hausa +NSLOCALE_he = Hebrew +NSLOCALE_hi = Hindi +NSLOCALE_hil = Hiligaynon +NSLOCALE_hmn = Hmong +NSLOCALE_ho = HiriMotu +NSLOCALE_hr = Croatian +NSLOCALE_ht = Haitian +NSLOCALE_hu = Hungarian +NSLOCALE_hy = Armenian +NSLOCALE_hz = Herero +NSLOCALE_ia = Interlingua +NSLOCALE_iba = Iban +NSLOCALE_id = Indonesian +NSLOCALE_ie = Interlingue +NSLOCALE_ig = Igbo +NSLOCALE_ii = SichuanYi +NSLOCALE_ik = Inupiak +NSLOCALE_ilo = Iloko +NSLOCALE_inh = Ingush +NSLOCALE_io = Ido +NSLOCALE_is = Icelandic +NSLOCALE_it = Italian +NSLOCALE_it_CH = SwitzerlandItalian +NSLOCALE_iu = Inuktitut +NSLOCALE_iw = Hebrew +NSLOCALE_ja = Japanese +NSLOCALE_jv = Javanese +NSLOCALE_ka = Georgian +NSLOCALE_kaa = KaraKalpak +NSLOCALE_kab = Kabyle +NSLOCALE_kac = Kachin +NSLOCALE_kam = Kamba +NSLOCALE_kbd = Kabardian +NSLOCALE_kg = Kongo +NSLOCALE_kha = Khasi +NSLOCALE_ki = Kikuyu +NSLOCALE_kj = Kwanyama +NSLOCALE_kk = Kazakh +NSLOCALE_kl = Greenlandic +NSLOCALE_km = Cambodian +NSLOCALE_kmb = Kimbundu +NSLOCALE_kn = Kannada +NSLOCALE_ko = Korean +NSLOCALE_kr = Kanuri +NSLOCALE_krc = KarachayBalkar +NSLOCALE_krl = Karelian +NSLOCALE_kru = Kurukh +NSLOCALE_ks = Kashmiri +NSLOCALE_ku = Kurdish +NSLOCALE_kum = Kumyk +NSLOCALE_kv = Komi +NSLOCALE_kw = Cornish +NSLOCALE_ky = Kirghiz +NSLOCALE_la = Latin +NSLOCALE_lad = Ladino +NSLOCALE_lam = Lamba +NSLOCALE_lb = Luxembourgish +NSLOCALE_lez = Lezghian +NSLOCALE_lg = Ganda +NSLOCALE_li = Limburgish +NSLOCALE_ln = Lingala +NSLOCALE_lo = Lao +NSLOCALE_lol = Mongo +NSLOCALE_loz = Lozi +NSLOCALE_lt = Lithuanian +NSLOCALE_lu = LubaKatanga +NSLOCALE_lua = LubaLulua +NSLOCALE_lug = Luganda +NSLOCALE_lun = Lunda +NSLOCALE_luo = Luo +NSLOCALE_lus = Lushai +NSLOCALE_lv = Latvian +NSLOCALE_mad = Madurese +NSLOCALE_mag = Magahi +NSLOCALE_mai = Maithili +NSLOCALE_mak = Makasar +NSLOCALE_man = Mandingo +NSLOCALE_mas = Masai +NSLOCALE_mdf = Moksha +NSLOCALE_mdr = Mandar +NSLOCALE_men = Mende +NSLOCALE_mg = Malagasy +NSLOCALE_mh = Marshallese +NSLOCALE_mi = Maori +NSLOCALE_min = Minangkabau +NSLOCALE_mk = Macedonian +NSLOCALE_ml = Malayalam +NSLOCALE_mn = Mongolian +NSLOCALE_mni = Manipuri +NSLOCALE_mo = Moldavian +NSLOCALE_mos = Mossi +NSLOCALE_mr = Marathi +NSLOCALE_ms = Malay +NSLOCALE_mt = Maltese +NSLOCALE_my = Burmese +NSLOCALE_myv = Erzya +NSLOCALE_na = Nauru +NSLOCALE_nap = Neapolitan +NSLOCALE_nb = NorwegianBokmal +NSLOCALE_nd = NdebeleNorth +NSLOCALE_ne = Nepali +NSLOCALE_new = NepalBhasa +NSLOCALE_ng = Ndonga +NSLOCALE_nia = Nias +NSLOCALE_nl = Dutch +NSLOCALE_nl_BE = BelgiumDutch +NSLOCALE_nl_NL = NetherlandsDutch +NSLOCALE_nn = NorwegianNynorsk +NSLOCALE_no = Norwegian +NSLOCALE_nr = NdebeleSouth +NSLOCALE_nso = Pedi +NSLOCALE_nv = Navajo +NSLOCALE_ny = Chichewa +NSLOCALE_nym = Nyamwezi +NSLOCALE_nyn = Nyankole +NSLOCALE_nyo = Nyoro +NSLOCALE_nzi = Nzima +NSLOCALE_oc = Occitan +NSLOCALE_oj = Ojibwa +NSLOCALE_om = Oromo +NSLOCALE_om_ET = EthiopiaOromo +NSLOCALE_om_KE = KenyaOromo +NSLOCALE_or = Oriya +NSLOCALE_os = Ossetian +NSLOCALE_pa = Punjabi +NSLOCALE_pag = Pangasinan +NSLOCALE_pam = Pampanga +NSLOCALE_pap = Papiamento +NSLOCALE_pi = Pali +NSLOCALE_pl = Polish +NSLOCALE_ps = Pashto +NSLOCALE_pt = Portuguese +NSLOCALE_pt_BR = BrasilPortuguese +NSLOCALE_qu = Quechua +NSLOCALE_raj = Rajasthani +NSLOCALE_rm = Romansh +NSLOCALE_rn = Rundi +NSLOCALE_ro = Romanian +NSLOCALE_ru = Russian +NSLOCALE_ru_UA = UkraineRussian +NSLOCALE_rup = Aromanian +NSLOCALE_rw = Kinyarwanda +NSLOCALE_sa = Sanskrit +NSLOCALE_sah = Yakut +NSLOCALE_sas = Sasak +NSLOCALE_sat = Santali +NSLOCALE_scn = Sicilian +NSLOCALE_sco = Scots +NSLOCALE_sc = Sardinian +NSLOCALE_sd = Sindhi +NSLOCALE_se = NorthernSaami +NSLOCALE_sg = Sango +NSLOCALE_shn = Shan +NSLOCALE_si = Sinhala +NSLOCALE_sid = Sidamo +NSLOCALE_sk = Slovak +NSLOCALE_sl = Slovenian +NSLOCALE_sm = Samoan +NSLOCALE_sn = Shona +NSLOCALE_snk = Soninke +NSLOCALE_so = Somali +NSLOCALE_so_DJ = DjiboutiSomali +NSLOCALE_so_ET = EthiopiaSomali +NSLOCALE_so_KE = KenyaSomali +NSLOCALE_so_SO = SomaliaSomali +NSLOCALE_sq = Albanian +NSLOCALE_sr = Serbian +NSLOCALE_srr = Serer +NSLOCALE_ss = Swati +NSLOCALE_st = Sotho +NSLOCALE_su = Sundanese +NSLOCALE_suk = Sukuma +NSLOCALE_sus = Susu +NSLOCALE_sv = Swedish +NSLOCALE_sv_FI = FinlandSwedish +NSLOCALE_sw = Swahili +NSLOCALE_ta = Tamil +NSLOCALE_te = Telugu +NSLOCALE_tem = Timne +NSLOCALE_tet = Tetum +NSLOCALE_tg = Tajik +NSLOCALE_th = Thai +NSLOCALE_ti = Tigrinya +NSLOCALE_ti_ER = EritreaTigrinya +NSLOCALE_ti_ET = EthiopiaTigrinya +NSLOCALE_tig = Tigre +NSLOCALE_tiv = Tiv +NSLOCALE_tk = Turkmen +NSLOCALE_tl = Tagalog +NSLOCALE_tn = Tswana +NSLOCALE_to = Tonga +NSLOCALE_tog = TongaNyasa +NSLOCALE_tpi = TokPisin +NSLOCALE_tr = Turkish +NSLOCALE_ts = Tsonga +NSLOCALE_tt = Tatar +NSLOCALE_tum = Tumbuka +NSLOCALE_tw = Twi +NSLOCALE_ty = Tahitian +NSLOCALE_tyv = Tuvinian +NSLOCALE_udm = Udmurt +NSLOCALE_ug = Uighur +NSLOCALE_uk = Ukrainian +NSLOCALE_umb = Umbundu +NSLOCALE_ur = Urdu +NSLOCALE_uz = Uzbek +NSLOCALE_vai = Vai +NSLOCALE_ve = Venda +NSLOCALE_vi = Vietnamese +NSLOCALE_wa = Walloon +NSLOCALE_wal = Walamo +NSLOCALE_war = Waray +NSLOCALE_wo = Wolof +NSLOCALE_xal = Kalmyk +NSLOCALE_xh = Xhosa +NSLOCALE_yao = Yao +NSLOCALE_yi = Yiddish +NSLOCALE_yo = Yoruba +NSLOCALE_za = Zhuang +NSLOCALE_zh = Chinese +NSLOCALE_zh_CN = SimplifiedChinese +NSLOCALE_zh_HK = HongKongChinese +NSLOCALE_zh_SG = SingaporeChinese +NSLOCALE_zh_TW = TraditionalChinese +NSLOCALE_zu = Zulu + +UNIXLOCALE_Afar = aa +UNIXLOCALE_DjiboutiAfar = aa_DJ +UNIXLOCALE_EritreaAfar = aa_ER +UNIXLOCALE_EthiopiaAfar = aa_ET +UNIXLOCALE_Abkhazian = ab +UNIXLOCALE_Achinese = ace +UNIXLOCALE_Acoli = ach +UNIXLOCALE_Adangme = ada +UNIXLOCALE_Adyghe = ady +UNIXLOCALE_Afrikaans = af +UNIXLOCALE_Akan = ak +UNIXLOCALE_Amharic = am +UNIXLOCALE_Aragonese = an +UNIXLOCALE_Angika = anp +UNIXLOCALE_Arabic = ar +UNIXLOCALE_UnitedArabEmiratesArabic = ar_AE +UNIXLOCALE_BahrainArabic = ar_BH +UNIXLOCALE_AlgeriaArabic = ar_DZ +UNIXLOCALE_EgyptArabic = ar_EG +UNIXLOCALE_IndiaArabic = ar_IN +UNIXLOCALE_IraqArabic = ar_IQ +UNIXLOCALE_JordanArabic = ar_JO +UNIXLOCALE_KuwaitArabic = ar_KW +UNIXLOCALE_LebanonArabic = ar_LB +UNIXLOCALE_LibyaArabic = ar_LY +UNIXLOCALE_MoroccoArabic = ar_MA +UNIXLOCALE_OmanArabic = ar_OM +UNIXLOCALE_QatarArabic = ar_QA +UNIXLOCALE_SaudiArabiaArabic = ar_SA +UNIXLOCALE_SudanArabic = ar_SD +UNIXLOCALE_SyriaArabic = ar_SY +UNIXLOCALE_TunisiaArabic = ar_TN +UNIXLOCALE_YemenArabic = ar_YE +UNIXLOCALE_Mapudungun = arn +UNIXLOCALE_Assamese = as +UNIXLOCALE_Asturian = ast +UNIXLOCALE_Avaric = av +UNIXLOCALE_Awadhi = awa +UNIXLOCALE_Aymara = ay +UNIXLOCALE_Azerbaijani = az +UNIXLOCALE_Bashkir = ba +UNIXLOCALE_Baluchi = bal +UNIXLOCALE_Balinese = ban +UNIXLOCALE_Basa = bas +UNIXLOCALE_Belarusian = be +UNIXLOCALE_Beja = bej +UNIXLOCALE_Bemba = bem +UNIXLOCALE_Bulgarian = bg +UNIXLOCALE_Bihari = bh +UNIXLOCALE_Bhojpuri = bho +UNIXLOCALE_Bislama = bi +UNIXLOCALE_Bikol = bik +UNIXLOCALE_Bini = bin +UNIXLOCALE_Bambara = bm +UNIXLOCALE_Bengali = bn +UNIXLOCALE_BangladeshBengali = bn_BD +UNIXLOCALE_IndiaBengali = bn_IN +UNIXLOCALE_Tibetan = bo +UNIXLOCALE_Breton = br +UNIXLOCALE_Bosnian = bs +UNIXLOCALE_Buriat = bua +UNIXLOCALE_Buginese = bug +UNIXLOCALE_Blin = byn +UNIXLOCALE_Catalan = ca +UNIXLOCALE_Chechen = ce +UNIXLOCALE_Cebuano = ceb +UNIXLOCALE_Chamorro = ch +UNIXLOCALE_Mari = chm +UNIXLOCALE_Corsican = co +UNIXLOCALE_Cree = cr +UNIXLOCALE_CrimeanTatar = crh +UNIXLOCALE_Czech = cs +UNIXLOCALE_ChurchSlavic = cu +UNIXLOCALE_Chuvash = cv +UNIXLOCALE_Welsh = cy +UNIXLOCALE_Danish = da +UNIXLOCALE_German = de +UNIXLOCALE_AustriaGerman = de_AT +UNIXLOCALE_BelgiumGerman = de_BE +UNIXLOCALE_SwitzerlandGerman = de_CH +UNIXLOCALE_LuxemburgGerman = de_LU +UNIXLOCALE_Dinka = din +UNIXLOCALE_Dogri = doi +UNIXLOCALE_Maldivian = dv +UNIXLOCALE_Dyula = dyu +UNIXLOCALE_Bhutani = dz +UNIXLOCALE_Efik = efi +UNIXLOCALE_Greek = el +UNIXLOCALE_GreeceGreek = el_GR +UNIXLOCALE_English = en +UNIXLOCALE_AustraliaEnglish = en_AU +UNIXLOCALE_BotswanaEnglish = en_BW +UNIXLOCALE_CanadaEnglish = en_CA +UNIXLOCALE_DenmarkEnglish = en_DK +UNIXLOCALE_BritainEnglish = en_GB +UNIXLOCALE_HongKongEnglish = en_HK +UNIXLOCALE_IrelandEnglish = en_IE +UNIXLOCALE_IndiaEnglish = en_IN +UNIXLOCALE_NewZealandEnglish = en_NZ +UNIXLOCALE_PhilippinesEnglish = en_PH +UNIXLOCALE_SingaporeEnglish = en_SG +UNIXLOCALE_AmericanEnglish = en_US +UNIXLOCALE_SouthAfricaEnglish = en_ZA +UNIXLOCALE_ZimbabweEnglish = en_ZW +UNIXLOCALE_Esperanto = eo +UNIXLOCALE_Spanish = es +UNIXLOCALE_ArgentinaSpanish = es_AR +UNIXLOCALE_BoliviaSpanish = es_BO +UNIXLOCALE_ChileSpanish = es_CL +UNIXLOCALE_ColombiaSpanish = es_CO +UNIXLOCALE_CostaRicaSpanish = es_CR +UNIXLOCALE_DominicanRepublicSpanish = es_DO +UNIXLOCALE_EcuadorSpanish = es_EC +UNIXLOCALE_SpainSpanish = es_ES +UNIXLOCALE_GuatemalaSpanish = es_GT +UNIXLOCALE_HondurasSpanish = es_HN +UNIXLOCALE_MexicoSpanish = es_MX +UNIXLOCALE_NicaraguaSpanish = es_NI +UNIXLOCALE_PanamaSpanish = es_PA +UNIXLOCALE_PeruSpanish = es_PE +UNIXLOCALE_PuertoRicoSpanish = es_PR +UNIXLOCALE_ParaguaySpanish = es_PY +UNIXLOCALE_ElSalvadorSpanish = es_SV +UNIXLOCALE_USASpanish = es_US +UNIXLOCALE_UruguaySpanish = es_UY +UNIXLOCALE_VenezuelaSpanish = es_VE +UNIXLOCALE_Estonian = et +UNIXLOCALE_EstoniaEstonian = et_EE +UNIXLOCALE_Basque = eu +UNIXLOCALE_SpainBasque = eu_ES +UNIXLOCALE_Ewondo = ewo +UNIXLOCALE_Persian = fa +UNIXLOCALE_Fang = fan +UNIXLOCALE_Fulah = ff +UNIXLOCALE_Finnish = fi +UNIXLOCALE_Filipino = fil +UNIXLOCALE_Fijian = fj +UNIXLOCALE_Faroese = fo +UNIXLOCALE_Fon = fon +UNIXLOCALE_French = fr +UNIXLOCALE_BelgiumFrench = fr_BE +UNIXLOCALE_CanadaFrench = fr_CA +UNIXLOCALE_SwitzerlandFrench = fr_CH +UNIXLOCALE_LuxemburgFrench = fr_LU +UNIXLOCALE_Friulian = fur +UNIXLOCALE_WesternFrisian = fy +UNIXLOCALE_Irish = ga +UNIXLOCALE_Ga = gaa +UNIXLOCALE_Gayo = gay +UNIXLOCALE_Gbaya = gba +UNIXLOCALE_Gaelic = gd +UNIXLOCALE_ScotsGaelic = gd_GB +UNIXLOCALE_Geez = gez +UNIXLOCALE_EritreaGeez = gez_ER +UNIXLOCALE_EthiopiaGeez = gez_ET +UNIXLOCALE_Gallegan = gl +UNIXLOCALE_Guarani = gn +UNIXLOCALE_Gondi = gon +UNIXLOCALE_Gorontalo = gor +UNIXLOCALE_Grebo = grb +UNIXLOCALE_Gujarati = gu +UNIXLOCALE_Manx = gv +UNIXLOCALE_Hausa = ha +UNIXLOCALE_Hebrew = he +UNIXLOCALE_Hindi = hi +UNIXLOCALE_Hiligaynon = hil +UNIXLOCALE_Hmong = hmn +UNIXLOCALE_HiriMotu = ho +UNIXLOCALE_Croatian = hr +UNIXLOCALE_Haitian = ht +UNIXLOCALE_Hungarian = hu +UNIXLOCALE_Armenian = hy +UNIXLOCALE_Herero = hz +UNIXLOCALE_Interlingua = ia +UNIXLOCALE_Iban = iba +UNIXLOCALE_Indonesian = id +UNIXLOCALE_Interlingue = ie +UNIXLOCALE_Igbo = ig +UNIXLOCALE_SichuanYi = ii +UNIXLOCALE_Inupiak = ik +UNIXLOCALE_Iloko = ilo +UNIXLOCALE_Ingush = inh +UNIXLOCALE_Ido = io +UNIXLOCALE_Icelandic = is +UNIXLOCALE_Italian = it +UNIXLOCALE_SwitzerlandItalian = it_CH +UNIXLOCALE_Inuktitut = iu +UNIXLOCALE_Hebrew = iw +UNIXLOCALE_Japanese = ja +UNIXLOCALE_Javanese = jv +UNIXLOCALE_Georgian = ka +UNIXLOCALE_KaraKalpak = kaa +UNIXLOCALE_Kabyle = kab +UNIXLOCALE_Kachin = kac +UNIXLOCALE_Kamba = kam +UNIXLOCALE_Kabardian = kbd +UNIXLOCALE_Kongo = kg +UNIXLOCALE_Khasi = kha +UNIXLOCALE_Kikuyu = ki +UNIXLOCALE_Kwanyama = kj +UNIXLOCALE_Kazakh = kk +UNIXLOCALE_Greenlandic = kl +UNIXLOCALE_Cambodian = km +UNIXLOCALE_Kimbundu = kmb +UNIXLOCALE_Kannada = kn +UNIXLOCALE_Korean = ko +UNIXLOCALE_Kanuri = kr +UNIXLOCALE_KarachayBalkar = krc +UNIXLOCALE_Karelian = krl +UNIXLOCALE_Kurukh = kru +UNIXLOCALE_Kashmiri = ks +UNIXLOCALE_Kurdish = ku +UNIXLOCALE_Kumyk = kum +UNIXLOCALE_Komi = kv +UNIXLOCALE_Cornish = kw +UNIXLOCALE_Kirghiz = ky +UNIXLOCALE_Latin = la +UNIXLOCALE_Ladino = lad +UNIXLOCALE_Lamba = lam +UNIXLOCALE_Luxembourgish = lb +UNIXLOCALE_Lezghian = lez +UNIXLOCALE_Ganda = lg +UNIXLOCALE_Limburgish = li +UNIXLOCALE_Lingala = ln +UNIXLOCALE_Lao = lo +UNIXLOCALE_Mongo = lol +UNIXLOCALE_Lozi = loz +UNIXLOCALE_Lithuanian = lt +UNIXLOCALE_LubaKatanga = lu +UNIXLOCALE_LubaLulua = lua +UNIXLOCALE_Luganda = lug +UNIXLOCALE_Lunda = lun +UNIXLOCALE_Luo = luo +UNIXLOCALE_Lushai = lus +UNIXLOCALE_Latvian = lv +UNIXLOCALE_Madurese = mad +UNIXLOCALE_Magahi = mag +UNIXLOCALE_Maithili = mai +UNIXLOCALE_Makasar = mak +UNIXLOCALE_Mandingo = man +UNIXLOCALE_Masai = mas +UNIXLOCALE_Moksha = mdf +UNIXLOCALE_Mandar = mdr +UNIXLOCALE_Mende = men +UNIXLOCALE_Malagasy = mg +UNIXLOCALE_Marshallese = mh +UNIXLOCALE_Maori = mi +UNIXLOCALE_Minangkabau = min +UNIXLOCALE_Macedonian = mk +UNIXLOCALE_Malayalam = ml +UNIXLOCALE_Mongolian = mn +UNIXLOCALE_Manipuri = mni +UNIXLOCALE_Moldavian = mo +UNIXLOCALE_Mossi = mos +UNIXLOCALE_Marathi = mr +UNIXLOCALE_Malay = ms +UNIXLOCALE_Maltese = mt +UNIXLOCALE_Burmese = my +UNIXLOCALE_Erzya = myv +UNIXLOCALE_Nauru = na +UNIXLOCALE_Neapolitan = nap +UNIXLOCALE_NorwegianBokmal = nb +UNIXLOCALE_NdebeleNorth = nd +UNIXLOCALE_Nepali = ne +UNIXLOCALE_NepalBhasa = new +UNIXLOCALE_Ndonga = ng +UNIXLOCALE_Nias = nia +UNIXLOCALE_Dutch = nl +UNIXLOCALE_BelgiumDutch = nl_BE +UNIXLOCALE_NetherlandsDutch = nl_NL +UNIXLOCALE_NorwegianNynorsk = nn +UNIXLOCALE_Norwegian = no +UNIXLOCALE_NdebeleSouth = nr +UNIXLOCALE_Pedi = nso +UNIXLOCALE_Navajo = nv +UNIXLOCALE_Chichewa = ny +UNIXLOCALE_Nyamwezi = nym +UNIXLOCALE_Nyankole = nyn +UNIXLOCALE_Nyoro = nyo +UNIXLOCALE_Nzima = nzi +UNIXLOCALE_Occitan = oc +UNIXLOCALE_Ojibwa = oj +UNIXLOCALE_Oromo = om +UNIXLOCALE_EthiopiaOromo = om_ET +UNIXLOCALE_KenyaOromo = om_KE +UNIXLOCALE_Oriya = or +UNIXLOCALE_Ossetian = os +UNIXLOCALE_Punjabi = pa +UNIXLOCALE_Pangasinan = pag +UNIXLOCALE_Pampanga = pam +UNIXLOCALE_Papiamento = pap +UNIXLOCALE_Pali = pi +UNIXLOCALE_Polish = pl +UNIXLOCALE_Pashto = ps +UNIXLOCALE_Portuguese = pt +UNIXLOCALE_BrasilPortuguese = pt_BR +UNIXLOCALE_Quechua = qu +UNIXLOCALE_Rajasthani = raj +UNIXLOCALE_Romansh = rm +UNIXLOCALE_Rundi = rn +UNIXLOCALE_Romanian = ro +UNIXLOCALE_Russian = ru +UNIXLOCALE_UkraineRussian = ru_UA +UNIXLOCALE_Aromanian = rup +UNIXLOCALE_Kinyarwanda = rw +UNIXLOCALE_Sanskrit = sa +UNIXLOCALE_Yakut = sah +UNIXLOCALE_Sasak = sas +UNIXLOCALE_Santali = sat +UNIXLOCALE_Sicilian = scn +UNIXLOCALE_Scots = sco +UNIXLOCALE_Sardinian = sc +UNIXLOCALE_Sindhi = sd +UNIXLOCALE_NorthernSaami = se +UNIXLOCALE_Sango = sg +UNIXLOCALE_Shan = shn +UNIXLOCALE_Sinhala = si +UNIXLOCALE_Sidamo = sid +UNIXLOCALE_Slovak = sk +UNIXLOCALE_Slovenian = sl +UNIXLOCALE_Samoan = sm +UNIXLOCALE_Shona = sn +UNIXLOCALE_Soninke = snk +UNIXLOCALE_Somali = so +UNIXLOCALE_DjiboutiSomali = so_DJ +UNIXLOCALE_EthiopiaSomali = so_ET +UNIXLOCALE_KenyaSomali = so_KE +UNIXLOCALE_SomaliaSomali = so_SO +UNIXLOCALE_Albanian = sq +UNIXLOCALE_Serbian = sr +UNIXLOCALE_Serer = srr +UNIXLOCALE_Swati = ss +UNIXLOCALE_Sotho = st +UNIXLOCALE_Sundanese = su +UNIXLOCALE_Sukuma = suk +UNIXLOCALE_Susu = sus +UNIXLOCALE_Swedish = sv +UNIXLOCALE_FinlandSwedish = sv_FI +UNIXLOCALE_Swahili = sw +UNIXLOCALE_Tamil = ta +UNIXLOCALE_Telugu = te +UNIXLOCALE_Timne = tem +UNIXLOCALE_Tetum = tet +UNIXLOCALE_Tajik = tg +UNIXLOCALE_Thai = th +UNIXLOCALE_Tigrinya = ti +UNIXLOCALE_EritreaTigrinya = ti_ER +UNIXLOCALE_EthiopiaTigrinya = ti_ET +UNIXLOCALE_Tigre = tig +UNIXLOCALE_Tiv = tiv +UNIXLOCALE_Turkmen = tk +UNIXLOCALE_Tagalog = tl +UNIXLOCALE_Tswana = tn +UNIXLOCALE_Tonga = to +UNIXLOCALE_TongaNyasa = tog +UNIXLOCALE_TokPisin = tpi +UNIXLOCALE_Turkish = tr +UNIXLOCALE_Tsonga = ts +UNIXLOCALE_Tatar = tt +UNIXLOCALE_Tumbuka = tum +UNIXLOCALE_Twi = tw +UNIXLOCALE_Tahitian = ty +UNIXLOCALE_Tuvinian = tyv +UNIXLOCALE_Udmurt = udm +UNIXLOCALE_Uighur = ug +UNIXLOCALE_Ukrainian = uk +UNIXLOCALE_Umbundu = umb +UNIXLOCALE_Urdu = ur +UNIXLOCALE_Uzbek = uz +UNIXLOCALE_Vai = vai +UNIXLOCALE_Venda = ve +UNIXLOCALE_Vietnamese = vi +UNIXLOCALE_Walloon = wa +UNIXLOCALE_Walamo = wal +UNIXLOCALE_Waray = war +UNIXLOCALE_Wolof = wo +UNIXLOCALE_Kalmyk = xal +UNIXLOCALE_Xhosa = xh +UNIXLOCALE_Yao = yao +UNIXLOCALE_Yiddish = yi +UNIXLOCALE_Yoruba = yo +UNIXLOCALE_Zhuang = za +UNIXLOCALE_Chinese = zh +UNIXLOCALE_SimplifiedChinese = zh_CN +UNIXLOCALE_HongKongChinese = zh_HK +UNIXLOCALE_SingaporeChinese = zh_SG +UNIXLOCALE_TraditionalChinese = zh_TW +UNIXLOCALE_Zulu = zu diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/af.po new file mode 100644 index 000000000..4ea1ce6d8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ast.po new file mode 100644 index 000000000..c058af121 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-objc-gnustep +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/bg.po new file mode 100644 index 000000000..9b4cce702 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-objc-gnustep package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-objc-gnustep 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ca.po new file mode 100644 index 000000000..8f5758081 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-objc-gnustep. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/cs.po new file mode 100644 index 000000000..7589a4e81 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/da.po new file mode 100644 index 000000000..aa7ee7bb0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-objc-gnustep. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/de.po new file mode 100644 index 000000000..52d290a1d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-objc-gnustep. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/el.po new file mode 100644 index 000000000..716b7e1f9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-objc-gnustep +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/eo.po new file mode 100644 index 000000000..519227b04 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/es.po new file mode 100644 index 000000000..19b16d39a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/fi.po new file mode 100644 index 000000000..e6545e881 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/fr.po new file mode 100644 index 000000000..9ed57d674 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ga.po new file mode 100644 index 000000000..690b871cc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-objc-gnustep. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/gl.po new file mode 100644 index 000000000..04d6e22bb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-objc-gnustep package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/hr.po new file mode 100644 index 000000000..873085031 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-objc-gnustep to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/hu.po new file mode 100644 index 000000000..fca4104b7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-objc-gnustep. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/id.po new file mode 100644 index 000000000..3dd8aee50 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-objc-gnustep-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/it.po new file mode 100644 index 000000000..fa2e5bede --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-objc-gnustep. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ja.po new file mode 100644 index 000000000..338908eb7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-objc-gnustep' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ka.po new file mode 100644 index 000000000..ad785f31e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ky.po new file mode 100644 index 000000000..429d77190 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-objc-gnustep' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/lv.po new file mode 100644 index 000000000..c5389cb67 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-objc-gnustep +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ms.po new file mode 100644 index 000000000..104018ece --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ms.po @@ -0,0 +1,28 @@ +# hello-objc-gnustep Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/mt.po new file mode 100644 index 000000000..2238ea09d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/mt.po @@ -0,0 +1,27 @@ +# hello-objc-gnustep-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/nb.po new file mode 100644 index 000000000..d1b0ab97d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-objc-gnustep package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/nl.po new file mode 100644 index 000000000..f343a31f5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-objc-gnustep. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/nn.po new file mode 100644 index 000000000..1ba225dfe --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-objc-gnustep +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/pl.po new file mode 100644 index 000000000..130533cf2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-objc-gnustep domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/pt.po new file mode 100644 index 000000000..8b9391c4f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-objc-gnustep' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/pt_BR.po new file mode 100644 index 000000000..274f87ef2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ro.po new file mode 100644 index 000000000..3c8b75bff --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-objc-gnustep. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-objc-gnustep 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-objc-gnustep-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ru.po new file mode 100644 index 000000000..6159e29f1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-objc-gnustep-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sk.po new file mode 100644 index 000000000..aa9d7607f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-objc-gnustep package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sl.po new file mode 100644 index 000000000..23fe64af9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-objc-gnustep-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sq.po new file mode 100644 index 000000000..e0cda5391 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sr.po new file mode 100644 index 000000000..07c50c547 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-objc-gnustep. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sv.po new file mode 100644 index 000000000..4cf2126c8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-objc-gnustep. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ta.po new file mode 100644 index 000000000..48e49ad2a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/tr.po new file mode 100644 index 000000000..d95152c01 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-objc-gnustep. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/uk.po new file mode 100644 index 000000000..18b0bcf34 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-objc-gnustep +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/vi.po new file mode 100644 index 000000000..f3d196fd9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/zh_CN.po new file mode 100644 index 000000000..d60d094be --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-objc-gnustep. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/zh_HK.po new file mode 100644 index 000000000..da6b7d8e6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-objc-gnustep. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/zh_TW.po new file mode 100644 index 000000000..2b27922a6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc-gnustep/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-objc-gnustep. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-gnustep 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: Hello.m:49 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: Hello.m:58 +#, objc-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/INSTALL new file mode 100644 index 000000000..6232f1b6a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/INSTALL @@ -0,0 +1,11 @@ +This example relies on: + - the Objective C runtime libraries (libobjc) + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/Makefile.am new file mode 100644 index 000000000..2d7acbb16 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/Makefile.am @@ -0,0 +1,29 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign no-dependencies +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_PROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = hello.m gettext.h + +# Define a C macro LOCALEDIR indicating where catalogs will be installed. +DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ + +# Make sure the gettext.h include file is found. +AM_CPPFLAGS = -I. -I$(srcdir) + +# Link time dependencies. +LDADD = @LIBINTL@ + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/autoclean.sh new file mode 100755 index 000000000..d18688a59 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/autoclean.sh @@ -0,0 +1,46 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f gettext.h + +# Brought in by autopoint. +rm -f ABOUT-NLS +rm -f config.rpath +rm -f m4/gettext.m4 +rm -f m4/build-to-host.m4 +rm -f m4/host-cpu-c-abi.m4 +rm -f m4/iconv.m4 +rm -f m4/intlmacosx.m4 +rm -f m4/lib-ld.m4 +rm -f m4/lib-link.m4 +rm -f m4/lib-prefix.m4 +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/Makefile.in.in +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f compile +rm -f install-sh +rm -f missing +rm -f config.guess +rm -f config.sub +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/autogen.sh new file mode 100755 index 000000000..78b150395 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/autogen.sh @@ -0,0 +1,50 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${GETTEXTSRCDIR-$GETTEXT_TOPSRCDIR/gettext-tools/gnulib-lib}/gettext.h gettext.h + +autopoint -f # was: gettextize -f -c +rm po/Makevars.template +rm po/Rules-quot +rm po/boldquot.sed +rm po/en@boldquot.header +rm po/en@quot.header +rm po/insert-header.sin +rm po/quot.sed + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/configure.ac new file mode 100644 index 000000000..5d76cd916 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/configure.ac @@ -0,0 +1,18 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-objc], [0]) +AC_CONFIG_SRCDIR([hello.m]) +AM_INIT_AUTOMAKE([1.11]) + +AC_PROG_CC +AC_SUBST([OBJC], ["$CC"]) +AM_GNU_GETTEXT([external]) +AM_GNU_GETTEXT_VERSION([0.22]) + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile.in]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/hello.m b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/hello.m new file mode 100644 index 000000000..88e0067b3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/hello.m @@ -0,0 +1,40 @@ +/* Example for use of GNU gettext. + This file is in the public domain. + + Source code of the Objective-C program. */ + + +/* Get setlocale() declaration. */ +#include + +/* Get printf() declaration. */ +#include + +/* Get getpid() declaration. */ +#if defined _WIN32 && !defined __CYGWIN__ +/* native Windows API */ +# include +# define getpid _getpid +#else +/* POSIX API */ +# include +#endif + +/* Get gettext(), textdomain(), bindtextdomain() declaration. */ +#include "gettext.h" +/* Define shortcut for gettext(). */ +#define _(string) gettext (string) + +int +main () +{ + setlocale (LC_ALL, ""); + textdomain ("hello-objc"); + bindtextdomain ("hello-objc", LOCALEDIR); + + printf ("%s\n", _("Hello, world!")); + printf (_("This program is running as process number %d."), getpid ()); + putchar ('\n'); + + return 0; +} diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/m4/Makefile.am new file mode 100644 index 000000000..9219ad199 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/m4/Makefile.am @@ -0,0 +1,4 @@ +EXTRA_DIST = \ + gettext.m4 build-to-host.m4 host-cpu-c-abi.m4 \ + iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 \ + nls.m4 po.m4 progtest.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/Makevars b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/Makevars new file mode 100644 index 000000000..16af4d267 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/Makevars @@ -0,0 +1,83 @@ +# Makefile variables for PO directory in any package using GNU gettext. +# +# Copyright (C) 2003-2019 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation gives +# unlimited permission to use, copy, distribute, and modify it. + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These two variables depend on the location of this directory. +subdir = po +top_builddir = .. + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = \ + --keyword=_ --flag=_:1:pass-c-format \ + --keyword=N_ --flag=N_:1:pass-c-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' +# context. Possible values are "yes" and "no". Set this to yes if the +# package uses functions taking also a message context, like pgettext(), or +# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. +USE_MSGCTXT = no + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +# This tells whether or not to regenerate a PO file when $(DOMAIN).pot +# has changed. Possible values are "yes" and "no". Set this to no if +# the POT file is checked in the repository and the version control +# program ignores timestamps. +PO_DEPENDS_ON_POT = yes + +# This tells whether or not to forcibly update $(DOMAIN).pot and +# regenerate PO files on "make dist". Possible values are "yes" and +# "no". Set this to no if the POT file and PO files are maintained +# externally. +DIST_DEPENDS_ON_UPDATE_PO = yes diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/af.po new file mode 100644 index 000000000..7c751e518 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ast.po new file mode 100644 index 000000000..77c772779 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-objc +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/bg.po new file mode 100644 index 000000000..6e3eab106 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-objc package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-objc 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ca.po new file mode 100644 index 000000000..7a4149cd9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-objc. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/cs.po new file mode 100644 index 000000000..2b7aafa80 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/da.po new file mode 100644 index 000000000..86aee8812 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-objc. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/de.po new file mode 100644 index 000000000..a0275b08d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-objc. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/el.po new file mode 100644 index 000000000..35749a7bc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-objc +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/eo.po new file mode 100644 index 000000000..cda2e2755 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/es.po new file mode 100644 index 000000000..1942a4ccf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/fi.po new file mode 100644 index 000000000..edec44a57 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.m:35 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/fr.po new file mode 100644 index 000000000..6c57de5b1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ga.po new file mode 100644 index 000000000..af251ecf4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-objc. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/gl.po new file mode 100644 index 000000000..4b8d6b1e6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-objc package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/hr.po new file mode 100644 index 000000000..b37df93f0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-objc to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/hu.po new file mode 100644 index 000000000..27456c31e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-objc. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/id.po new file mode 100644 index 000000000..80488c6a7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-objc-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/it.po new file mode 100644 index 000000000..62e34d4af --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-objc. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ja.po new file mode 100644 index 000000000..a9ccd881f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-objc' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ka.po new file mode 100644 index 000000000..555f39078 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ky.po new file mode 100644 index 000000000..8065eec33 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-objc' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/lv.po new file mode 100644 index 000000000..6b90956c5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-objc +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ms.po new file mode 100644 index 000000000..e3460b5e3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ms.po @@ -0,0 +1,28 @@ +# hello-objc Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/mt.po new file mode 100644 index 000000000..ebfc5a5aa --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/mt.po @@ -0,0 +1,27 @@ +# hello-objc-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/nb.po new file mode 100644 index 000000000..8cc87968e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-objc package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/nl.po new file mode 100644 index 000000000..b1af24c9d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-objc. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/nn.po new file mode 100644 index 000000000..f800b7853 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-objc +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/pl.po new file mode 100644 index 000000000..72abf0946 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-objc domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/pt.po new file mode 100644 index 000000000..20bf313ff --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-objc' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/pt_BR.po new file mode 100644 index 000000000..dfecdb069 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ro.po new file mode 100644 index 000000000..5901dca8c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-objc. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-objc 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-objc-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ru.po new file mode 100644 index 000000000..dce9f0d46 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-objc-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sk.po new file mode 100644 index 000000000..3725c8557 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-objc package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sl.po new file mode 100644 index 000000000..36cc93b19 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-objc-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sq.po new file mode 100644 index 000000000..ea2d6b3be --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sr.po new file mode 100644 index 000000000..b03dcbed5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-objc. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sv.po new file mode 100644 index 000000000..dbb6916f7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-objc. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ta.po new file mode 100644 index 000000000..ac346ff60 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/tr.po new file mode 100644 index 000000000..98ab56b87 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-objc. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/uk.po new file mode 100644 index 000000000..36f471242 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-objc +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/vi.po new file mode 100644 index 000000000..ea25b8240 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/zh_CN.po new file mode 100644 index 000000000..4e0f1507e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-objc. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/zh_HK.po new file mode 100644 index 000000000..1106cacc2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-objc. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/zh_TW.po new file mode 100644 index 000000000..1eab02138 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-objc/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-objc. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-objc 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.m:35 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.m:36 +#, c-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/INSTALL new file mode 100644 index 000000000..596042848 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/INSTALL @@ -0,0 +1,11 @@ +This example relies on: + - Free Pascal 2.0 or newer (ppc386) + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/Makefile.am new file mode 100644 index 000000000..012b96f6b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/Makefile.am @@ -0,0 +1,68 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 . po + +# The list of programs that are built. +bin_PASCALPROGRAMS = hello + +# The source files of the 'hello' program. +hello_SOURCES = $(srcdir)/hello.pas + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh + +# ---------------- General rules for compiling Pascal programs ---------------- + +EXTRA_DIST += $(hello_SOURCES) + +# Distribute the RSJ file because it's needed to generate POT files and can +# only be rebuilt on those platforms to which the Pascal compiler is ported. +EXTRA_DIST += hello.rsj +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put this file in the source directory, not the build directory. + +# Rules for compiling Pascal programs. + +all-local: hello$(EXEEXT) + +# How to build the 'hello' program. +hello$(EXEEXT) $(srcdir)/hello.rsj: $(hello_SOURCES) + LOCALEDIR='@localedir@' $(PPC) -o./hello$(EXEEXT) $(hello_SOURCES) +# Move hello.rsj into $(srcdir). But don't provoke a gratuitous error in a +# VPATH build with read-only $(srcdir). + if test '$(srcdir)' != .; then \ + if test -f $(srcdir)/hello.rsj && cmp hello.rsj $(srcdir)/hello.rsj >/dev/null; then \ + rm -f hello.rsj; \ + else \ + mv -f hello.rsj $(srcdir)/hello.rsj; \ + fi; \ + fi + +install-exec-local: all-local + $(MKDIR_P) $(DESTDIR)$(bindir) + $(INSTALL_PROGRAM) hello$(EXEEXT) $(DESTDIR)$(bindir)/hello$(EXEEXT) + +installdirs-local: + $(MKDIR_P) $(DESTDIR)$(bindir) + +uninstall-local: + rm -f $(DESTDIR)$(bindir)/hello$(EXEEXT) + +# The list of auxiliary files generated during the compilation. +CLEANFILES = hello.o hello$(EXEEXT) + +MAINTAINERCLEANFILES = hello.rsj diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/autoclean.sh new file mode 100755 index 000000000..94c009111 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/autoclean.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f missing +rm -f hello.rsj +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/autogen.sh new file mode 100755 index 000000000..7e5197991 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/configure.ac new file mode 100644 index 000000000..2c20bb81e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/configure.ac @@ -0,0 +1,38 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-pascal], [0]) +AC_CONFIG_SRCDIR([hello.pas]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check for availability of the Free Pascal Compiler. +AC_PATH_PROGS([PPC], [ppc386 ppcx64]) +if test -z "$PPC"; then + echo "*** Essential program ppc386 or ppcx64 not found" 1>&2 + exit 1 +fi +AC_SUBST([PPC]) + +dnl The installed program must know where to find its message catalogs. +dnl Unfortunately, prefix gets only finally determined at the end of configure. +if test "X$prefix" = "XNONE"; then + final_prefix="$ac_default_prefix" +else + final_prefix="$prefix" +fi +save_prefix="$prefix" +prefix="$final_prefix" +eval "datarootdir=\"${datarootdir}\"" +eval "localedir=\"${datadir}/locale\"" +prefix="$save_prefix" +AC_SUBST([localedir]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/hello.pas b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/hello.pas new file mode 100644 index 000000000..3a10bdc33 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/hello.pas @@ -0,0 +1,20 @@ +{ Example for use of GNU gettext. + This file is in the public domain. + + Source code of the Pascal program. } + +program hello; +{$mode delphi} + +uses gettext, { translateresourcestrings } + sysutils; { format } + +resourcestring + hello_world = 'Hello, world!'; + running_as = 'This program is running as process number %d.'; + +begin + translateresourcestrings({$i %LOCALEDIR%}+'/%s/LC_MESSAGES/hello-pascal.mo'); + writeln(hello_world); + writeln(format(running_as,[GetProcessID])); +end. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/m4/Makefile.am new file mode 100644 index 000000000..8a841b31f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/m4/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + nls.m4 po.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/Makefile.am new file mode 100644 index 000000000..6ad8b9e45 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/Makefile.am @@ -0,0 +1,419 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.rsj + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).gmo) +GMOFILES = @GMOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(lang).gmo) +CATALOGS = @CATALOGS@ + +SUFFIXES = .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(GMOFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(GMOFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/af.po new file mode 100644 index 000000000..81901c5f1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ast.po new file mode 100644 index 000000000..f73b963ac --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-pascal +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/bg.po new file mode 100644 index 000000000..66404451d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-pascal package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-pascal 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ca.po new file mode 100644 index 000000000..7fd864d22 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-pascal. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/cs.po new file mode 100644 index 000000000..1e27117b9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/da.po new file mode 100644 index 000000000..c6508851f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-pascal. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/de.po new file mode 100644 index 000000000..0e65723f0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-pascal. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/el.po new file mode 100644 index 000000000..fa3ceca9e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-pascal +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/eo.po new file mode 100644 index 000000000..c67f2deaf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/es.po new file mode 100644 index 000000000..a0562b7ee --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/fi.po new file mode 100644 index 000000000..3847d20e9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.hello_world +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/fr.po new file mode 100644 index 000000000..e85ac8f9b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ga.po new file mode 100644 index 000000000..471360959 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-pascal. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/gl.po new file mode 100644 index 000000000..d408a41a4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-pascal package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/hr.po new file mode 100644 index 000000000..f4b98fa92 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-pascal to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/hu.po new file mode 100644 index 000000000..b7a7ddd81 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-pascal. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/id.po new file mode 100644 index 000000000..0601a8e4e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-pascal-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/it.po new file mode 100644 index 000000000..c1b3de81e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-pascal. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ja.po new file mode 100644 index 000000000..59d4cc5cc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-pascal' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ka.po new file mode 100644 index 000000000..910c6bb23 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ky.po new file mode 100644 index 000000000..4832cdce1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-pascal' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/lv.po new file mode 100644 index 000000000..c9cc900fd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-pascal +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ms.po new file mode 100644 index 000000000..f6ba25588 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ms.po @@ -0,0 +1,28 @@ +# hello-pascal Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/mt.po new file mode 100644 index 000000000..95f322a8f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/mt.po @@ -0,0 +1,27 @@ +# hello-pascal-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/nb.po new file mode 100644 index 000000000..d1c57fc41 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-pascal package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/nl.po new file mode 100644 index 000000000..cbc8932d7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-pascal. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/nn.po new file mode 100644 index 000000000..f1a7fb819 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-pascal +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/pl.po new file mode 100644 index 000000000..e736d1574 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-pascal domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/pt.po new file mode 100644 index 000000000..ab184b126 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-pascal' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/pt_BR.po new file mode 100644 index 000000000..535ae23d7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ro.po new file mode 100644 index 000000000..784850a42 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-pascal. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-pascal 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-pascal-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ru.po new file mode 100644 index 000000000..866a6008a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-pascal-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sk.po new file mode 100644 index 000000000..8c863bd4a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-pascal package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sl.po new file mode 100644 index 000000000..73314b9f3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-pascal-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sq.po new file mode 100644 index 000000000..8dc5c768b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sr.po new file mode 100644 index 000000000..f17bb7d98 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-pascal. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sv.po new file mode 100644 index 000000000..514452dba --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-pascal. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ta.po new file mode 100644 index 000000000..6d48c06c8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/tr.po new file mode 100644 index 000000000..675b38f0b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-pascal. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/uk.po new file mode 100644 index 000000000..6cdfba760 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-pascal +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/vi.po new file mode 100644 index 000000000..7b7fcbe5e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/zh_CN.po new file mode 100644 index 000000000..02ad903a3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-pascal. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/zh_HK.po new file mode 100644 index 000000000..f7faacbe9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-pascal. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/zh_TW.po new file mode 100644 index 000000000..9948b3e18 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-pascal/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-pascal. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-pascal 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.hello_world +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.running_as +#, object-pascal-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/INSTALL new file mode 100644 index 000000000..609157aa2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/INSTALL @@ -0,0 +1,12 @@ +This example relies on: + - Perl (perl) + - libintl-perl 1.09 or newer + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/Makefile.am new file mode 100644 index 000000000..26b49dadf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/Makefile.am @@ -0,0 +1,17 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_SCRIPTS = hello-1 hello-2 + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/autoclean.sh new file mode 100755 index 000000000..9367df26c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/autoclean.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/autogen.sh new file mode 100755 index 000000000..7e5197991 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/configure.ac new file mode 100644 index 000000000..7699d7e39 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/configure.ac @@ -0,0 +1,40 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-perl], [0]) +AC_CONFIG_SRCDIR([hello-1.pl.in]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check for availability of the Perl interpreter. +AC_PATH_PROG([PERL], [perl]) +if test -z "$PERL"; then + echo "*** Essential program perl not found" 1>&2 + exit 1 +fi +AC_SUBST([PERL]) + +dnl The installed program must know where to find its message catalogs. +dnl Unfortunately, prefix gets only finally determined at the end of configure. +if test "X$prefix" = "XNONE"; then + final_prefix="$ac_default_prefix" +else + final_prefix="$prefix" +fi +save_prefix="$prefix" +prefix="$final_prefix" +eval "datarootdir=\"${datarootdir}\"" +eval "localedir=\"${datadir}/locale\"" +prefix="$save_prefix" +AC_SUBST([localedir]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([hello-1:hello-1.pl.in], [chmod a+x hello-1]) +AC_CONFIG_FILES([hello-2:hello-2.pl.in], [chmod a+x hello-2]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/m4/Makefile.am new file mode 100644 index 000000000..8a841b31f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/m4/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + nls.m4 po.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/Makefile.am new file mode 100644 index 000000000..d959b15a7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/Makefile.am @@ -0,0 +1,429 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello-1.pl.in hello-2.pl.in + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = \ + -k_ --flag=_:1:pass-perl-format --flag=_:1:pass-perl-brace-format \ + -k__ --flag=__:1:pass-perl-format --flag=__:1:pass-perl-brace-format \ + -k'$$__' --flag='$$__:1:pass-perl-format' --flag='$$__:1:pass-perl-brace-format' \ + -k'%__' --flag=%__:1:pass-perl-format --flag=%__:1:pass-perl-brace-format \ + -k__x --flag=__x:1:perl-brace-format \ + -k__n:1,2 --flag=__n:1:pass-perl-format --flag=__n:1:pass-perl-brace-format \ + --flag=__n:2:pass-perl-format --flag=__n:2:pass-perl-brace-format \ + -k__nx:1,2 --flag=__nx:1:perl-brace-format --flag=__nx:2:perl-brace-format \ + -k__xn:1,2 --flag=__xn:1:perl-brace-format --flag=__xn:2:perl-brace-format \ + -kN__ --flag=N__:1:pass-perl-format --flag=N__:1:pass-perl-brace-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).gmo) +GMOFILES = @GMOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(lang).gmo) +CATALOGS = @CATALOGS@ + +SUFFIXES = .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(GMOFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(GMOFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/af.po new file mode 100644 index 000000000..81135f543 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/af.po @@ -0,0 +1,31 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Hierdie program loop as prosesnommer {pid}" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ast.po new file mode 100644 index 000000000..d9b131053 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ast.po @@ -0,0 +1,34 @@ +# Asturian translation for hello-perl +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Esti programa ta executándose como procesu númberu {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/bg.po new file mode 100644 index 000000000..f77d83ec9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/bg.po @@ -0,0 +1,31 @@ +# Bulgarian translations for hello-perl package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-perl 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ca.po new file mode 100644 index 000000000..4362f36a1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ca.po @@ -0,0 +1,32 @@ +# Catalan messages for GNU hello-perl. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Aquest programa està corrent amb el número de procés {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/cs.po new file mode 100644 index 000000000..b0072c5b8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/cs.po @@ -0,0 +1,33 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Tento program běží jako proces Äíslo {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/da.po new file mode 100644 index 000000000..a988021d9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/da.po @@ -0,0 +1,33 @@ +# Danish messages for hello-perl. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Dette program kører som proces nummer {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/de.po new file mode 100644 index 000000000..a729cd3ba --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/de.po @@ -0,0 +1,37 @@ +# German messages for hello-perl. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Dieses Programm läuft mit der Prozess-Nummer {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/el.po new file mode 100644 index 000000000..d270328fe --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/el.po @@ -0,0 +1,31 @@ +# Greek translation of hello-perl +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/eo.po new file mode 100644 index 000000000..8a973a6f7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/eo.po @@ -0,0 +1,32 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/es.po new file mode 100644 index 000000000..6c9c5d7aa --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/es.po @@ -0,0 +1,35 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Este programa está corriendo como el proceso número {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/fi.po new file mode 100644 index 000000000..c5a1e8cad --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/fi.po @@ -0,0 +1,34 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Tämän ohjelman prosessinumero on {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/fr.po new file mode 100644 index 000000000..f7c92fc42 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/fr.po @@ -0,0 +1,35 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Ce programme est exécuté en tant que processus numéro {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ga.po new file mode 100644 index 000000000..55429285a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ga.po @@ -0,0 +1,31 @@ +# Irish translations for hello-perl. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Tá an clár seo ag rith mar phróiseas {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/gl.po new file mode 100644 index 000000000..2968663f4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/gl.po @@ -0,0 +1,36 @@ +# Galician translation for hello-perl package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Este programa estase executando como o proceso número {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/hr.po new file mode 100644 index 000000000..5ac0d5293 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/hr.po @@ -0,0 +1,39 @@ +# Translation of hello-perl to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-perl-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/hu.po new file mode 100644 index 000000000..8645eb1f9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/hu.po @@ -0,0 +1,34 @@ +# Hungarian translation for hello-perl. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Ez a program a(z) {pid} folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/id.po new file mode 100644 index 000000000..3d7a432fe --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/id.po @@ -0,0 +1,32 @@ +# translation of hello-perl-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-perl-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Program ini berjalan sebagai proses nomor {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/it.po new file mode 100644 index 000000000..6a0656b53 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/it.po @@ -0,0 +1,31 @@ +# Italian messages for hello-perl. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Questo programma è in esecuzione con numero di processo {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ja.po new file mode 100644 index 000000000..3f181765d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ja.po @@ -0,0 +1,31 @@ +# Translation of `hello-perl' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· {pid} ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ka.po new file mode 100644 index 000000000..0660069ad --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ka.po @@ -0,0 +1,33 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ky.po new file mode 100644 index 000000000..d778f4a7d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ky.po @@ -0,0 +1,33 @@ +# Translation of 'hello-perl' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Бул программа {pid} процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/lv.po new file mode 100644 index 000000000..e3d16946a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/lv.po @@ -0,0 +1,35 @@ +# Latvian translation of hello-perl +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Å Ä« programma darbojas kÄ process ar numuru {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ms.po new file mode 100644 index 000000000..25d609d28 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ms.po @@ -0,0 +1,33 @@ +# hello-perl Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Program ini dilaksanakan sebagai proses bernombor {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/mt.po new file mode 100644 index 000000000..0cb89d61e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/mt.po @@ -0,0 +1,32 @@ +# hello-perl-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/nb.po new file mode 100644 index 000000000..bacfd07e5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/nb.po @@ -0,0 +1,34 @@ +# Norwegian Bokmal translations for hello-perl package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Dette programmet kjører som prosess nummer {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/nl.po new file mode 100644 index 000000000..f818a9c1c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/nl.po @@ -0,0 +1,36 @@ +# Dutch translations for GNU hello-perl. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-perl-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Dit programma draait als proces nummer {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/nn.po new file mode 100644 index 000000000..ff48a3e42 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/nn.po @@ -0,0 +1,33 @@ +# Norwegian Nynorsk translation of GNU hello-perl +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-perl-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Dette programmet køyrer som prosess nummer {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/pl.po new file mode 100644 index 000000000..8232cbe66 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/pl.po @@ -0,0 +1,32 @@ +# Polish translations for the GNU gettext messages, hello-perl domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Ten program dziaÅ‚a jako proces o numerze {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/pt.po new file mode 100644 index 000000000..8f7f8c9e4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/pt.po @@ -0,0 +1,33 @@ +# Portuguese (Portugal) translation of 'hello-perl' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Este programa está em execução como processo nº {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/pt_BR.po new file mode 100644 index 000000000..34ac47b3b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/pt_BR.po @@ -0,0 +1,35 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Este programa está sendo executado com número de processo {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ro.po new file mode 100644 index 000000000..eaef76edc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ro.po @@ -0,0 +1,42 @@ +# Mesajele în limba română pentru pachetul hello-perl. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-perl 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-perl-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Acest program rulează ca procesul numărul {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ru.po new file mode 100644 index 000000000..c3adc7c32 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ru.po @@ -0,0 +1,35 @@ +# Translation of hello-perl-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sk.po new file mode 100644 index 000000000..9906c35cd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sk.po @@ -0,0 +1,31 @@ +# Slovak translations GNU for hello-perl package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Tento program beží ako proces s Äíslom {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sl.po new file mode 100644 index 000000000..83b3d6328 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sl.po @@ -0,0 +1,34 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-perl-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Ta program teÄe kot proces Å¡tevilka {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sq.po new file mode 100644 index 000000000..25ef715cc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sq.po @@ -0,0 +1,33 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Ky program po xhiron si procesi numër {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sr.po new file mode 100644 index 000000000..69afcd786 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sr.po @@ -0,0 +1,33 @@ +# Serbian translation of hello-perl. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-perl-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sv.po new file mode 100644 index 000000000..2801fc513 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/sv.po @@ -0,0 +1,34 @@ +# Swedish messages for hello-perl. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Detta program kör som process nummer {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ta.po new file mode 100644 index 000000000..e4917fe42 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/ta.po @@ -0,0 +1,32 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠{pid} ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/tr.po new file mode 100644 index 000000000..151161e10 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/tr.po @@ -0,0 +1,34 @@ +# Turkish translation for hello-perl. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Bu program iÅŸlem numarası {pid} olarak çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/uk.po new file mode 100644 index 000000000..160d31ac9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/uk.po @@ -0,0 +1,35 @@ +# Ukrainian translation to hello-perl +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/vi.po new file mode 100644 index 000000000..145efdedc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/vi.po @@ -0,0 +1,37 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình {pid}." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/zh_CN.po new file mode 100644 index 000000000..2e5dde03c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/zh_CN.po @@ -0,0 +1,34 @@ +# zh_CN translation for hello-perl. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· {pid} è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/zh_HK.po new file mode 100644 index 000000000..e4fdec3a7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/zh_HK.po @@ -0,0 +1,30 @@ +# Chinese (Hong Kong) translation of hello-perl. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º {pid}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/zh_TW.po new file mode 100644 index 000000000..a7ba661d4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-perl/po/zh_TW.po @@ -0,0 +1,32 @@ +# Traditional Chinese translation of hello-perl. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-perl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello-1.pl.in:17 hello-2.pl.in:12 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello-1.pl.in:19 +#, perl-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" + +#: hello-2.pl.in:14 +#, perl-brace-format +msgid "This program is running as process number {pid}." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º {pid}。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/INSTALL new file mode 100644 index 000000000..5e2792e51 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/INSTALL @@ -0,0 +1,10 @@ +This example relies on PHP. + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/Makefile.am new file mode 100644 index 000000000..b76e71d94 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/Makefile.am @@ -0,0 +1,17 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_SCRIPTS = hello + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/README b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/README new file mode 100644 index 000000000..1658db36d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/README @@ -0,0 +1,5 @@ +The gettext/PHP binding has a limitation: While it works fine for standalone +PHP programs, it cannot be used inside a web server, to translate parts of web +pages into the preferred encoding of user that makes a HTTP connection. The +reason is that a web server usually is multithreaded, and the gettext() API +relies on the process' global locale. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/autoclean.sh new file mode 100755 index 000000000..9367df26c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/autoclean.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/autogen.sh new file mode 100755 index 000000000..7e5197991 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/configure.ac new file mode 100644 index 000000000..c9429ea15 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/configure.ac @@ -0,0 +1,39 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-php], [0]) +AC_CONFIG_SRCDIR([hello.php]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check for availability of the PHP system. +AC_PATH_PROG([PHP], [php]) +if test -z "$PHP"; then + echo "*** Essential program php not found" 1>&2 + exit 1 +fi +AC_SUBST([PHP]) + +dnl The installed program must know where to find its message catalogs. +dnl Unfortunately, prefix gets only finally determined at the end of configure. +if test "X$prefix" = "XNONE"; then + final_prefix="$ac_default_prefix" +else + final_prefix="$prefix" +fi +save_prefix="$prefix" +prefix="$final_prefix" +eval "datarootdir=\"${datarootdir}\"" +eval "localedir=\"${datadir}/locale\"" +prefix="$save_prefix" +AC_SUBST([localedir]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([hello:hello.php], [chmod a+x hello]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/hello.php b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/hello.php new file mode 100644 index 000000000..6c68a78c3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/hello.php @@ -0,0 +1,16 @@ +#!@PHP@ -q + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/m4/Makefile.am new file mode 100644 index 000000000..8a841b31f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/m4/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + nls.m4 po.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/Makefile.am new file mode 100644 index 000000000..7fce015e3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/Makefile.am @@ -0,0 +1,419 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.php + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).gmo) +GMOFILES = @GMOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(lang).gmo) +CATALOGS = @CATALOGS@ + +SUFFIXES = .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(GMOFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(GMOFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/af.po new file mode 100644 index 000000000..31d04adef --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ast.po new file mode 100644 index 000000000..fb3b62d04 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-php +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/bg.po new file mode 100644 index 000000000..665b92203 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-php package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-php 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ca.po new file mode 100644 index 000000000..ed7de85d2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-php. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/cs.po new file mode 100644 index 000000000..bcce37a92 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/da.po new file mode 100644 index 000000000..26741cde7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-php. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/de.po new file mode 100644 index 000000000..8b6617860 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-php. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/el.po new file mode 100644 index 000000000..6167c9d6f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-php +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/eo.po new file mode 100644 index 000000000..fa44b3a51 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/es.po new file mode 100644 index 000000000..64538a483 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/fi.po new file mode 100644 index 000000000..4fa128f43 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.php:12 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/fr.po new file mode 100644 index 000000000..c20936577 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ga.po new file mode 100644 index 000000000..059d690cb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-php. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/gl.po new file mode 100644 index 000000000..40703881e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-php package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/hr.po new file mode 100644 index 000000000..875687aa4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-php to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-php-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/hu.po new file mode 100644 index 000000000..4a9e51466 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-php. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/id.po new file mode 100644 index 000000000..b7d023e8c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-php-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-php-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/it.po new file mode 100644 index 000000000..c4c6549af --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-php. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ja.po new file mode 100644 index 000000000..66edaf684 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-php' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ka.po new file mode 100644 index 000000000..1324f6ece --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ky.po new file mode 100644 index 000000000..ca591fc67 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-php' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/lv.po new file mode 100644 index 000000000..a372eb516 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-php +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ms.po new file mode 100644 index 000000000..b4e34b0fc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ms.po @@ -0,0 +1,28 @@ +# hello-php Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/mt.po new file mode 100644 index 000000000..0e2782651 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/mt.po @@ -0,0 +1,27 @@ +# hello-php-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/nb.po new file mode 100644 index 000000000..c5f3d3ca9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-php package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/nl.po new file mode 100644 index 000000000..4319ffba9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-php. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-php-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/nn.po new file mode 100644 index 000000000..3df89a31d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-php +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-php-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/pl.po new file mode 100644 index 000000000..c9d031c36 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-php domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/pt.po new file mode 100644 index 000000000..9a196c98b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-php' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/pt_BR.po new file mode 100644 index 000000000..f9c7e00ec --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ro.po new file mode 100644 index 000000000..7ef01bcee --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-php. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-php 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-php-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ru.po new file mode 100644 index 000000000..999c18b76 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-php-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sk.po new file mode 100644 index 000000000..78c6a6eb5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-php package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sl.po new file mode 100644 index 000000000..78d22253c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-php-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sq.po new file mode 100644 index 000000000..bac78565a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sr.po new file mode 100644 index 000000000..6d10d571f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-php. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-php-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sv.po new file mode 100644 index 000000000..31f8c0200 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-php. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ta.po new file mode 100644 index 000000000..8d94bb57d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/tr.po new file mode 100644 index 000000000..defdedbf0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-php. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/uk.po new file mode 100644 index 000000000..fe9695b85 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-php +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/vi.po new file mode 100644 index 000000000..f42541cc9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/zh_CN.po new file mode 100644 index 000000000..befff09de --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-php. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/zh_HK.po new file mode 100644 index 000000000..e2d6d187e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-php. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/zh_TW.po new file mode 100644 index 000000000..e6a4a71e3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-php/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-php. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-php 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.php:12 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.php:14 +#, php-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/INSTALL new file mode 100644 index 000000000..cb9ecf7ca --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/INSTALL @@ -0,0 +1,10 @@ +This example relies on Python 2.0 or newer. + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/Makefile.am new file mode 100644 index 000000000..009e9f3f9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/Makefile.am @@ -0,0 +1,26 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_SCRIPTS = hello + +# Making a Python program executable. +# FIXME: How to make a compiled python program (output of automake's +# py-compile command) executable? +hello: hello.py + (echo '#!@PYTHON@'; cat $<) > $@ + chmod a+x $@ +CLEANFILES = hello +#CLEANFILES += *.pyc *.pyo + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/autoclean.sh new file mode 100755 index 000000000..9367df26c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/autoclean.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/autogen.sh new file mode 100755 index 000000000..7e5197991 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/configure.ac new file mode 100644 index 000000000..10aeaa2e2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/configure.ac @@ -0,0 +1,37 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-python], [0]) +AC_CONFIG_SRCDIR([hello.py.in]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check for availability of the Python interpreter. +AM_PATH_PYTHON +if test -z "$PYTHON"; then + echo "*** Essential program python not found" 1>&2 + exit 1 +fi + +dnl The installed program must know where to find its message catalogs. +dnl Unfortunately, prefix gets only finally determined at the end of configure. +if test "X$prefix" = "XNONE"; then + final_prefix="$ac_default_prefix" +else + final_prefix="$prefix" +fi +save_prefix="$prefix" +prefix="$final_prefix" +eval "datarootdir=\"${datarootdir}\"" +eval "localedir=\"${datadir}/locale\"" +prefix="$save_prefix" +AC_SUBST([localedir]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile hello.py]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/m4/Makefile.am new file mode 100644 index 000000000..8a841b31f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/m4/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + nls.m4 po.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/Makefile.am new file mode 100644 index 000000000..0f2a5b436 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/Makefile.am @@ -0,0 +1,419 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.py.in + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).gmo) +GMOFILES = @GMOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(lang).gmo) +CATALOGS = @CATALOGS@ + +SUFFIXES = .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(GMOFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(GMOFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/af.po new file mode 100644 index 000000000..5819217a4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Hierdie program loop as prosesnommer %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ast.po new file mode 100644 index 000000000..e381f61ec --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-python +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Esti programa ta executándose como procesu númberu %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/bg.po new file mode 100644 index 000000000..4b2287562 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-python package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-python 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ca.po new file mode 100644 index 000000000..eddcbc819 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-python. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Aquest programa està corrent amb el número de procés %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/cs.po new file mode 100644 index 000000000..652fcd0ee --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Tento program běží jako proces Äíslo %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/da.po new file mode 100644 index 000000000..6ad80cdf7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-python. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Dette program kører som proces nummer %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/de.po new file mode 100644 index 000000000..41899e368 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-python. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/el.po new file mode 100644 index 000000000..ff4f194e1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-python +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/eo.po new file mode 100644 index 000000000..9b327da9f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/es.po new file mode 100644 index 000000000..c6947e93b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Este programa está corriendo como el proceso número %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/fi.po new file mode 100644 index 000000000..c4e26e34e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Tämän ohjelman prosessinumero on %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/fr.po new file mode 100644 index 000000000..bb894ba6d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Ce programme est exécuté en tant que processus numéro %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ga.po new file mode 100644 index 000000000..c4b930d8a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-python. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Tá an clár seo ag rith mar phróiseas %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/gl.po new file mode 100644 index 000000000..0c21cda2c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-python package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Este programa estase executando como o proceso número %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/hr.po new file mode 100644 index 000000000..fe441a895 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-python to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-python-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/hu.po new file mode 100644 index 000000000..b2f29b7cc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-python. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Ez a program a(z) %(pid)d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/id.po new file mode 100644 index 000000000..2e0bd53b9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-python-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-python-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Program ini berjalan sebagai proses nomor %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/it.po new file mode 100644 index 000000000..702673df7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-python. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Questo programma è in esecuzione con numero di processo %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ja.po new file mode 100644 index 000000000..3507f684a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-python' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %(pid)d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ka.po new file mode 100644 index 000000000..695716d68 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ky.po new file mode 100644 index 000000000..a16336db1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-python' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Бул программа %(pid)d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/lv.po new file mode 100644 index 000000000..7010af793 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-python +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ms.po new file mode 100644 index 000000000..9125f0bef --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ms.po @@ -0,0 +1,28 @@ +# hello-python Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/mt.po new file mode 100644 index 000000000..cf4c34824 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/mt.po @@ -0,0 +1,27 @@ +# hello-python-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/nb.po new file mode 100644 index 000000000..16594e12b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-python package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Dette programmet kjører som prosess nummer %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/nl.po new file mode 100644 index 000000000..ff9516924 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-python. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-python-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Dit programma draait als proces nummer %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/nn.po new file mode 100644 index 000000000..3a4056dff --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-python +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-python-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Dette programmet køyrer som prosess nummer %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/pl.po new file mode 100644 index 000000000..f706eced6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-python domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/pt.po new file mode 100644 index 000000000..8fcebaebe --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-python' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Este programa está em execução como processo nº %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/pt_BR.po new file mode 100644 index 000000000..2894bbc4c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Este programa está sendo executado com número de processo %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ro.po new file mode 100644 index 000000000..c34aa417e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-python. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-python 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-python-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Acest program rulează ca procesul numărul %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ru.po new file mode 100644 index 000000000..f2e38a43c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-python-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sk.po new file mode 100644 index 000000000..3065f4296 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-python package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Tento program beží ako proces s Äíslom %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sl.po new file mode 100644 index 000000000..fb41e5cae --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-python-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Ta program teÄe kot proces Å¡tevilka %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sq.po new file mode 100644 index 000000000..c377a0db8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Ky program po xhiron si procesi numër %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sr.po new file mode 100644 index 000000000..6b7c1a4a0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-python. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-python-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sv.po new file mode 100644 index 000000000..f5e9c9020 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-python. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Detta program kör som process nummer %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ta.po new file mode 100644 index 000000000..ce076ea75 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%(pid)d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/tr.po new file mode 100644 index 000000000..cf8cda8cc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-python. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Bu yazılım %(pid)d süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/uk.po new file mode 100644 index 000000000..9aaf63475 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-python +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/vi.po new file mode 100644 index 000000000..b2d72c7f8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %(pid)d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/zh_CN.po new file mode 100644 index 000000000..88cb4b852 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-python. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %(pid)d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/zh_HK.po new file mode 100644 index 000000000..b5fc94c4f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-python. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %(pid)d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/zh_TW.po new file mode 100644 index 000000000..513d8a91d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-python/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-python. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-python 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.py.in:12 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.py.in:13 +#, python-format +msgid "This program is running as process number %(pid)d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %(pid)d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/INSTALL new file mode 100644 index 000000000..6b7e0bda8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/INSTALL @@ -0,0 +1,10 @@ +This example relies just on sh and gettext-runtime. + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/Makefile.am new file mode 100644 index 000000000..b76e71d94 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/Makefile.am @@ -0,0 +1,17 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_SCRIPTS = hello + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/autoclean.sh new file mode 100755 index 000000000..9367df26c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/autoclean.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/autogen.sh new file mode 100755 index 000000000..7e5197991 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/configure.ac new file mode 100644 index 000000000..f05cf3ec3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/configure.ac @@ -0,0 +1,31 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-sh], [0]) +AC_CONFIG_SRCDIR([hello.sh]) +AM_INIT_AUTOMAKE([1.11]) + +dnl The installed program must know where to find its message catalogs. +dnl Unfortunately, prefix gets only finally determined at the end of configure. +if test "X$prefix" = "XNONE"; then + final_prefix="$ac_default_prefix" +else + final_prefix="$prefix" +fi +save_prefix="$prefix" +prefix="$final_prefix" +eval "datarootdir=\"${datarootdir}\"" +eval "localedir=\"${datadir}/locale\"" +prefix="$save_prefix" +AC_SUBST([localedir]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([hello:hello.sh], [chmod a+x hello]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/hello.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/hello.sh new file mode 100644 index 000000000..82e41bbae --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/hello.sh @@ -0,0 +1,17 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Source code of the POSIX sh program. + +. gettext.sh + +TEXTDOMAIN=hello-sh +export TEXTDOMAIN +TEXTDOMAINDIR='@localedir@' +export TEXTDOMAINDIR + +gettext "Hello, world!"; echo + +pid=$$ +eval_gettext "This program is running as process number \$pid."; echo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/m4/Makefile.am new file mode 100644 index 000000000..8a841b31f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/m4/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + nls.m4 po.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/Makefile.am new file mode 100644 index 000000000..7f77fb698 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/Makefile.am @@ -0,0 +1,419 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.sh + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).gmo) +GMOFILES = @GMOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(lang).gmo) +CATALOGS = @CATALOGS@ + +SUFFIXES = .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(GMOFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(GMOFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/af.po new file mode 100644 index 000000000..8680294e4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Hierdie program loop as prosesnommer $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ast.po new file mode 100644 index 000000000..7be97ca96 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-sh +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Esti programa ta executándose como procesu númberu $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/bg.po new file mode 100644 index 000000000..091af5227 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-sh package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-sh 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ca.po new file mode 100644 index 000000000..2ec863db8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-sh. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Aquest programa està corrent amb el número de procés $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/cs.po new file mode 100644 index 000000000..5c2026e5d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Tento program běží jako proces Äíslo $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/da.po new file mode 100644 index 000000000..543c0720a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-sh. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Dette program kører som proces nummer $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/de.po new file mode 100644 index 000000000..77acff7c1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-sh. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Dieses Programm läuft mit der Prozess-Nummer $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/el.po new file mode 100644 index 000000000..145f11b1a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-sh +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/eo.po new file mode 100644 index 000000000..36c0547f8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/es.po new file mode 100644 index 000000000..1a36b9748 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Este programa está corriendo como el proceso número $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/fi.po new file mode 100644 index 000000000..95c21913d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Tämän ohjelman prosessinumero on $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/fr.po new file mode 100644 index 000000000..b895c5e20 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Ce programme est exécuté en tant que processus numéro $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ga.po new file mode 100644 index 000000000..97a1ca6ca --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-sh. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Tá an clár seo ag rith mar phróiseas $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/gl.po new file mode 100644 index 000000000..4d82f51e0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-sh package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Este programa estase executando como o proceso número $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/hr.po new file mode 100644 index 000000000..a41450349 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-sh to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-sh-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/hu.po new file mode 100644 index 000000000..6f7ff7bbf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-sh. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Ez a program a(z) $pid folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/id.po new file mode 100644 index 000000000..b7020a7df --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-sh-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-sh-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Program ini berjalan sebagai proses nomor $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/it.po new file mode 100644 index 000000000..ffc59fed7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-sh. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Questo programma è in esecuzione con numero di processo $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ja.po new file mode 100644 index 000000000..396851e96 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-sh' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· $pid ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ka.po new file mode 100644 index 000000000..dd3cd6671 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ky.po new file mode 100644 index 000000000..559a0b0c2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-sh' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Бул программа $pid процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/lv.po new file mode 100644 index 000000000..365b248ac --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-sh +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Å Ä« programma darbojas kÄ process ar numuru $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ms.po new file mode 100644 index 000000000..8b558765d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ms.po @@ -0,0 +1,28 @@ +# hello-sh Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Program ini dilaksanakan sebagai proses bernombor $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/mt.po new file mode 100644 index 000000000..1c5b7f373 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/mt.po @@ -0,0 +1,27 @@ +# hello-sh-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/nb.po new file mode 100644 index 000000000..358665471 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-sh package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Dette programmet kjører som prosess nummer $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/nl.po new file mode 100644 index 000000000..e2369343a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-sh. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-sh-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Dit programma draait als proces nummer $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/nn.po new file mode 100644 index 000000000..7967af37c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-sh +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-sh-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Dette programmet køyrer som prosess nummer $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/pl.po new file mode 100644 index 000000000..f38d2399b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-sh domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Ten program dziaÅ‚a jako proces o numerze $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/pt.po new file mode 100644 index 000000000..cc55bbbb6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-sh' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Este programa está em execução como processo nº $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/pt_BR.po new file mode 100644 index 000000000..4f94760da --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Este programa está sendo executado com número de processo $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ro.po new file mode 100644 index 000000000..c77ce9377 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-sh. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-sh 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-sh-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Acest program rulează ca procesul numărul $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ru.po new file mode 100644 index 000000000..d92221440 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-sh-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sk.po new file mode 100644 index 000000000..a2c3e2ac1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-sh package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Tento program beží ako proces s Äíslom $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sl.po new file mode 100644 index 000000000..2330f2a48 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-sh-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Ta program teÄe kot proces Å¡tevilka $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sq.po new file mode 100644 index 000000000..636ba5814 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Ky program po xhiron si procesi numër $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sr.po new file mode 100644 index 000000000..1affd1267 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-sh. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-sh-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sv.po new file mode 100644 index 000000000..8e95204ee --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-sh. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Detta program kör som process nummer $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ta.po new file mode 100644 index 000000000..2b02d28a0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠$pid ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/tr.po new file mode 100644 index 000000000..64ecf0841 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-sh. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Bu yazılım $pid süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/uk.po new file mode 100644 index 000000000..3aab07d2d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-sh +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/vi.po new file mode 100644 index 000000000..4fc9a1beb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình $pid." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/zh_CN.po new file mode 100644 index 000000000..8668ee6e0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-sh. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· $pid è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/zh_HK.po new file mode 100644 index 000000000..5b8c66ecc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-sh. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º $pid。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/zh_TW.po new file mode 100644 index 000000000..5ff56594f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-sh/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-sh. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-sh 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.sh:14 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.sh:17 +#, sh-format +msgid "This program is running as process number $pid." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º $pid。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/INSTALL new file mode 100644 index 000000000..4a6b9f87e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/INSTALL @@ -0,0 +1,10 @@ +This example relies on gst (GNU Smalltalk). + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/Makefile.am new file mode 100644 index 000000000..9796d9a88 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/Makefile.am @@ -0,0 +1,26 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_SCRIPTS = hello +all-local: hello +CLEANFILES = hello + +# The Smalltalk program is installed as data and invoked through a shell script. +pkgdata_DATA = hello.st +hello: + { echo '#!/bin/sh'; \ + echo "exec '@GST@' -Q '$(pkgdatadir)/hello.st' \"\$$@\""; \ + } > $@ + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/autoclean.sh new file mode 100755 index 000000000..9367df26c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/autoclean.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/autogen.sh new file mode 100755 index 000000000..7e5197991 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/configure.ac new file mode 100644 index 000000000..8bc7688fa --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/configure.ac @@ -0,0 +1,38 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-smalltalk], [0]) +AC_CONFIG_SRCDIR([hello.st.in]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check for availability of GNU Smalltalk. +AC_PATH_PROG([GST], [gst]) +if test -z "$GST"; then + echo "*** Essential program gst not found" 1>&2 + exit 1 +fi +AC_SUBST([GST]) + +dnl The installed program must know where to find its message catalogs. +dnl Unfortunately, prefix gets only finally determined at the end of configure. +if test "X$prefix" = "XNONE"; then + final_prefix="$ac_default_prefix" +else + final_prefix="$prefix" +fi +save_prefix="$prefix" +prefix="$final_prefix" +eval "datarootdir=\"${datarootdir}\"" +eval "localedir=\"${datadir}/locale\"" +prefix="$save_prefix" +AC_SUBST([localedir]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile hello.st]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/m4/Makefile.am new file mode 100644 index 000000000..8a841b31f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/m4/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + nls.m4 po.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/Makefile.am new file mode 100644 index 000000000..9e1cb6968 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/Makefile.am @@ -0,0 +1,419 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.st.in + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).gmo) +GMOFILES = @GMOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(lang).gmo) +CATALOGS = @CATALOGS@ + +SUFFIXES = .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(GMOFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(GMOFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/af.po new file mode 100644 index 000000000..ff6657815 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Hierdie program loop as prosesnommer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ast.po new file mode 100644 index 000000000..56d0cb812 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-smalltalk +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Esti programa ta executándose como procesu númberu %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/bg.po new file mode 100644 index 000000000..9fdf11531 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-smalltalk package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-smalltalk 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ca.po new file mode 100644 index 000000000..521e45d46 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-smalltalk. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Aquest programa està corrent amb el número de procés %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/cs.po new file mode 100644 index 000000000..afb2badd7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Tento program běží jako proces Äíslo %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/da.po new file mode 100644 index 000000000..d1f336b1b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-smalltalk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Dette program kører som proces nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/de.po new file mode 100644 index 000000000..466beed7c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-smalltalk. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/el.po new file mode 100644 index 000000000..f2ad6ca1e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-smalltalk +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/eo.po new file mode 100644 index 000000000..d2e2fa46b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/es.po new file mode 100644 index 000000000..a2cdee184 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Este programa está corriendo como el proceso número %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/fi.po new file mode 100644 index 000000000..f1601461f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Tämän ohjelman prosessinumero on %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/fr.po new file mode 100644 index 000000000..8286df76b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Ce programme est exécuté en tant que processus numéro %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ga.po new file mode 100644 index 000000000..4c2410e32 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-smalltalk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Tá an clár seo ag rith mar phróiseas %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/gl.po new file mode 100644 index 000000000..2c68c40e7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-smalltalk package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Este programa estase executando como o proceso número %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/hr.po new file mode 100644 index 000000000..ff8d49159 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-smalltalk to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/hu.po new file mode 100644 index 000000000..9b3ddf30f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-smalltalk. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Ez a program a(z) %1 folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/id.po new file mode 100644 index 000000000..6b7b581b3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-smalltalk-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Program ini berjalan sebagai proses nomor %1" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/it.po new file mode 100644 index 000000000..bc1dcec29 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-smalltalk. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Questo programma è in esecuzione con numero di processo %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ja.po new file mode 100644 index 000000000..05ecf339e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-smalltalk' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %1 ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ka.po new file mode 100644 index 000000000..a9a157b48 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ky.po new file mode 100644 index 000000000..dac50f8b4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-smalltalk' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Бул программа %1 процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/lv.po new file mode 100644 index 000000000..6d935eae8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-smalltalk +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ms.po new file mode 100644 index 000000000..34b9eb6f4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ms.po @@ -0,0 +1,28 @@ +# hello-smalltalk Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Program ini dilaksanakan sebagai proses bernombor %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/mt.po new file mode 100644 index 000000000..8926c94dc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/mt.po @@ -0,0 +1,27 @@ +# hello-smalltalk-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/nb.po new file mode 100644 index 000000000..66c0fa9c3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-smalltalk package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Dette programmet kjører som prosess nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/nl.po new file mode 100644 index 000000000..02ccac9c3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-smalltalk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Dit programma draait als proces nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/nn.po new file mode 100644 index 000000000..2c00ade0b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-smalltalk +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Dette programmet køyrer som prosess nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/pl.po new file mode 100644 index 000000000..c1a9b0964 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-smalltalk domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Ten program dziaÅ‚a jako proces o numerze %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/pt.po new file mode 100644 index 000000000..8b4dc6c6c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-smalltalk' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Este programa está em execução como processo nº %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/pt_BR.po new file mode 100644 index 000000000..f87490486 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Este programa está executando com número de processo %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ro.po new file mode 100644 index 000000000..fc08faebe --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-smalltalk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-smalltalk 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-smalltalk-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Acest program rulează ca procesul numărul %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ru.po new file mode 100644 index 000000000..4ec31ed99 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-smalltalk-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sk.po new file mode 100644 index 000000000..980390090 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-smalltalk package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Tento program beží ako proces s Äíslom %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sl.po new file mode 100644 index 000000000..340a93c53 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-smalltalk-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Ta program teÄe kot proces Å¡tevilka %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sq.po new file mode 100644 index 000000000..65a88a641 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Ky program po xhiron si procesi numër %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sr.po new file mode 100644 index 000000000..a2528be43 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-smalltalk. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sv.po new file mode 100644 index 000000000..529866311 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-smalltalk. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Detta program kör som process nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ta.po new file mode 100644 index 000000000..9d03825b9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%1 ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/tr.po new file mode 100644 index 000000000..88c9c9563 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-smalltalk. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Bu yazılım %1 süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/uk.po new file mode 100644 index 000000000..854e48a2f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-smalltalk +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/vi.po new file mode 100644 index 000000000..3df402ef7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/zh_CN.po new file mode 100644 index 000000000..418951985 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-smalltalk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %1 è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/zh_HK.po new file mode 100644 index 000000000..738a2ab2c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-smalltalk. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %1。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/zh_TW.po new file mode 100644 index 000000000..688fdfd00 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-smalltalk/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-smalltalk. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-smalltalk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.st.in:31 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.st.in:32 +#, smalltalk-format +msgid "This program is running as process number %1." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %1。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/INSTALL new file mode 100644 index 000000000..4797fdff8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/INSTALL @@ -0,0 +1,12 @@ +This example relies on: + - Tk (wish and libtk) + - Tcl (tclsh and libtcl) + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/Makefile.am new file mode 100644 index 000000000..b76e71d94 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/Makefile.am @@ -0,0 +1,17 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_SCRIPTS = hello + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/autoclean.sh new file mode 100755 index 000000000..f70a4c7f1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/autoclean.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.msg diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/autogen.sh new file mode 100755 index 000000000..2b5e67b80 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c --tcl -d . -l $lang $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/configure.ac new file mode 100644 index 000000000..7d95739de --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/configure.ac @@ -0,0 +1,44 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-tcl-tk], [0]) +AC_CONFIG_SRCDIR([hello.tcl]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check for availability of the Tcl/Tk interpreter. +AC_PATH_PROG([WISH], [wish]) +if test -z "$WISH"; then + echo "*** Essential program wish not found" 1>&2 + exit 1 +fi +AC_SUBST([WISH]) + +dnl The installed program must know where to find its message catalogs. +dnl Unfortunately, prefix gets only finally determined at the end of configure. +if test "X$prefix" = "XNONE"; then + final_prefix="$ac_default_prefix" +else + final_prefix="$prefix" +fi +save_prefix="$prefix" +prefix="$final_prefix" +save_datarootdir="$datarootdir" +eval "datarootdir=\"${datarootdir}\"" +save_datadir="$datadir" +eval "datadir=\"${datadir}\"" +pkgdatadir="${datadir}/${PACKAGE}" +datadir="$save_datadir" +datarootdir="$save_datarootdir" +prefix="$save_prefix" +AC_SUBST([pkgdatadir]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([hello:hello.tcl], [chmod a+x hello]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/hello.tcl b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/hello.tcl new file mode 100644 index 000000000..4dfee53a0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/hello.tcl @@ -0,0 +1,19 @@ +#!@WISH@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Source code of the Tcl/Tk program. + +package require msgcat +::msgcat::mcload [file join "@pkgdatadir@" "msgs"] +proc _ {s} {return [::msgcat::mc $s]} + +frame .my +button .my.button \ + -text [_ "Hello, world!"] \ + -command exit +label .my.label \ + -text [format [_ "This program is running as process number %d."] [pid]] +pack .my.button -side top +pack .my.label -side bottom +pack .my diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/m4/Makefile.am new file mode 100644 index 000000000..8a841b31f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/m4/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + nls.m4 po.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/Makefile.am new file mode 100644 index 000000000..744b40363 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/Makefile.am @@ -0,0 +1,339 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.tcl + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --keyword=_ --flag=_:1:pass-tcl-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(frob $(lang)).msg) +MSGFILES = @MSGFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(frob $(lang)).msg) +CATALOGS = @TCLCATALOGS@ + +SUFFIXES = .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .msg files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(MSGFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(MSGFILES)" || $(MAKE) $(MSGFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + $(MKDIR_P) $(DESTDIR)$(pkgdatadir)/msgs + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$(pkgdatadir)/msgs/$$cat; \ + echo "installing $$realcat as $(DESTDIR)$(pkgdatadir)/msgs/$$cat"; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + $(MKDIR_P) $(DESTDIR)$(pkgdatadir)/msgs + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + rm -f $(DESTDIR)$(pkgdatadir)/msgs/$$cat; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(MSGFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(MSGFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-msg + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-msg: Makefile $(MSGFILES) + @: +# The Makefile rules for $(MSGFILES) are generated by the macro +# AM_POSTPROCESS_PO_MAKEFILE. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/af.po new file mode 100644 index 000000000..54cd61067 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ast.po new file mode 100644 index 000000000..8ae95df3a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-tcl-tk +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/bg.po new file mode 100644 index 000000000..ef9e20b2e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-tcl-tk package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-tcl-tk 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ca.po new file mode 100644 index 000000000..774e9b5f2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-tcl-tk. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/cs.po new file mode 100644 index 000000000..5244d1c32 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/da.po new file mode 100644 index 000000000..d83982f50 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-tcl-tk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/de.po new file mode 100644 index 000000000..46ebd2cb4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-tcl-tk. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/el.po new file mode 100644 index 000000000..bf79fd268 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-tcl-tk +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/eo.po new file mode 100644 index 000000000..cf205a213 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/es.po new file mode 100644 index 000000000..85947eb69 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/fi.po new file mode 100644 index 000000000..2f03f47ef --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/fr.po new file mode 100644 index 000000000..e7e53534e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ga.po new file mode 100644 index 000000000..ed36260d9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-tcl-tk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/gl.po new file mode 100644 index 000000000..72ff024e0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-tcl-tk package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/hr.po new file mode 100644 index 000000000..4d67dd9ed --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-tcl-tk to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/hu.po new file mode 100644 index 000000000..3ee94c934 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-tcl-tk. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/id.po new file mode 100644 index 000000000..63447cccf --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-tcl-tk-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/it.po new file mode 100644 index 000000000..6c7331339 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-tcl-tk. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ja.po new file mode 100644 index 000000000..692aa01bd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-tcl-tk' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ka.po new file mode 100644 index 000000000..5c9f73c4e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ky.po new file mode 100644 index 000000000..e382bf946 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-tcl-tk' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/lv.po new file mode 100644 index 000000000..49d72e1fd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-tcl-tk +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ms.po new file mode 100644 index 000000000..ad7028261 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ms.po @@ -0,0 +1,28 @@ +# hello-tcl-tk Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/mt.po new file mode 100644 index 000000000..2fb6fc545 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/mt.po @@ -0,0 +1,27 @@ +# hello-tcl-tk-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/nb.po new file mode 100644 index 000000000..3c7a37458 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-tcl-tk package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/nl.po new file mode 100644 index 000000000..f50d990d7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-tcl-tk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/nn.po new file mode 100644 index 000000000..1fa402694 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-tcl-tk +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/pl.po new file mode 100644 index 000000000..785ac5364 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-tcl-tk domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/pt.po new file mode 100644 index 000000000..f3be3f597 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-tcl-tk' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/pt_BR.po new file mode 100644 index 000000000..8c2b5dbcd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ro.po new file mode 100644 index 000000000..8bbb24e14 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-tcl-tk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-tcl-tk 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-tcl-tk-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ru.po new file mode 100644 index 000000000..7b8661710 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-tcl-tk-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sk.po new file mode 100644 index 000000000..cc47683c6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-tcl-tk package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sl.po new file mode 100644 index 000000000..bf59f8fcb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-tcl-tk-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sq.po new file mode 100644 index 000000000..02433eda9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sr.po new file mode 100644 index 000000000..8a8a1eba4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-tcl-tk. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sv.po new file mode 100644 index 000000000..41e1c1d9d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-tcl-tk. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ta.po new file mode 100644 index 000000000..309e8d0d0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/tr.po new file mode 100644 index 000000000..04d154fe2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-tcl-tk. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/uk.po new file mode 100644 index 000000000..cc6c56051 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-tcl-tk +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/vi.po new file mode 100644 index 000000000..8c5d02e0b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/zh_CN.po new file mode 100644 index 000000000..4abecfe87 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-tcl-tk. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/zh_HK.po new file mode 100644 index 000000000..aa632d17d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-tcl-tk. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/zh_TW.po new file mode 100644 index 000000000..e129b1105 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl-tk/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-tcl-tk. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-tk 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:13 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.tcl:16 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/INSTALL new file mode 100644 index 000000000..c020e479e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/INSTALL @@ -0,0 +1,11 @@ +This example relies on: + - Tcl (tclsh and libtcl) + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/Makefile.am new file mode 100644 index 000000000..b76e71d94 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/Makefile.am @@ -0,0 +1,17 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_SCRIPTS = hello + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/autoclean.sh new file mode 100755 index 000000000..f70a4c7f1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/autoclean.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.msg diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/autogen.sh new file mode 100755 index 000000000..2b5e67b80 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c --tcl -d . -l $lang $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/configure.ac new file mode 100644 index 000000000..61c065bea --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/configure.ac @@ -0,0 +1,44 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-tcl], [0]) +AC_CONFIG_SRCDIR([hello.tcl]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check for availability of the Tcl interpreter. +AC_PATH_PROG([TCLSH], [tclsh]) +if test -z "$TCLSH"; then + echo "*** Essential program tclsh not found" 1>&2 + exit 1 +fi +AC_SUBST([TCLSH]) + +dnl The installed program must know where to find its message catalogs. +dnl Unfortunately, prefix gets only finally determined at the end of configure. +if test "X$prefix" = "XNONE"; then + final_prefix="$ac_default_prefix" +else + final_prefix="$prefix" +fi +save_prefix="$prefix" +prefix="$final_prefix" +save_datarootdir="$datarootdir" +eval "datarootdir=\"${datarootdir}\"" +save_datadir="$datadir" +eval "datadir=\"${datadir}\"" +pkgdatadir="${datadir}/${PACKAGE}" +datadir="$save_datadir" +datarootdir="$save_datarootdir" +prefix="$save_prefix" +AC_SUBST([pkgdatadir]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([hello:hello.tcl], [chmod a+x hello]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/hello.tcl b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/hello.tcl new file mode 100644 index 000000000..19832736f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/hello.tcl @@ -0,0 +1,12 @@ +#!@TCLSH@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Source code of the Tcl program. + +package require msgcat +::msgcat::mcload [file join "@pkgdatadir@" "msgs"] +proc _ {s} {return [::msgcat::mc $s]} + +puts [_ "Hello, world!"] +puts [format [_ "This program is running as process number %d."] [pid]] diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/m4/Makefile.am new file mode 100644 index 000000000..8a841b31f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/m4/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + nls.m4 po.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/Makefile.am new file mode 100644 index 000000000..744b40363 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/Makefile.am @@ -0,0 +1,339 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.tcl + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = --keyword=_ --flag=_:1:pass-tcl-format + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(frob $(lang)).msg) +MSGFILES = @MSGFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(frob $(lang)).msg) +CATALOGS = @TCLCATALOGS@ + +SUFFIXES = .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .msg files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(MSGFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(MSGFILES)" || $(MAKE) $(MSGFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + $(MKDIR_P) $(DESTDIR)$(pkgdatadir)/msgs + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$(pkgdatadir)/msgs/$$cat; \ + echo "installing $$realcat as $(DESTDIR)$(pkgdatadir)/msgs/$$cat"; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + $(MKDIR_P) $(DESTDIR)$(pkgdatadir)/msgs + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + rm -f $(DESTDIR)$(pkgdatadir)/msgs/$$cat; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(MSGFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(MSGFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-msg + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-msg: Makefile $(MSGFILES) + @: +# The Makefile rules for $(MSGFILES) are generated by the macro +# AM_POSTPROCESS_PO_MAKEFILE. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/af.po new file mode 100644 index 000000000..17b43afe8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Hierdie program loop as prosesnommer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ast.po new file mode 100644 index 000000000..74f729b25 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-tcl +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Esti programa ta executándose como procesu númberu %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/bg.po new file mode 100644 index 000000000..1ed2684a3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-tcl package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-tcl 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ca.po new file mode 100644 index 000000000..c175ea87e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-tcl. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Aquest programa està corrent amb el número de procés %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/cs.po new file mode 100644 index 000000000..8cbd438db --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Tento program běží jako proces Äíslo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/da.po new file mode 100644 index 000000000..095158588 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-tcl. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Dette program kører som proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/de.po new file mode 100644 index 000000000..4155be839 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-tcl. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/el.po new file mode 100644 index 000000000..8f53f4315 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-tcl +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/eo.po new file mode 100644 index 000000000..3a5c842e5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/es.po new file mode 100644 index 000000000..27cc140c8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Este programa está corriendo como el proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/fi.po new file mode 100644 index 000000000..be600f499 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Tämän ohjelman prosessinumero on %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/fr.po new file mode 100644 index 000000000..22dc7c0e0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ce programme est exécuté en tant que processus numéro %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ga.po new file mode 100644 index 000000000..a784406af --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-tcl. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Tá an clár seo ag rith mar phróiseas %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/gl.po new file mode 100644 index 000000000..66300deef --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-tcl package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Este programa estase executando como o proceso número %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/hr.po new file mode 100644 index 000000000..d33cf2d8f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-tcl to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/hu.po new file mode 100644 index 000000000..23a0a592f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-tcl. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ez a program a(z) %d folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/id.po new file mode 100644 index 000000000..bdb7cecdd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-tcl-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Program ini berjalan sebagai proses nomor %d" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/it.po new file mode 100644 index 000000000..9ae51baaa --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-tcl. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Questo programma è in esecuzione con numero di processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ja.po new file mode 100644 index 000000000..712224ed6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-tcl' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %d ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ka.po new file mode 100644 index 000000000..62fe0ac8b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ky.po new file mode 100644 index 000000000..8188cba0a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-tcl' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Бул программа %d процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/lv.po new file mode 100644 index 000000000..36865976f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-tcl +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ms.po new file mode 100644 index 000000000..e5a9900a7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ms.po @@ -0,0 +1,28 @@ +# hello-tcl Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Program ini dilaksanakan sebagai proses bernombor %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/mt.po new file mode 100644 index 000000000..0674429db --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/mt.po @@ -0,0 +1,27 @@ +# hello-tcl-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/nb.po new file mode 100644 index 000000000..f63b1b150 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-tcl package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Dette programmet kjører som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/nl.po new file mode 100644 index 000000000..15bd7b315 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-tcl. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Dit programma draait als proces nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/nn.po new file mode 100644 index 000000000..d2a765bed --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-tcl +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Dette programmet køyrer som prosess nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/pl.po new file mode 100644 index 000000000..434b961f6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-tcl domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ten program dziaÅ‚a jako proces o numerze %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/pt.po new file mode 100644 index 000000000..28f29e300 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-tcl' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Este programa está em execução como processo nº %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/pt_BR.po new file mode 100644 index 000000000..9b7182866 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Este programa está executando com número de processo %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ro.po new file mode 100644 index 000000000..0d3fd30c5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-tcl. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-tcl 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-tcl-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Acest program rulează ca procesul numărul %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ru.po new file mode 100644 index 000000000..1013a7d8c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-tcl-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sk.po new file mode 100644 index 000000000..ed1f50b1d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-tcl package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Tento program beží ako proces s Äíslom %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sl.po new file mode 100644 index 000000000..ff88def30 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-tcl-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ta program teÄe kot proces Å¡tevilka %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sq.po new file mode 100644 index 000000000..936018905 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ky program po xhiron si procesi numër %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sr.po new file mode 100644 index 000000000..fa9c00d9e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-tcl. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sv.po new file mode 100644 index 000000000..0716dfea7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-tcl. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Detta program kör som process nummer %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ta.po new file mode 100644 index 000000000..68cb39903 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%d ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/tr.po new file mode 100644 index 000000000..8a5b0108c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-tcl. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Bu yazılım %d iÅŸlem numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/uk.po new file mode 100644 index 000000000..a1e257058 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-tcl +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/vi.po new file mode 100644 index 000000000..9022acabe --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %d." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/zh_CN.po new file mode 100644 index 000000000..9b3d955a9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-tcl. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %d è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/zh_HK.po new file mode 100644 index 000000000..c19166c77 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-tcl. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/zh_TW.po new file mode 100644 index 000000000..d820c3126 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-tcl/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-tcl. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-tcl 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.tcl:11 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.tcl:12 +#, tcl-format +msgid "This program is running as process number %d." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %d。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/INSTALL b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/INSTALL new file mode 100644 index 000000000..1aaff4e16 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/INSTALL @@ -0,0 +1,16 @@ +This example relies on YaST2 (SuSE Linux: package yast2-core). + +Before "make install", you need to make the locale directory writable: + chmod a+w /usr/share/YaST2/locale + chmod a+w /usr/share/YaST2/locale/*/LC_MESSAGES +Unfortunately this directory is hardwired in YaST; there is no way to +put the message catalogs elsewhere. + +Installation: + ./autogen.sh + ./configure --prefix=/some/prefix + make + make install +Cleanup: + make distclean + ./autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/Makefile.am new file mode 100644 index 000000000..ceeda9017 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/Makefile.am @@ -0,0 +1,30 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# General automake options. +AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 + +# The list of subdirectories containing Makefiles. +SUBDIRS = m4 po + +# The list of programs that are built. +bin_SCRIPTS = hello +all-local: hello +CLEANFILES = hello + +# The YCP program is installed as data and invoked through a shell script. +pkgdata_DATA = hello.ycp +hello: + { echo '#!/bin/sh'; \ + echo 'if test -n "$$DISPLAY"; then'; \ + echo " exec /usr/lib/YaST2/bin/y2base '$(pkgdatadir)/hello.ycp' qt"; \ + echo 'else'; \ + echo " exec /usr/lib/YaST2/bin/y2base '$(pkgdatadir)/hello.ycp' ncurses"; \ + echo 'fi'; \ + } > $@ + +# Additional files to be distributed. +EXTRA_DIST = autogen.sh autoclean.sh diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/autoclean.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/autoclean.sh new file mode 100755 index 000000000..9367df26c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/autoclean.sh @@ -0,0 +1,30 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for cleaning all autogenerated files. + +test ! -f Makefile || make distclean +rm -rf autom4te.cache + +# Brought in by explicit copy. +rm -f m4/nls.m4 +rm -f m4/po.m4 +rm -f m4/progtest.m4 +rm -f po/remove-potcdate.sin + +# Generated by aclocal. +rm -f aclocal.m4 + +# Generated by autoconf. +rm -f configure + +# Generated or brought in by automake. +rm -f Makefile.in +rm -f m4/Makefile.in +rm -f po/Makefile.in +rm -f install-sh +rm -f missing +rm -f po/*.pot +rm -f po/stamp-po +rm -f po/*.gmo diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/autogen.sh b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/autogen.sh new file mode 100755 index 000000000..7e5197991 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/autogen.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Script for regenerating all autogenerated files. + +if test -r ../Makefile.am; then + # Inside the gettext source directory. + GETTEXT_TOPSRCDIR=../../.. +else + if test -r ../Makefile; then + # Inside a gettext build directory. + GETTEXT_TOOLS_SRCDIR=`sed -n -e 's,^top_srcdir *= *\(.*\)$,\1,p' ../Makefile` + # Adjust a relative top_srcdir. + case $GETTEXT_TOOLS_SRCDIR in + /*) ;; + *) GETTEXT_TOOLS_SRCDIR=../$GETTEXT_TOOLS_SRCDIR ;; + esac + GETTEXT_TOPSRCDIR=$GETTEXT_TOOLS_SRCDIR/../.. + else + # Installed under ${prefix}/share/doc/gettext/examples. + . ../installpaths + fi +fi + +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/nls.m4 m4/nls.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/po.m4 m4/po.m4 +cp -p ${ACLOCALDIR-$GETTEXT_TOPSRCDIR/gettext-runtime/m4}/progtest.m4 m4/progtest.m4 +cp -p ${GETTEXTSRCPODIR-$GETTEXT_TOPSRCDIR/gettext-runtime/po}/remove-potcdate.sin po/remove-potcdate.sin + +aclocal -I m4 + +autoconf + +automake -a -c + +cd po +for f in *.po; do + if test -r "$f"; then + lang=`echo $f | sed -e 's,\.po$,,'` + msgfmt -c -o $lang.gmo $lang.po + fi +done +cd .. diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/configure.ac b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/configure.ac new file mode 100644 index 000000000..59b408372 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/configure.ac @@ -0,0 +1,27 @@ +dnl Example for use of GNU gettext. +dnl This file is in the public domain. +dnl +dnl Configuration file - processed by autoconf. + +AC_INIT([hello-ycp], [0]) +AC_CONFIG_SRCDIR([hello.ycp]) +AM_INIT_AUTOMAKE([1.11]) + +dnl Check for availability of YaST's engine. +test -f /usr/lib/YaST2/bin/y2base || { + echo "*** Essential program y2base not found" 1>&2 + exit 1 +} + +dnl The installed program must know where to find its message catalogs. +dnl Unfortunately, YaST hard codes the message catalog directory. +localedir=/usr/share/YaST2/locale +AC_SUBST([localedir]) + +dnl Support for the po directory. +AM_PO_SUBDIRS + +AC_CONFIG_FILES([Makefile]) +AC_CONFIG_FILES([m4/Makefile]) +AC_CONFIG_FILES([po/Makefile], [AM_POSTPROCESS_PO_MAKEFILE]) +AC_OUTPUT diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/hello.ycp b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/hello.ycp new file mode 100644 index 000000000..0affb10e1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/hello.ycp @@ -0,0 +1,30 @@ +// Example for use of GNU gettext. +// This file is in the public domain. + +// Source code of the YCP program. + +UI(``{ + textdomain "hello-ycp"; + + map bash_out = SCR::Execute (.target.bash_output, "echo $PPID"); + integer pid = tointeger (bash_out["stdout"]:"99999"); + + OpenDialog ( + `VBox ( + `HBox ( + `Label (_("Hello, world!")), + `HStretch () + ), + `HBox ( + `Label (sformat (_("This program is running as process number %1."), pid)), + `HStretch () + ), + `HBox ( + `HStretch (), + `PushButton (`opt(`default), "&OK") + ) + ) + ); + UserInput(); + CloseDialog(); +}) diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/m4/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/m4/Makefile.am new file mode 100644 index 000000000..8a841b31f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/m4/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST = \ + nls.m4 po.m4 diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/LINGUAS b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/LINGUAS new file mode 100644 index 000000000..dc4a82afb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/LINGUAS @@ -0,0 +1,5 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Set of available languages. +af ast bg ca cs da de el eo es fi fr ga gl hr hu id it ja ka ky lv ms mt nb nl nn pl pt pt_BR ro ru sk sl sq sr sv ta tr uk vi zh_CN zh_HK zh_TW diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/Makefile.am b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/Makefile.am new file mode 100644 index 000000000..59b2b59d1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/Makefile.am @@ -0,0 +1,419 @@ +# Example for use of GNU gettext. +# This file is in the public domain. +# +# Makefile configuration - processed by automake. + +# List of files which contain translatable strings. +POTFILES = \ + hello.ycp + +# Usually the message domain is the same as the package name. +DOMAIN = $(PACKAGE) + +# These options get passed to xgettext. +XGETTEXT_OPTIONS = + +# This is the copyright holder that gets inserted into the header of the +# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding +# package. (Note that the msgstr strings, extracted from the package's +# sources, belong to the copyright holder of the package.) Translators are +# expected to transfer the copyright for their translations to this person +# or entity, or to disclaim their copyright. The empty string stands for +# the public domain; in this case the translators are expected to disclaim +# their copyright. +COPYRIGHT_HOLDER = Yoyodyne, Inc. + +# This tells whether or not to prepend "GNU " prefix to the package +# name that gets inserted into the header of the $(DOMAIN).pot file. +# Possible values are "yes", "no", or empty. If it is empty, try to +# detect it automatically by scanning the files in $(top_srcdir) for +# "GNU packagename" string. +PACKAGE_GNU = no + +# This is the email address or URL to which the translators shall report +# bugs in the untranslated strings: +# - Strings which are not entire sentences, see the maintainer guidelines +# in the GNU gettext documentation, section 'Preparing Strings'. +# - Strings which use unclear terms or require additional context to be +# understood. +# - Strings which make invalid assumptions about notation of date, time or +# money. +# - Pluralisation problems. +# - Incorrect English spelling. +# - Incorrect formatting. +# It can be your email address, or a mailing list address where translators +# can write to without being subscribed, or the URL of a web page through +# which the translators can contact you. +MSGID_BUGS_ADDRESS = bug-gettext@gnu.org + +# This is the list of locale categories, beyond LC_MESSAGES, for which the +# message catalogs shall be used. It is usually empty. +EXTRA_LOCALE_CATEGORIES = + +# These options get passed to msgmerge. +# Useful options are in particular: +# --previous to keep previous msgids of translated messages +MSGMERGE_OPTIONS = + +# These options get passed to msginit. +# If you want to disable line wrapping when writing PO files, add +# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and +# MSGINIT_OPTIONS. +MSGINIT_OPTIONS = + +MSGMERGE = @MSGMERGE@ +MSGMERGE_UPDATE = @MSGMERGE@ --update +MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@ +MSGINIT = msginit +MSGCONV = msgconv +MSGFILTER = msgfilter + +# This is computed as $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) +POTFILES_DEPS = @POTFILES_DEPS@ + +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).po) +POFILES = @POFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(srcdir)/$(lang).gmo) +GMOFILES = @GMOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).po-update) +UPDATEPOFILES = @UPDATEPOFILES@ +# This is computed as $(foreach lang, $(LINGUAS), $(lang).nop) +DUMMYPOFILES = @DUMMYPOFILES@ + +# This is computed as +# $(foreach lang, user-specified subset of $(LINGUAS), $(lang).gmo) +CATALOGS = @CATALOGS@ + +SUFFIXES = .po .gmo .sed .sin .nop .po-create .po-update + +# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs. +# The GNU Coding Standards say in +# : +# "GNU distributions usually contain some files which are not source files +# ... . Since these files normally appear in the source directory, they +# should always appear in the source directory, not in the build directory. +# So Makefile rules to update them should put the updated files in the +# source directory." +# Therefore we put these files in the source directory, not the build directory. + +# During .po -> .gmo conversion, take into account the most recent changes to +# the .pot file. This eliminates the need to update the .po files when the +# .pot file has changed, which would be troublesome if the .po files are put +# under version control. +$(GMOFILES): $(srcdir)/$(DOMAIN).pot +.po.gmo: + @lang=`echo $* | sed -e 's,.*/,,'`; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \ + cd $(srcdir) && \ + rm -f $${lang}.gmo && \ + $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \ + $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \ + mv t-$${lang}.gmo $${lang}.gmo && \ + rm -f $${lang}.1po + +.sin.sed: + sed -e '/^#/d' $< > t-$@ + mv t-$@ $@ + + +all-local: all-local-@USE_NLS@ + +all-local-yes: $(srcdir)/stamp-po +all-local-no: + +# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no +# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because +# we don't want to bother translators with empty POT files). We assume that +# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. +# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target). + +# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS +# have been loosely updated. Its purpose is that when a developer or translator +# checks out the package from a version control system, and the $(DOMAIN).pot +# file is not under version control, "make" will update the $(DOMAIN).pot and +# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This +# timestamp would not be necessary if updating the $(CATALOGS) would always +# touch them; however, the rule for $(POFILES) has been designed to not touch +# files that don't need to be changed. +$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot + test ! -f $(srcdir)/$(DOMAIN).pot || \ + test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) + @test ! -f $(srcdir)/$(DOMAIN).pot || { \ + echo "touch $(srcdir)/stamp-po" && \ + echo timestamp > $(srcdir)/stamp-poT && \ + mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \ + } + +# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', +# otherwise packages like GCC can not be built if only parts of the source +# have been downloaded. + +# This target rebuilds $(DOMAIN).pot; it is an expensive operation. +# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. +# The determination of whether the package xyz is a GNU one is based on the +# heuristic whether some file in the top level directory mentions "GNU xyz". +# If GNU 'find' is available, we avoid grepping through monster files. +$(DOMAIN).pot-update: $(POTFILES_DEPS) remove-potcdate.sed + package_gnu="$(PACKAGE_GNU)"; \ + test -n "$$package_gnu" || { \ + if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ + LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU $(PACKAGE)' /dev/null '{}' ';' 2>/dev/null; \ + else \ + LC_ALL=C grep -i 'GNU $(PACKAGE)' $(top_srcdir)/* 2>/dev/null; \ + fi; \ + } | grep -v 'libtool:' >/dev/null; then \ + package_gnu=yes; \ + else \ + package_gnu=no; \ + fi; \ + }; \ + if test "$$package_gnu" = "yes"; then \ + package_prefix='GNU '; \ + else \ + package_prefix=''; \ + fi; \ + if test -n '$(MSGID_BUGS_ADDRESS)'; then \ + msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ + else \ + msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ + fi; \ + case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + *) \ + $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ + --add-comments=TRANSLATORS: \ + --copyright-holder='$(COPYRIGHT_HOLDER)' \ + --package-name="$${package_prefix}$(PACKAGE)" \ + --package-version='$(VERSION)' \ + --msgid-bugs-address="$$msgid_bugs_address" \ + $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ + $(POTFILES) \ + ;; \ + esac + test ! -f $(DOMAIN).po || { \ + if test -f $(srcdir)/$(DOMAIN).pot-header; then \ + sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \ + cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \ + rm -f $(DOMAIN).1po \ + || exit 1; \ + fi; \ + if test -f $(srcdir)/$(DOMAIN).pot; then \ + sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ + sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ + if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ + else \ + rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + else \ + mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ + fi; \ + } + +# This rule has no dependencies: we don't need to update $(DOMAIN).pot at +# every "make" invocation, only create it when it is missing. +# Only "make $(DOMAIN).pot-update" or "make dist" will force an update. +$(srcdir)/$(DOMAIN).pot: + $(MAKE) $(DOMAIN).pot-update + +# This target rebuilds a PO file if $(DOMAIN).pot has changed. +# Note that a PO file is not touched if it doesn't need to be changed. +$(POFILES): $(srcdir)/$(DOMAIN).pot + @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ + if test -f "$(srcdir)/$${lang}.po"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE_UPDATE) --quiet $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ + esac; \ + }; \ + else \ + $(MAKE) $${lang}.po-create; \ + fi + + +install-data-local: install-data-local-@USE_NLS@ +install-data-local-no: all-local +install-data-local-yes: all-local + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ + $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ + echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ + cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ + fi; \ + done; \ + done + +installdirs-local: installdirs-local-@USE_NLS@ +installdirs-local-no: +installdirs-local-yes: + @catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ + $(MKDIR_P) $(DESTDIR)$$dir; \ + for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ + if test -n "$$lc"; then \ + if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ + link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ + mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ + for file in *; do \ + if test -f $$file; then \ + ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ + fi; \ + done); \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ + else \ + if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ + :; \ + else \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ + mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ + fi; \ + fi; \ + fi; \ + done; \ + done + +uninstall-local: uninstall-local-@USE_NLS@ +uninstall-local-no: +uninstall-local-yes: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ + for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ + rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ + done; \ + done + +html ID: + +MOSTLYCLEANFILES = +MOSTLYCLEANFILES += remove-potcdate.sed +MOSTLYCLEANFILES += stamp-poT +MOSTLYCLEANFILES += core core.* *.stackdump $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po +MOSTLYCLEANFILES += *.o + +MAINTAINERCLEANFILES = $(DOMAIN).pot stamp-po $(GMOFILES) + +EXTRA_DIST = remove-potcdate.sin LINGUAS $(POFILES) $(GMOFILES) + +# Hidden from automake, but really activated. Works around an automake-1.5 bug. +#distdir: distdir1 +distdir1: + $(MAKE) update-po + $(MAKE) $(srcdir)/stamp-po + @if test -f $(srcdir)/$(DOMAIN).pot; then \ + for file in $(DOMAIN).pot stamp-po; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + cp -p $$d/$$file $(distdir)/$$file || exit 1; \ + done; \ + else \ + case $(XGETTEXT) in \ + :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \ + *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the POTFILES and the XGETTEXT_OPTIONS in the Makefile.am file." 1>&2;; \ + esac; \ + fi + +update-po: Makefile + $(MAKE) $(DOMAIN).pot-update + test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) + $(MAKE) update-gmo + +# General rule for creating PO files. + +.nop.po-create: + @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ + echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ + exit 1 + +# General rule for updating PO files. + +.nop.po-update: + @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ + tmpdir=`pwd`; \ + echo "$$lang:"; \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + cd $(srcdir); \ + if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.10 | 0.10.*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[1-5] | 0.1[1-5].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + *) \ + $(MSGMERGE) --quiet $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + esac; \ + }; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$lang.po failed!" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi + +$(DUMMYPOFILES): + +update-gmo: Makefile $(GMOFILES) + @: diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/af.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/af.po new file mode 100644 index 000000000..398e1b3cb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/af.po @@ -0,0 +1,26 @@ +# Afrikaans translation for Silky +# Copyright (C) 2004 Free Software Foundation, Inc. +# This file is distributed under the same license as the silky package. +# Hanlie Pretorius , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp-0.13.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2003-12-31 10:30+2\n" +"Last-Translator: Ysbeer \n" +"Language-Team: Afrikaans \n" +"Language: af\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Hallo wêreld!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Hierdie program loop as prosesnommer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ast.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ast.po new file mode 100644 index 000000000..dcb39c9e1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ast.po @@ -0,0 +1,29 @@ +# Asturian translation for hello-ycp +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marquinos , 2009. +# enolp , 2018. +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-07-16 00:28+0100\n" +"Last-Translator: enolp \n" +"Language-Team: Asturian \n" +"Language: ast\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "¡Hola, mundu!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Esti programa ta executándose como procesu númberu %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/bg.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/bg.po new file mode 100644 index 000000000..b8d0ae77d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/bg.po @@ -0,0 +1,26 @@ +# Bulgarian translations for hello-ycp package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Roumen Petrov , 2010,2014,2015,2019. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-ycp 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-16 21:01+0300\n" +"Last-Translator: Roumen Petrov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Здравейте на вÑички !" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Програмата е пуÑната под Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð¾Ð¼ÐµÑ€ %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ca.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ca.po new file mode 100644 index 000000000..4c8751c53 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ca.po @@ -0,0 +1,27 @@ +# Catalan messages for GNU hello-ycp. +# Copyright (C) 2003, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ivan Vilata i Balaguer , 2003, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 18:48+0200\n" +"Last-Translator: Ivan Vilata i Balaguer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Hola, món!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Aquest programa està corrent amb el número de procés %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/cs.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/cs.po new file mode 100644 index 000000000..b3885ab39 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/cs.po @@ -0,0 +1,28 @@ +# The Czech translation for the gettext package. +# Copyright (C) 2011 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Marek ÄŒernocký , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:43+0200\n" +"Last-Translator: Marek ÄŒernocký \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Ahoj svÄ›te!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Tento program běží jako proces Äíslo %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/da.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/da.po new file mode 100644 index 000000000..023a81f02 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/da.po @@ -0,0 +1,28 @@ +# Danish messages for hello-ycp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Jan Djærv , 2003, 2006. +# Keld Simonsen , 2011. +# Joe Hansen , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-27 12:39+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Hej verden!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Dette program kører som proces nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/de.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/de.po new file mode 100644 index 000000000..aec567831 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/de.po @@ -0,0 +1,32 @@ +# German messages for hello-ycp. +# Copyright © 2003, 2013 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Bruno Haible , 2003. +# Karl Eichwalder , 2003. +# Jakob Kramer , 2013. +# Mario Blättermann , 2014. +# Philipp Thomas , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 13:05+0200\n" +"Last-Translator: Philipp Thomas \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.5.4\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Hallo Welt!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Dieses Programm läuft mit der Prozess-Nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/el.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/el.po new file mode 100644 index 000000000..8f6b01a08 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/el.po @@ -0,0 +1,26 @@ +# Greek translation of hello-ycp +# Copyright (C) 2005 Free Software Foundation, Inc. +# Simos Xenitellis , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.14.1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2005-01-06 18:50+0000\n" +"Last-Translator: Simos Xenitellis \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.3.1\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Γεια σου, κόσμε!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Αυτό το Ï€ÏόγÏαμμα εκτελείται με αÏιθμό διεÏγασίας %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/eo.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/eo.po new file mode 100644 index 000000000..48ce4e156 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/eo.po @@ -0,0 +1,27 @@ +# La teksto por la mesaÄoj de la programo "gettext". +# Copyright (C) 2006, 2016 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Edmund GRIMLEY EVANS , 2006. +# Felipe CASTRO , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2016-02-22 08:54-0300\n" +"Last-Translator: Felipe Castro \n" +"Language-Team: Esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Saluton, mondo!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Ĉi tiu programo rulas kiel procezo kun numero %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/es.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/es.po new file mode 100644 index 000000000..f70eae7e3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/es.po @@ -0,0 +1,30 @@ +# Mensajes en español para GNU gettext. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# This file is distributed under the same license as the gettext package. +# +# Max de Mendizábal , 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004. +# Antonio Ceballos , 2014, 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:44+0200\n" +"Last-Translator: Antonio Ceballos \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "¡Hola, mundo!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Este programa está corriendo como el proceso número %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/fi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/fi.po new file mode 100644 index 000000000..324404a43 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/fi.po @@ -0,0 +1,29 @@ +# Finnish messages for GNU Gettext examples. +# This file is distributed under the same license as the gettext package. +# Copyright © 2007, 2014, 2015 Yoyodyne, Inc. (msgids) +# Lauri Nurmi , 2007. +# Jorma Karvonen , 2014-2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-01 16:59+0300\n" +"Last-Translator: Jorma Karvonen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.5.4\n" + +# Tämä nimenomainen käännös valittu GNU Hellon mukaisesti. +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Terve maailma!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Tämän ohjelman prosessinumero on %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/fr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/fr.po new file mode 100644 index 000000000..4ec445947 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/fr.po @@ -0,0 +1,30 @@ +# Messages français pour GNU gettext. +# Copyright (C) 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Michel Robitaille , 2006. +# Christophe Combelles , 2006 +# Stéphane Aulery , 2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-22 23:54+0100\n" +"Last-Translator: Stéphane Aulery \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Bonjour, le monde !" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Ce programme est exécuté en tant que processus numéro %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ga.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ga.po new file mode 100644 index 000000000..9cb27b9f9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ga.po @@ -0,0 +1,26 @@ +# Irish translations for hello-ycp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Kevin Patrick Scannell , 2004, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2017-01-10 12:09-0500\n" +"Last-Translator: Kevin Patrick Scannell \n" +"Language-Team: Irish \n" +"Language: ga\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Dia duit, a dhomhain!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Tá an clár seo ag rith mar phróiseas %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/gl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/gl.po new file mode 100644 index 000000000..f029191a5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/gl.po @@ -0,0 +1,31 @@ +# Galician translation for hello-ycp package. +# Copyright (C) 2010 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Leandro Regueiro , 2010-2014. +# +# Proxecto Trasno - Adaptación do software libre á lingua galega: Se desexas +# colaborar connosco, podes atopar máis información en +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2014-05-10 16:34+0100\n" +"Last-Translator: Leandro Regueiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Ola, mundo!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Este programa estase executando como o proceso número %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/hr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/hr.po new file mode 100644 index 000000000..14d81d3f0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/hr.po @@ -0,0 +1,34 @@ +# Translation of hello-ycp to Croatian. +# Copyright (C) 2003, 2004, 2014, 2015, 2019 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Permission is granted to freely copy and distribute +# this file and modified versions, provided that this +# header is not removed and modified versions are marked +# as such. +# +# Tomislav Krznar , 2012. +# Božidar Putanec , 2018, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2023-04-25 18:23-0700\n" +"Last-Translator: Božidar Putanec \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : " +"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Pozdrav, svijete!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Ovaj program se izvrÅ¡ava kao proces broj %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/hu.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/hu.po new file mode 100644 index 000000000..ad2c32561 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/hu.po @@ -0,0 +1,29 @@ +# Hungarian translation for hello-ycp. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# +# Tamás Kiss , 2005. +# Balázs Úr , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:31+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: hu\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 1.2\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Hello, világ!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Ez a program a(z) %1 folyamatazonosítóval fut." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/id.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/id.po new file mode 100644 index 000000000..260962f98 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/id.po @@ -0,0 +1,27 @@ +# translation of hello-ycp-0.15-pre5.po to Indonesian +# Copyright (C) 2006 Yoyodyne, Inc. +# This file is distributed under the same license as the PACKAGE package. +# +# Tedi Heriyanto , 2006. +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp-0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-09-27 20:19+0700\n" +"Last-Translator: Tedi Heriyanto \n" +"Language-Team: Indonesian \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: KBabel 1.11.2\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Program ini berjalan sebagai proses nomor %1" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/it.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/it.po new file mode 100644 index 000000000..1b0dab72e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/it.po @@ -0,0 +1,26 @@ +# Italian messages for hello-ycp. +# Copyright (C) 2005, 2006 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marco Colombo , 2005, 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-08-05 12:18+0100\n" +"Last-Translator: Marco Colombo \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Salve, mondo!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Questo programma è in esecuzione con numero di processo %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ja.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ja.po new file mode 100644 index 000000000..bb5ac7dda --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ja.po @@ -0,0 +1,26 @@ +# Translation of `hello-ycp' messages to Japanese. +# Copyright (C) 2005, 2006, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Masahito Yamaga , 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-24 12:14+0900\n" +"Last-Translator: Masahito Yamaga \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "世界よ, ã“ã‚“ã«ã¡ã¯!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "ã“ã®ãƒ—ログラムã¯ãƒ—ãƒ­ã‚»ã‚¹ç•ªå· %1 ã§å‹•ã„ã¦ã„ã¾ã™." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ka.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ka.po new file mode 100644 index 000000000..7908865ca --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ka.po @@ -0,0 +1,28 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2022 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Temuri Doghonadze , 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-05-22 05:04+0200\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.0.1\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "გáƒáƒ›áƒáƒ áƒ¯áƒáƒ‘რსáƒáƒ›áƒ§áƒáƒ áƒáƒ•!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "პრáƒáƒ’რáƒáƒ›áƒ გáƒáƒ¨áƒ•ებულირპრáƒáƒªáƒ”სის ნáƒáƒ›áƒ áƒ˜áƒ— %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ky.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ky.po new file mode 100644 index 000000000..0e736d556 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ky.po @@ -0,0 +1,28 @@ +# Translation of 'hello-ycp' messages to Kirghiz. +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Ilyas Bakirov , 2007. +# Ilyas Bakirov , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-02-15 18:26+0600\n" +"Last-Translator: Ilyas Bakirov \n" +"Language-Team: Kirghiz \n" +"Language: ky\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.0.6\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Салам дүйнө!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Бул программа %1 процеÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¸ катары иштеп жатат." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/lv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/lv.po new file mode 100644 index 000000000..c24b303ff --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/lv.po @@ -0,0 +1,30 @@ +# Latvian translation of hello-ycp +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Arvis LÄcis , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp-0.17\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2009-07-28 21:26+0100\n" +"Last-Translator: Rihards PriedÄ«tis \n" +"Language-Team: Latvian \n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Poedit-Language: Latvian\n" +"X-Poedit-Country: LATVIA\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " +"2);\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Sveika, pasaule!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Å Ä« programma darbojas kÄ process ar numuru %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ms.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ms.po new file mode 100644 index 000000000..15abc1cb4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ms.po @@ -0,0 +1,28 @@ +# hello-ycp Bahasa Melayu (Malay) (ms). +# Copyright (C) 2006, 2015 Yoyodyne, Inc. (msgids) +# Copyright (C) 2006, 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Sharuzzaman Ahmat Raslan , 2006, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-25 20:48+0800\n" +"Last-Translator: Sharuzzaman Ahmat Raslan \n" +"Language-Team: Malay \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 1.8.1\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Hello, world!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Program ini dilaksanakan sebagai proses bernombor %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/mt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/mt.po new file mode 100644 index 000000000..0c5dec676 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/mt.po @@ -0,0 +1,27 @@ +# hello-ycp-0.16.2-pre5. +# Copyright (C) 2008 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Clyde Meli , 2001-2008. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.16.2-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2008-11-18 17:27+0100\n" +"Last-Translator: Clyde Meli \n" +"Language-Team: Maltese \n" +"Language: mt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Hello, lil kulħadd!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Dal-programm qed jaħdem taħt il-proċess numru %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/nb.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/nb.po new file mode 100644 index 000000000..4574e0cb3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/nb.po @@ -0,0 +1,29 @@ +# Norwegian Bokmal translations for hello-ycp package. +# Copyright (C) 2012 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Johnny A. Solbu , 2012-2015 +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-09-19 00:04+0100\n" +"Last-Translator: Johnny A. Solbu \n" +"Language-Team: Norwegian Bokmaal \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.9\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Hallo verden!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Dette programmet kjører som prosess nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/nl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/nl.po new file mode 100644 index 000000000..a34b9c48f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/nl.po @@ -0,0 +1,31 @@ +# Dutch translations for GNU hello-ycp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# "There are three basic rules for writing a novel. +# Unfortunately nobody knows what they are." +# +# Benno Schulenberg , 2007, 2014, 2015, 2019. +# Elros Cyriatan , 2004. +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-06-29 09:38+0200\n" +"Last-Translator: Benno Schulenberg \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Hallo, wereld!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Dit programma draait als proces nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/nn.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/nn.po new file mode 100644 index 000000000..05869344b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/nn.po @@ -0,0 +1,28 @@ +# Norwegian Nynorsk translation of GNU hello-ycp +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp-0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-05-04 18:58+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 20.04.0\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Hei, verda!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Dette programmet køyrer som prosess nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/pl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/pl.po new file mode 100644 index 000000000..b7703e4be --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/pl.po @@ -0,0 +1,27 @@ +# Polish translations for the GNU gettext messages, hello-ycp domain +# Copyright (C) 2010, 2014, 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# RafaÅ‚ Maszkowski , 2003, 2010, 2014, 2015 „†+msgid "" +msgstr "" +"Project-Id-Version: GNU hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 22:01+0200\n" +"Last-Translator: RafaÅ‚ Maszkowski \n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Cześć, Å›wiecie!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Ten program dziaÅ‚a jako proces o numerze %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/pt.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/pt.po new file mode 100644 index 000000000..a49c9d1e1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/pt.po @@ -0,0 +1,28 @@ +# Portuguese (Portugal) translation of 'hello-ycp' package. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Pedro Albuquerque , 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 07:38+0100\n" +"Last-Translator: Pedro Albuquerque \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Geany / PoHelper 1.36\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Olá mundo!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Este programa está em execução como processo nº %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/pt_BR.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/pt_BR.po new file mode 100644 index 000000000..507d25a13 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/pt_BR.po @@ -0,0 +1,30 @@ +# Brazilian Portuguese translations for gettext-example +# Traduções em português brasileiro para gettext-example +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# Copyright (C) 2020 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Rafael Fontenelle , 2013-2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-16 08:42-0300\n" +"Last-Translator: Rafael Fontenelle \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Virtaal 1.0.0-beta1\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Olá, mundo!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Este programa está executando com número de processo %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ro.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ro.po new file mode 100644 index 000000000..8f637bc1d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ro.po @@ -0,0 +1,37 @@ +# Mesajele în limba română pentru pachetul hello-ycp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Eugen Hoancă , 2003 +# Mihai Cristescu , 2015 +# Traducere făcută de MC, pentru versiunea hello-ycp 0.20-rc1. +# Actualizare a mesajelor, de la fiÈ™ierul „hello-ycp-0.20.2.potâ€. +# Actualizare a algoritmului formelor de plural (de la „trei-vechi†la „trei-actualâ€). +# NU È™i a mesajelor traduse (acestea au rămas neschimbate). +# Eliminare a mesajelor ce-au dispărut în ultima versiune. +# Actualizări realizate de Remus-Gabriel Chelu , 15.01.2022. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2022-01-23 21:23+0100\n" +"Last-Translator: Remus-Gabriel Chelu \n" +"Language-Team: Romanian \n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2);\n" +"X-Generator: Poedit 2.3.1\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Salut, lume!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Acest program rulează ca procesul numărul %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ru.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ru.po new file mode 100644 index 000000000..f2f8ba962 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ru.po @@ -0,0 +1,30 @@ +# Translation of hello-ycp-0.14.1.po to Russian +# Copyright (C) 2004 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Pavel Maryanov , 2004. +# Yuri Kozlov , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-26 08:55+0300\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "ЗдравÑтвуй, мир!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Эта программа выполнÑетÑÑ ÐºÐ°Ðº процеÑÑ Ð¿Ð¾Ð´ номером %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sk.po new file mode 100644 index 000000000..5e339345d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sk.po @@ -0,0 +1,26 @@ +# Slovak translations GNU for hello-ycp package. +# Copyright (C) 2003, 2004, 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Marcel Telka , 2003, 2004, 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: GNU hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:17+0200\n" +"Last-Translator: Marcel Telka \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Ahoj svet!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Tento program beží ako proces s Äíslom %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sl.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sl.po new file mode 100644 index 000000000..36636f6a8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sl.po @@ -0,0 +1,29 @@ +# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU gettext-example +# Copyright (C) 2005 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Primož Peterlin , 2005, 2014, 2015. +# $Id: hello-ycp-0.19.4.73.sl.po,v 1.1 2015/06/28 08:37:19 peterlin Exp $ +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-28 10:37+0200\n" +"Last-Translator: Primož Peterlin \n" +"Language-Team: Slovenian \n" +"Language: sl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " +"n%100==4 ? 3 : 0);\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Pozdravljen, svet!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Ta program teÄe kot proces Å¡tevilka %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sq.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sq.po new file mode 100644 index 000000000..4d67496d8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sq.po @@ -0,0 +1,28 @@ +# Albanian translation of gettext-example. +# Copyright (C) 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Besnik Bleta , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp-0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-02 22:35+0300\n" +"Last-Translator: Besnik Bleta \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Tungjatjeta, botë!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Ky program po xhiron si procesi numër %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sr.po new file mode 100644 index 000000000..8ac5b77a5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sr.po @@ -0,0 +1,28 @@ +# Serbian translation of hello-ycp. +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Aleksandar Jelenak , 2004. +# МироÑлав Ðиколић , 2014—2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp-0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-12-23 19:12+0200\n" +"Last-Translator: МироÑлав Ðиколић \n" +"Language-Team: Serbian <(nothing)>\n" +"Language: sr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Здраво Ñвима!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Овај програм Ñе извршава као Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±Ñ€Ð¾Ñ˜ %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sv.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sv.po new file mode 100644 index 000000000..68a214a0b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/sv.po @@ -0,0 +1,29 @@ +# Swedish messages for hello-ycp. +# Copyright © 2006, 2014, 2016, 2019, 2020 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Jan Djärv , 2003, 2006, 2014 +# Göran Uddeborg , 2016, 2019, 2020 +# +# $Revision: 1.7 $ +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 20:31+0200\n" +"Last-Translator: Göran Uddeborg \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Hej världen!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Detta program kör som process nummer %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ta.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ta.po new file mode 100644 index 000000000..b9d5bc03f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/ta.po @@ -0,0 +1,27 @@ +# Tamil messages for GNU gettext. +# Copyright (C) 2018 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# List of contributors follow: +# Poorajith , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2018-12-10 23:03+0530\n" +"Last-Translator: Arun Isaac \n" +"Language-Team: Tamil \n" +"Language: ta\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "வணகà¯à®•à®®à¯, உலகà¯!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "இநà¯à®¨à®¿à®°à®²à¯ செயலாகà¯à®• எண௠%1 ஆக இயஙà¯à®•ிகà¯à®•ொணà¯à®Ÿà®¿à®°à¯à®•à¯à®•ிறதà¯." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/tr.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/tr.po new file mode 100644 index 000000000..d92dbec2a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/tr.po @@ -0,0 +1,29 @@ +# Turkish translation for hello-ycp. +# This file is distributed under the same license as the gettext package. +# Copyright (C) 2017 Yoyodyne, Inc. (msgids) +# Copyright (C) 2004 Free Software Foundation, Inc. +# Nilgün Belma Bugüner , 2003,2004 +# Mehmet Kececi , 2017, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.20.2\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2020-04-17 13:10+0300\n" +"Last-Translator: Mehmet Kececi \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Merhaba, dünya!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Bu yazılım %1 süreç numarası ile çalışıyor." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/uk.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/uk.po new file mode 100644 index 000000000..c95adfcd7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation to hello-ycp +# Copyright (C) 2014 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# +# Maxim V. Dziumanenko , 2004-2007. +# Yuri Chornoivan , 2014, 2015. +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-23 20:51+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 1.5\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Привіт, Ñвіте!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Ð¦Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° виконуєтьÑÑ Ñк Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð· номером %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/vi.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/vi.po new file mode 100644 index 000000000..d46d42459 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/vi.po @@ -0,0 +1,32 @@ +# Vietnamese Translation for Gettext Examples. +# Bản dịch tiếng Việt dành cho các ví dụ cá»§a gói gettext. +# Copyright © 2015 Yoyodyne, Inc. (msgids) +# Copyright © 2015 Free Software Foundation, Inc. +# This file is distributed under the same license as the gettext package. +# Clytie Siddall , 2005-2010. +# Trần Ngá»c Quân , 2012, 2013, 2014, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-06-30 08:00+0700\n" +"Last-Translator: Trần Ngá»c Quân \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Langugae-Team-Website: \n" +"X-Generator: Gtranslator 2.91.7\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "Chào thế giá»›i!" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "Chương trình này Ä‘ang chạy vá»›i mã số tiến trình %1." diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/zh_CN.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/zh_CN.po new file mode 100644 index 000000000..6cc3fc616 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/zh_CN.po @@ -0,0 +1,29 @@ +# zh_CN translation for hello-ycp. +# Copyright (C) 2015 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Funda Wang , 2003. +# Ji ZhengYu , 2015. +# Boyuan Yang <073plan@gmail.com>, 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.20-rc1\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2019-04-14 13:22-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" +"Language-Team: Chinese (simplified) \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 2.2.1\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "你好,世界ï¼" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "æ­¤ç¨‹åºæ­£ä»¥è¿›ç¨‹å· %1 è¿è¡Œã€‚" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/zh_HK.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/zh_HK.po new file mode 100644 index 000000000..a667a68d9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/zh_HK.po @@ -0,0 +1,25 @@ +# Chinese (Hong Kong) translation of hello-ycp. +# Copyright (C) 2006 Yoyodyne, Inc. +# Abel Cheung , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.15-pre5\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2006-07-05 15:40+0800\n" +"Last-Translator: Abel Cheung \n" +"Language-Team: Chinese (Hong Kong) \n" +"Language: zh_HK\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "你好ï¼" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œä¸­ï¼Œé€²ç¨‹ç·¨è™Ÿç‚º %1。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/zh_TW.po b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/zh_TW.po new file mode 100644 index 000000000..e52069ce4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/hello-ycp/po/zh_TW.po @@ -0,0 +1,27 @@ +# Traditional Chinese translation of hello-ycp. +# Copyright (C) 2009 Yoyodyne, Inc. (msgids) +# This file is distributed under the same license as the gettext package. +# Abel Cheung , 2005. +# Wei-Lun Chao , 2013, 2015. +# +msgid "" +msgstr "" +"Project-Id-Version: hello-ycp 0.19.4.73\n" +"Report-Msgid-Bugs-To: bug-gettext@gnu.org\n" +"PO-Revision-Date: 2015-10-08 13:00+0800\n" +"Last-Translator: Wei-Lun Chao \n" +"Language-Team: Chinese (traditional) \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" + +#: hello.ycp:15 +msgid "Hello, world!" +msgstr "哈囉,大家好ï¼" + +#: hello.ycp:19 +#, ycp-format +msgid "This program is running as process number %1." +msgstr "æœ¬ç¨‹å¼æ­£åœ¨åŸ·è¡Œï¼Œè¡Œç¨‹ç·¨è™Ÿç‚º %1。" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/installpaths b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/installpaths new file mode 100644 index 000000000..954645d14 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/examples/installpaths @@ -0,0 +1,26 @@ +# Shell script snippet that records various directories found by 'configure'. + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +prefix='/home/payton/blue' +exec_prefix="${prefix}" +datarootdir="${prefix}/share" +datadir="${datarootdir}" +docdir="${datarootdir}/doc/gettext" +ACLOCALDIR="${datadir}/aclocal" +GETTEXTSRCDIR="${datarootdir}/gettext" +GETTEXTSRCPODIR="${datarootdir}/gettext/po" +EXAMPLESCONFIGDIR="${datarootdir}/doc/gettext/examples/config" diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext.1.html new file mode 100644 index 000000000..3281d4ba6 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext.1.html @@ -0,0 +1,192 @@ + + + + + + + + +GETTEXT + + + + +

GETTEXT

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

gettext - +translate message

+ +

SYNOPSIS + +

+ + +

gettext +[OPTION] [[TEXTDOMAIN] MSGID]
+gettext
[OPTION] -s [MSGID]...

+ +

DESCRIPTION + +

+ + +

The +gettext program translates a natural language message +into the user’s language, by looking up the +translation in a message catalog.

+ +

Display native +language translation of a textual message.
+-d
, +--domain=TEXTDOMAIN

+ +

retrieve translated messages +from TEXTDOMAIN

+ +

-c, +--context=CONTEXT

+ +

specify context for MSGID

+ + + + + + + + + + + + + + + + + + + + +
+ + +

-e

+ + +

enable expansion of some escape sequences

+
+ + +

-n

+ + +

suppress trailing newline

+
+ + +

-E

+ + +

(ignored for compatibility)

+
+ +

[TEXTDOMAIN] MSGID

+ +

retrieve translated message +corresponding to MSGID from TEXTDOMAIN

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

display version information and +exit

+ +

If the +TEXTDOMAIN parameter is not given, the domain is determined +from the environment variable TEXTDOMAIN. If the message +catalog is not found in the regular directory, another +location can be specified with the environment variable +TEXTDOMAINDIR. When used with the -s option the +program behaves like the ’echo’ command. But it +does not simply copy its arguments to stdout. Instead those +messages found in the selected catalog are translated. +Standard search directory: /home/payton/blue/share/locale

+ +

AUTHOR + +

+ + +

Written by +Ulrich Drepper.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 1995-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for gettext is maintained as a Texinfo +manual. If the info and gettext programs are +properly installed at your site, the command

+ +

info +gettext

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext.3.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext.3.html new file mode 100644 index 000000000..6fe4452ce --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext.3.html @@ -0,0 +1,182 @@ + + + + + + + + +GETTEXT + + + + +

GETTEXT

+ +NAME
+SYNOPSIS
+DESCRIPTION
+RETURN VALUE
+ERRORS
+BUGS
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

gettext, +dgettext, dcgettext - translate message

+ +

SYNOPSIS + +

+ + +

#include +<libintl.h>

+ +

char * +gettext (const char * msgid);
+char * dgettext (const char *
domainname, +const char * msgid);
+char * dcgettext (const char *
domainname, +const char * msgid,
+int
category);

+ +

DESCRIPTION + +

+ + +

The +gettext, dgettext and dcgettext +functions attempt to translate a text string into the +user’s native language, by looking up the translation +in a message catalog.

+ +

The +msgid argument identifies the message to be +translated. By convention, it is the English version of the +message, with non-ASCII characters replaced by ASCII +approximations. This choice allows the translators to work +with message catalogs, called PO files, that contain both +the English and the translated versions of each message, and +can be installed using the msgfmt utility.

+ +

A message +domain is a set of translatable msgid messages. +Usually, every software package has its own message domain. +The domain name is used to determine the message catalog +where the translation is looked up; it must be a non-empty +string. For the gettext function, it is specified +through a preceding textdomain call. For the +dgettext and dcgettext functions, it is passed +as the domainname argument; if this argument is NULL, +the domain name specified through a preceding +textdomain call is used instead.

+ +

Translation +lookup operates in the context of the current locale. For +the gettext and dgettext functions, the +LC_MESSAGES locale facet is used. It is determined by +a preceding call to the setlocale function. +setlocale(LC_ALL,"") initializes the +LC_MESSAGES locale based on the first nonempty value +of the three environment variables LC_ALL, +LC_MESSAGES, LANG; see setlocale(3). +For the dcgettext function, the locale facet is +determined by the category argument, which should be +one of the LC_xxx constants defined in the +<locale.h> header, excluding LC_ALL. In both +cases, the functions also use the LC_CTYPE locale +facet in order to convert the translated message from the +translator’s codeset to the current locale’s +codeset, unless overridden by a prior call to the +bind_textdomain_codeset function.

+ +

The message +catalog used by the functions is at the pathname +dirname/locale/category/domainname.mo. +Here dirname is the directory specified through +bindtextdomain. Its default is system and +configuration dependent; typically it is +prefix/share/locale, where prefix is the +installation prefix of the package. locale is the +name of the current locale facet; the GNU implementation +also tries generalizations, such as the language name +without the territory name. category is +LC_MESSAGES for the gettext and +dgettext functions, or the argument passed to the +dcgettext function.

+ +

If the +LANGUAGE environment variable is set to a nonempty +value, and the locale is not the "C" locale, the +value of LANGUAGE is assumed to contain a colon +separated list of locale names. The functions will attempt +to look up a translation of msgid in each of the +locales in turn. This is a GNU extension.

+ +

In the +"C" locale, or if none of the used catalogs +contain a translation for msgid, the gettext, +dgettext and dcgettext functions return +msgid.

+ +

RETURN VALUE + +

+ + +

If a +translation was found in one of the specified catalogs, it +is converted to the locale’s codeset and returned. The +resulting string is statically allocated and must not be +modified or freed. Otherwise msgid is returned.

+ +

ERRORS + +

+ + +

errno is +not modified.

+ +

BUGS + +

+ + +

The return type +ought to be const char *, but is char * to +avoid warnings in C code predating ANSI C.

+ +

When an empty +string is used for msgid, the functions may return a +nonempty string.

+ +

SEE ALSO + +

+ + + +

ngettext(3), +dngettext(3), dcngettext(3), +setlocale(3), textdomain(3), +bindtextdomain(3), bind_textdomain_codeset(3), +msgfmt(1)

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_1.html new file mode 100644 index 000000000..8b9bfa361 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_1.html @@ -0,0 +1,654 @@ + + + + + +GNU gettext utilities: 1. Introduction + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

1. Introduction

+ +

This chapter explains the goals sought in the creation +of GNU gettext and the free Translation Project. +Then, it explains a few broad concepts around +Native Language Support, and positions message translation with regard +to other aspects of national and cultural variance, as they apply +to programs. It also surveys those files used to convey the +translations. It explains how the various tools interact in the +initial generation of these files, and later, how the maintenance +cycle should usually operate. +

+ + + +

In this manual, we use he when speaking of the programmer or +maintainer, she when speaking of the translator, and they +when speaking of the installers or end users of the translated program. +This is only a convenience for clarifying the documentation. It is +absolutely not meant to imply that some roles are more appropriate +to males or females. Besides, as you might guess, GNU gettext +is meant to be useful for people using computers, whatever their sex, +race, religion or nationality! +

+ +

Please submit suggestions and corrections +

+ +

Please include the manual's edition number and update date in your messages. +

+ + + + +

1.1 The Purpose of GNU gettext

+ +

Usually, programs are written and documented in English, and use +English at execution time to interact with users. This is true +not only of GNU software, but also of a great deal of proprietary +and free software. Using a common language is quite handy for +communication between developers, maintainers and users from all +countries. On the other hand, most people are less comfortable with +English than with their own native language, and would prefer to +use their mother tongue for day to day's work, as far as possible. +Many would simply love to see their computer screen showing +a lot less of English, and far more of their own language. +

+ +

However, to many people, this dream might appear so far fetched that +they may believe it is not even worth spending time thinking about +it. They have no confidence at all that the dream might ever +become true. Yet some have not lost hope, and have organized themselves. +The Translation Project is a formalization of this hope into a +workable structure, which has a good chance to get all of us nearer +the achievement of a truly multi-lingual set of programs. +

+

GNU gettext is an important step for the Translation Project, +as it is an asset on which we may build many other steps. This package +offers to programmers, translators and even users, a well integrated +set of tools and documentation. Specifically, the GNU gettext +utilities are a set of tools that provides a framework within which +other free packages may produce multi-lingual messages. These tools +include +

+
    +
  • +A set of conventions about how programs should be written to support +message catalogs. + +
  • +A directory and file naming organization for the message catalogs +themselves. + +
  • +A runtime library supporting the retrieval of translated messages. + +
  • +A few stand-alone programs to massage in various ways the sets of +translatable strings, or already translated strings. + +
  • +A library supporting the parsing and creation of files containing +translated messages. + +
  • +A special mode for Emacs(1) which helps preparing these sets +and bringing them up to date. +
+ +

GNU gettext is designed to minimize the impact of +internationalization on program sources, keeping this impact as small +and hardly noticeable as possible. Internationalization has better +chances of succeeding if it is very light weighted, or at least, +appear to be so, when looking at program sources. +

+

The Translation Project also uses the GNU gettext distribution +as a vehicle for documenting its structure and methods. This goes +beyond the strict technicalities of documenting the GNU gettext +proper. By so doing, translators will find in a single place, as +far as possible, all they need to know for properly doing their +translating work. Also, this supplemental documentation might also +help programmers, and even curious users, in understanding how GNU +gettext is related to the remainder of the Translation +Project, and consequently, have a glimpse at the big picture. +

+ + + +

1.2 I18n, L10n, and Such

+ +

Two long words appear all the time when we discuss support of native +language in programs, and these words have a precise meaning, worth +being explained here, once and for all in this document. The words are +internationalization and localization. Many people, +tired of writing these long words over and over again, took the +habit of writing i18n and l10n instead, quoting the first +and last letter of each word, and replacing the run of intermediate +letters by a number merely telling how many such letters there are. +But in this manual, in the sake of clarity, we will patiently write +the names in full, each time… +

+ +

By internationalization, one refers to the operation by which a +program, or a set of programs turned into a package, is made aware of and +able to support multiple languages. This is a generalization process, +by which the programs are untied from calling only English strings or +other English specific habits, and connected to generic ways of doing +the same, instead. Program developers may use various techniques to +internationalize their programs. Some of these have been standardized. +GNU gettext offers one of these standards. See section The Programmer's View. +

+ +

By localization, one means the operation by which, in a set +of programs already internationalized, one gives the program all +needed information so that it can adapt itself to handle its input +and output in a fashion which is correct for some native language and +cultural habits. This is a particularisation process, by which generic +methods already implemented in an internationalized program are used +in specific ways. The programming environment puts several functions +to the programmers disposal which allow this runtime configuration. +The formal description of specific set of cultural habits for some +country, together with all associated translations targeted to the +same native language, is called the locale for this language +or country. Users achieve localization of programs by setting proper +values to special environment variables, prior to executing those +programs, identifying which locale should be used. +

+

In fact, locale message support is only one component of the cultural +data that makes up a particular locale. There are a whole host of +routines and functions provided to aid programmers in developing +internationalized software and which allow them to access the data +stored in a particular locale. When someone presently refers to a +particular locale, they are obviously referring to the data stored +within that particular locale. Similarly, if a programmer is referring +to “accessing the locale routines”, they are referring to the +complete suite of routines that access all of the locale's information. +

+ + + +

One uses the expression Native Language Support, or merely NLS, +for speaking of the overall activity or feature encompassing both +internationalization and localization, allowing for multi-lingual +interactions in a program. In a nutshell, one could say that +internationalization is the operation by which further localizations +are made possible. +

+

Also, very roughly said, when it comes to multi-lingual messages, +internationalization is usually taken care of by programmers, and +localization is usually taken care of by translators. +

+ + + +

1.3 Aspects in Native Language Support

+ +

For a totally multi-lingual distribution, there are many things to +translate beyond output messages. +

+
    +
  • +As of today, GNU gettext offers a complete toolset for +translating messages output by C programs. Perl scripts and shell +scripts will also need to be translated. Even if there are today some hooks +by which this can be done, these hooks are not integrated as well as they +should be. + +
  • +Some programs, like autoconf or bison, are able +to produce other programs (or scripts). Even if the generating +programs themselves are internationalized, the generated programs they +produce may need internationalization on their own, and this indirect +internationalization could be automated right from the generating +program. In fact, quite usually, generating and generated programs +could be internationalized independently, as the effort needed is +fairly orthogonal. + +
  • +A few programs include textual tables which might need translation +themselves, independently of the strings contained in the program +itself. For example, RFC 1345 gives an English description for each +character which the recode program is able to reconstruct at execution. +Since these descriptions are extracted from the RFC by mechanical means, +translating them properly would require a prior translation of the RFC +itself. + +
  • +Almost all programs accept options, which are often worded out so to +be descriptive for the English readers; one might want to consider +offering translated versions for program options as well. + +
  • +Many programs read, interpret, compile, or are somewhat driven by +input files which are texts containing keywords, identifiers, or +replies which are inherently translatable. For example, one may want +gcc to allow diacriticized characters in identifiers or use +translated keywords; ‘rm -i’ might accept something else than +‘y’ or ‘n’ for replies, etc. Even if the program will +eventually make most of its output in the foreign languages, one has +to decide whether the input syntax, option values, etc., are to be +localized or not. + +
  • +The manual accompanying a package, as well as all documentation files +in the distribution, could surely be translated, too. Translating a +manual, with the intent of later keeping up with updates, is a major +undertaking in itself, generally. + +
+ +

As we already stressed, translation is only one aspect of locales. +Other internationalization aspects are system services and are handled +in GNU libc. There +are many attributes that are needed to define a country's cultural +conventions. These attributes include beside the country's native +language, the formatting of the date and time, the representation of +numbers, the symbols for currency, etc. These local rules are +termed the country's locale. The locale represents the knowledge +needed to support the country's native attributes. +

+ +

There are a few major areas which may vary between countries and +hence, define what a locale must describe. The following list helps +putting multi-lingual messages into the proper context of other tasks +related to locales. See the GNU libc manual for details. +

+
+
Characters and Codesets
+
+ + + + +

The codeset most commonly used through out the USA and most English +speaking parts of the world is the ASCII codeset. However, there are +many characters needed by various locales that are not found within +this codeset. The 8-bit ISO 8859-1 code set has most of the special +characters needed to handle the major European languages. However, in +many cases, choosing ISO 8859-1 is nevertheless not adequate: it +doesn't even handle the major European currency. Hence each locale +will need to specify which codeset they need to use and will need +to have the appropriate character handling routines to cope with +the codeset. +

+
+
Currency
+
+ + +

The symbols used vary from country to country as does the position +used by the symbol. Software needs to be able to transparently +display currency figures in the native mode for each locale. +

+
+
Dates
+
+ + +

The format of date varies between locales. For example, Christmas day +in 1994 is written as 12/25/94 in the USA and as 25/12/94 in Australia. +Other countries might use ISO 8601 dates, etc. +

+

Time of the day may be noted as hh:mm, hh.mm, +or otherwise. Some locales require time to be specified in 24-hour +mode rather than as AM or PM. Further, the nature and yearly extent +of the Daylight Saving correction vary widely between countries. +

+
+
Numbers
+
+ + +

Numbers can be represented differently in different locales. +For example, the following numbers are all written correctly for +their respective locales: +

+
 
12,345.67       English
+12.345,67       German
+ 12345,67       French
+1,2345.67       Asia
+
+ +

Some programs could go further and use different unit systems, like +English units or Metric units, or even take into account variants +about how numbers are spelled in full. +

+
+
Messages
+
+ + +

The most obvious area is the language support within a locale. This is +where GNU gettext provides the means for developers and users to +easily change the language that the software uses to communicate to +the user. +

+
+
+ + +

These areas of cultural conventions are called locale categories. +It is an unfortunate term; locale aspects or locale feature +categories would be a better term, because each “locale category” +describes an area or task that requires localization. The concrete data +that describes the cultural conventions for such an area and for a particular +culture is also called a locale category. In this sense, a locale +is composed of several locale categories: the locale category describing +the codeset, the locale category describing the formatting of numbers, +the locale category containing the translated messages, and so on. +

+ +

Components of locale outside of message handling are standardized in +the ISO C standard and the POSIX:2001 standard (also known as the SUSV3 +specification). GNU libc +fully implements this, and most other modern systems provide a more +or less reasonable support for at least some of the missing components. +

+ + + +

1.4 Files Conveying Translations

+ +

The letters PO in ‘.po’ files means Portable Object, to +distinguish it from ‘.mo’ files, where MO stands for Machine +Object. This paradigm, as well as the PO file format, is inspired +by the NLS standard developed by Uniforum, and first implemented by +Sun in their Solaris system. +

+

PO files are meant to be read and edited by humans, and associate each +original, translatable string of a given package with its translation +in a particular target language. A single PO file is dedicated to +a single target language. If a package supports many languages, +there is one such PO file per language supported, and each package +has its own set of PO files. These PO files are best created by +the xgettext program, and later updated or refreshed through +the msgmerge program. Program xgettext extracts all +marked messages from a set of C files and initializes a PO file with +empty translations. Program msgmerge takes care of adjusting +PO files between releases of the corresponding sources, commenting +obsolete entries, initializing new ones, and updating all source +line references. Files ending with ‘.pot’ are kind of base +translation files found in distributions, in PO file format. +

+

MO files are meant to be read by programs, and are binary in nature. +A few systems already offer tools for creating and handling MO files +as part of the Native Language Support coming with the system, but the +format of these MO files is often different from system to system, +and non-portable. The tools already provided with these systems don't +support all the features of GNU gettext. Therefore GNU +gettext uses its own format for MO files. Files ending with +‘.gmo’ are really MO files, when it is known that these files use +the GNU format. +

+ + + +

1.5 Overview of GNU gettext

+ +

The following diagram summarizes the relation between the files +handled by GNU gettext and the tools acting on these files. +It is followed by somewhat detailed explanations, which you should +read while keeping an eye on the diagram. Having a clear understanding +of these interrelations will surely help programmers, translators +and maintainers. +

+
 
Original C Sources ───> Preparation ───> Marked C Sources ───╮
+                                                             │
+              ╭─────────<─── GNU gettext Library             │
+╭─── make <───┤                                              │
+│             ╰─────────<────────────────────┬───────────────╯
+│                                            │
+│   ╭─────<─── PACKAGE.pot <─── xgettext <───╯   ╭───<─── PO Compendium
+│   │                                            │              ↑
+│   │                                            ╰───╮          │
+│   ╰───╮                                            ├───> PO editor ───╮
+│       ├────> msgmerge ──────> LANG.po ────>────────╯                  │
+│   ╭───╯                                                               │
+│   │                                                                   │
+│   ╰─────────────<───────────────╮                                     │
+│                                 ├─── New LANG.po <────────────────────╯
+│   ╭─── LANG.gmo <─── msgfmt <───╯
+│   │
+│   ╰───> install ───> /.../LANG/PACKAGE.mo ───╮
+│                                              ├───> "Hello world!"
+╰───────> install ───> /.../bin/PROGRAM ───────╯
+
+ + +

As a programmer, the first step to bringing GNU gettext +into your package is identifying, right in the C sources, those strings +which are meant to be translatable, and those which are untranslatable. +This tedious job can be done a little more comfortably using emacs PO +mode, but you can use any means familiar to you for modifying your +C sources. Beside this some other simple, standard changes are needed to +properly initialize the translation library. See section Preparing Program Sources, for +more information about all this. +

+

For newly written software the strings of course can and should be +marked while writing it. The gettext approach makes this +very easy. Simply put the following lines at the beginning of each file +or in a central header file: +

+
 
#define _(String) (String)
+#define N_(String) String
+#define textdomain(Domain)
+#define bindtextdomain(Package, Directory)
+
+ +

Doing this allows you to prepare the sources for internationalization. +Later when you feel ready for the step to use the gettext library +simply replace these definitions by the following: +

+ +
 
#include <libintl.h>
+#define _(String) gettext (String)
+#define gettext_noop(String) String
+#define N_(String) gettext_noop (String)
+
+ + + +

and link against ‘libintl.a’ or ‘libintl.so’. Note that on +GNU systems, you don't need to link with libintl because the +gettext library functions are already contained in GNU libc. +That is all you have to change. +

+ + +

Once the C sources have been modified, the xgettext program +is used to find and extract all translatable strings, and create a +PO template file out of all these. This ‘package.pot’ file +contains all original program strings. It has sets of pointers to +exactly where in C sources each string is used. All translations +are set to empty. The letter t in ‘.pot’ marks this as +a Template PO file, not yet oriented towards any particular language. +See section Invoking the xgettext Program, for more details about how one calls the +xgettext program. If you are really lazy, you might +be interested at working a lot more right away, and preparing the +whole distribution setup (see section The Maintainer's View). By doing so, you +spare yourself typing the xgettext command, as make +should now generate the proper things automatically for you! +

+

The first time through, there is no ‘lang.po’ yet, so the +msgmerge step may be skipped and replaced by a mere copy of +‘package.pot’ to ‘lang.po’, where lang +represents the target language. See Creating a New PO File for details. +

+

Then comes the initial translation of messages. Translation in +itself is a whole matter, still exclusively meant for humans, +and whose complexity far overwhelms the level of this manual. +Nevertheless, a few hints are given in some other chapter of this +manual (see section The Translator's View). You will also find there indications +about how to contact translating teams, or becoming part of them, +for sharing your translating concerns with others who target the same +native language. +

+

While adding the translated messages into the ‘lang.po’ +PO file, if you are not using one of the dedicated PO file editors +(see section Editing PO Files), you are on your own +for ensuring that your efforts fully respect the PO file format, and quoting +conventions (see section The Format of PO Files). This is surely not an impossible task, +as this is the way many people have handled PO files around 1995. +On the other hand, by using a PO file editor, most details +of PO file format are taken care of for you, but you have to acquire +some familiarity with PO file editor itself. +

+

If some common translations have already been saved into a compendium +PO file, translators may use PO mode for initializing untranslated +entries from the compendium, and also save selected translations into +the compendium, updating it (see section Using Translation Compendia). Compendium files +are meant to be exchanged between members of a given translation team. +

+

Programs, or packages of programs, are dynamic in nature: users write +bug reports and suggestion for improvements, maintainers react by +modifying programs in various ways. The fact that a package has +already been internationalized should not make maintainers shy +of adding new strings, or modifying strings already translated. +They just do their job the best they can. For the Translation +Project to work smoothly, it is important that maintainers do not +carry translation concerns on their already loaded shoulders, and that +translators be kept as free as possible of programming concerns. +

+

The only concern maintainers should have is carefully marking new +strings as translatable, when they should be, and do not otherwise +worry about them being translated, as this will come in proper time. +Consequently, when programs and their strings are adjusted in various +ways by maintainers, and for matters usually unrelated to translation, +xgettext would construct ‘package.pot’ files which are +evolving over time, so the translations carried by ‘lang.po’ +are slowly fading out of date. +

+ +

It is important for translators (and even maintainers) to understand +that package translation is a continuous process in the lifetime of a +package, and not something which is done once and for all at the start. +After an initial burst of translation activity for a given package, +interventions are needed once in a while, because here and there, +translated entries become obsolete, and new untranslated entries +appear, needing translation. +

+

The msgmerge program has the purpose of refreshing an already +existing ‘lang.po’ file, by comparing it with a newer +‘package.pot’ template file, extracted by xgettext +out of recent C sources. The refreshing operation adjusts all +references to C source locations for strings, since these strings +move as programs are modified. Also, msgmerge comments out as +obsolete, in ‘lang.po’, those already translated entries +which are no longer used in the program sources (see section Obsolete Entries). It finally discovers new strings and inserts them in +the resulting PO file as untranslated entries (see section Untranslated Entries). See section Invoking the msgmerge Program, for more information about what +msgmerge really does. +

+

Whatever route or means taken, the goal is to obtain an updated +‘lang.po’ file offering translations for all strings. +

+

The temporal mobility, or fluidity of PO files, is an integral part of +the translation game, and should be well understood, and accepted. +People resisting it will have a hard time participating in the +Translation Project, or will give a hard time to other participants! In +particular, maintainers should relax and include all available official +PO files in their distributions, even if these have not recently been +updated, without exerting pressure on the translator teams to get the +job done. The pressure should rather come +from the community of users speaking a particular language, and +maintainers should consider themselves fairly relieved of any concern +about the adequacy of translation files. On the other hand, translators +should reasonably try updating the PO files they are responsible for, +while the package is undergoing pretest, prior to an official +distribution. +

+

Once the PO file is complete and dependable, the msgfmt program +is used for turning the PO file into a machine-oriented format, which +may yield efficient retrieval of translations by the programs of the +package, whenever needed at runtime (see section The Format of GNU MO Files). See section Invoking the msgfmt Program, for more information about all modes of execution +for the msgfmt program. +

+

Finally, the modified and marked C sources are compiled and linked +with the GNU gettext library, usually through the operation of +make, given a suitable ‘Makefile’ exists for the project, +and the resulting executable is installed somewhere users will find it. +The MO files themselves should also be properly installed. Given the +appropriate environment variables are set (see section Setting the Locale through Environment Variables), +the program should localize itself automatically, whenever it executes. +

+

The remainder of this manual has the purpose of explaining in depth the various +steps outlined above. +

+ + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_10.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_10.html new file mode 100644 index 000000000..bab0a7eeb --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_10.html @@ -0,0 +1,1028 @@ + + + + + +GNU gettext utilities: 10. Producing Binary MO Files + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

10. Producing Binary MO Files

+ + + + + + +

10.1 Invoking the msgfmt Program

+ + +
 
msgfmt [option] filename.po …
+
+ + +

The msgfmt programs generates a binary message catalog from a textual +translation description. +

+ + +

10.1.1 Input file location

+ +
+
filename.po …
+
-D directory
+
--directory=directory
+
+ +

Add directory to the list of directories. Source files are +searched relative to this list of directories. The resulting binary +file will be written relative to the current directory, though. +

+
+
+ +

If an input file is ‘-’, standard input is read. +

+ + +

10.1.2 Operation mode

+ +
+
-j
+
--java
+
+ + +

Java mode: generate a Java ResourceBundle class. +

+
+
--java2
+
+

Like –java, and assume Java2 (JDK 1.2 or higher). +

+
+
--csharp
+
+ +

C# mode: generate a .NET .dll file containing a subclass of +GettextResourceSet. +

+
+
--csharp-resources
+
+ +

C# resources mode: generate a .NET ‘.resources’ file. +

+
+
--tcl
+
+ +

Tcl mode: generate a tcl/msgcat ‘.msg’ file. +

+
+
--qt
+
+ +

Qt mode: generate a Qt ‘.qm’ file. +

+
+
--desktop
+
+ +

Desktop Entry mode: generate a ‘.desktop’ file. +

+
+
--xml
+
+ +

XML mode: generate an XML file. +

+
+
+ + + +

10.1.3 Output file location

+ +
+
-o file
+
--output-file=file
+
+ +

Write output to specified file. +

+
+
--strict
+
+

Direct the program to work strictly following the Uniforum/Sun +implementation. Currently this only affects the naming of the output +file. If this option is not given the name of the output file is the +same as the domain name. If the strict Uniforum mode is enabled the +suffix ‘.mo’ is added to the file name if it is not already +present. +

+

We find this behaviour of Sun's implementation rather silly and so by +default this mode is not selected. +

+
+
+ +

If the output file is ‘-’, output is written to standard output. +

+ + +

10.1.4 Output file location in Java mode

+ +
+
-r resource
+
--resource=resource
+
+ +

Specify the resource name. +

+
+
-l locale
+
--locale=locale
+
+ +

Specify the locale name, either a language specification of the form ll +or a combined language and country specification of the form ll_CC. +

+
+
-d directory
+
+

Specify the base directory of classes directory hierarchy. +

+
+
--source
+
+

Produce a .java source file, instead of a compiled .class file. +

+
+
+ +

The class name is determined by appending the locale name to the resource name, +separated with an underscore. The ‘-d’ option is mandatory. The class +is written under the specified directory. +

+ + +

10.1.5 Output file location in C# mode

+ +
+
-r resource
+
--resource=resource
+
+ +

Specify the resource name. +

+
+
-l locale
+
--locale=locale
+
+ +

Specify the locale name, either a language specification of the form ll +or a combined language and country specification of the form ll_CC. +

+
+
-d directory
+
+

Specify the base directory for locale dependent ‘.dll’ files. +

+
+
+ +

The ‘-l’ and ‘-d’ options are mandatory. The ‘.dll’ file is +written in a subdirectory of the specified directory whose name depends on the +locale. +

+ + +

10.1.6 Output file location in Tcl mode

+ +
+
-l locale
+
--locale=locale
+
+ +

Specify the locale name, either a language specification of the form ll +or a combined language and country specification of the form ll_CC. +

+
+
-d directory
+
+

Specify the base directory of ‘.msg’ message catalogs. +

+
+
+ +

The ‘-l’ and ‘-d’ options are mandatory. The ‘.msg’ file is +written in the specified directory. +

+ + +

10.1.7 Desktop Entry mode operations

+ +
+
--template=template
+
+

Specify a .desktop file used as a template. +

+
+
-k[keywordspec]
+
--keyword[=keywordspec]
+
+ +

Specify keywordspec as an additional keyword to be looked for. +Without a keywordspec, the option means to not use default keywords. +

+
+
-l locale
+
--locale=locale
+
+ +

Specify the locale name, either a language specification of the form ll +or a combined language and country specification of the form ll_CC. +

+
+
-d directory
+
+

Specify the directory where PO files are read. The directory must +contain the ‘LINGUAS’ file. +

+
+
+ +

To generate a ‘.desktop’ file for a single locale, you can use it +as follows. +

+
 
msgfmt --desktop --template=template --locale=locale \
+  -o file filename.po …
+
+ +

msgfmt provides a special "bulk" operation mode to process multiple +‘.po’ files at a time. +

+
 
msgfmt --desktop --template=template -d directory -o file
+
+ +

msgfmt first reads the ‘LINGUAS’ file under directory, and +then processes all ‘.po’ files listed there. You can also limit +the locales to a subset, through the ‘LINGUAS’ environment +variable. +

+

For either operation modes, the ‘-o’ and ‘--template’ +options are mandatory. +

+ + +

10.1.8 XML mode operations

+ +
+
--template=template
+
+

Specify an XML file used as a template. +

+
+
-L name
+
--language=name
+
+ + +

Specifies the language of the input files. +

+
+
-l locale
+
--locale=locale
+
+ +

Specify the locale name, either a language specification of the form ll +or a combined language and country specification of the form ll_CC. +

+
+
-d directory
+
+

Specify the base directory of ‘.po’ message catalogs. +

+
+
+ +

To generate an XML file for a single locale, you can use it as follows. +

+
 
msgfmt --xml --template=template --locale=locale \
+  -o file filename.po …
+
+ +

msgfmt provides a special "bulk" operation mode to process multiple +‘.po’ files at a time. +

+
 
msgfmt --xml --template=template -d directory -o file
+
+ +

msgfmt first reads the ‘LINGUAS’ file under directory, and +then processes all ‘.po’ files listed there. You can also limit +the locales to a subset, through the ‘LINGUAS’ environment +variable. +

+

For either operation modes, the ‘-o’ and ‘--template’ +options are mandatory. +

+ + +

10.1.9 Input file syntax

+ +
+
-P
+
--properties-input
+
+ +

Assume the input files are Java ResourceBundles in Java .properties +syntax, not in PO file syntax. +

+
+
--stringtable-input
+
+

Assume the input files are NeXTstep/GNUstep localized resource files in +.strings syntax, not in PO file syntax. +

+
+
+ + + +

10.1.10 Input file interpretation

+ +
+
-c
+
--check
+
+ +

Perform all the checks implied by --check-format, --check-header, +--check-domain. +

+
+
--check-format
+
+ +

Check language dependent format strings. +

+

If the string represents a format string used in a +printf-like function both strings should have the same number of +‘%’ format specifiers, with matching types. If the flag +c-format or possible-c-format appears in the special +comment <#,> for this entry a check is performed. For example, the +check will diagnose using ‘%.*s’ against ‘%s’, or ‘%d’ +against ‘%s’, or ‘%d’ against ‘%x’. It can even handle +positional parameters. +

+

Normally the xgettext program automatically decides whether a +string is a format string or not. This algorithm is not perfect, +though. It might regard a string as a format string though it is not +used in a printf-like function and so msgfmt might report +errors where there are none. +

+

To solve this problem the programmer can dictate the decision to the +xgettext program (see section C Format Strings). The translator should not +consider removing the flag from the <#,> line. This "fix" would be +reversed again as soon as msgmerge is called the next time. +

+
+
--check-header
+
+

Verify presence and contents of the header entry. See section Filling in the Header Entry, +for a description of the various fields in the header entry. +

+
+
--check-domain
+
+

Check for conflicts between domain directives and the --output-file +option +

+
+
-C
+
--check-compatibility
+
+ + +

Check that GNU msgfmt behaves like X/Open msgfmt. This will give an error +when attempting to use the GNU extensions. +

+
+
--check-accelerators[=char]
+
+ + + +

Check presence of keyboard accelerators for menu items. This is based on +the convention used in some GUIs that a keyboard accelerator in a menu +item string is designated by an immediately preceding ‘&’ character. +Sometimes a keyboard accelerator is also called "keyboard mnemonic". +This check verifies that if the untranslated string has exactly one +‘&’ character, the translated string has exactly one ‘&’ as well. +If this option is given with a char argument, this char should +be a non-alphanumeric character and is used as keyboard accelerator mark +instead of ‘&’. +

+
+
-f
+
--use-fuzzy
+
+ + +

Use fuzzy entries in output. Note that using this option is usually wrong, +because fuzzy messages are exactly those which have not been validated by +a human translator. +

+
+
+ + + +

10.1.11 Output details

+ +
+
--no-convert
+
+

Don't convert the messages to UTF-8 encoding. By default, messages are +converted to UTF-8 encoding before being stored in a MO file; this helps +avoiding conversions at run time, since nowadays most locales use the +UTF-8 encoding. +

+
+
--no-redundancy
+
+

Don't pre-expand ISO C 99 <inttypes.h> format string directive macros. +By default, messages that are marked as c-format and contain +ISO C 99 <inttypes.h> format string directive macros are pre-expanded +for selected platforms, and these redundant expansions are stored in the +MO file. These redundant expansions make the translations of these +messages work with the gettext implementation in the libc +of that platform, without requiring GNU gettext's libintl. +The platforms that benefit from this pre-expansion are those with the +musl libc. +

+
+
-a number
+
--alignment=number
+
+ +

Align strings to number bytes (default: 1). +

+
+
--endianness=byteorder
+
+

Write out 32-bit numbers in the given byte order. The possible values are +big and little. The default is little. +

+

MO files of any endianness can be used on any platform. When a MO file has +an endianness other than the platform's one, the 32-bit numbers from the MO +file are swapped at runtime. The performance impact is negligible. +

+

This option can be useful to produce MO files that are optimized for one +platform. +

+
+
--no-hash
+
+

Don't include a hash table in the binary file. Lookup will be more expensive +at run time (binary search instead of hash table lookup). +

+
+
+ + + +

10.1.12 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
--statistics
+
+

Print statistics about translations. When the option --verbose is used +in combination with --statistics, the input file name is printed in +front of the statistics line. +

+
+
-v
+
--verbose
+
+ +

Increase verbosity level. +

+
+
+ + + + +

10.2 Invoking the msgunfmt Program

+ + +
 
msgunfmt [option] [file]...
+
+ + +

The msgunfmt program converts a binary message catalog to a +Uniforum style .po file. +

+ + +

10.2.1 Operation mode

+ +
+
-j
+
--java
+
+ + +

Java mode: input is a Java ResourceBundle class. +

+
+
--csharp
+
+ +

C# mode: input is a .NET .dll file containing a subclass of +GettextResourceSet. +

+
+
--csharp-resources
+
+ +

C# resources mode: input is a .NET ‘.resources’ file. +

+
+
--tcl
+
+ +

Tcl mode: input is a tcl/msgcat ‘.msg’ file. +

+
+
+ + + +

10.2.2 Input file location

+ +
+
file
+

Input .mo files. +

+
+
+ +

If no input file is given or if it is ‘-’, standard input is read. +

+ + +

10.2.3 Input file location in Java mode

+ +
+
-r resource
+
--resource=resource
+
+ +

Specify the resource name. +

+
+
-l locale
+
--locale=locale
+
+ +

Specify the locale name, either a language specification of the form ll +or a combined language and country specification of the form ll_CC. +

+
+
+ +

The class name is determined by appending the locale name to the resource name, +separated with an underscore. The class is located using the CLASSPATH. +

+ + +

10.2.4 Input file location in C# mode

+ +
+
-r resource
+
--resource=resource
+
+ +

Specify the resource name. +

+
+
-l locale
+
--locale=locale
+
+ +

Specify the locale name, either a language specification of the form ll +or a combined language and country specification of the form ll_CC. +

+
+
-d directory
+
+

Specify the base directory for locale dependent ‘.dll’ files. +

+
+
+ +

The ‘-l’ and ‘-d’ options are mandatory. The ‘.msg’ file is +located in a subdirectory of the specified directory whose name depends on the +locale. +

+ + +

10.2.5 Input file location in Tcl mode

+ +
+
-l locale
+
--locale=locale
+
+ +

Specify the locale name, either a language specification of the form ll +or a combined language and country specification of the form ll_CC. +

+
+
-d directory
+
+

Specify the base directory of ‘.msg’ message catalogs. +

+
+
+ +

The ‘-l’ and ‘-d’ options are mandatory. The ‘.msg’ file is +located in the specified directory. +

+ + +

10.2.6 Output file location

+ +
+
-o file
+
--output-file=file
+
+ +

Write output to specified file. +

+
+
+ +

The results are written to standard output if no output file is specified +or if it is ‘-’. +

+ + +

10.2.7 Output details

+ + +
+
--color
+
--color=when
+
+

Specify whether or when to use colors and other text attributes. +See The --color option for details. +

+
+
--style=style_file
+
+

Specify the CSS style rule file to use for --color. +See The --style option for details. +

+
+
--force-po
+
+

Always write an output file even if it contains no message. +

+
+
-i
+
--indent
+
+ +

Write the .po file using indented style. +

+
+
--strict
+
+

Write out a strict Uniforum conforming PO file. Note that this +Uniforum format should be avoided because it doesn't support the +GNU extensions. +

+
+
-p
+
--properties-output
+
+ +

Write out a Java ResourceBundle in Java .properties syntax. Note +that this file format doesn't support plural forms and silently drops +obsolete messages. +

+
+
--stringtable-output
+
+

Write out a NeXTstep/GNUstep localized resource file in .strings syntax. +Note that this file format doesn't support plural forms. +

+
+
-w number
+
--width=number
+
+ +

Set the output page width. Long strings in the output files will be +split across multiple lines in order to ensure that each line's width +(= number of screen columns) is less or equal to the given number. +

+
+
--no-wrap
+
+

Do not break long message lines. Message lines whose width exceeds the +output page width will not be split into several lines. Only file reference +lines which are wider than the output page width will be split. +

+
+
-s
+
--sort-output
+
+ + +

Generate sorted output. Note that using this option makes it much harder +for the translator to understand each message's context. +

+
+
+ + + +

10.2.8 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
-v
+
--verbose
+
+ +

Increase verbosity level. +

+
+
+ + + + +

10.3 The Format of GNU MO Files

+ +

The format of the generated MO files is best described by a picture, +which appears below. +

+ +

The first two words serve the identification of the file. The magic +number will always signal GNU MO files. The number is stored in the +byte order used when the MO file was generated, so the magic number +really is two numbers: 0x950412de and 0xde120495. +

+

The second word describes the current revision of the file format, +composed of a major and a minor revision number. The revision numbers +ensure that the readers of MO files can distinguish new formats from +old ones and handle their contents, as far as possible. For now the +major revision is 0 or 1, and the minor revision is also 0 or 1. More +revisions might be added in the future. A program seeing an unexpected +major revision number should stop reading the MO file entirely; whereas +an unexpected minor revision number means that the file can be read but +will not reveal its full contents, when parsed by a program that +supports only smaller minor revision numbers. +

+

The version is kept +separate from the magic number, instead of using different magic +numbers for different formats, mainly because ‘/etc/magic’ is +not updated often. +

+

Follow a number of pointers to later tables in the file, allowing +for the extension of the prefix part of MO files without having to +recompile programs reading them. This might become useful for later +inserting a few flag bits, indication about the charset used, new +tables, or other things. +

+

Then, at offset O and offset T in the picture, two tables +of string descriptors can be found. In both tables, each string +descriptor uses two 32 bits integers, one for the string length, +another for the offset of the string in the MO file, counting in bytes +from the start of the file. The first table contains descriptors +for the original strings, and is sorted so the original strings +are in increasing lexicographical order. The second table contains +descriptors for the translated strings, and is parallel to the first +table: to find the corresponding translation one has to access the +array slot in the second array with the same index. +

+

Having the original strings sorted enables the use of simple binary +search, for when the MO file does not contain an hashing table, or +for when it is not practical to use the hashing table provided in +the MO file. This also has another advantage, as the empty string +in a PO file GNU gettext is usually translated into +some system information attached to that particular MO file, and the +empty string necessarily becomes the first in both the original and +translated tables, making the system information very easy to find. +

+ +

The size S of the hash table can be zero. In this case, the +hash table itself is not contained in the MO file. Some people might +prefer this because a precomputed hashing table takes disk space, and +does not win that much speed. The hash table contains indices +to the sorted array of strings in the MO file. Conflict resolution is +done by double hashing. The precise hashing algorithm used is fairly +dependent on GNU gettext code, and is not documented here. +

+

As for the strings themselves, they follow the hash file, and each +is terminated with a <NUL>, and this <NUL> is not counted in +the length which appears in the string descriptor. The msgfmt +program has an option selecting the alignment for MO file strings. +With this option, each string is separately aligned so it starts at +an offset which is a multiple of the alignment value. On some RISC +machines, a correct alignment will speed things up. +

+ +

Contexts are stored by storing the concatenation of the context, a +<EOT> byte, and the original string, instead of the original string. +

+ +

Plural forms are stored by letting the plural of the original string +follow the singular of the original string, separated through a +<NUL> byte. The length which appears in the string descriptor +includes both. However, only the singular of the original string +takes part in the hash table lookup. The plural variants of the +translation are all stored consecutively, separated through a +<NUL> byte. Here also, the length in the string descriptor +includes all of them. +

+ +

The character encoding of the strings can be any standard ASCII-compatible +encoding, such as UTF-8, ISO-8859-1, EUC-JP, etc., as long as the +encoding's name is stated in the header entry (see section Filling in the Header Entry). +Starting with GNU gettext version 0.22, the MO files produced by +msgfmt have them in UTF-8 encoding, unless the msgfmt +option ‘--no-convert’ is used. +

+

Nothing prevents a MO file from having embedded <NUL>s in strings. +However, the program interface currently used already presumes +that strings are <NUL> terminated, so embedded <NUL>s are +somewhat useless. But the MO file format is general enough so other +interfaces would be later possible, if for example, we ever want to +implement wide characters right in MO files, where <NUL> bytes may +accidentally appear. (No, we don't want to have wide characters in MO +files. They would make the file unnecessarily large, and the +‘wchar_t’ type being platform dependent, MO files would be +platform dependent as well.) +

+

This particular issue has been strongly debated in the GNU +gettext development forum, and it is expectable that MO file +format will evolve or change over time. It is even possible that many +formats may later be supported concurrently. But surely, we have to +start somewhere, and the MO file format described here is a good start. +Nothing is cast in concrete, and the format may later evolve fairly +easily, so we should feel comfortable with the current approach. +

+
 
        byte
+             +------------------------------------------+
+          0  | magic number = 0x950412de                |
+             |                                          |
+          4  | file format revision = 0                 |
+             |                                          |
+          8  | number of strings                        |  == N
+             |                                          |
+         12  | offset of table with original strings    |  == O
+             |                                          |
+         16  | offset of table with translation strings |  == T
+             |                                          |
+         20  | size of hashing table                    |  == S
+             |                                          |
+         24  | offset of hashing table                  |  == H
+             |                                          |
+             .                                          .
+             .    (possibly more entries later)         .
+             .                                          .
+             |                                          |
+          O  | length & offset 0th string  ----------------.
+      O + 8  | length & offset 1st string  ------------------.
+              ...                                    ...   | |
+O + ((N-1)*8)| length & offset (N-1)th string           |  | |
+             |                                          |  | |
+          T  | length & offset 0th translation  ---------------.
+      T + 8  | length & offset 1st translation  -----------------.
+              ...                                    ...   | | | |
+T + ((N-1)*8)| length & offset (N-1)th translation      |  | | | |
+             |                                          |  | | | |
+          H  | start hash table                         |  | | | |
+              ...                                    ...   | | | |
+  H + S * 4  | end hash table                           |  | | | |
+             |                                          |  | | | |
+             | NUL terminated 0th string  <----------------' | | |
+             |                                          |    | | |
+             | NUL terminated 1st string  <------------------' | |
+             |                                          |      | |
+              ...                                    ...       | |
+             |                                          |      | |
+             | NUL terminated 0th translation  <---------------' |
+             |                                          |        |
+             | NUL terminated 1st translation  <-----------------'
+             |                                          |
+              ...                                    ...
+             |                                          |
+             +------------------------------------------+
+
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_11.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_11.html new file mode 100644 index 000000000..d98285e77 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_11.html @@ -0,0 +1,1412 @@ + + + + + +GNU gettext utilities: 11. The Programmer's View + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

11. The Programmer's View

+ + +

One aim of the current message catalog implementation provided by +GNU gettext was to use the system's message catalog handling, if the +installer wishes to do so. So we perhaps should first take a look at +the solutions we know about. The people in the POSIX committee did not +manage to agree on one of the semi-official standards which we'll +describe below. In fact they couldn't agree on anything, so they decided +only to include an example of an interface. The major Unix vendors +are split in the usage of the two most important specifications: X/Open's +catgets vs. Uniforum's gettext interface. We'll describe them both and +later explain our solution of this dilemma. +

+ + + + +

11.1 About catgets

+ +

The catgets implementation is defined in the X/Open Portability +Guide, Volume 3, XSI Supplementary Definitions, Chapter 5. But the +process of creating this standard seemed to be too slow for some of +the Unix vendors so they created their implementations on preliminary +versions of the standard. Of course this leads again to problems while +writing platform independent programs: even the usage of catgets +does not guarantee a unique interface. +

+

Another, personal comment on this that only a bunch of committee members +could have made this interface. They never really tried to program +using this interface. It is a fast, memory-saving implementation, an +user can happily live with it. But programmers hate it (at least I and +some others do…) +

+

But we must not forget one point: after all the trouble with transferring +the rights on Unix they at last came to X/Open, the very same who +published this specification. This leads me to making the prediction +that this interface will be in future Unix standards (e.g. Spec1170) and +therefore part of all Unix implementation (implementations, which are +allowed to wear this name). +

+ + + + +

11.1.1 The Interface

+ +

The interface to the catgets implementation consists of three +functions which correspond to those used in file access: catopen +to open the catalog for using, catgets for accessing the message +tables, and catclose for closing after work is done. Prototypes +for the functions and the needed definitions are in the +<nl_types.h> header file. +

+ +

catopen is used like in this: +

+
 
nl_catd catd = catopen ("catalog_name", 0);
+
+ +

The function takes as the argument the name of the catalog. This usual +refers to the name of the program or the package. The second parameter +is not further specified in the standard. I don't even know whether it +is implemented consistently among various systems. So the common advice +is to use 0 as the value. The return value is a handle to the +message catalog, equivalent to handles to file returned by open. +

+ +

This handle is of course used in the catgets function which can +be used like this: +

+
 
char *translation = catgets (catd, set_no, msg_id, "original string");
+
+ +

The first parameter is this catalog descriptor. The second parameter +specifies the set of messages in this catalog, in which the message +described by msg_id is obtained. catgets therefore uses a +three-stage addressing: +

+
 
catalog name ⇒ set number ⇒ message ID ⇒ translation
+
+ + +

The fourth argument is not used to address the translation. It is given +as a default value in case when one of the addressing stages fail. One +important thing to remember is that although the return type of catgets +is char * the resulting string must not be changed. It +should better be const char *, but the standard is published in +1988, one year before ANSI C. +

+ +

The last of these functions is used and behaves as expected: +

+
 
catclose (catd);
+
+ +

After this no catgets call using the descriptor is legal anymore. +

+ + + +

11.1.2 Problems with the catgets Interface?!

+ +

Now that this description seemed to be really easy — where are the +problems we speak of? In fact the interface could be used in a +reasonable way, but constructing the message catalogs is a pain. The +reason for this lies in the third argument of catgets: the unique +message ID. This has to be a numeric value for all messages in a single +set. Perhaps you could imagine the problems keeping such a list while +changing the source code. Add a new message here, remove one there. Of +course there have been developed a lot of tools helping to organize this +chaos but one as the other fails in one aspect or the other. We don't +want to say that the other approach has no problems but they are far +more easy to manage. +

+ + + +

11.2 About gettext

+ +

The definition of the gettext interface comes from a Uniforum +proposal. It was submitted there by Sun, who had implemented the +gettext function in SunOS 4, around 1990. Nowadays, the +gettext interface is specified by the OpenI18N standard. +

+

The main point about this solution is that it does not follow the +method of normal file handling (open-use-close) and that it does not +burden the programmer with so many tasks, especially the unique key handling. +Of course here also a unique key is needed, but this key is the message +itself (how long or short it is). See Comparing the Two Interfaces for a more +detailed comparison of the two methods. +

+

The following section contains a rather detailed description of the +interface. We make it that detailed because this is the interface +we chose for the GNU gettext Library. Programmers interested +in using this library will be interested in this description. +

+ + + + +

11.2.1 The Interface

+ +

The minimal functionality an interface must have is a) to select a +domain the strings are coming from (a single domain for all programs is +not reasonable because its construction and maintenance is difficult, +perhaps impossible) and b) to access a string in a selected domain. +

+

This is principally the description of the gettext interface. It +has a global domain which unqualified usages reference. Of course this +domain is selectable by the user. +

+
 
char *textdomain (const char *domain_name);
+
+ +

This provides the possibility to change or query the current status of +the current global domain of the LC_MESSAGE category. The +argument is a null-terminated string, whose characters must be legal in +the use in filenames. If the domain_name argument is NULL, +the function returns the current value. If no value has been set +before, the name of the default domain is returned: messages. +Please note that although the return value of textdomain is of +type char * no changing is allowed. It is also important to know +that no checks of the availability are made. If the name is not +available you will see this by the fact that no translations are provided. +

+

To use a domain set by textdomain the function +

+
 
char *gettext (const char *msgid);
+
+ +

is to be used. This is the simplest reasonable form one can imagine. +The translation of the string msgid is returned if it is available +in the current domain. If it is not available, the argument itself is +returned. If the argument is NULL the result is undefined. +

+

One thing which should come into mind is that no explicit dependency to +the used domain is given. The current value of the domain is used. +If this changes between two +executions of the same gettext call in the program, both calls +reference a different message catalog. +

+

For the easiest case, which is normally used in internationalized +packages, once at the beginning of execution a call to textdomain +is issued, setting the domain to a unique name, normally the package +name. In the following code all strings which have to be translated are +filtered through the gettext function. That's all, the package speaks +your language. +

+ + + +

11.2.2 Solving Ambiguities

+ +

While this single name domain works well for most applications there +might be the need to get translations from more than one domain. Of +course one could switch between different domains with calls to +textdomain, but this is really not convenient nor is it fast. A +possible situation could be one case subject to discussion during this +writing: all +error messages of functions in the set of common used functions should +go into a separate domain error. By this mean we would only need +to translate them once. +Another case are messages from a library, as these have to be +independent of the current domain set by the application. +

+

For this reasons there are two more functions to retrieve strings: +

+
 
char *dgettext (const char *domain_name, const char *msgid);
+char *dcgettext (const char *domain_name, const char *msgid,
+                 int category);
+
+ +

Both take an additional argument at the first place, which corresponds +to the argument of textdomain. The third argument of +dcgettext allows to use another locale category but LC_MESSAGES. +But I really don't know where this can be useful. If the +domain_name is NULL or category has an value beside +the known ones, the result is undefined. It should also be noted that +this function is not part of the second known implementation of this +function family, the one found in Solaris. +

+

A second ambiguity can arise by the fact, that perhaps more than one +domain has the same name. This can be solved by specifying where the +needed message catalog files can be found. +

+
 
char *bindtextdomain (const char *domain_name,
+                      const char *dir_name);
+
+ +

Calling this function binds the given domain to a file in the specified +directory (how this file is determined follows below). Especially a +file in the systems default place is not favored against the specified +file anymore (as it would be by solely using textdomain). A +NULL pointer for the dir_name parameter returns the binding +associated with domain_name. If domain_name itself is +NULL nothing happens and a NULL pointer is returned. Here +again as for all the other functions is true that none of the return +value must be changed! +

+

It is important to remember that relative path names for the +dir_name parameter can be trouble. Since the path is always +computed relative to the current directory different results will be +achieved when the program executes a chdir command. Relative +paths should always be avoided to avoid dependencies and +unreliabilities. +

+
 
wchar_t *wbindtextdomain (const char *domain_name,
+                          const wchar_t *dir_name);
+
+ +

This function is provided only on native Windows platforms. It is like +bindtextdomain, except that the dir_name parameter is a +wide string (in UTF-16 encoding, as usual on Windows). +

+ + + +

11.2.3 Locating Message Catalog Files

+ +

Because many different languages for many different packages have to be +stored we need some way to add these information to file message catalog +files. The way usually used in Unix environments is have this encoding +in the file name. This is also done here. The directory name given in +bindtextdomains second argument (or the default directory), +followed by the name of the locale, the locale category, and the domain name +are concatenated: +

+
 
dir_name/locale/LC_category/domain_name.mo
+
+ +

The default value for dir_name is system specific. For the GNU +library, and for packages adhering to its conventions, it's: +

 
/usr/local/share/locale
+
+ +

locale is the name of the locale category which is designated by +LC_category. For gettext and dgettext this +LC_category is always LC_MESSAGES.(3) +The name of the locale category is determined through +setlocale (LC_category, NULL). +(4) +When using the function dcgettext, you can specify the locale category +through the third argument. +

+ + + +

11.2.4 How to specify the output character set gettext uses

+ +

gettext not only looks up a translation in a message catalog. It +also converts the translation on the fly to the desired output character +set. This is useful if the user is working in a different character set +than the translator who created the message catalog, because it avoids +distributing variants of message catalogs which differ only in the +character set. +

+

The output character set is, by default, the value of nl_langinfo +(CODESET), which depends on the LC_CTYPE part of the current +locale. But programs which store strings in a locale independent way +(e.g. UTF-8) can request that gettext and related functions +return the translations in that encoding, by use of the +bind_textdomain_codeset function. +

+

Note that the msgid argument to gettext is not subject to +character set conversion. Also, when gettext does not find a +translation for msgid, it returns msgid unchanged – +independently of the current output character set. It is therefore +recommended that all msgids be US-ASCII strings. +

+
+
Function: char * bind_textdomain_codeset (const char *domainname, const char *codeset) + +
+

The bind_textdomain_codeset function can be used to specify the +output character set for message catalogs for domain domainname. +The codeset argument must be a valid codeset name which can be used +for the iconv_open function, or a null pointer. +

+

If the codeset parameter is the null pointer, +bind_textdomain_codeset returns the currently selected codeset +for the domain with the name domainname. It returns NULL if +no codeset has yet been selected. +

+

The bind_textdomain_codeset function can be used several times. +If used multiple times with the same domainname argument, the +later call overrides the settings made by the earlier one. +

+

The bind_textdomain_codeset function returns a pointer to a +string containing the name of the selected codeset. The string is +allocated internally in the function and must not be changed by the +user. If the system went out of core during the execution of +bind_textdomain_codeset, the return value is NULL and the +global variable errno is set accordingly. +

+ + + + +

11.2.5 Using contexts for solving ambiguities

+ +

One place where the gettext functions, if used normally, have big +problems is within programs with graphical user interfaces (GUIs). The +problem is that many of the strings which have to be translated are very +short. They have to appear in pull-down menus which restricts the +length. But strings which are not containing entire sentences or at +least large fragments of a sentence may appear in more than one +situation in the program but might have different translations. This is +especially true for the one-word strings which are frequently used in +GUI programs. +

+

As a consequence many people say that the gettext approach is +wrong and instead catgets should be used which indeed does not +have this problem. But there is a very simple and powerful method to +handle this kind of problems with the gettext functions. +

+

Contexts can be added to strings to be translated. A context dependent +translation lookup is when a translation for a given string is searched, +that is limited to a given context. The translation for the same string +in a different context can be different. The different translations of +the same string in different contexts can be stored in the in the same +MO file, and can be edited by the translator in the same PO file. +

+

The ‘gettext.h’ include file contains the lookup macros for strings +with contexts. They are implemented as thin macros and inline functions +over the functions from <libintl.h>. +

+ +
 
const char *pgettext (const char *msgctxt, const char *msgid);
+
+ +

In a call of this macro, msgctxt and msgid must be string +literals. The macro returns the translation of msgid, restricted +to the context given by msgctxt. +

+

The msgctxt string is visible in the PO file to the translator. +You should try to make it somehow canonical and never changing. Because +every time you change an msgctxt, the translator will have to review +the translation of msgid. +

+

Finding a canonical msgctxt string that doesn't change over time can +be hard. But you shouldn't use the file name or class name containing the +pgettext call – because it is a common development task to rename +a file or a class, and it shouldn't cause translator work. Also you shouldn't +use a comment in the form of a complete English sentence as msgctxt – +because orthography or grammar changes are often applied to such sentences, +and again, it shouldn't force the translator to do a review. +

+

The ‘p’ in ‘pgettext’ stands for “particular”: pgettext +fetches a particular translation of the msgid. +

+ + +
 
const char *dpgettext (const char *domain_name,
+                       const char *msgctxt, const char *msgid);
+const char *dcpgettext (const char *domain_name,
+                        const char *msgctxt, const char *msgid,
+                        int category);
+
+ +

These are generalizations of pgettext. They behave similarly to +dgettext and dcgettext, respectively. The domain_name +argument defines the translation domain. The category argument +allows to use another locale category than LC_MESSAGES. +

+

As as example consider the following fictional situation. A GUI program +has a menu bar with the following entries: +

+
 
+------------+------------+--------------------------------------+
+| File       | Printer    |                                      |
++------------+------------+--------------------------------------+
+| Open     | | Select   |
+| New      | | Open     |
++----------+ | Connect  |
+             +----------+
+
+ +

To have the strings File, Printer, Open, +New, Select, and Connect translated there has to be +at some point in the code a call to a function of the gettext +family. But in two places the string passed into the function would be +Open. The translations might not be the same and therefore we +are in the dilemma described above. +

+

What distinguishes the two places is the menu path from the menu root to +the particular menu entries: +

+
 
Menu|File
+Menu|Printer
+Menu|File|Open
+Menu|File|New
+Menu|Printer|Select
+Menu|Printer|Open
+Menu|Printer|Connect
+
+ +

The context is thus the menu path without its last part. So, the calls +look like this: +

+
 
pgettext ("Menu|", "File")
+pgettext ("Menu|", "Printer")
+pgettext ("Menu|File|", "Open")
+pgettext ("Menu|File|", "New")
+pgettext ("Menu|Printer|", "Select")
+pgettext ("Menu|Printer|", "Open")
+pgettext ("Menu|Printer|", "Connect")
+
+ +

Whether or not to use the ‘|’ character at the end of the context is a +matter of style. +

+

For more complex cases, where the msgctxt or msgid are not +string literals, more general macros are available: +

+ + + +
 
const char *pgettext_expr (const char *msgctxt, const char *msgid);
+const char *dpgettext_expr (const char *domain_name,
+                            const char *msgctxt, const char *msgid);
+const char *dcpgettext_expr (const char *domain_name,
+                             const char *msgctxt, const char *msgid,
+                             int category);
+
+ +

Here msgctxt and msgid can be arbitrary string-valued expressions. +These macros are more general. But in the case that both argument expressions +are string literals, the macros without the ‘_expr’ suffix are more +efficient. +

+ + + +

11.2.6 Additional functions for plural forms

+ +

The functions of the gettext family described so far (and all the +catgets functions as well) have one problem in the real world +which have been neglected completely in all existing approaches. What +is meant here is the handling of plural forms. +

+

Looking through Unix source code before the time anybody thought about +internationalization (and, sadly, even afterwards) one can often find +code similar to the following: +

+
 
   printf ("%d file%s deleted", n, n == 1 ? "" : "s");
+
+ +

After the first complaints from people internationalizing the code people +either completely avoided formulations like this or used strings like +"file(s)". Both look unnatural and should be avoided. First +tries to solve the problem correctly looked like this: +

+
 
   if (n == 1)
+     printf ("%d file deleted", n);
+   else
+     printf ("%d files deleted", n);
+
+ +

But this does not solve the problem. It helps languages where the +plural form of a noun is not simply constructed by adding an +‘s’ +but that is all. Once again people fell into the trap of believing the +rules their language is using are universal. But the handling of plural +forms differs widely between the language families. For example, +Rafal Maszkowski <rzm@mat.uni.torun.pl> reports: +

+

In Polish we use e.g. plik (file) this way: +

 
1 plik
+2,3,4 pliki
+5-21 pliko'w
+22-24 pliki
+25-31 pliko'w
+
+

and so on (o' means 8859-2 oacute which should be rather okreska, +similar to aogonek). +

+ +

There are two things which can differ between languages (and even inside +language families); +

+
    +
  • +The form how plural forms are built differs. This is a problem with +languages which have many irregularities. German, for instance, is a +drastic case. Though English and German are part of the same language +family (Germanic), the almost regular forming of plural noun forms +(appending an +‘s’) +is hardly found in German. + +
  • +The number of plural forms differ. This is somewhat surprising for +those who only have experiences with Romanic and Germanic languages +since here the number is the same (there are two). + +

    But other language families have only one form or many forms. More +information on this in an extra section. +

+ +

The consequence of this is that application writers should not try to +solve the problem in their code. This would be localization since it is +only usable for certain, hardcoded language environments. Instead the +extended gettext interface should be used. +

+

These extra functions are taking instead of the one key string two +strings and a numerical argument. The idea behind this is that using +the numerical argument and the first string as a key, the implementation +can select using rules specified by the translator the right plural +form. The two string arguments then will be used to provide a return +value in case no message catalog is found (similar to the normal +gettext behavior). In this case the rules for Germanic language +is used and it is assumed that the first string argument is the singular +form, the second the plural form. +

+

This has the consequence that programs without language catalogs can +display the correct strings only if the program itself is written using +a Germanic language. This is a limitation but since the GNU C library +(as well as the GNU gettext package) are written as part of the +GNU package and the coding standards for the GNU project require program +being written in English, this solution nevertheless fulfills its +purpose. +

+
+
Function: char * ngettext (const char *msgid1, const char *msgid2, unsigned long int n) + +
+

The ngettext function is similar to the gettext function +as it finds the message catalogs in the same way. But it takes two +extra arguments. The msgid1 parameter must contain the singular +form of the string to be converted. It is also used as the key for the +search in the catalog. The msgid2 parameter is the plural form. +The parameter n is used to determine the plural form. If no +message catalog is found msgid1 is returned if n == 1, +otherwise msgid2. +

+

An example for the use of this function is: +

+
 
printf (ngettext ("%d file removed", "%d files removed", n), n);
+
+ +

Please note that the numeric value n has to be passed to the +printf function as well. It is not sufficient to pass it only to +ngettext. +

+

In the English singular case, the number – always 1 – can be replaced with +"one": +

+
 
printf (ngettext ("One file removed", "%d files removed", n), n);
+
+ +

This works because the ‘printf’ function discards excess arguments that +are not consumed by the format string. +

+

If this function is meant to yield a format string that takes two or more +arguments, you can not use it like this: +

+
 
printf (ngettext ("%d file removed from directory %s",
+                  "%d files removed from directory %s",
+                  n),
+        n, dir);
+
+ +

because in many languages the translators want to replace the ‘%d’ +with an explicit word in the singular case, just like “one” in English, +and C format strings cannot consume the second argument but skip the first +argument. Instead, you have to reorder the arguments so that ‘n’ +comes last: +

+
 
printf (ngettext ("%2$d file removed from directory %1$s",
+                  "%2$d files removed from directory %1$s",
+                  n),
+        dir, n);
+
+ +

See C Format Strings for details about this argument reordering syntax. +

+

When you know that the value of n is within a given range, you can +specify it as a comment directed to the xgettext tool. This +information may help translators to use more adequate translations. Like +this: +

+
 
if (days > 7 && days < 14)
+  /* xgettext: range: 1..6 */
+  printf (ngettext ("one week and one day", "one week and %d days",
+                    days - 7),
+          days - 7);
+
+ +

It is also possible to use this function when the strings don't contain a +cardinal number: +

+
 
puts (ngettext ("Delete the selected file?",
+                "Delete the selected files?",
+                n));
+
+ +

In this case the number n is only used to choose the plural form. +

+ +
+
Function: char * dngettext (const char *domain, const char *msgid1, const char *msgid2, unsigned long int n) + +
+

The dngettext is similar to the dgettext function in the +way the message catalog is selected. The difference is that it takes +two extra parameter to provide the correct plural form. These two +parameters are handled in the same way ngettext handles them. +

+ +
+
Function: char * dcngettext (const char *domain, const char *msgid1, const char *msgid2, unsigned long int n, int category) + +
+

The dcngettext is similar to the dcgettext function in the +way the message catalog is selected. The difference is that it takes +two extra parameter to provide the correct plural form. These two +parameters are handled in the same way ngettext handles them. +

+ +

Now, how do these functions solve the problem of the plural forms? +Without the input of linguists (which was not available) it was not +possible to determine whether there are only a few different forms in +which plural forms are formed or whether the number can increase with +every new supported language. +

+

Therefore the solution implemented is to allow the translator to specify +the rules of how to select the plural form. Since the formula varies +with every language this is the only viable solution except for +hardcoding the information in the code (which still would require the +possibility of extensions to not prevent the use of new languages). +

+ + + +

The information about the plural form selection has to be stored in the +header entry of the PO file (the one with the empty msgid string). +The plural form information looks like this: +

+
 
Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;
+
+ +

The nplurals value must be a decimal number which specifies how +many different plural forms exist for this language. The string +following plural is an expression which is using the C language +syntax. Exceptions are that no negative numbers are allowed, numbers +must be decimal, and the only variable allowed is n. Spaces are +allowed in the expression, but backslash-newlines are not; in the +examples below the backslash-newlines are present for formatting purposes +only. This expression will be evaluated whenever one of the functions +ngettext, dngettext, or dcngettext is called. The +numeric value passed to these functions is then substituted for all uses +of the variable n in the expression. The resulting value then +must be greater or equal to zero and smaller than the value given as the +value of nplurals. +

+ +

The following rules are known at this point. The language with families +are listed. But this does not necessarily mean the information can be +generalized for the whole family (as can be easily seen in the table +below).(5) +

+
+
Only one form:
+

Some languages only require one single form. There is no distinction +between the singular and plural form. An appropriate header entry +would look like this: +

+
 
Plural-Forms: nplurals=1; plural=0;
+
+ +

Languages with this property include: +

+
+
Asian family
+

Japanese, Vietnamese, Korean

+
Tai-Kadai family
+

Thai

+
+ +
+
Two forms, singular used for one only
+

This is the form used in most existing programs since it is what English +is using. A header entry would look like this: +

+
 
Plural-Forms: nplurals=2; plural=n != 1;
+
+ +

(Note: this uses the feature of C expressions that boolean expressions +have to value zero or one.) +

+

Languages with this property include: +

+
+
Germanic family
+

English, German, Dutch, Swedish, Danish, Norwegian, Faroese

+
Romanic family
+

Spanish, Portuguese, Italian

+
Latin/Greek family
+

Greek

+
Slavic family
+

Bulgarian

+
Finno-Ugric family
+

Finnish, Estonian

+
Semitic family
+

Hebrew

+
Austronesian family
+

Bahasa Indonesian

+
Artificial
+

Esperanto

+
+ +

Other languages using the same header entry are: +

+
+
Finno-Ugric family
+

Hungarian

+
Turkic/Altaic family
+

Turkish

+
+ +

Hungarian does not appear to have a plural if you look at sentences involving +cardinal numbers. For example, “1 apple” is “1 alma”, and “123 apples” is +“123 alma”. But when the number is not explicit, the distinction between +singular and plural exists: “the apple” is “az alma”, and “the apples” is +“az almák”. Since ngettext has to support both types of sentences, +it is classified here, under “two forms”. +

+

The same holds for Turkish: “1 apple” is “1 elma”, and “123 apples” is +“123 elma”. But when the number is omitted, the distinction between singular +and plural exists: “the apple” is “elma”, and “the apples” is +“elmalar”. +

+
+
Two forms, singular used for zero and one
+

Exceptional case in the language family. The header entry would be: +

+
 
Plural-Forms: nplurals=2; plural=n>1;
+
+ +

Languages with this property include: +

+
+
Romanic family
+

Brazilian Portuguese, French

+
+ +
+
Three forms, special case for zero
+

The header entry would be: +

+
 
Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;
+
+ +

Languages with this property include: +

+
+
Baltic family
+

Latvian

+
+ +
+
Three forms, special cases for one and two
+

The header entry would be: +

+
 
Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;
+
+ +

Languages with this property include: +

+
+
Celtic
+

Gaeilge (Irish)

+
+ +
+
Three forms, special case for numbers ending in 00 or [2-9][0-9]
+

The header entry would be: +

+
 
Plural-Forms: nplurals=3; \
+    plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2;
+
+ +

Languages with this property include: +

+
+
Romanic family
+

Romanian

+
+ +
+
Three forms, special case for numbers ending in 1[2-9]
+

The header entry would look like this: +

+
 
Plural-Forms: nplurals=3; \
+    plural=n%10==1 && n%100!=11 ? 0 : \
+           n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2;
+
+ +

Languages with this property include: +

+
+
Baltic family
+

Lithuanian

+
+ +
+
Three forms, special cases for numbers ending in 1 and 2, 3, 4, except those ending in 1[1-4]
+

The header entry would look like this: +

+
 
Plural-Forms: nplurals=3; \
+    plural=n%10==1 && n%100!=11 ? 0 : \
+           n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
+
+ +

Languages with this property include: +

+
+
Slavic family
+

Russian, Ukrainian, Belarusian, Serbian, Croatian

+
+ +
+
Three forms, special cases for 1 and 2, 3, 4
+

The header entry would look like this: +

+
 
Plural-Forms: nplurals=3; \
+    plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;
+
+ +

Languages with this property include: +

+
+
Slavic family
+

Czech, Slovak

+
+ +
+
Three forms, special case for one and some numbers ending in 2, 3, or 4
+

The header entry would look like this: +

+
 
Plural-Forms: nplurals=3; \
+    plural=n==1 ? 0 : \
+           n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
+
+ +

Languages with this property include: +

+
+
Slavic family
+

Polish

+
+ +
+
Four forms, special case for one and all numbers ending in 02, 03, or 04
+

The header entry would look like this: +

+
 
Plural-Forms: nplurals=4; \
+    plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;
+
+ +

Languages with this property include: +

+
+
Slavic family
+

Slovenian

+
+ +
+
Six forms, special cases for one, two, all numbers ending in 02, 03, … 10, all numbers ending in 11 … 99, and others
+

The header entry would look like this: +

+
 
Plural-Forms: nplurals=6; \
+    plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 \
+    : n%100>=11 ? 4 : 5;
+
+ +

Languages with this property include: +

+
+
Afroasiatic family
+

Arabic

+
+
+
+ +

You might now ask, ngettext handles only numbers n of type +‘unsigned long’. What about larger integer types? What about negative +numbers? What about floating-point numbers? +

+

About larger integer types, such as ‘uintmax_t’ or +‘unsigned long long’: they can be handled by reducing the value to a +range that fits in an ‘unsigned long’. Simply casting the value to +‘unsigned long’ would not do the right thing, since it would treat +ULONG_MAX + 1 like zero, ULONG_MAX + 2 like singular, and +the like. Here you can exploit the fact that all mentioned plural form +formulas eventually become periodic, with a period that is a divisor of 100 +(or 1000 or 1000000). So, when you reduce a large value to another one in +the range [1000000, 1999999] that ends in the same 6 decimal digits, you +can assume that it will lead to the same plural form selection. This code +does this: +

+
 
#include <inttypes.h>
+uintmax_t nbytes = ...;
+printf (ngettext ("The file has %"PRIuMAX" byte.",
+                  "The file has %"PRIuMAX" bytes.",
+                  (nbytes > ULONG_MAX
+                   ? (nbytes % 1000000) + 1000000
+                   : nbytes)),
+        nbytes);
+
+ +

Negative and floating-point values usually represent physical entities for +which singular and plural don't clearly apply. In such cases, there is no +need to use ngettext; a simple gettext call with a form suitable +for all values will do. For example: +

+
 
printf (gettext ("Time elapsed: %.3f seconds"),
+        num_milliseconds * 0.001);
+
+ +

Even if num_milliseconds happens to be a multiple of 1000, the output +

 
Time elapsed: 1.000 seconds
+
+

is acceptable in English, and similarly for other languages. +

+

The translators' perspective regarding plural forms is explained in +Translating plural forms. +

+ + + +

11.2.7 Optimization of the *gettext functions

+ +

At this point of the discussion we should talk about an advantage of the +GNU gettext implementation. Some readers might have pointed out +that an internationalized program might have a poor performance if some +string has to be translated in an inner loop. While this is unavoidable +when the string varies from one run of the loop to the other it is +simply a waste of time when the string is always the same. Take the +following example: +

+
 
{
+  while (…)
+    {
+      puts (gettext ("Hello world"));
+    }
+}
+
+ +

When the locale selection does not change between two runs the resulting +string is always the same. One way to use this is: +

+
 
{
+  str = gettext ("Hello world");
+  while (…)
+    {
+      puts (str);
+    }
+}
+
+ +

But this solution is not usable in all situation (e.g. when the locale +selection changes) nor does it lead to legible code. +

+

For this reason, GNU gettext caches previous translation results. +When the same translation is requested twice, with no new message +catalogs being loaded in between, gettext will, the second time, +find the result through a single cache lookup. +

+ + + +

11.3 Comparing the Two Interfaces

+ + +

The following discussion is perhaps a little bit colored. As said +above we implemented GNU gettext following the Uniforum +proposal and this surely has its reasons. But it should show how we +came to this decision. +

+

First we take a look at the developing process. When we write an +application using NLS provided by gettext we proceed as always. +Only when we come to a string which might be seen by the users and thus +has to be translated we use gettext("…") instead of +"…". At the beginning of each source file (or in a central +header file) we define +

+
 
#define gettext(String) (String)
+
+ +

Even this definition can be avoided when the system supports the +gettext function in its C library. When we compile this code the +result is the same as if no NLS code is used. When you take a look at +the GNU gettext code you will see that we use _("…") +instead of gettext("…"). This reduces the number of +additional characters per translatable string to 3 (in words: +three). +

+

When now a production version of the program is needed we simply replace +the definition +

+
 
#define _(String) (String)
+
+ +

by +

+ +
 
#include <libintl.h>
+#define _(String) gettext (String)
+
+ +

Additionally we run the program ‘xgettext’ on all source code file +which contain translatable strings and that's it: we have a running +program which does not depend on translations to be available, but which +can use any that becomes available. +

+ +

The same procedure can be done for the gettext_noop invocations +(see section Special Cases of Translatable Strings). One usually defines gettext_noop as a +no-op macro. So you should consider the following code for your project: +

+
 
#define gettext_noop(String) String
+#define N_(String) gettext_noop (String)
+
+ +

N_ is a short form similar to _. The ‘Makefile’ in +the ‘po/’ directory of GNU gettext knows by default both of the +mentioned short forms so you are invited to follow this proposal for +your own ease. +

+

Now to catgets. The main problem is the work for the +programmer. Every time he comes to a translatable string he has to +define a number (or a symbolic constant) which has also be defined in +the message catalog file. He also has to take care for duplicate +entries, duplicate message IDs etc. If he wants to have the same +quality in the message catalog as the GNU gettext program +provides he also has to put the descriptive comments for the strings and +the location in all source code files in the message catalog. This is +nearly a Mission: Impossible. +

+

But there are also some points people might call advantages speaking for +catgets. If you have a single word in a string and this string +is used in different contexts it is likely that in one or the other +language the word has different translations. Example: +

+
 
printf ("%s: %d", gettext ("number"), number_of_errors)
+
+printf ("you should see %d %s", number_count,
+        number_count == 1 ? gettext ("number") : gettext ("numbers"))
+
+ +

Here we have to translate two times the string "number". Even +if you do not speak a language beside English it might be possible to +recognize that the two words have a different meaning. In German the +first appearance has to be translated to "Anzahl" and the second +to "Zahl". +

+

Now you can say that this example is really esoteric. And you are +right! This is exactly how we felt about this problem and decide that +it does not weight that much. The solution for the above problem could +be very easy: +

+
 
printf ("%s %d", gettext ("number:"), number_of_errors)
+
+printf (number_count == 1 ? gettext ("you should see %d number")
+                          : gettext ("you should see %d numbers"),
+        number_count)
+
+ +

We believe that we can solve all conflicts with this method. If it is +difficult one can also consider changing one of the conflicting string a +little bit. But it is not impossible to overcome. +

+

catgets allows same original entry to have different translations, +but gettext has another, scalable approach for solving ambiguities +of this kind: See section Solving Ambiguities. +

+ + + +

11.4 Using libintl.a in own programs

+ +

Starting with version 0.9.4 the library libintl.h should be +self-contained. I.e., you can use it in your own programs without +providing additional functions. The ‘Makefile’ will put the header +and the library in directories selected using the $(prefix). +

+ + + +

11.5 Being a gettext grok

+ +

NOTE: This documentation section is outdated and needs to be +revised. +

+

To fully exploit the functionality of the GNU gettext library it +is surely helpful to read the source code. But for those who don't want +to spend that much time in reading the (sometimes complicated) code here +is a list comments: +

+
    +
  • Changing the language at runtime + + +

    For interactive programs it might be useful to offer a selection of the +used language at runtime. To understand how to do this one need to know +how the used language is determined while executing the gettext +function. The method which is presented here only works correctly +with the GNU implementation of the gettext functions. +

    +

    In the function dcgettext at every call the current setting of +the highest priority environment variable is determined and used. +Highest priority means here the following list with decreasing +priority: +

    +
      +
    1. +
    2. LANGUAGE + +
    3. LC_ALL + + + + + + +
    4. LC_xxx, according to selected locale category + +
    5. LANG +
    + +

    Afterwards the path is constructed using the found value and the +translation file is loaded if available. +

    +

    What happens now when the value for, say, LANGUAGE changes? According +to the process explained above the new value of this variable is found +as soon as the dcgettext function is called. But this also means +the (perhaps) different message catalog file is loaded. In other +words: the used language is changed. +

    +

    But there is one little hook. The code for gcc-2.7.0 and up provides +some optimization. This optimization normally prevents the calling of +the dcgettext function as long as no new catalog is loaded. But +if dcgettext is not called the program also cannot find the +LANGUAGE variable be changed (see section Optimization of the *gettext functions). A +solution for this is very easy. Include the following code in the +language switching function. +

    +
     
      /* Change language.  */
    +  setenv ("LANGUAGE", "fr", 1);
    +
    +  /* Make change known.  */
    +  {
    +    extern int  _nl_msg_cat_cntr;
    +    ++_nl_msg_cat_cntr;
    +  }
    +
    + + +

    The variable _nl_msg_cat_cntr is defined in ‘loadmsgcat.c’. +You don't need to know what this is for. But it can be used to detect +whether a gettext implementation is GNU gettext and not non-GNU +system's native gettext implementation. +

    +
+ + + + +

11.6 Temporary Notes for the Programmers Chapter

+ +

NOTE: This documentation section is outdated and needs to be +revised. +

+ + + + +

11.6.1 Temporary - Two Possible Implementations

+ +

There are two competing methods for language independent messages: +the X/Open catgets method, and the Uniforum gettext +method. The catgets method indexes messages by integers; the +gettext method indexes them by their English translations. +The catgets method has been around longer and is supported +by more vendors. The gettext method is supported by Sun, +and it has been heard that the COSE multi-vendor initiative is +supporting it. Neither method is a POSIX standard; the POSIX.1 +committee had a lot of disagreement in this area. +

+

Neither one is in the POSIX standard. There was much disagreement +in the POSIX.1 committee about using the gettext routines +vs. catgets (XPG). In the end the committee couldn't +agree on anything, so no messaging system was included as part +of the standard. I believe the informative annex of the standard +includes the XPG3 messaging interfaces, “…as an example of +a messaging system that has been implemented…” +

+

They were very careful not to say anywhere that you should use one +set of interfaces over the other. For more on this topic please +see the Programming for Internationalization FAQ. +

+ + + +

11.6.2 Temporary - About catgets

+ +

There have been a few discussions of late on the use of +catgets as a base. I think it important to present both +sides of the argument and hence am opting to play devil's advocate +for a little bit. +

+

I'll not deny the fact that catgets could have been designed +a lot better. It currently has quite a number of limitations and +these have already been pointed out. +

+

However there is a great deal to be said for consistency and +standardization. A common recurring problem when writing Unix +software is the myriad portability problems across Unix platforms. +It seems as if every Unix vendor had a look at the operating system +and found parts they could improve upon. Undoubtedly, these +modifications are probably innovative and solve real problems. +However, software developers have a hard time keeping up with all +these changes across so many platforms. +

+

And this has prompted the Unix vendors to begin to standardize their +systems. Hence the impetus for Spec1170. Every major Unix vendor +has committed to supporting this standard and every Unix software +developer waits with glee the day they can write software to this +standard and simply recompile (without having to use autoconf) +across different platforms. +

+

As I understand it, Spec1170 is roughly based upon version 4 of the +X/Open Portability Guidelines (XPG4). Because catgets and +friends are defined in XPG4, I'm led to believe that catgets +is a part of Spec1170 and hence will become a standardized component +of all Unix systems. +

+ + + +

11.6.3 Temporary - Why a single implementation

+ +

Now it seems kind of wasteful to me to have two different systems +installed for accessing message catalogs. If we do want to remedy +catgets deficiencies why don't we try to expand catgets +(in a compatible manner) rather than implement an entirely new system. +Otherwise, we'll end up with two message catalog access systems installed +with an operating system - one set of routines for packages using GNU +gettext for their internationalization, and another set of routines +(catgets) for all other software. Bloated? +

+

Supposing another catalog access system is implemented. Which do +we recommend? At least for Linux, we need to attract as many +software developers as possible. Hence we need to make it as easy +for them to port their software as possible. Which means supporting +catgets. We will be implementing the libintl code +within our libc, but does this mean we also have to incorporate +another message catalog access scheme within our libc as well? +And what about people who are going to be using the libintl ++ non-catgets routines. When they port their software to +other platforms, they're now going to have to include the front-end +(libintl) code plus the back-end code (the non-catgets +access routines) with their software instead of just including the +libintl code with their software. +

+

Message catalog support is however only the tip of the iceberg. +What about the data for the other locale categories? They also have +a number of deficiencies. Are we going to abandon them as well and +develop another duplicate set of routines (should libintl +expand beyond message catalog support)? +

+

Like many parts of Unix that can be improved upon, we're stuck with balancing +compatibility with the past with useful improvements and innovations for +the future. +

+ + + +

11.6.4 Temporary - Notes

+ +

X/Open agreed very late on the standard form so that many +implementations differ from the final form. Both of my system (old +Linux catgets and Ultrix-4) have a strange variation. +

+

OK. After incorporating the last changes I have to spend some time on +making the GNU/Linux libc gettext functions. So in future +Solaris is not the only system having gettext. +

+ + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_12.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_12.html new file mode 100644 index 000000000..de32aaf2a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_12.html @@ -0,0 +1,710 @@ + + + + + +GNU gettext utilities: 12. The Translator's View + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

12. The Translator's View

+ + + + + + +

12.1 Introduction 0

+ +

NOTE: This documentation section is outdated and needs to be +revised. +

+

Free software is going international! The Translation Project is a way +to get maintainers, translators and users all together, so free software +will gradually become able to speak many native languages. +

+

The GNU gettext tool set contains everything maintainers +need for internationalizing their packages for messages. It also +contains quite useful tools for helping translators at localizing +messages to their native language, once a package has already been +internationalized. +

+

To achieve the Translation Project, we need many interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +If you'd like to volunteer to work at translating messages, +please send mail to your translating team. +

+

Each team has its own mailing list, courtesy of Linux +International. You may reach your translating team at the address +‘ll@li.org’, replacing ll by the two-letter ISO 639 +code for your language. Language codes are not the same as +country codes given in ISO 3166. The following translating teams +exist: +

+

Chinese zh, Czech cs, Danish da, Dutch nl, +Esperanto eo, Finnish fi, French fr, Irish +ga, German de, Greek el, Italian it, +Japanese ja, Indonesian in, Norwegian no, Polish +pl, Portuguese pt, Russian ru, Spanish es, +Swedish sv and Turkish tr. +

+ +

For example, you may reach the Chinese translating team by writing to +‘zh@li.org’. When you become a member of the translating team +for your own language, you may subscribe to its list. For example, +Swedish people can send a message to ‘sv-request@li.org’, +having this message body: +

+
 
subscribe
+
+ +

Keep in mind that team members should be interested in working +at translations, or at solving translational difficulties, rather than +merely lurking around. If your team does not exist yet and you want to +start one, please write to ‘coordinator@translationproject.org’; +you will then reach the coordinator for all translator teams. +

+

A handful of GNU packages have already been adapted and provided +with message translations for several languages. Translation +teams have begun to organize, using these packages as a starting +point. But there are many more packages and many languages for +which we have no volunteer translators. If you would like to +volunteer to work at translating messages, please send mail to +‘coordinator@translationproject.org’ indicating what language(s) +you can work on. +

+ + + +

12.2 Introduction 1

+ +

NOTE: This documentation section is outdated and needs to be +revised. +

+

This is now official, GNU is going international! Here is the +announcement submitted for the January 1995 GNU Bulletin: +

+

A handful of GNU packages have already been adapted and provided +with message translations for several languages. Translation +teams have begun to organize, using these packages as a starting +point. But there are many more packages and many languages +for which we have no volunteer translators. If you'd like to +volunteer to work at translating messages, please send mail to +‘coordinator@translationproject.org’ indicating what language(s) +you can work on. +

+ +

This document should answer many questions for those who are curious about +the process or would like to contribute. Please at least skim over it, +hoping to cut down a little of the high volume of e-mail generated by this +collective effort towards internationalization of free software. +

+

Most free programming which is widely shared is done in English, and +currently, English is used as the main communicating language between +national communities collaborating to free software. This very document +is written in English. This will not change in the foreseeable future. +

+

However, there is a strong appetite from national communities for +having more software able to write using national language and habits, +and there is an on-going effort to modify free software in such a way +that it becomes able to do so. The experiments driven so far raised +an enthusiastic response from pretesters, so we believe that +internationalization of free software is dedicated to succeed. +

+

For suggestion clarifications, additions or corrections to this +document, please e-mail to ‘coordinator@translationproject.org’. +

+ + + +

12.3 Discussions

+ +

NOTE: This documentation section is outdated and needs to be +revised. +

+

Facing this internationalization effort, a few users expressed their +concerns. Some of these doubts are presented and discussed, here. +

+
    +
  • Smaller groups + +

    Some languages are not spoken by a very large number of people, so people +speaking them sometimes consider that there may not be all that much +demand such versions of free software packages. Moreover, many people +being into computers, in some countries, generally seem to prefer +English versions of their software. +

    +

    On the other end, people might enjoy their own language a lot, and be +very motivated at providing to themselves the pleasure of having their +beloved free software speaking their mother tongue. They do themselves +a personal favor, and do not pay that much attention to the number of +people benefiting of their work. +

    +
  • Misinterpretation + +

    Other users are shy to push forward their own language, seeing in this +some kind of misplaced propaganda. Someone thought there must be some +users of the language over the networks pestering other people with it. +

    +

    But any spoken language is worth localization, because there are +people behind the language for whom the language is important and +dear to their hearts. +

    +
  • Odd translations + +

    The biggest problem is to find the right translations so that +everybody can understand the messages. Translations are usually a +little odd. Some people get used to English, to the extent they may +find translations into their own language “rather pushy, obnoxious +and sometimes even hilarious.” As a French speaking man, I have +the experience of those instruction manuals for goods, so poorly +translated in French in Korea or Taiwan… +

    +

    The fact is that we sometimes have to create a kind of national +computer culture, and this is not easy without the collaboration of +many people liking their mother tongue. This is why translations are +better achieved by people knowing and loving their own language, and +ready to work together at improving the results they obtain. +

    +
  • Dependencies over the GPL or LGPL + +

    Some people wonder if using GNU gettext necessarily brings their +package under the protective wing of the GNU General Public License or +the GNU Lesser General Public License, when they do not want to make +their program free, or want other kinds of freedom. The simplest +answer is “normally not”. +

    +

    The gettext-runtime part of GNU gettext, i.e. the +contents of libintl, is covered by the GNU Lesser General Public +License. The gettext-tools part of GNU gettext, i.e. the +rest of the GNU gettext package, is covered by the GNU General +Public License. +

    +

    The mere marking of localizable strings in a package, or conditional +inclusion of a few lines for initialization, is not really including +GPL'ed or LGPL'ed code. However, since the localization routines in +libintl are under the LGPL, the LGPL needs to be considered. +It gives the right to distribute the complete unmodified source of +libintl even with non-free programs. It also gives the right +to use libintl as a shared library, even for non-free programs. +But it gives the right to use libintl as a static library or +to incorporate libintl into another library only to free +software. +

    +
+ + + + +

12.4 Organization

+ +

NOTE: This documentation section is outdated and needs to be +revised. +

+

On a larger scale, the true solution would be to organize some kind of +fairly precise set up in which volunteers could participate. I gave +some thought to this idea lately, and realize there will be some +touchy points. I thought of writing to Richard Stallman to launch +such a project, but feel it might be good to shake out the ideas +between ourselves first. Most probably that Linux International has +some experience in the field already, or would like to orchestrate +the volunteer work, maybe. Food for thought, in any case! +

+

I guess we have to setup something early, somehow, that will help +many possible contributors of the same language to interlock and avoid +work duplication, and further be put in contact for solving together +problems particular to their tongue (in most languages, there are many +difficulties peculiar to translating technical English). My Swedish +contributor acknowledged these difficulties, and I'm well aware of +them for French. +

+

This is surely not a technical issue, but we should manage so the +effort of locale contributors be maximally useful, despite the national +team layer interface between contributors and maintainers. +

+

The Translation Project needs some setup for coordinating language +coordinators. Localizing evolving programs will surely +become a permanent and continuous activity in the free software community, +once well started. +The setup should be minimally completed and tested before GNU +gettext becomes an official reality. The e-mail address +‘coordinator@translationproject.org’ has been set up for receiving +offers from volunteers and general e-mail on these topics. This address +reaches the Translation Project coordinator. +

+ + + + +

12.4.1 Central Coordination

+ +

I also think GNU will need sooner than it thinks, that someone set up +a way to organize and coordinate these groups. Some kind of group +of groups. My opinion is that it would be good that GNU delegates +this task to a small group of collaborating volunteers, shortly. +Perhaps in ‘gnu.announce’ a list of this national committee's +can be published. +

+

My role as coordinator would simply be to refer to Ulrich any German +speaking volunteer interested to localization of free software packages, and +maybe helping national groups to initially organize, while maintaining +national registries for until national groups are ready to take over. +In fact, the coordinator should ease volunteers to get in contact with +one another for creating national teams, which should then select +one coordinator per language, or country (regionalized language). +If well done, the coordination should be useful without being an +overwhelming task, the time to put delegations in place. +

+ + + +

12.4.2 National Teams

+ +

I suggest we look for volunteer coordinators/editors for individual +languages. These people will scan contributions of translation files +for various programs, for their own languages, and will ensure high +and uniform standards of diction. +

+

From my current experience with other people in these days, those who +provide localizations are very enthusiastic about the process, and are +more interested in the localization process than in the program they +localize, and want to do many programs, not just one. This seems +to confirm that having a coordinator/editor for each language is a +good idea. +

+

We need to choose someone who is good at writing clear and concise +prose in the language in question. That is hard—we can't check +it ourselves. So we need to ask a few people to judge each others' +writing and select the one who is best. +

+

I announce my prerelease to a few dozen people, and you would not +believe all the discussions it generated already. I shudder to think +what will happen when this will be launched, for true, officially, +world wide. Who am I to arbitrate between two Czekolsovak users +contradicting each other, for example? +

+

I assume that your German is not much better than my French so that +I would not be able to judge about these formulations. What I would +suggest is that for each language there is a group for people who +maintain the PO files and judge about changes. I suspect there will +be cultural differences between how such groups of people will behave. +Some will have relaxed ways, reach consensus easily, and have anyone +of the group relate to the maintainers, while others will fight to +death, organize heavy administrations up to national standards, and +use strict channels. +

+

The German team is putting out a good example. Right now, they are +maybe half a dozen people revising translations of each other and +discussing the linguistic issues. I do not even have all the names. +Ulrich Drepper is taking care of coordinating the German team. +He subscribed to all my pretest lists, so I do not even have to warn +him specifically of incoming releases. +

+

I'm sure, that is a good idea to get teams for each language working +on translations. That will make the translations better and more +consistent. +

+ + + + +

12.4.2.1 Sub-Cultures

+ +

Taking French for example, there are a few sub-cultures around computers +which developed diverging vocabularies. Picking volunteers here and +there without addressing this problem in an organized way, soon in the +project, might produce a distasteful mix of internationalized programs, +and possibly trigger endless quarrels among those who really care. +

+

Keeping some kind of unity in the way French localization of +internationalized programs is achieved is a difficult (and delicate) job. +Knowing the latin character of French people (:-), if we take this +the wrong way, we could end up nowhere, or spoil a lot of energies. +Maybe we should begin to address this problem seriously before +GNU gettext become officially published. And I suspect that this +means soon! +

+ + + +

12.4.2.2 Organizational Ideas

+ +

I expect the next big changes after the official release. Please note +that I use the German translation of the short GPL message. We need +to set a few good examples before the localization goes out for true +in the free software community. Here are a few points to discuss: +

+
    +
  • +Each group should have one FTP server (at least one master). + +
  • +The files on the server should reflect the latest version (of +course!) and it should also contain a RCS directory with the +corresponding archives (I don't have this now). + +
  • +There should also be a ChangeLog file (this is more useful than the +RCS archive but can be generated automatically from the later by +Emacs). + +
  • +A core group should judge about questionable changes (for now +this group consists solely by me but I ask some others occasionally; +this also seems to work). + +
+ + + + +

12.4.3 Mailing Lists

+ +

If we get any inquiries about GNU gettext, send them on to: +

+
 
coordinator@translationproject.org’
+
+ +

The ‘*-pretest’ lists are quite useful to me, maybe the idea could +be generalized to many GNU, and non-GNU packages. But each maintainer +his/her way! +

+

François, we have a mechanism in place here at +‘gnu.ai.mit.edu’ to track teams, support mailing lists for +them and log members. We have a slight preference that you use it. +If this is OK with you, I can get you clued in. +

+

Things are changing! A few years ago, when Daniel Fekete and I +asked for a mailing list for GNU localization, nested at the FSF, we +were politely invited to organize it anywhere else, and so did we. +For communicating with my pretesters, I later made a handful of +mailing lists located at iro.umontreal.ca and administrated by +majordomo. These lists have been very dependable +so far… +

+

I suspect that the German team will organize itself a mailing list +located in Germany, and so forth for other countries. But before they +organize for true, it could surely be useful to offer mailing lists +located at the FSF to each national team. So yes, please explain me +how I should proceed to create and handle them. +

+

We should create temporary mailing lists, one per country, to help +people organize. Temporary, because once regrouped and structured, it +would be fair the volunteers from country bring back their list +in there and manage it as they want. My feeling is that, in the long +run, each team should run its own list, from within their country. +There also should be some central list to which all teams could +subscribe as they see fit, as long as each team is represented in it. +

+ + + +

12.5 Information Flow

+ +

NOTE: This documentation section is outdated and needs to be +revised. +

+

There will surely be some discussion about this messages after the +packages are finally released. If people now send you some proposals +for better messages, how do you proceed? Jim, please note that +right now, as I put forward nearly a dozen of localizable programs, I +receive both the translations and the coordination concerns about them. +

+

If I put one of my things to pretest, Ulrich receives the announcement +and passes it on to the German team, who make last minute revisions. +Then he submits the translation files to me as the maintainer. +For free packages I do not maintain, I would not even hear about it. +This scheme could be made to work for the whole Translation Project, +I think. For security reasons, maybe Ulrich (national coordinators, +in fact) should update central registry kept at the Translation Project +(Jim, me, or Len's recruits) once in a while. +

+

In December/January, I was aggressively ready to internationalize +all of GNU, giving myself the duty of one small GNU package per week +or so, taking many weeks or months for bigger packages. But it does +not work this way. I first did all the things I'm responsible for. +I've nothing against some missionary work on other maintainers, but +I'm also losing a lot of energy over it—same debates over again. +

+

And when the first localized packages are released we'll get a lot of +responses about ugly translations :-). Surely, and we need to have +beforehand a fairly good idea about how to handle the information +flow between the national teams and the package maintainers. +

+

Please start saving somewhere a quick history of each PO file. I know +for sure that the file format will change, allowing for comments. +It would be nice that each file has a kind of log, and references for +those who want to submit comments or gripes, or otherwise contribute. +I sent a proposal for a fast and flexible format, but it is not +receiving acceptance yet by the GNU deciders. I'll tell you when I +have more information about this. +

+ + + +

12.6 Translating plural forms

+ +

Suppose you are translating a PO file, and it contains an entry like this: +

+
 
#, c-format
+msgid "One file removed"
+msgid_plural "%d files removed"
+msgstr[0] ""
+msgstr[1] ""
+
+ +

What does this mean? How do you fill it in? +

+

Such an entry denotes a message with plural forms, that is, a message where +the text depends on a cardinal number. The general form of the message, +in English, is the msgid_plural line. The msgid line is the +English singular form, that is, the form for when the number is equal to 1. +More details about plural forms are explained in Additional functions for plural forms. +

+

The first thing you need to look at is the Plural-Forms line in the +header entry of the PO file. It contains the number of plural forms and a +formula. If the PO file does not yet have such a line, you have to add it. +It only depends on the language into which you are translating. You can +get this info by using the msginit command (see Creating a New PO File) – +it contains a database of known plural formulas – or by asking other +members of your translation team. +

+

Suppose the line looks as follows: +

+
 
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+ +

It's logically one line; recall that the PO file formatting is allowed to +break long lines so that each physical line fits in 80 monospaced columns. +

+

The value of nplurals here tells you that there are three plural +forms. The first thing you need to do is to ensure that the entry contains +an msgstr line for each of the forms: +

+
 
#, c-format
+msgid "One file removed"
+msgid_plural "%d files removed"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+ +

Then translate the msgid_plural line and fill it in into each +msgstr line: +

+
 
#, c-format
+msgid "One file removed"
+msgid_plural "%d files removed"
+msgstr[0] "%d slika uklonjenih"
+msgstr[1] "%d slika uklonjenih"
+msgstr[2] "%d slika uklonjenih"
+
+ +

Now you can refine the translation so that it matches the plural form. +According to the formula above, msgstr[0] is used when the number +ends in 1 but does not end in 11; msgstr[1] is used when the number +ends in 2, 3, 4, but not in 12, 13, 14; and msgstr[2] is used in +all other cases. With this knowledge, you can refine the translations: +

+
 
#, c-format
+msgid "One file removed"
+msgid_plural "%d files removed"
+msgstr[0] "%d slika je uklonjena"
+msgstr[1] "%d datoteke uklonjenih"
+msgstr[2] "%d slika uklonjenih"
+
+ +

You noticed that in the English singular form (msgid) the number +placeholder could be omitted and replaced by the numeral word “one”. +Can you do this in your translation as well? +

+
 
msgstr[0] "jednom datotekom je uklonjen"
+
+ +

Well, it depends on whether msgstr[0] applies only to the number 1, +or to other numbers as well. If, according to the plural formula, +msgstr[0] applies only to n == 1, then you can use the +specialized translation without the number placeholder. In our case, +however, msgstr[0] also applies to the numbers 21, 31, 41, etc., +and therefore you cannot omit the placeholder. +

+ + + +

12.7 Prioritizing messages: How to determine which messages to translate first

+ +

A translator sometimes has only a limited amount of time per week to +spend on a package, and some packages have quite large message catalogs +(over 1000 messages). Therefore she wishes to translate the messages +first that are the most visible to the user, or that occur most frequently. +This section describes how to determine these "most urgent" messages. +It also applies to determine the "next most urgent" messages after the +message catalog has already been partially translated. +

+

In a first step, she uses the programs like a user would do. While she +does this, the GNU gettext library logs into a file the not yet +translated messages for which a translation was requested from the program. +

+

In a second step, she uses the PO mode to translate precisely this set +of messages. +

+ +

Here are more details. The GNU libintl library (but not the +corresponding functions in GNU libc) supports an environment variable +GETTEXT_LOG_UNTRANSLATED. The GNU libintl library will +log into this file the messages for which gettext() and related +functions couldn't find the translation. If the file doesn't exist, it +will be created as needed. On systems with GNU libc a shared library +‘preloadable_libintl.so’ is provided that can be used with the ELF +‘LD_PRELOAD’ mechanism. +

+

So, in the first step, the translator uses these commands on systems with +GNU libc: +

+
 
$ LD_PRELOAD=/usr/local/lib/preloadable_libintl.so
+$ export LD_PRELOAD
+$ GETTEXT_LOG_UNTRANSLATED=$HOME/gettextlogused
+$ export GETTEXT_LOG_UNTRANSLATED
+
+ +

and these commands on other systems: +

+
 
$ GETTEXT_LOG_UNTRANSLATED=$HOME/gettextlogused
+$ export GETTEXT_LOG_UNTRANSLATED
+
+ +

Then she uses and peruses the programs. (It is a good and recommended +practice to use the programs for which you provide translations: it +gives you the needed context.) When done, she removes the environment +variables: +

+
 
$ unset LD_PRELOAD
+$ unset GETTEXT_LOG_UNTRANSLATED
+
+ +

The second step starts with removing duplicates: +

+
 
$ msguniq $HOME/gettextlogused > missing.po
+
+ +

The result is a PO file, but needs some preprocessing before a PO file editor +can be used with it. First, it is a multi-domain PO file, containing +messages from many translation domains. Second, it lacks all translator +comments and source references. Here is how to get a list of the affected +translation domains: +

+
 
$ sed -n -e 's,^domain "\(.*\)"$,\1,p' < missing.po | sort | uniq
+
+ +

Then the translator can handle the domains one by one. For simplicity, +let's use environment variables to denote the language, domain and source +package. +

+
 
$ lang=nl             # your language
+$ domain=coreutils    # the name of the domain to be handled
+$ package=/usr/src/gnu/coreutils-4.5.4   # the package where it comes from
+
+ +

She takes the latest copy of ‘$lang.po’ from the Translation Project, +or from the package (in most cases, ‘$package/po/$lang.po’), or +creates a fresh one if she's the first translator (see Creating a New PO File). +She then uses the following commands to mark the not urgent messages as +"obsolete". (This doesn't mean that these messages - translated and +untranslated ones - will go away. It simply means that the PO file editor +will ignore them in the following editing session.) +

+
 
$ msggrep --domain=$domain missing.po | grep -v '^domain' \
+  > $domain-missing.po
+$ msgattrib --set-obsolete --ignore-file $domain-missing.po $domain.$lang.po \
+  > $domain.$lang-urgent.po
+
+ +

The she translates ‘$domain.$lang-urgent.po’ by use of a PO file editor +(see section Editing PO Files). +(FIXME: I don't know whether KBabel and gtranslator also +preserve obsolete messages, as they should.) +Finally she restores the not urgent messages (with their earlier +translations, for those which were already translated) through this command: +

+
 
$ msgmerge --no-fuzzy-matching $domain.$lang-urgent.po $package/po/$domain.pot \
+  > $domain.$lang.po
+
+ +

Then she can submit ‘$domain.$lang.po’ and proceed to the next domain. +

+ + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_13.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_13.html new file mode 100644 index 000000000..3f7925c8f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_13.html @@ -0,0 +1,1485 @@ + + + + + +GNU gettext utilities: 13. The Maintainer's View + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

13. The Maintainer's View

+ +

The maintainer of a package has many responsibilities. One of them +is ensuring that the package will install easily on many platforms, +and that the magic we described earlier (see section The User's View) will work +for installers and end users. +

+

Of course, there are many possible ways by which GNU gettext +might be integrated in a distribution, and this chapter does not cover +them in all generality. Instead, it details one possible approach which +is especially adequate for many free software distributions following GNU +standards, or even better, Gnits standards, because GNU gettext +is purposely for helping the internationalization of the whole GNU +project, and as many other good free packages as possible. So, the +maintainer's view presented here presumes that the package already has +a ‘configure.ac’ file and uses GNU Autoconf. +

+

Nevertheless, GNU gettext may surely be useful for free packages +not following GNU standards and conventions, but the maintainers of such +packages might have to show imagination and initiative in organizing +their distributions so gettext work for them in all situations. +There are surely many, out there. +

+

Even if gettext methods are now stabilizing, slight adjustments +might be needed between successive gettext versions, so you +should ideally revise this chapter in subsequent releases, looking +for changes. +

+ + + + +

13.1 Flat or Non-Flat Directory Structures

+ +

Some free software packages are distributed as tar files which unpack +in a single directory, these are said to be flat distributions. +Other free software packages have a one level hierarchy of subdirectories, using +for example a subdirectory named ‘doc/’ for the Texinfo manual and +man pages, another called ‘lib/’ for holding functions meant to +replace or complement C libraries, and a subdirectory ‘src/’ for +holding the proper sources for the package. These other distributions +are said to be non-flat. +

+

We cannot say much about flat distributions. A flat +directory structure has the disadvantage of increasing the difficulty +of updating to a new version of GNU gettext. Also, if you have +many PO files, this could somewhat pollute your single directory. +Also, GNU gettext's libintl sources consist of C sources, shell +scripts, sed scripts and complicated Makefile rules, which don't +fit well into an existing flat structure. For these reasons, we +recommend to use non-flat approach in this case as well. +

+

Maybe because GNU gettext itself has a non-flat structure, +we have more experience with this approach, and this is what will be +described in the remaining of this chapter. Some maintainers might +use this as an opportunity to unflatten their package structure. +

+ + + +

13.2 Prerequisite Works

+ +

There are some works which are required for using GNU gettext +in one of your package. These works have some kind of generality +that escape the point by point descriptions used in the remainder +of this chapter. So, we describe them here. +

+
    +
  • +Before attempting to use gettextize you should install some +other packages first. +Ensure that recent versions of GNU m4, GNU Autoconf and GNU +gettext are already installed at your site, and if not, proceed +to do this first. If you get to install these things, beware that +GNU m4 must be fully installed before GNU Autoconf is even +configured. + +

    To further ease the task of a package maintainer the automake +package was designed and implemented. GNU gettext now uses this +tool and the ‘Makefile’ in the ‘po/’ directory therefore +knows about all the goals necessary for using automake. +

    +

    Those four packages are only needed by you, as a maintainer; the +installers of your own package and end users do not really need any of +GNU m4, GNU Autoconf, GNU gettext, or GNU automake +for successfully installing and running your package, with messages +properly translated. But this is not completely true if you provide +internationalized shell scripts within your own package: GNU +gettext shall then be installed at the user site if the end users +want to see the translation of shell script messages. +

    +
  • +Your package should use Autoconf and have a ‘configure.ac’ or +‘configure.in’ file. +If it does not, you have to learn how. The Autoconf documentation +is quite well written, it is a good idea that you print it and get +familiar with it. + +
  • +Your C sources should have already been modified according to +instructions given earlier in this manual. See section Preparing Program Sources. + +
  • +Your ‘po/’ directory should receive all PO files submitted to you +by the translator teams, each having ‘ll.po’ as a name. +This is not usually easy to get translation +work done before your package gets internationalized and available! +Since the cycle has to start somewhere, the easiest for the maintainer +is to start with absolutely no PO files, and wait until various +translator teams get interested in your package, and submit PO files. + +
+ +

It is worth adding here a few words about how the maintainer should +ideally behave with PO files submissions. As a maintainer, your role is +to authenticate the origin of the submission as being the representative +of the appropriate translating teams of the Translation Project (forward +the submission to ‘coordinator@translationproject.org’ in case of doubt), +to ensure that the PO file format is not severely broken and does not +prevent successful installation, and for the rest, to merely put these +PO files in ‘po/’ for distribution. +

+

As a maintainer, you do not have to take on your shoulders the +responsibility of checking if the translations are adequate or +complete, and should avoid diving into linguistic matters. Translation +teams drive themselves and are fully responsible of their linguistic +choices for the Translation Project. Keep in mind that translator teams are not +driven by maintainers. You can help by carefully redirecting all +communications and reports from users about linguistic matters to the +appropriate translation team, or explain users how to reach or join +their team. +

+

Maintainers should never ever apply PO file bug reports +themselves, short-cutting translation teams. If some translator has +difficulty to get some of her points through her team, it should not be +an option for her to directly negotiate translations with maintainers. +Teams ought to settle their problems themselves, if any. If you, as +a maintainer, ever think there is a real problem with a team, please +never try to solve a team's problem on your own. +

+ + + +

13.3 Invoking the gettextize Program

+ + +

The gettextize program is an interactive tool that helps the +maintainer of a package internationalized through GNU gettext. +It is used for two purposes: +

+
    +
  • +As a wizard, when a package is modified to use GNU gettext for +the first time. + +
  • +As a migration tool, for upgrading the GNU gettext support in +a package from a previous to a newer version of GNU gettext. +
+ +

This program performs the following tasks: +

+
    +
  • +It copies into the package some files that are consistently and +identically needed in every package internationalized through +GNU gettext. + +
  • It performs as many of the tasks mentioned in the next section +Files You Must Create or Alter as can be performed automatically. + +
  • It removes obsolete files and idioms used for previous GNU +gettext versions to the form recommended for the current GNU +gettext version. + +
  • It prints a summary of the tasks that ought to be done manually +and could not be done automatically by gettextize. +
+ +

It can be invoked as follows: +

+ + +
 
gettextize [ option… ] [ directory ]
+
+ +

and accepts the following options: +

+
+
-f
+
--force
+
+ +

Force replacement of files which already exist. +

+
+
--po-dir=dir
+
+

Specify a directory containing PO files. Such a directory contains the +translations into various languages of a particular POT file. This +option can be specified multiple times, once for each translation domain. +If it is not specified, the directory named ‘po/’ is updated. +

+
+
--no-changelog
+
+

Don't update or create ChangeLog files. By default, gettextize +logs all changes (file additions, modifications and removals) in a +file called ‘ChangeLog’ in each affected directory. +

+
+
--symlink
+
+

Make symbolic links instead of copying the needed files. This can be +useful to save a few kilobytes of disk space, but it requires extra +effort to create self-contained tarballs, it may disturb some mechanism +the maintainer applies to the sources, and it is likely to introduce +bugs when a newer version of gettext is installed on the system. +

+
+
-n
+
--dry-run
+
+ +

Print modifications but don't perform them. All actions that +gettextize would normally execute are inhibited and instead only +listed on standard output. +

+
+
--help
+
+

Display this help and exit. +

+
+
--version
+
+

Output version information and exit. +

+
+
+ +

If directory is given, this is the top level directory of a +package to prepare for using GNU gettext. If not given, it +is assumed that the current directory is the top level directory of +such a package. +

+

The program gettextize provides the following files. However, +no existing file will be replaced unless the option --force +(-f) is specified. +

+
    +
  1. +The ‘ABOUT-NLS’ file is copied in the main directory of your package, +the one being at the top level. This file contains a reference to the +GNU gettext documentation. It also avoids an error from Automake in +packages that use the Automake option ‘gnu’ or ‘gnits’: +“error: required file './ABOUT-NLS' not found”. + +
  2. +A ‘po/’ directory is created for eventually holding +all translation files, but initially only containing the file +‘po/Makefile.in.in’ from the GNU gettext distribution +(beware the double ‘.in’ in the file name) and a few auxiliary +files. If the ‘po/’ directory already exists, it will be preserved +along with the files it contains, and only ‘Makefile.in.in’ and +the auxiliary files will be overwritten. + +

    If ‘--po-dir’ has been specified, this holds for every directory +specified through ‘--po-dir’, instead of ‘po/’. +

    +
  3. +The file ‘config.rpath’ is copied into the directory containing +configuration support files. It is needed by the AM_GNU_GETTEXT +autoconf macro. + +
  4. +Only if the project is using GNU automake: +A set of autoconf macro files is copied into the package's +autoconf macro repository, usually in a directory called ‘m4/’. +
+ +

If your site support symbolic links, gettextize will not +actually copy the files into your package, but establish symbolic +links instead. This avoids duplicating the disk space needed in +all packages. Merely using the ‘-h’ option while creating the +tar archive of your distribution will resolve each link by an +actual copy in the distribution archive. So, to insist, you really +should use ‘-h’ option with tar within your dist +goal of your main ‘Makefile.in’. +

+

Furthermore, gettextize will update all ‘Makefile.am’ files +in each affected directory, as well as the top level ‘configure.ac’ +or ‘configure.in’ file. +

+

It is interesting to understand that most new files for supporting +GNU gettext facilities in one package go in ‘po/’ and +‘m4/’ subdirectories. Still, these directories will mostly +contain package dependent files. +

+

The gettextize program makes backup files for all files it +replaces or changes, and also write ChangeLog entries about these +changes. This way, the careful maintainer can check after running +gettextize whether its changes are acceptable to him, and +possibly adjust them. An exception to this rule is the ‘intl/’ +directory, which is removed as a whole if it still existed. +

+

It is important to understand that gettextize can not do the +entire job of adapting a package for using GNU gettext. The +amount of remaining work depends on whether the package uses GNU +automake or not. But in any case, the maintainer should still +read the section Files You Must Create or Alter after invoking gettextize. +

+

In particular, if after using ‘gettexize’, you get an error +‘AC_COMPILE_IFELSE was called before AC_GNU_SOURCE’ or +‘AC_RUN_IFELSE was called before AC_GNU_SOURCE’, you can fix it +by modifying ‘configure.ac’, as described in configure.ac’ at top level. +

+

It is also important to understand that gettextize is not part +of the GNU build system, in the sense that it should not be invoked +automatically, and not be invoked by someone who doesn't assume the +responsibilities of a package maintainer. For the latter purpose, a +separate tool is provided, see Invoking the autopoint Program. +

+ + + +

13.4 Files You Must Create or Alter

+ +

Besides files which are automatically added through gettextize, +there are many files needing revision for properly interacting with +GNU gettext. If you are closely following GNU standards for +Makefile engineering and auto-configuration, the adaptations should +be easier to achieve. Here is a point by point description of the +changes needed in each. +

+

So, here comes a list of files, each one followed by a description of +all alterations it needs. Many examples are taken out from the GNU +gettext 0.22 distribution itself, or from the GNU +hello distribution (https://www.gnu.org/software/hello). +You may indeed refer to the source code of the GNU gettext and +GNU hello packages, as they are intended to be good examples for +using GNU gettext functionality. +

+ + + + +

13.4.1 ‘POTFILES.in’ in ‘po/

+ +

The ‘po/’ directory should receive a file named +‘POTFILES.in’. This file tells which files, among all program +sources, have marked strings needing translation. Here is an example +of such a file: +

+
 
# List of source files containing translatable strings.
+# Copyright (C) 1995 Free Software Foundation, Inc.
+
+# Common library files
+lib/error.c
+lib/getopt.c
+lib/xmalloc.c
+
+# Package source files
+src/gettext.c
+src/msgfmt.c
+src/xgettext.c
+
+ +

Hash-marked comments and white lines are ignored. All other lines +list those source files containing strings marked for translation +(see section How Marks Appear in Sources), in a notation relative to the top level +of your whole distribution, rather than the location of the +‘POTFILES.in’ file itself. +

+

When a C file is automatically generated by a tool, like flex or +bison, that doesn't introduce translatable strings by itself, +it is recommended to list in ‘po/POTFILES.in’ the real source file +(ending in ‘.l’ in the case of flex, or in ‘.y’ in the +case of bison), not the generated C file. +

+ + + +

13.4.2 ‘LINGUAS’ in ‘po/

+ +

The ‘po/’ directory should also receive a file named +‘LINGUAS’. This file contains the list of available translations. +It is a whitespace separated list. Hash-marked comments and white lines +are ignored. Here is an example file: +

+
 
# Set of available languages.
+de fr
+
+ +

This example means that German and French PO files are available, so +that these languages are currently supported by your package. If you +want to further restrict, at installation time, the set of installed +languages, this should not be done by modifying the ‘LINGUAS’ file, +but rather by using the LINGUAS environment variable +(see section The Installer's and Distributor's View). +

+

It is recommended that you add the "languages" ‘en@quot’ and +‘en@boldquot’ to the LINGUAS file. en@quot is a +variant of English message catalogs (en) which uses real quotation +marks instead of the ugly looking asymmetric ASCII substitutes ‘`’ +and ‘'’. en@boldquot is a variant of en@quot that +additionally outputs quoted pieces of text in a bold font, when used in +a terminal emulator which supports the VT100 escape sequences (such as +xterm or the Linux console, but not Emacs in M-x shell mode). +

+

These extra message catalogs ‘en@quot’ and ‘en@boldquot’ +are constructed automatically, not by translators; to support them, you +need the files ‘Rules-quot’, ‘quot.sed’, ‘boldquot.sed’, +‘en@quot.header’, ‘en@boldquot.header’, ‘insert-header.sin’ +in the ‘po/’ directory. You can copy them from GNU gettext's ‘po/’ +directory; they are also installed by running gettextize. +

+ + + +

13.4.3 ‘Makevars’ in ‘po/

+ +

The ‘po/’ directory also has a file named ‘Makevars’. It +contains variables that are specific to your project. ‘po/Makevars’ +gets inserted into the ‘po/Makefile’ when the latter is created. +The variables thus take effect when the POT file is created or updated, +and when the message catalogs get installed. +

+

The first three variables can be left unmodified if your package has a +single message domain and, accordingly, a single ‘po/’ directory. +Only packages which have multiple ‘po/’ directories at different +locations need to adjust the three first variables defined in +‘Makevars’. +

+

As an alternative to the XGETTEXT_OPTIONS variable, it is also +possible to specify xgettext options through the +AM_XGETTEXT_OPTION autoconf macro. See AM_XGETTEXT_OPTION in ‘po.m4. +

+ + + +

13.4.4 Extending ‘Makefile’ in ‘po/

+ +

All files called ‘Rules-*’ in the ‘po/’ directory get appended to +the ‘po/Makefile’ when it is created. They present an opportunity to +add rules for special PO files to the Makefile, without needing to mess +with ‘po/Makefile.in.in’. +

+ + +

GNU gettext comes with a ‘Rules-quot’ file, containing rules for +building catalogs ‘en@quot.po’ and ‘en@boldquot.po’. The +effect of ‘en@quot.po’ is that people who set their LANGUAGE +environment variable to ‘en@quot’ will get messages with proper +looking symmetric Unicode quotation marks instead of abusing the ASCII +grave accent and the ASCII apostrophe for indicating quotations. To +enable this catalog, simply add en@quot to the ‘po/LINGUAS’ +file. The effect of ‘en@boldquot.po’ is that people who set +LANGUAGE to ‘en@boldquot’ will get not only proper quotation +marks, but also the quoted text will be shown in a bold font on terminals +and consoles. This catalog is useful only for command-line programs, not +GUI programs. To enable it, similarly add en@boldquot to the +‘po/LINGUAS’ file. +

+

Similarly, you can create rules for building message catalogs for the +‘sr@latin’ locale – Serbian written with the Latin alphabet – +from those for the ‘sr’ locale – Serbian written with Cyrillic +letters. See Invoking the msgfilter Program. +

+ + + +

13.4.5 ‘configure.ac’ at top level

+ +

configure.ac’ or ‘configure.in’ - this is the source from which +autoconf generates the ‘configure’ script. +

+
    +
  1. Declare the package and version. + + +

    This is done by a set of lines like these: +

    +
     
    PACKAGE=gettext
    +VERSION=0.22
    +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
    +AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
    +AC_SUBST(PACKAGE)
    +AC_SUBST(VERSION)
    +
    + +

    or, if you are using GNU automake, by a line like this: +

    +
     
    AM_INIT_AUTOMAKE(gettext, 0.22)
    +
    + +

    Of course, you replace ‘gettext’ with the name of your package, +and ‘0.22’ by its version numbers, exactly as they +should appear in the packaged tar file name of your distribution +(‘gettext-0.22.tar.gz’, here). +

    +
  2. Check for internationalization support. + +

    Here is the main m4 macro for triggering internationalization +support. Just add this line to ‘configure.ac’: +

    +
     
    AM_GNU_GETTEXT([external])
    +
    + +

    This call is purposely simple, even if it generates a lot of configure +time checking and actions. +

    +
  3. Have output files created. + +

    The AC_OUTPUT directive, at the end of your ‘configure.ac’ +file, needs to be modified in two ways: +

    +
     
    AC_OUTPUT([existing configuration files po/Makefile.in],
    +[existing additional actions])
    +
    + +

    The modification to the first argument to AC_OUTPUT asks +for substitution in the ‘po/’ directory. +Note the ‘.in’ suffix used for ‘po/’ only. This is because +the distributed file is really ‘po/Makefile.in.in’. +

    +
+ + + + +

13.4.6 ‘config.guess’, ‘config.sub’ at top level

+ +

You need to add the GNU ‘config.guess’ and ‘config.sub’ files +to your distribution. They are needed because the AM_ICONV macro +contains knowledge about specific platforms and therefore needs to +identify the platform. +

+

You can obtain the newest version of ‘config.guess’ and +‘config.sub’ from the ‘config’ project at +‘https://savannah.gnu.org/’. The commands to fetch them are +

 
$ wget -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
+$ wget -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'
+
+

Less recent versions are also contained in the GNU automake and +GNU libtool packages. +

+

Normally, ‘config.guess’ and ‘config.sub’ are put at the +top level of a distribution. But it is also possible to put them in a +subdirectory, altogether with other configuration support files like +‘install-sh’, ‘ltconfig’, ‘ltmain.sh’ or ‘missing’. +All you need to do, other than moving the files, is to add the following line +to your ‘configure.ac’. +

+
 
AC_CONFIG_AUX_DIR([subdir])
+
+ + + + +

13.4.7 ‘mkinstalldirs’ at top level

+ +

With earlier versions of GNU gettext, you needed to add the GNU +‘mkinstalldirs’ script to your distribution. This is not needed any +more. You can remove it. +

+ + + +

13.4.8 ‘aclocal.m4’ at top level

+ +

If you do not have an ‘aclocal.m4’ file in your distribution, +the simplest is to concatenate the files ‘build-to-host.m4’, +‘gettext.m4’, ‘host-cpu-c-abi.m4’, ‘intlmacosx.m4’, +‘iconv.m4’, ‘lib-ld.m4’, ‘lib-link.m4’, ‘lib-prefix.m4’, +‘nls.m4’, ‘po.m4’, ‘progtest.m4’ from GNU gettext's +‘m4/’ directory into a single file. +

+

If you already have an ‘aclocal.m4’ file, then you will have +to merge the said macro files into your ‘aclocal.m4’. Note that if +you are upgrading from a previous release of GNU gettext, you +should most probably replace the macros (AM_GNU_GETTEXT, +etc.), as they usually +change a little from one release of GNU gettext to the next. +Their contents may vary as we get more experience with strange systems +out there. +

+

You should be using GNU automake 1.9 or newer. With it, you need +to copy the files ‘build-to-host.m4’, ‘gettext.m4’, +‘host-cpu-c-abi.m4’, ‘intlmacosx.m4’, ‘iconv.m4’, +‘lib-ld.m4’, ‘lib-link.m4’, ‘lib-prefix.m4’, ‘nls.m4’, +‘po.m4’, ‘progtest.m4’ from GNU gettext's ‘m4/’ +directory to a subdirectory named ‘m4/’ and add the line +

+
 
ACLOCAL_AMFLAGS = -I m4
+
+ +

to your top level ‘Makefile.am’. +

+

If you are using GNU automake 1.10 or newer, it is even easier: +Add the line +

+
 
ACLOCAL_AMFLAGS = --install -I m4
+
+ +

to your top level ‘Makefile.am’, and run ‘aclocal --install -I m4’. +This will copy the needed files to the ‘m4/’ subdirectory automatically, +before updating ‘aclocal.m4’. +

+

These macros check for the internationalization support functions +and related informations. Hopefully, once stabilized, these macros +might be integrated in the standard Autoconf set, because this +piece of m4 code will be the same for all projects using GNU +gettext. +

+ + + +

13.4.9 ‘config.h.in’ at top level

+ +

The include file template that holds the C macros to be defined by +configure is usually called ‘config.h.in’ and may be +maintained either manually or automatically. +

+

If it is maintained automatically, by use of the ‘autoheader’ +program, you need to do nothing about it. This is the case in particular +if you are using GNU automake. +

+

If it is maintained manually, you can get away by adding the +following lines to ‘config.h.in’: +

+
 
/* Define to 1 if translation of program messages to the user's
+   native language is requested. */
+#undef ENABLE_NLS
+
+ + + + +

13.4.10 ‘Makefile.in’ at top level

+ +

Here are a few modifications you need to make to your main, top-level +‘Makefile.in’ file. +

+
    +
  1. +Add the following lines near the beginning of your ‘Makefile.in’, +so the ‘dist:’ goal will work properly (as explained further down): + +
     
    PACKAGE = @PACKAGE@
    +VERSION = @VERSION@
    +
    + +
  2. +Wherever you process subdirectories in your ‘Makefile.in’, be sure +you also process the subdirectory ‘po’. Special +rules in the ‘Makefiles’ take care for the case where no +internationalization is wanted. + +

    If you are using Makefiles, either generated by automake, or hand-written +so they carefully follow the GNU coding standards, the effected goals for +which the new subdirectories must be handled include ‘installdirs’, +‘install’, ‘uninstall’, ‘clean’, ‘distclean’. +

    +

    Here is an example of a canonical order of processing. In this +example, we also define SUBDIRS in Makefile.in for it +to be further used in the ‘dist:’ goal. +

    +
     
    SUBDIRS = doc lib src po
    +
    + +
  3. +A delicate point is the ‘dist:’ goal, as ‘po/Makefile’ will later +assume that the proper directory has been set up from the main ‘Makefile’. +Here is an example at what the ‘dist:’ goal might look like: + +
     
    distdir = $(PACKAGE)-$(VERSION)
    +dist: Makefile
    +	rm -fr $(distdir)
    +	mkdir $(distdir)
    +	chmod 777 $(distdir)
    +	for file in $(DISTFILES); do \
    +	  ln $$file $(distdir) 2>/dev/null || cp -p $$file $(distdir); \
    +	done
    +	for subdir in $(SUBDIRS); do \
    +	  mkdir $(distdir)/$$subdir || exit 1; \
    +	  chmod 777 $(distdir)/$$subdir; \
    +	  (cd $$subdir && $(MAKE) $@) || exit 1; \
    +	done
    +	tar chozf $(distdir).tar.gz $(distdir)
    +	rm -fr $(distdir)
    +
    + +
+ +

Note that if you are using GNU automake, ‘Makefile.in’ is +automatically generated from ‘Makefile.am’, and all needed changes +to ‘Makefile.am’ are already made by running ‘gettextize’. +

+ + + +

13.4.11 ‘Makefile.in’ in ‘src/

+ +

Some of the modifications made in the main ‘Makefile.in’ will +also be needed in the ‘Makefile.in’ from your package sources, +which we assume here to be in the ‘src/’ subdirectory. Here are +all the modifications needed in ‘src/Makefile.in’: +

+
    +
  1. +In view of the ‘dist:’ goal, you should have these lines near the +beginning of ‘src/Makefile.in’: + +
     
    PACKAGE = @PACKAGE@
    +VERSION = @VERSION@
    +
    + +
  2. +If not done already, you should guarantee that top_srcdir +gets defined. This will serve for cpp include files. Just add +the line: + +
     
    top_srcdir = @top_srcdir@
    +
    + +
  3. +You might also want to define subdir as ‘src’, later +allowing for almost uniform ‘dist:’ goals in all your +‘Makefile.in’. At list, the ‘dist:’ goal below assume that +you used: + +
     
    subdir = src
    +
    + +
  4. +The main function of your program will normally call +bindtextdomain (see see section Triggering gettext Operations), like this: + +
     
    bindtextdomain (PACKAGE, LOCALEDIR);
    +textdomain (PACKAGE);
    +
    + +

    On native Windows platforms, the main function may call +wbindtextdomain instead of bindtextdomain. +

    +

    To make LOCALEDIR known to the program, add the following lines to +‘Makefile.in’: +

    +
     
    datadir = @datadir@
    +datarootdir= @datarootdir@
    +localedir = @localedir@
    +DEFS = -DLOCALEDIR=$(localedir_c_make) @DEFS@
    +
    + +

    $(localedir_c_make) expands to the value of localedir, in +C syntax, escaped for use in a Makefile. +Note that @datadir@ defaults to ‘$(prefix)/share’, and +$(localedir) defaults to ‘$(prefix)/share/locale’. +

    +
  5. +You should ensure that the final linking will use @LIBINTL@ or +@LTLIBINTL@ as a library. @LIBINTL@ is for use without +libtool, @LTLIBINTL@ is for use with libtool. An +easy way to achieve this is to manage that it gets into LIBS, like +this: + +
     
    LIBS = @LIBINTL@ @LIBS@
    +
    + +

    In most packages internationalized with GNU gettext, one will +find a directory ‘lib/’ in which a library containing some helper +functions will be build. (You need at least the few functions which the +GNU gettext Library itself needs.) However some of the functions +in the ‘lib/’ also give messages to the user which of course should be +translated, too. Taking care of this, the support library (say +‘libsupport.a’) should be placed before @LIBINTL@ and +@LIBS@ in the above example. So one has to write this: +

    +
     
    LIBS = ../lib/libsupport.a @LIBINTL@ @LIBS@
    +
    + +
  6. +Your ‘dist:’ goal has to conform with others. Here is a +reasonable definition for it: + +
     
    distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
    +dist: Makefile $(DISTFILES)
    +	for file in $(DISTFILES); do \
    +	  ln $$file $(distdir) 2>/dev/null || cp -p $$file $(distdir) || exit 1; \
    +	done
    +
    + +
+ +

Note that if you are using GNU automake, ‘Makefile.in’ is +automatically generated from ‘Makefile.am’, and the first three +changes and the last change are not necessary. The remaining needed +‘Makefile.am’ modifications are the following: +

+
    +
  1. +To make LOCALEDIR known to the program, add the following to +‘Makefile.am’: + +
     
    <module>_CPPFLAGS = -DLOCALEDIR=$(localedir_c_make)
    +
    + +

    for each specific module or compilation unit, or +

    +
     
    AM_CPPFLAGS = -DLOCALEDIR=$(localedir_c_make)
    +
    + +

    for all modules and compilation units together. +

    +
  2. +To ensure that the final linking will use @LIBINTL@ or +@LTLIBINTL@ as a library, add the following to +‘Makefile.am’: + +
     
    <program>_LDADD = @LIBINTL@
    +
    + +

    for each specific program, or +

    +
     
    LDADD = @LIBINTL@
    +
    + +

    for all programs together. Remember that when you use libtool +to link a program, you need to use @LTLIBINTL@ instead of @LIBINTL@ +for that program. +

    +
+ + + + +

13.4.12 ‘gettext.h’ in ‘lib/

+ +

Internationalization of packages, as provided by GNU gettext, is +optional. It can be turned off in two situations: +

+
    +
  • +When the installer has specified ‘./configure --disable-nls’. This +can be useful when small binaries are more important than features, for +example when building utilities for boot diskettes. It can also be useful +in order to get some specific C compiler warnings about code quality with +some older versions of GCC (older than 3.0). + +
  • +When the libintl.h header (with its associated libintl library, if any) is +not already installed on the system, it is preferable that the package builds +without internationalization support, rather than to give a compilation +error. +
+ +

A C preprocessor macro can be used to detect these two cases. Usually, +when libintl.h was found and not explicitly disabled, the +ENABLE_NLS macro will be defined to 1 in the autoconf generated +configuration file (usually called ‘config.h’). In the two negative +situations, however, this macro will not be defined, thus it will evaluate +to 0 in C preprocessor expressions. +

+ +

gettext.h’ is a convenience header file for conditional use of +‘<libintl.h>’, depending on the ENABLE_NLS macro. If +ENABLE_NLS is set, it includes ‘<libintl.h>’; otherwise it +defines no-op substitutes for the libintl.h functions. We recommend +the use of "gettext.h" over direct use of ‘<libintl.h>’, +so that portability to older systems is guaranteed and installers can +turn off internationalization if they want to. In the C code, you will +then write +

+
 
#include "gettext.h"
+
+ +

instead of +

+
 
#include <libintl.h>
+
+ +

The location of gettext.h is usually in a directory containing +auxiliary include files. In many GNU packages, there is a directory +‘lib/’ containing helper functions; ‘gettext.h’ fits there. +In other packages, it can go into the ‘src’ directory. +

+

Do not install the gettext.h file in public locations. Every +package that needs it should contain a copy of it on its own. +

+ + + +

13.5 Autoconf macros for use in ‘configure.ac

+ +

GNU gettext installs macros for use in a package's +‘configure.ac’ or ‘configure.in’. +See (autoconf)Top section `Introduction' in The Autoconf Manual. +The primary macro is, of course, AM_GNU_GETTEXT. +

+ + + + +

13.5.1 AM_GNU_GETTEXT in ‘gettext.m4

+ +

The AM_GNU_GETTEXT macro tests for the presence of the GNU gettext +function family in either the C library or a separate libintl +library (shared or static libraries are both supported). It also invokes +AM_PO_SUBDIRS, thus preparing the ‘po/’ directories of the +package for building. +

+

AM_GNU_GETTEXT accepts up to two optional arguments. The general +syntax is +

+
 
AM_GNU_GETTEXT([intlsymbol], [needsymbol])
+
+ +

intlsymbol should always be ‘external’. +

+

If needsymbol is specified and is ‘need-ngettext’, then GNU +gettext implementations (in libc or libintl) without the ngettext() +function will be ignored. If needsymbol is specified and is +‘need-formatstring-macros’, then GNU gettext implementations that don't +support the ISO C 99 ‘<inttypes.h>’ formatstring macros will be ignored. +Only one needsymbol can be specified. These requirements can also be +specified by using the macro AM_GNU_GETTEXT_NEED elsewhere. To specify +more than one requirement, just specify the strongest one among them, or +invoke the AM_GNU_GETTEXT_NEED macro several times. The hierarchy +among the various alternatives is as follows: ‘need-formatstring-macros’ +implies ‘need-ngettext’. +

+

The AM_GNU_GETTEXT macro determines whether GNU gettext is +available and should be used. If so, it sets the USE_NLS variable +to ‘yes’; it defines ENABLE_NLS to 1 in the autoconf +generated configuration file (usually called ‘config.h’); it sets +the variables LIBINTL and LTLIBINTL to the linker options +for use in a Makefile (LIBINTL for use without libtool, +LTLIBINTL for use with libtool); it adds an ‘-I’ option to +CPPFLAGS if necessary. In the negative case, it sets +USE_NLS to ‘no’; it sets LIBINTL and LTLIBINTL +to empty and doesn't change CPPFLAGS. +

+

The complexities that AM_GNU_GETTEXT deals with are the following: +

+
    +
  • + +Some operating systems have gettext in the C library, for example +glibc. Some have it in a separate library libintl. GNU libintl +might have been installed as part of the GNU gettext package. + +
  • +GNU libintl, if installed, is not necessarily already in the search +path (CPPFLAGS for the include file search path, LDFLAGS for +the library search path). + +
  • +Except for glibc and the Solaris 11 libc, the operating system's native +gettext cannot exploit the GNU mo files, doesn't have the +necessary locale dependency features, and cannot convert messages from +the catalog's text encoding to the user's locale encoding. + +
  • +GNU libintl, if installed, is not necessarily already in the +run time library search path. To avoid the need for setting an environment +variable like LD_LIBRARY_PATH, the macro adds the appropriate +run time search path options to the LIBINTL and LTLIBINTL +variables. This works on most systems, but not on some operating systems +with limited shared library support, like SCO. + +
  • +GNU libintl relies on POSIX/XSI iconv. The macro checks for +linker options needed to use iconv and appends them to the LIBINTL +and LTLIBINTL variables. +
+ +

Additionally, the AM_GNU_GETTEXT macro sets two variables, for +convenience. Both are derived from the --localedir configure +option. They are correct even on native Windows, where directories +frequently contain backslashes. +

+
localedir_c
+

This is the value of localedir, in C syntax. This variable is +meant to be substituted into C or C++ code through +AC_CONFIG_FILES. +

+
+
localedir_c_make
+

This is the value of localedir, in C syntax, escaped for use in +a Makefile. This variable is meant to be used in Makefiles, +for example for defining a C macro named LOCALEDIR: +

 
AM_CPPFLAGS = ... -DLOCALEDIR=$(localedir_c_make) ...
+
+
+
+ + + + +

13.5.2 AM_GNU_GETTEXT_VERSION in ‘gettext.m4

+ +

The AM_GNU_GETTEXT_VERSION macro declares the version number of +the GNU gettext infrastructure that is used by the package. +

+

The use of this macro is optional; only the autopoint program makes +use of it (see section Integrating with Version Control Systems). +

+ + + +

13.5.3 AM_GNU_GETTEXT_NEED in ‘gettext.m4

+ +

The AM_GNU_GETTEXT_NEED macro declares a constraint regarding the +GNU gettext implementation. The syntax is +

+
 
AM_GNU_GETTEXT_NEED([needsymbol])
+
+ +

If needsymbol is ‘need-ngettext’, then GNU gettext implementations +(in libc or libintl) without the ngettext() function will be ignored. +If needsymbol is ‘need-formatstring-macros’, then GNU gettext +implementations that don't support the ISO C 99 ‘<inttypes.h>’ +formatstring macros will be ignored. +

+

The optional second argument of AM_GNU_GETTEXT is also taken into +account. +

+

The AM_GNU_GETTEXT_NEED invocations can occur before or after +the AM_GNU_GETTEXT invocation; the order doesn't matter. +

+ + + +

13.5.4 AM_PO_SUBDIRS in ‘po.m4

+ +

The AM_PO_SUBDIRS macro prepares the ‘po/’ directories of the +package for building. This macro should be used in internationalized +programs written in other programming languages than C, C++, Objective C, +for example sh, Python, Lisp. See Other Programming Languages for a list of programming languages that support localization +through PO files. +

+

The AM_PO_SUBDIRS macro determines whether internationalization +should be used. If so, it sets the USE_NLS variable to ‘yes’, +otherwise to ‘no’. It also determines the right values for Makefile +variables in each ‘po/’ directory. +

+ + + +

13.5.5 AM_XGETTEXT_OPTION in ‘po.m4

+ +

The AM_XGETTEXT_OPTION macro registers a command-line option to be +used in the invocations of xgettext in the ‘po/’ directories +of the package. +

+

For example, if you have a source file that defines a function +‘error_at_line’ whose fifth argument is a format string, you can use +

 
AM_XGETTEXT_OPTION([--flag=error_at_line:5:c-format])
+
+

to instruct xgettext to mark all translatable strings in ‘gettext’ +invocations that occur as fifth argument to this function as ‘c-format’. +

+

See Invoking the xgettext Program for the list of options that xgettext +accepts. +

+

The use of this macro is an alternative to the use of the +‘XGETTEXT_OPTIONS’ variable in ‘po/Makevars’. +

+ + + +

13.5.6 AM_ICONV in ‘iconv.m4

+ +

The AM_ICONV macro tests for the presence of the POSIX/XSI +iconv function family in either the C library or a separate +libiconv library. If found, it sets the am_cv_func_iconv +variable to ‘yes’; it defines HAVE_ICONV to 1 in the autoconf +generated configuration file (usually called ‘config.h’); it defines +ICONV_CONST to ‘const’ or to empty, depending on whether the +second argument of iconv() is of type ‘const char **’ or +‘char **’; it sets the variables LIBICONV and +LTLIBICONV to the linker options for use in a Makefile +(LIBICONV for use without libtool, LTLIBICONV for use with +libtool); it adds an ‘-I’ option to CPPFLAGS if +necessary. If not found, it sets LIBICONV and LTLIBICONV to +empty and doesn't change CPPFLAGS. +

+

The complexities that AM_ICONV deals with are the following: +

+
    +
  • + +Some operating systems have iconv in the C library, for example +glibc. Some have it in a separate library libiconv, for example +OSF/1 or FreeBSD. Regardless of the operating system, GNU libiconv +might have been installed. In that case, it should be used instead of the +operating system's native iconv. + +
  • +GNU libiconv, if installed, is not necessarily already in the search +path (CPPFLAGS for the include file search path, LDFLAGS for +the library search path). + +
  • +GNU libiconv is binary incompatible with some operating system's +native iconv, for example on FreeBSD. Use of an ‘iconv.h’ +and ‘libiconv.so’ that don't fit together would produce program +crashes. + +
  • +GNU libiconv, if installed, is not necessarily already in the +run time library search path. To avoid the need for setting an environment +variable like LD_LIBRARY_PATH, the macro adds the appropriate +run time search path options to the LIBICONV variable. This works +on most systems, but not on some operating systems with limited shared +library support, like SCO. +
+ +

iconv.m4’ is distributed with the GNU gettext package because +‘gettext.m4’ relies on it. +

+ + + +

13.6 Integrating with Version Control Systems

+ +

Many projects use version control systems for distributed development +and source backup. This section gives some advice how to manage the +uses of gettextize, autopoint and autoconf on +version controlled files. +

+ + + + +

13.6.1 Avoiding version mismatch in distributed development

+ +

In a project development with multiple developers, there should be a +single developer who occasionally - when there is desire to upgrade to +a new gettext version - runs gettextize and performs the +changes listed in Files You Must Create or Alter, and then commits his changes +to the repository. +

+

It is highly recommended that all developers on a project use the same +version of GNU gettext in the package. In other words, if a +developer runs gettextize, he should go the whole way, make the +necessary remaining changes and commit his changes to the repository. +Otherwise the following damages will likely occur: +

+
    +
  • +Apparent version mismatch between developers. Since some gettext +specific portions in ‘configure.ac’, ‘configure.in’ and +Makefile.am, Makefile.in files depend on the gettext +version, the use of infrastructure files belonging to different +gettext versions can easily lead to build errors. + +
  • +Hidden version mismatch. Such version mismatch can also lead to +malfunctioning of the package, that may be undiscovered by the developers. +The worst case of hidden version mismatch is that internationalization +of the package doesn't work at all. + +
  • +Release risks. All developers implicitly perform constant testing on +a package. This is important in the days and weeks before a release. +If the guy who makes the release tar files uses a different version +of GNU gettext than the other developers, the distribution will +be less well tested than if all had been using the same gettext +version. For example, it is possible that a platform specific bug goes +undiscovered due to this constellation. +
+ + + + +

13.6.2 Files to put under version control

+ +

There are basically three ways to deal with generated files in the +context of a version controlled repository, such as ‘configure’ +generated from ‘configure.ac’, parser.c generated +from parser.y, or po/Makefile.in.in autoinstalled +by gettextize or autopoint. +

+
    +
  1. +All generated files are always committed into the repository. + +
  2. +All generated files are committed into the repository occasionally, +for example each time a release is made. + +
  3. +Generated files are never committed into the repository. +
+ +

Each of these three approaches has different advantages and drawbacks. +

+
    +
  1. +The advantage is that anyone can check out the source at any moment and +gets a working build. The drawbacks are: 1a. It requires some frequent +"push" actions by the maintainers. 1b. The repository grows in size +quite fast. + +
  2. +The advantage is that anyone can check out the source, and the usual +"./configure; make" will work. The drawbacks are: 2a. The one who +checks out the repository needs tools like GNU automake, GNU +autoconf, GNU m4 installed in his PATH; sometimes he +even needs particular versions of them. 2b. When a release is made +and a commit is made on the generated files, the other developers get +conflicts on the generated files when merging the local work back to +the repository. Although these conflicts are easy to resolve, they +are annoying. + +
  3. +The advantage is less work for the maintainers. The drawback is that +anyone who checks out the source not only needs tools like GNU +automake, GNU autoconf, GNU m4 installed in his +PATH, but also that he needs to perform a package specific pre-build +step before being able to "./configure; make". +
+ +

For the first and second approach, all files modified or brought in +by the occasional gettextize invocation and update should be +committed into the repository. +

+

For the third approach, the maintainer can omit from the repository +all the files that gettextize mentions as "copy". Instead, he +adds to the ‘configure.ac’ or ‘configure.in’ a line of the +form +

+
 
AM_GNU_GETTEXT_VERSION(0.22)
+
+ +

and adds to the package's pre-build script an invocation of +‘autopoint’. For everyone who checks out the source, this +autopoint invocation will copy into the right place the +gettext infrastructure files that have been omitted from the repository. +

+

The version number used as argument to AM_GNU_GETTEXT_VERSION is +the version of the gettext infrastructure that the package wants +to use. It is also the minimum version number of the ‘autopoint’ +program. So, if you write AM_GNU_GETTEXT_VERSION(0.11.5) then the +developers can have any version >= 0.11.5 installed; the package will work +with the 0.11.5 infrastructure in all developers' builds. When the +maintainer then runs gettextize from, say, version 0.12.1 on the package, +the occurrence of AM_GNU_GETTEXT_VERSION(0.11.5) will be changed +into AM_GNU_GETTEXT_VERSION(0.12.1), and all other developers that +use the CVS will henceforth need to have GNU gettext 0.12.1 or newer +installed. +

+ + + +

13.6.3 Put PO Files under Version Control

+ +

Since translations are valuable assets as well as the source code, it +would make sense to put them under version control. The GNU gettext +infrastructure supports two ways to deal with translations in the +context of a version controlled repository. +

+
    +
  1. +Both POT file and PO files are committed into the repository. + +
  2. +Only PO files are committed into the repository. + +
+ +

If a POT file is absent when building, it will be generated by +scanning the source files with xgettext, and then the PO files +are regenerated as a dependency. On the other hand, some maintainers +want to keep the POT file unchanged during the development phase. So, +even if a POT file is present and older than the source code, it won't +be updated automatically. You can manually update it with make +$(DOMAIN).pot-update, and commit it at certain point. +

+

Special advices for particular version control systems: +

+
    +
  • +Recent version control systems, Git for instance, ignore file's +timestamp. In that case, PO files can be accidentally updated even if +a POT file is not updated. To prevent this, you can set +‘PO_DEPENDS_ON_POT’ variable to no in the ‘Makevars’ +file and do make update-po manually. + +
  • +Location comments such as #: lib/error.c:116 are sometimes +annoying, since these comments are volatile and may introduce unwanted +change to the working copy when building. To mitigate this, you can +decide to omit those comments from the PO files in the repository. + +

    This is possible with the --no-location option of the +msgmerge command (6). The drawback is +that, if the location information is needed, translators have to +recover the location comments by running msgmerge again. +

    +
+ + + + +

13.6.4 Invoking the autopoint Program

+ + +
 
autopoint [option]...
+
+ +

The autopoint program copies standard gettext infrastructure files +into a source package. It extracts from a macro call of the form +AM_GNU_GETTEXT_VERSION(version), found in the package's +‘configure.in’ or ‘configure.ac’ file, the gettext version +used by the package, and copies the infrastructure files belonging to +this version into the package. +

+

To extract the latest available infrastructure which satisfies a version +requirement, then you can use the form +AM_GNU_GETTEXT_REQUIRE_VERSION(version) instead. For +example, if gettext 0.22 is installed on your system +and 0.19.1 is requested, then the infrastructure files of version +0.22 will be copied into a source package. +

+ + +

13.6.4.1 Options

+ +
+
-f
+
--force
+
+ +

Force overwriting of files that already exist. +

+
+
-n
+
--dry-run
+
+ +

Print modifications but don't perform them. All file copying actions that +autopoint would normally execute are inhibited and instead only +listed on standard output. +

+
+
+ + + +

13.6.4.2 Informative output

+ +
+
--help
+
+

Display this help and exit. +

+
+
--version
+
+

Output version information and exit. +

+
+
+ +

autopoint supports the GNU gettext versions from 0.10.35 +to the current one, 0.22. In order to apply +autopoint to a package using a gettext version newer than +0.22, you need to install this same version of GNU +gettext at least. +

+

In packages using GNU automake, an invocation of autopoint +should be followed by invocations of aclocal and then autoconf +and autoheader. The reason is that autopoint installs some +autoconf macro files, which are used by aclocal to create +‘aclocal.m4’, and the latter is used by autoconf to create the +package's ‘configure’ script and by autoheader to create the +package's ‘config.h.in’ include file template. +

+

The name ‘autopoint’ is an abbreviation of ‘auto-po-intl-m4’; +in earlier versions, the tool copied or updated mostly files in the ‘po’, +‘intl’, ‘m4’ directories. +

+ + + +

13.7 Creating a Distribution Tarball

+ +

In projects that use GNU automake, the usual commands for creating +a distribution tarball, ‘make dist’ or ‘make distcheck’, +automatically update the PO files as needed. +

+

If GNU automake is not used, the maintainer needs to perform this +update before making a release: +

+
 
$ ./configure
+$ (cd po; make update-po)
+$ make distclean
+
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_14.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_14.html new file mode 100644 index 000000000..efbed52a5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_14.html @@ -0,0 +1,107 @@ + + + + + +GNU gettext utilities: 14. The Installer's and Distributor's View + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

14. The Installer's and Distributor's View

+ +

By default, packages fully using GNU gettext, internally, +are installed in such a way as to allow translation of +messages. At configuration time, those packages should +automatically detect whether the underlying host system already provides +the GNU gettext functions. If not, +the GNU gettext library should be automatically prepared +and used. Installers may use special options at configuration +time for changing this behavior. The command ‘./configure +--with-included-gettext’ bypasses system gettext to +use the included GNU gettext instead, +while ‘./configure --disable-nls’ +produces programs totally unable to translate messages. +

+ +

Internationalized packages have usually many ‘ll.po’ +files. Unless +translations are disabled, all those available are installed together +with the package. However, the environment variable LINGUAS +may be set, prior to configuration, to limit the installed set. +LINGUAS should then contain a space separated list of two-letter +codes, stating which languages are allowed. +

+ + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_15.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_15.html new file mode 100644 index 000000000..96f4de66e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_15.html @@ -0,0 +1,3994 @@ + + + + + +GNU gettext utilities: 15. Other Programming Languages + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

15. Other Programming Languages

+ +

While the presentation of gettext focuses mostly on C and +implicitly applies to C++ as well, its scope is far broader than that: +Many programming languages, scripting languages and other textual data +like GUI resources or package descriptions can make use of the gettext +approach. +

+ + + + +

15.1 The Language Implementor's View

+ +

All programming and scripting languages that have the notion of strings +are eligible to supporting gettext. Supporting gettext +means the following: +

+
    +
  1. +You should add to the language a syntax for translatable strings. In +principle, a function call of gettext would do, but a shorthand +syntax helps keeping the legibility of internationalized programs. For +example, in C we use the syntax _("string"), and in GNU awk we use +the shorthand _"string". + +
  2. +You should arrange that evaluation of such a translatable string at +runtime calls the gettext function, or performs equivalent +processing. + +
  3. +Similarly, you should make the functions ngettext, +dcgettext, dcngettext available from within the language. +These functions are less often used, but are nevertheless necessary for +particular purposes: ngettext for correct plural handling, and +dcgettext and dcngettext for obeying other locale-related +environment variables than LC_MESSAGES, such as LC_TIME or +LC_MONETARY. For these latter functions, you need to make the +LC_* constants, available in the C header <locale.h>, +referenceable from within the language, usually either as enumeration +values or as strings. + +
  4. +You should allow the programmer to designate a message domain, either by +making the textdomain function available from within the +language, or by introducing a magic variable called TEXTDOMAIN. +Similarly, you should allow the programmer to designate where to search +for message catalogs, by providing access to the bindtextdomain +function or — on native Windows platforms — to the wbindtextdomain +function. + +
  5. +You should either perform a setlocale (LC_ALL, "") call during +the startup of your language runtime, or allow the programmer to do so. +Remember that gettext will act as a no-op if the LC_MESSAGES and +LC_CTYPE locale categories are not both set. + +
  6. +A programmer should have a way to extract translatable strings from a +program into a PO file. The GNU xgettext program is being +extended to support very different programming languages. Please +contact the GNU gettext maintainers to help them doing this. +The GNU gettext maintainers will need from you a formal +description of the lexical structure of source files. It should +answer the questions: +
      +
    • +What does a token look like? +
    • +What does a string literal look like? What escape characters exist +inside a string? +
    • +What escape characters exist outside of strings? If Unicode escapes +are supported, are they applied before or after tokenization? +
    • +What is the syntax for function calls? How are consecutive arguments +in the same function call separated? +
    • +What is the syntax for comments? +
    +

    Based on this description, the GNU gettext maintainers +can add support to xgettext. +

    +

    If the string extractor is best integrated into your language's parser, +GNU xgettext can function as a front end to your string extractor. +

    +
  7. +The language's library should have a string formatting facility. +Additionally: +
      +
    1. +There must be a way, in the format string, to denote the arguments by a +positional number or a name. This is needed because for some languages +and some messages with more than one substitutable argument, the +translation will need to output the substituted arguments in different +order. See section Special Comments preceding Keywords. +
    2. +The syntax of format strings must be documented in a way that translators +can understand. The GNU gettext manual will be extended to +include a pointer to this documentation. +
    +

    Based on this, the GNU gettext maintainers can add a format string +equivalence checker to msgfmt, so that translators get told +immediately when they have made a mistake during the translation of a +format string. +

    +
  8. +If the language has more than one implementation, and not all of the +implementations use gettext, but the programs should be portable +across implementations, you should provide a no-i18n emulation, that +makes the other implementations accept programs written for yours, +without actually translating the strings. + +
  9. +To help the programmer in the task of marking translatable strings, +which is sometimes performed using the Emacs PO mode (see section Marking Translatable Strings), +you are welcome to +contact the GNU gettext maintainers, so they can add support for +your language to ‘po-mode.el’. +
+ +

On the implementation side, two approaches are possible, with +different effects on portability and copyright: +

+
    +
  • +You may link against GNU gettext functions if they are found in +the C library. For example, an autoconf test for gettext() and +ngettext() will detect this situation. For the moment, this test +will succeed on GNU systems and on Solaris 11 platforms. No severe +copyright restrictions apply, except if you want to distribute statically +linked binaries. + +
  • +You may emulate or reimplement the GNU gettext functionality. +This has the advantage of full portability and no copyright +restrictions, but also the drawback that you have to reimplement the GNU +gettext features (such as the LANGUAGE environment +variable, the locale aliases database, the automatic charset conversion, +and plural handling). +
+ + + + +

15.2 The Programmer's View

+ +

For the programmer, the general procedure is the same as for the C +language. The Emacs PO mode marking supports other languages, and the GNU +xgettext string extractor recognizes other languages based on the +file extension or a command-line option. In some languages, +setlocale is not needed because it is already performed by the +underlying language runtime. +

+ + + +

15.3 The Translator's View

+ +

The translator works exactly as in the C language case. The only +difference is that when translating format strings, she has to be aware +of the language's particular syntax for positional arguments in format +strings. +

+ + + + +

15.3.1 C Format Strings

+ +

C format strings are described in POSIX (IEEE P1003.1 2001), section +XSH 3 fprintf(), +http://www.opengroup.org/onlinepubs/007904975/functions/fprintf.html. +See also the fprintf() manual page, +http://www.linuxvalley.it/encyclopedia/ldp/manpage/man3/printf.3.php, +http://informatik.fh-wuerzburg.de/student/i510/man/printf.html. +

+

Although format strings with positions that reorder arguments, such as +

+
 
"Only %2$d bytes free on '%1$s'."
+
+ +

which is semantically equivalent to +

+
 
"'%s' has only %d bytes free."
+
+ +

are a POSIX/XSI feature and not specified by ISO C 99, translators can rely +on this reordering ability: On the few platforms where printf(), +fprintf() etc. don't support this feature natively, ‘libintl.a’ +or ‘libintl.so’ provides replacement functions, and GNU <libintl.h> +activates these replacement functions automatically. +

+ + +

As a special feature for Farsi (Persian) and maybe Arabic, translators can +insert an ‘I’ flag into numeric format directives. For example, the +translation of "%d" can be "%Id". The effect of this flag, +on systems with GNU libc, is that in the output, the ASCII digits are +replaced with the ‘outdigits’ defined in the LC_CTYPE locale +category. On other systems, the gettext function removes this flag, +so that it has no effect. +

+

Note that the programmer should not put this flag into the +untranslated string. (Putting the ‘I’ format directive flag into an +msgid string would lead to undefined behaviour on platforms without +glibc when NLS is disabled.) +

+ + + +

15.3.2 Objective C Format Strings

+ +

Objective C format strings are like C format strings. They support an +additional format directive: "%@", which when executed consumes an argument +of type Object *. +

+ + + +

15.3.3 C++ Format Strings

+ +

C++ format strings are described in ISO C++ 20, namely in +https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/n4861.pdf, +section 20.20.2 Format string [format.string]. +

+

An easier-to-read description is found at +https://en.cppreference.com/w/cpp/utility/format/format#Parameters and +https://en.cppreference.com/w/cpp/utility/format/formatter#Standard_format_specification. +

+ + + +

15.3.4 Python Format Strings

+ +

There are two kinds of format strings in Python: those acceptable to +the Python built-in format operator %, labelled as +‘python-format’, and those acceptable to the format method +of the ‘str’ object. +

+

Python % format strings are described in +Python Library reference / +5. Built-in Types / +5.6. Sequence Types / +5.6.2. String Formatting Operations. +https://docs.python.org/2/library/stdtypes.html#string-formatting-operations. +

+

Python brace format strings are described in PEP 3101 – Advanced +String Formatting, https://www.python.org/dev/peps/pep-3101/. +

+ + + +

15.3.5 Java Format Strings

+ +

There are two kinds of format strings in Java: those acceptable to the +MessageFormat.format function, labelled as ‘java-format’, +and those acceptable to the String.format and +PrintStream.printf functions, labelled as ‘java-printf-format’. +

+

Java format strings are described in the JDK documentation for class +java.text.MessageFormat, +https://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html. +See also the ICU documentation +http://icu-project.org/apiref/icu4j/com/ibm/icu/text/MessageFormat.html. +

+

Java printf format strings are described in the JDK documentation +for class java.util.Formatter, +https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html. +

+ + + +

15.3.6 C# Format Strings

+ +

C# format strings are described in the .NET documentation for class +System.String and in +http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpConFormattingOverview.asp. +

+ + + +

15.3.7 JavaScript Format Strings

+ +

Although JavaScript specification itself does not define any format +strings, many JavaScript implementations provide printf-like +functions. xgettext understands a set of common format strings +used in popular JavaScript implementations including Gjs, Seed, and +Node.JS. In such a format string, a directive starts with ‘%’ +and is finished by a specifier: ‘%’ denotes a literal percent +sign, ‘c’ denotes a character, ‘s’ denotes a string, +‘b’, ‘d’, ‘o’, ‘x’, ‘X’ denote an integer, +‘f’ denotes floating-point number, ‘j’ denotes a JSON +object. +

+ + + +

15.3.8 Scheme Format Strings

+ +

Scheme format strings are documented in the SLIB manual, section +Format Specification. +

+ + + +

15.3.9 Lisp Format Strings

+ +

Lisp format strings are described in the Common Lisp HyperSpec, +chapter 22.3 Formatted Output, +http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/sec_22-3.html. +

+ + + +

15.3.10 Emacs Lisp Format Strings

+ +

Emacs Lisp format strings are documented in the Emacs Lisp reference, +section Formatting Strings, +https://www.gnu.org/manual/elisp-manual-21-2.8/html_chapter/elisp_4.html#SEC75. +Note that as of version 21, XEmacs supports numbered argument specifications +in format strings while FSF Emacs doesn't. +

+ + + +

15.3.11 librep Format Strings

+ +

librep format strings are documented in the librep manual, section +Formatted Output, +http://librep.sourceforge.net/librep-manual.html#Formatted%20Output, +http://www.gwinnup.org/research/docs/librep.html#SEC122. +

+ + + +

15.3.12 Ruby Format Strings

+ +

Ruby format strings are described in the documentation of the Ruby +functions format and sprintf, in +https://ruby-doc.org/core-2.7.1/Kernel.html#method-i-sprintf. +

+

There are two kinds of format strings in Ruby: +

    +
  • +Those that take a list of arguments without names. They support +argument reordering by use of the %n$ syntax. Note +that if one argument uses this syntax, all must use this syntax. +
  • +Those that take a hash table, containing named arguments. The +syntax is %<name>. Note that %{name} is +equivalent to %<name>s. +
+ + + + +

15.3.13 Shell Format Strings

+ +

Shell format strings, as supported by GNU gettext and the ‘envsubst’ +program, are strings with references to shell variables in the form +$variable or ${variable}. References of the form +${variable-default}, +${variable:-default}, +${variable=default}, +${variable:=default}, +${variable+replacement}, +${variable:+replacement}, +${variable?ignored}, +${variable:?ignored}, +that would be valid inside shell scripts, are not supported. The +variable names must consist solely of alphanumeric or underscore +ASCII characters, not start with a digit and be nonempty; otherwise such +a variable reference is ignored. +

+ + + +

15.3.14 awk Format Strings

+ +

awk format strings are described in the gawk documentation, section +Printf, +https://www.gnu.org/manual/gawk/html_node/Printf.html#Printf. +

+ + + +

15.3.15 Lua Format Strings

+ +

Lua format strings are described in the Lua reference manual, section String Manipulation, +https://www.lua.org/manual/5.1/manual.html#pdf-string.format. +

+ + + +

15.3.16 Object Pascal Format Strings

+ +

Object Pascal format strings are described in the documentation of the +Free Pascal runtime library, section Format, +https://www.freepascal.org/docs-html/rtl/sysutils/format.html. +

+ + + +

15.3.17 Smalltalk Format Strings

+ +

Smalltalk format strings are described in the GNU Smalltalk documentation, +class CharArray, methods ‘bindWith:’ and +‘bindWithArguments:’. +https://www.gnu.org/software/smalltalk/gst-manual/gst_68.html#SEC238. +In summary, a directive starts with ‘%’ and is followed by ‘%’ +or a nonzero digit (‘1’ to ‘9’). +

+ + + +

15.3.18 Qt Format Strings

+ +

Qt format strings are described in the documentation of the QString class +file:/usr/lib/qt-4.3.0/doc/html/qstring.html. +In summary, a directive consists of a ‘%’ followed by a digit. The same +directive cannot occur more than once in a format string. +

+ + + +

15.3.19 Qt Format Strings

+ +

Qt format strings are described in the documentation of the QObject::tr method +file:/usr/lib/qt-4.3.0/doc/html/qobject.html. +In summary, the only allowed directive is ‘%n’. +

+ + + +

15.3.20 KDE Format Strings

+ +

KDE 4 format strings are defined as follows: +A directive consists of a ‘%’ followed by a non-zero decimal number. +If a ‘%n’ occurs in a format strings, all of ‘%1’, ..., ‘%(n-1)’ +must occur as well, except possibly one of them. +

+ + + +

15.3.21 KUIT Format Strings

+ +

KUIT (KDE User Interface Text) is compatible with KDE 4 format strings, +while it also allows programmers to add semantic information to a format +string, through XML markup tags. For example, if the first format +directive in a string is a filename, programmers could indicate that +with a ‘filename’ tag, like ‘<filename>%1</filename>’. +

+

KUIT format strings are described in +https://api.kde.org/frameworks/ki18n/html/prg_guide.html#kuit_markup. +

+ + + +

15.3.22 Boost Format Strings

+ +

Boost format strings are described in the documentation of the +boost::format class, at +https://www.boost.org/libs/format/doc/format.html. +In summary, a directive has either the same syntax as in a C format string, +such as ‘%1$+5d’, or may be surrounded by vertical bars, such as +‘%|1$+5d|’ or ‘%|1$+5|’, or consists of just an argument number +between percent signs, such as ‘%1%’. +

+ + + +

15.3.23 Tcl Format Strings

+ +

Tcl format strings are described in the ‘format.n’ manual page, +http://www.scriptics.com/man/tcl8.3/TclCmd/format.htm. +

+ + + +

15.3.24 Perl Format Strings

+ +

There are two kinds of format strings in Perl: those acceptable to the +Perl built-in function printf, labelled as ‘perl-format’, +and those acceptable to the libintl-perl function __x, +labelled as ‘perl-brace-format’. +

+

Perl printf format strings are described in the sprintf +section of ‘man perlfunc’. +

+

Perl brace format strings are described in the +‘Locale::TextDomain(3pm)’ manual page of the CPAN package +libintl-perl. In brief, Perl format uses placeholders put between +braces (‘{’ and ‘}’). The placeholder must have the syntax +of simple identifiers. +

+ + + +

15.3.25 PHP Format Strings

+ +

PHP format strings are described in the documentation of the PHP function +sprintf, in ‘phpdoc/manual/function.sprintf.html’ or +http://www.php.net/manual/en/function.sprintf.php. +

+ + + +

15.3.26 GCC internal Format Strings

+ +

These format strings are used inside the GCC sources. In such a format +string, a directive starts with ‘%’, is optionally followed by a +size specifier ‘l’, an optional flag ‘+’, another optional flag +‘#’, and is finished by a specifier: ‘%’ denotes a literal +percent sign, ‘c’ denotes a character, ‘s’ denotes a string, +‘i’ and ‘d’ denote an integer, ‘o’, ‘u’, ‘x’ +denote an unsigned integer, ‘.*s’ denotes a string preceded by a +width specification, ‘H’ denotes a ‘location_t *’ pointer, +‘D’ denotes a general declaration, ‘F’ denotes a function +declaration, ‘T’ denotes a type, ‘A’ denotes a function argument, +‘C’ denotes a tree code, ‘E’ denotes an expression, ‘L’ +denotes a programming language, ‘O’ denotes a binary operator, +‘P’ denotes a function parameter, ‘Q’ denotes an assignment +operator, ‘V’ denotes a const/volatile qualifier. +

+ + + +

15.3.27 GFC internal Format Strings

+ +

These format strings are used inside the GNU Fortran Compiler sources, +that is, the Fortran frontend in the GCC sources. In such a format +string, a directive starts with ‘%’ and is finished by a +specifier: ‘%’ denotes a literal percent sign, ‘C’ denotes the +current source location, ‘L’ denotes a source location, ‘c’ +denotes a character, ‘s’ denotes a string, ‘i’ and ‘d’ +denote an integer, ‘u’ denotes an unsigned integer. ‘i’, +‘d’, and ‘u’ may be preceded by a size specifier ‘l’. +

+ + + +

15.3.28 YCP Format Strings

+ +

YCP sformat strings are described in the libycp documentation +file:/usr/share/doc/packages/libycp/YCP-builtins.html. +In summary, a directive starts with ‘%’ and is followed by ‘%’ +or a nonzero digit (‘1’ to ‘9’). +

+ + + + +

15.4 The Maintainer's View

+ +

For the maintainer, the general procedure differs from the C language +case: +

+
    +
  • +If only a single programming language is used, the XGETTEXT_OPTIONS +variable in ‘po/Makevars’ (see section Makevars’ in ‘po/) should be adjusted to +match the xgettext options for that particular programming language. +If the package uses more than one programming language with gettext +support, it becomes necessary to change the POT file construction rule +in ‘po/Makefile.in.in’. It is recommended to make one xgettext +invocation per programming language, each with the options appropriate for +that language, and to combine the resulting files using msgcat. +
+ + + + +

15.5 Individual Programming Languages

+ + + + + + + +

15.5.1 C, C++, Objective C

+ +
+
RPMs
+

gcc, gpp, gobjc, glibc, gettext +

+
+
Ubuntu packages
+

gcc, g++, gobjc, libc6-dev, libasprintf-dev +

+
+
File extension
+

For C: c, h. +
For C++: C, c++, cc, cxx, cpp, hpp. +
For Objective C: m. +

+
+
String syntax
+

"abc" +

+
+
gettext shorthand
+

_("abc") +

+
+
gettext/ngettext functions
+

gettext, dgettext, dcgettext, ngettext, +dngettext, dcngettext +

+
+
textdomain
+

textdomain function +

+
+
bindtextdomain
+

bindtextdomain and wbindtextdomain functions +

+
+
setlocale
+

Programmer must call setlocale (LC_ALL, "") +

+
+
Prerequisite
+

#include <libintl.h> +
#include <locale.h> +
#define _(string) gettext (string) +

+
+
Use or emulate GNU gettext
+

Use +

+
+
Extractor
+

xgettext -k_ +

+
+
Formatting with positions
+

fprintf "%2$d %1$d" +
In C++: autosprintf "%2$d %1$d" +(see (autosprintf)Top section `Introduction' in GNU autosprintf) +
In C++ 20 or newer: std::vformat "{1} {0}" +

+
+
Portability
+

autoconf (gettext.m4) and #if ENABLE_NLS +

+
+
po-mode marking
+

yes +

+
+ +

The following examples are available in the ‘examples’ directory: +hello-c, hello-c-gnome, hello-c++, hello-c++-qt, +hello-c++-kde, hello-c++-gnome, hello-c++-wxwidgets, +hello-objc, hello-objc-gnustep, hello-objc-gnome. +

+ + + +

15.5.2 Python

+ +
+
RPMs
+

python +

+
+
Ubuntu packages
+

python +

+
+
File extension
+

py +

+
+
String syntax
+

'abc', u'abc', r'abc', ur'abc', +
"abc", u"abc", r"abc", ur"abc", +
'''abc''', u'''abc''', r'''abc''', ur'''abc''', +
"""abc""", u"""abc""", r"""abc""", ur"""abc""" +

+
+
gettext shorthand
+

_('abc') etc. +

+
+
gettext/ngettext functions
+

gettext.gettext, gettext.dgettext, +gettext.ngettext, gettext.dngettext, +also ugettext, ungettext +

+
+
textdomain
+

gettext.textdomain function, or +gettext.install(domain) function +

+
+
bindtextdomain
+

gettext.bindtextdomain function, or +gettext.install(domain,localedir) function +

+
+
setlocale
+

not used by the gettext emulation +

+
+
Prerequisite
+

import gettext +

+
+
Use or emulate GNU gettext
+

emulate +

+
+
Extractor
+

xgettext +

+
+
Formatting with positions
+

'...%(ident)d...' % { 'ident': value } +
'...{ident}...'.format(ident=value) (see PEP 3101) +

+
+
Portability
+

fully portable +

+
+
po-mode marking
+

— +

+
+ +

An example is available in the ‘examples’ directory: hello-python. +

+

A note about format strings: Python supports format strings with unnamed +arguments, such as '...%d...', and format strings with named arguments, +such as '...%(ident)d...'. The latter are preferable for +internationalized programs, for two reasons: +

+
    +
  • +When a format string takes more than one argument, the translator can provide +a translation that uses the arguments in a different order, if the format +string uses named arguments. For example, the translator can reformulate +
     
    "'%(volume)s' has only %(freespace)d bytes free."
    +
    +

    to +

     
    "Only %(freespace)d bytes free on '%(volume)s'."
    +
    +

    Additionally, the identifiers also provide some context to the translator. +

    +
  • +In the context of plural forms, the format string used for the singular form +does not use the numeric argument in many languages. Even in English, one +prefers to write "one hour" instead of "1 hour". Omitting +individual arguments from format strings like this is only possible with +the named argument syntax. (With unnamed arguments, Python – unlike C – +verifies that the format string uses all supplied arguments.) +
+ + + + +

15.5.3 Java

+ +
+
RPMs
+

java, java2 +

+
+
Ubuntu packages
+

default-jdk +

+
+
File extension
+

java +

+
+
String syntax
+

"abc", """text block""" +

+
+
gettext shorthand
+

i18n("abc") +

+
+
gettext/ngettext functions
+

GettextResource.gettext, GettextResource.ngettext, +GettextResource.pgettext, GettextResource.npgettext +

+
+
textdomain
+

—, use ResourceBundle.getResource instead +

+
+
bindtextdomain
+

—, use CLASSPATH instead +

+
+
setlocale
+

automatic +

+
+
Prerequisite
+

— +

+
+
Use or emulate GNU gettext
+

—, uses a Java specific message catalog format +

+
+
Extractor
+

xgettext -ki18n +

+
+
Formatting with positions
+

MessageFormat.format "{1,number} {0,number}" +or String.format "%2$d %1$d" +

+
+
Portability
+

fully portable +

+
+
po-mode marking
+

— +

+
+ +

Before marking strings as internationalizable, uses of the string +concatenation operator need to be converted to MessageFormat +applications. For example, "file "+filename+" not found" becomes +MessageFormat.format("file {0} not found", new Object[] { filename }). +Only after this is done, can the strings be marked and extracted. +

+

GNU gettext uses the native Java internationalization mechanism, namely +ResourceBundles. There are two formats of ResourceBundles: +.properties files and .class files. The .properties +format is a text file which the translators can directly edit, like PO +files, but which doesn't support plural forms. Whereas the .class +format is compiled from .java source code and can support plural +forms (provided it is accessed through an appropriate API, see below). +

+

To convert a PO file to a .properties file, the msgcat +program can be used with the option --properties-output. To convert +a .properties file back to a PO file, the msgcat program +can be used with the option --properties-input. All the tools +that manipulate PO files can work with .properties files as well, +if given the --properties-input and/or --properties-output +option. +

+

To convert a PO file to a ResourceBundle class, the msgfmt program +can be used with the option --java or --java2. To convert a +ResourceBundle back to a PO file, the msgunfmt program can be used +with the option --java. +

+

Two different programmatic APIs can be used to access ResourceBundles. +Note that both APIs work with all kinds of ResourceBundles, whether +GNU gettext generated classes, or other .class or .properties +files. +

+
    +
  1. +The java.util.ResourceBundle API. + +

    In particular, its getString function returns a string translation. +Note that a missing translation yields a MissingResourceException. +

    +

    This has the advantage of being the standard API. And it does not require +any additional libraries, only the msgcat generated .properties +files or the msgfmt generated .class files. But it cannot do +plural handling, even if the resource was generated by msgfmt from +a PO file with plural handling. +

    +
  2. +The gnu.gettext.GettextResource API. + +

    Reference documentation in Javadoc 1.1 style format is in the +javadoc2 directory. +

    +

    Its gettext function returns a string translation. Note that when +a translation is missing, the msgid argument is returned unchanged. +

    +

    This has the advantage of having the ngettext function for plural +handling and the pgettext and npgettext for strings constraint +to a particular context. +

    + +

    To use this API, one needs the libintl.jar file which is part of +the GNU gettext package and distributed under the LGPL. +

+ +

Four examples, using the second API, are available in the ‘examples’ +directory: hello-java, hello-java-awt, hello-java-swing, +hello-java-qtjambi. +

+

Now, to make use of the API and define a shorthand for ‘getString’, +there are three idioms that you can choose from: +

+
    +
  • +(This one assumes Java 1.5 or newer.) +In a unique class of your project, say ‘Util’, define a static variable +holding the ResourceBundle instance and the shorthand: + +
     
    private static ResourceBundle myResources =
    +  ResourceBundle.getBundle("domain-name");
    +public static String i18n(String s) {
    +  return myResources.getString(s);
    +}
    +
    + +

    All classes containing internationalized strings then contain +

    +
     
    import static Util.i18n;
    +
    + +

    and the shorthand is used like this: +

    +
     
    System.out.println(i18n("Operation completed."));
    +
    + +
  • +In a unique class of your project, say ‘Util’, define a static variable +holding the ResourceBundle instance: + +
     
    public static ResourceBundle myResources =
    +  ResourceBundle.getBundle("domain-name");
    +
    + +

    All classes containing internationalized strings then contain +

    +
     
    private static ResourceBundle res = Util.myResources;
    +private static String i18n(String s) { return res.getString(s); }
    +
    + +

    and the shorthand is used like this: +

    +
     
    System.out.println(i18n("Operation completed."));
    +
    + +
  • +You add a class with a very short name, say ‘S’, containing just the +definition of the resource bundle and of the shorthand: + +
     
    public class S {
    +  public static ResourceBundle myResources =
    +    ResourceBundle.getBundle("domain-name");
    +  public static String i18n(String s) {
    +    return myResources.getString(s);
    +  }
    +}
    +
    + +

    and the shorthand is used like this: +

    +
     
    System.out.println(S.i18n("Operation completed."));
    +
    +
+ +

Which of the three idioms you choose, will depend on whether your project +requires portability to Java versions prior to Java 1.5 and, if so, whether +copying two lines of codes into every class is more acceptable in your project +than a class with a single-letter name. +

+ + + +

15.5.4 C#

+ +
+
RPMs
+

mono +

+
+
Ubuntu packages
+

mono-mcs +

+
+
File extension
+

cs +

+
+
String syntax
+

"abc", @"abc" +

+
+
gettext shorthand
+

_("abc") +

+
+
gettext/ngettext functions
+

GettextResourceManager.GetString, +GettextResourceManager.GetPluralString +GettextResourceManager.GetParticularString +GettextResourceManager.GetParticularPluralString +

+
+
textdomain
+

new GettextResourceManager(domain) +

+
+
bindtextdomain
+

—, compiled message catalogs are located in subdirectories of the directory +containing the executable +

+
+
setlocale
+

automatic +

+
+
Prerequisite
+

— +

+
+
Use or emulate GNU gettext
+

—, uses a C# specific message catalog format +

+
+
Extractor
+

xgettext -k_ +

+
+
Formatting with positions
+

String.Format "{1} {0}" +

+
+
Portability
+

fully portable +

+
+
po-mode marking
+

— +

+
+ +

Before marking strings as internationalizable, uses of the string +concatenation operator need to be converted to String.Format +invocations. For example, "file "+filename+" not found" becomes +String.Format("file {0} not found", filename). +Only after this is done, can the strings be marked and extracted. +

+

GNU gettext uses the native C#/.NET internationalization mechanism, namely +the classes ResourceManager and ResourceSet. Applications +use the ResourceManager methods to retrieve the native language +translation of strings. An instance of ResourceSet is the in-memory +representation of a message catalog file. The ResourceManager loads +and accesses ResourceSet instances as needed to look up the +translations. +

+

There are two formats of ResourceSets that can be directly loaded by +the C# runtime: .resources files and .dll files. +

+
    +
  • +The .resources format is a binary file usually generated through the +resgen or monoresgen utility, but which doesn't support plural +forms. .resources files can also be embedded in .NET .exe files. +This only affects whether a file system access is performed to load the message +catalog; it doesn't affect the contents of the message catalog. + +
  • +On the other hand, the .dll format is a binary file that is compiled +from .cs source code and can support plural forms (provided it is +accessed through the GNU gettext API, see below). +
+ +

Note that these .NET .dll and .exe files are not tied to a +particular platform; their file format and GNU gettext for C# can be used +on any platform. +

+

To convert a PO file to a .resources file, the msgfmt program +can be used with the option ‘--csharp-resources’. To convert a +.resources file back to a PO file, the msgunfmt program can be +used with the option ‘--csharp-resources’. You can also, in some cases, +use the monoresgen program (from the mono/mcs package). +This program can also convert a .resources file back to a PO file. But +beware: as of this writing (January 2004), the monoresgen converter is +quite buggy. +

+

To convert a PO file to a .dll file, the msgfmt program can be +used with the option --csharp. The result will be a .dll file +containing a subclass of GettextResourceSet, which itself is a subclass +of ResourceSet. To convert a .dll file containing a +GettextResourceSet subclass back to a PO file, the msgunfmt +program can be used with the option --csharp. +

+

The advantages of the .dll format over the .resources format +are: +

+
    +
  1. +Freedom to localize: Users can add their own translations to an application +after it has been built and distributed. Whereas when the programmer uses +a ResourceManager constructor provided by the system, the set of +.resources files for an application must be specified when the +application is built and cannot be extended afterwards. + +
  2. +Plural handling: A message catalog in .dll format supports the plural +handling function GetPluralString. Whereas .resources files can +only contain data and only support lookups that depend on a single string. + +
  3. +Context handling: A message catalog in .dll format supports the +query-with-context functions GetParticularString and +GetParticularPluralString. Whereas .resources files can +only contain data and only support lookups that depend on a single string. + +
  4. +The GettextResourceManager that loads the message catalogs in +.dll format also provides for inheritance on a per-message basis. +For example, in Austrian (de_AT) locale, translations from the German +(de) message catalog will be used for messages not found in the +Austrian message catalog. This has the consequence that the Austrian +translators need only translate those few messages for which the translation +into Austrian differs from the German one. Whereas when working with +.resources files, each message catalog must provide the translations +of all messages by itself. + +
  5. +The GettextResourceManager that loads the message catalogs in +.dll format also provides for a fallback: The English msgid is +returned when no translation can be found. Whereas when working with +.resources files, a language-neutral .resources file must +explicitly be provided as a fallback. +
+ +

On the side of the programmatic APIs, the programmer can use either the +standard ResourceManager API and the GNU GettextResourceManager +API. The latter is an extension of the former, because +GettextResourceManager is a subclass of ResourceManager. +

+
    +
  1. +The System.Resources.ResourceManager API. + +

    This API works with resources in .resources format. +

    +

    The creation of the ResourceManager is done through +

     
      new ResourceManager(domainname, Assembly.GetExecutingAssembly())
    +
    + +

    The GetString function returns a string's translation. Note that this +function returns null when a translation is missing (i.e. not even found in +the fallback resource file). +

    +
  2. +The GNU.Gettext.GettextResourceManager API. + +

    This API works with resources in .dll format. +

    +

    Reference documentation is in the +csharpdoc directory. +

    +

    The creation of the ResourceManager is done through +

     
      new GettextResourceManager(domainname)
    +
    + +

    The GetString function returns a string's translation. Note that when +a translation is missing, the msgid argument is returned unchanged. +

    +

    The GetPluralString function returns a string translation with plural +handling, like the ngettext function in C. +

    +

    The GetParticularString function returns a string's translation, +specific to a particular context, like the pgettext function in C. +Note that when a translation is missing, the msgid argument is returned +unchanged. +

    +

    The GetParticularPluralString function returns a string translation, +specific to a particular context, with plural handling, like the +npgettext function in C. +

    + +

    To use this API, one needs the GNU.Gettext.dll file which is part of +the GNU gettext package and distributed under the LGPL. +

+ +

You can also mix both approaches: use the +GNU.Gettext.GettextResourceManager constructor, but otherwise use +only the ResourceManager type and only the GetString method. +This is appropriate when you want to profit from the tools for PO files, +but don't want to change an existing source code that uses +ResourceManager and don't (yet) need the GetPluralString method. +

+

Two examples, using the second API, are available in the ‘examples’ +directory: hello-csharp, hello-csharp-forms. +

+

Now, to make use of the API and define a shorthand for ‘GetString’, +there are two idioms that you can choose from: +

+
    +
  • +In a unique class of your project, say ‘Util’, define a static variable +holding the ResourceManager instance: + +
     
    public static GettextResourceManager MyResourceManager =
    +  new GettextResourceManager("domain-name");
    +
    + +

    All classes containing internationalized strings then contain +

    +
     
    private static GettextResourceManager Res = Util.MyResourceManager;
    +private static String _(String s) { return Res.GetString(s); }
    +
    + +

    and the shorthand is used like this: +

    +
     
    Console.WriteLine(_("Operation completed."));
    +
    + +
  • +You add a class with a very short name, say ‘S’, containing just the +definition of the resource manager and of the shorthand: + +
     
    public class S {
    +  public static GettextResourceManager MyResourceManager =
    +    new GettextResourceManager("domain-name");
    +  public static String _(String s) {
    +     return MyResourceManager.GetString(s);
    +  }
    +}
    +
    + +

    and the shorthand is used like this: +

    +
     
    Console.WriteLine(S._("Operation completed."));
    +
    +
+ +

Which of the two idioms you choose, will depend on whether copying two lines +of codes into every class is more acceptable in your project than a class +with a single-letter name. +

+ + + +

15.5.5 JavaScript

+ +
+
RPMs
+

js +

+
+
Ubuntu packages
+

gjs +

+
+
File extension
+

js +

+
+
String syntax
+
    +
  • "abc" + +
  • 'abc' + +
  • `abc` + +
+ +
+
gettext shorthand
+

_("abc") +

+
+
gettext/ngettext functions
+

gettext, dgettext, dcgettext, ngettext, +dngettext +

+
+
textdomain
+

textdomain function +

+
+
bindtextdomain
+

bindtextdomain function +

+
+
setlocale
+

automatic +

+
+
Prerequisite
+

— +

+
+
Use or emulate GNU gettext
+

use, or emulate +

+
+
Extractor
+

xgettext +

+
+
Formatting with positions
+

— +

+
+
Portability
+

On platforms without gettext, the functions are not available. +

+
+
po-mode marking
+

— +

+
+ + + + +

15.5.6 GNU guile - Scheme

+ +
+
RPMs
+

guile +

+
+
Ubuntu packages
+

guile-2.0 +

+
+
File extension
+

scm +

+
+
String syntax
+

"abc" +

+
+
gettext shorthand
+

(_ "abc"), _"abc" (GIMP script-fu extension) +

+
+
gettext/ngettext functions
+

gettext, ngettext +

+
+
textdomain
+

textdomain +

+
+
bindtextdomain
+

bindtextdomain +

+
+
setlocale
+

(catch #t (lambda () (setlocale LC_ALL "")) (lambda args #f)) +

+
+
Prerequisite
+

(use-modules (ice-9 format)) +

+
+
Use or emulate GNU gettext
+

use +

+
+
Extractor
+

xgettext -k_ +

+
+
Formatting with positions
+

— +

+
+
Portability
+

On platforms without gettext, no translation. +

+
+
po-mode marking
+

— +

+
+ +

An example is available in the ‘examples’ directory: hello-guile. +

+ + + +

15.5.7 GNU clisp - Common Lisp

+ +
+
RPMs
+

clisp 2.28 or newer +

+
+
Ubuntu packages
+

clisp +

+
+
File extension
+

lisp +

+
+
String syntax
+

"abc" +

+
+
gettext shorthand
+

(_ "abc"), (ENGLISH "abc") +

+
+
gettext/ngettext functions
+

i18n:gettext, i18n:ngettext +

+
+
textdomain
+

i18n:textdomain +

+
+
bindtextdomain
+

i18n:textdomaindir +

+
+
setlocale
+

automatic +

+
+
Prerequisite
+

— +

+
+
Use or emulate GNU gettext
+

use +

+
+
Extractor
+

xgettext -k_ -kENGLISH +

+
+
Formatting with positions
+

format "~1@*~D ~0@*~D" +

+
+
Portability
+

On platforms without gettext, no translation. +

+
+
po-mode marking
+

— +

+
+ +

An example is available in the ‘examples’ directory: hello-clisp. +

+ + + +

15.5.8 GNU clisp C sources

+ +
+
RPMs
+

clisp +

+
+
Ubuntu packages
+

clisp +

+
+
File extension
+

d +

+
+
String syntax
+

"abc" +

+
+
gettext shorthand
+

ENGLISH ? "abc" : "" +
GETTEXT("abc") +
GETTEXTL("abc") +

+
+
gettext/ngettext functions
+

clgettext, clgettextl +

+
+
textdomain
+

— +

+
+
bindtextdomain
+

— +

+
+
setlocale
+

automatic +

+
+
Prerequisite
+

#include "lispbibl.c" +

+
+
Use or emulate GNU gettext
+

use +

+
+
Extractor
+

clisp-xgettext +

+
+
Formatting with positions
+

fprintf "%2$d %1$d" +

+
+
Portability
+

On platforms without gettext, no translation. +

+
+
po-mode marking
+

— +

+
+ + + + +

15.5.9 Emacs Lisp

+ +
+
RPMs
+

emacs, xemacs +

+
+
Ubuntu packages
+

emacs, xemacs21 +

+
+
File extension
+

el +

+
+
String syntax
+

"abc" +

+
+
gettext shorthand
+

(_"abc") +

+
+
gettext/ngettext functions
+

gettext, dgettext (xemacs only) +

+
+
textdomain
+

domain special form (xemacs only) +

+
+
bindtextdomain
+

bind-text-domain function (xemacs only) +

+
+
setlocale
+

automatic +

+
+
Prerequisite
+

— +

+
+
Use or emulate GNU gettext
+

use +

+
+
Extractor
+

xgettext +

+
+
Formatting with positions
+

format "%2$d %1$d" +

+
+
Portability
+

Only XEmacs. Without I18N3 defined at build time, no translation. +

+
+
po-mode marking
+

— +

+
+ + + + +

15.5.10 librep

+ +
+
RPMs
+

librep 0.15.3 or newer +

+
+
Ubuntu packages
+

librep16 +

+
+
File extension
+

jl +

+
+
String syntax
+

"abc" +

+
+
gettext shorthand
+

(_"abc") +

+
+
gettext/ngettext functions
+

gettext +

+
+
textdomain
+

textdomain function +

+
+
bindtextdomain
+

bindtextdomain function +

+
+
setlocale
+

— +

+
+
Prerequisite
+

(require 'rep.i18n.gettext) +

+
+
Use or emulate GNU gettext
+

use +

+
+
Extractor
+

xgettext +

+
+
Formatting with positions
+

format "%2$d %1$d" +

+
+
Portability
+

On platforms without gettext, no translation. +

+
+
po-mode marking
+

— +

+
+ +

An example is available in the ‘examples’ directory: hello-librep. +

+ + + +

15.5.11 Ruby

+ +
+
RPMs
+

ruby, ruby-gettext +

+
+
Ubuntu packages
+

ruby, ruby-gettext +

+
+
File extension
+

rb +

+
+
String syntax
+

"abc", 'abc', %q/abc/ etc., +%q(abc), %q[abc], %q{abc} +

+
+
gettext shorthand
+

_("abc") +

+
+
gettext/ngettext functions
+

gettext, ngettext +

+
+
textdomain
+

— +

+
+
bindtextdomain
+

bindtextdomain function +

+
+
setlocale
+

— +

+
+
Prerequisite
+

require 'gettext' +include GetText +

+
+
Use or emulate GNU gettext
+

emulate +

+
+
Extractor
+

xgettext +

+
+
Formatting with positions
+

sprintf("%2$d %1$d", x, y) +
"%{new} replaces %{old}" % {:old => oldvalue, :new => newvalue} +

+
+
Portability
+

fully portable +

+
+
po-mode marking
+

— +

+
+ + + + + +

15.5.12 sh - Shell Script

+ +
+
RPMs
+

bash, gettext +

+
+
Ubuntu packages
+

bash, gettext-base +

+
+
File extension
+

sh +

+
+
String syntax
+

"abc", 'abc', abc +

+
+
gettext shorthand
+

"`gettext \"abc\"`" +

+
+
gettext/ngettext functions
+
+ +

gettext, ngettext programs +
eval_gettext, eval_ngettext, eval_pgettext, +eval_npgettext shell functions +

+
+
textdomain
+
+

environment variable TEXTDOMAIN +

+
+
bindtextdomain
+
+

environment variable TEXTDOMAINDIR +

+
+
setlocale
+

automatic +

+
+
Prerequisite
+

. gettext.sh +

+
+
Use or emulate GNU gettext
+

use +

+
+
Extractor
+

xgettext +

+
+
Formatting with positions
+

— +

+
+
Portability
+

fully portable +

+
+
po-mode marking
+

— +

+
+ +

An example is available in the ‘examples’ directory: hello-sh. +

+ + + + +

15.5.12.1 Preparing Shell Scripts for Internationalization

+ +

Preparing a shell script for internationalization is conceptually similar +to the steps described in Preparing Program Sources. The concrete steps for shell +scripts are as follows. +

+
    +
  1. +Insert the line + +
     
    . gettext.sh
    +
    + +

    near the top of the script. gettext.sh is a shell function library +that provides the functions +eval_gettext (see Invoking the eval_gettext function), +eval_ngettext (see Invoking the eval_ngettext function), +eval_pgettext (see Invoking the eval_pgettext function), and +eval_npgettext (see Invoking the eval_npgettext function). +You have to ensure that gettext.sh can be found in the PATH. +

    +
  2. +Set and export the TEXTDOMAIN and TEXTDOMAINDIR environment +variables. Usually TEXTDOMAIN is the package or program name, and +TEXTDOMAINDIR is the absolute pathname corresponding to +$prefix/share/locale, where $prefix is the installation location. + +
     
    TEXTDOMAIN=@PACKAGE@
    +export TEXTDOMAIN
    +TEXTDOMAINDIR=@LOCALEDIR@
    +export TEXTDOMAINDIR
    +
    + +
  3. +Prepare the strings for translation, as described in Preparing Translatable Strings. + +
  4. +Simplify translatable strings so that they don't contain command substitution +("`...`" or "$(...)"), variable access with defaulting (like +${variable-default}), access to positional arguments +(like $0, $1, ...) or highly volatile shell variables (like +$?). This can always be done through simple local code restructuring. +For example, + +
     
    echo "Usage: $0 [OPTION] FILE..."
    +
    + +

    becomes +

    +
     
    program_name=$0
    +echo "Usage: $program_name [OPTION] FILE..."
    +
    + +

    Similarly, +

    +
     
    echo "Remaining files: `ls | wc -l`"
    +
    + +

    becomes +

    +
     
    filecount="`ls | wc -l`"
    +echo "Remaining files: $filecount"
    +
    + +
  5. +For each translatable string, change the output command ‘echo’ or +‘$echo’ to ‘gettext’ (if the string contains no references to +shell variables) or to ‘eval_gettext’ (if it refers to shell variables), +followed by a no-argument ‘echo’ command (to account for the terminating +newline). Similarly, for cases with plural handling, replace a conditional +‘echo’ command with an invocation of ‘ngettext’ or +‘eval_ngettext’, followed by a no-argument ‘echo’ command. + +

    When doing this, you also need to add an extra backslash before the dollar +sign in references to shell variables, so that the ‘eval_gettext’ +function receives the translatable string before the variable values are +substituted into it. For example, +

    +
     
    echo "Remaining files: $filecount"
    +
    + +

    becomes +

    +
     
    eval_gettext "Remaining files: \$filecount"; echo
    +
    + +

    If the output command is not ‘echo’, you can make it use ‘echo’ +nevertheless, through the use of backquotes. However, note that inside +backquotes, backslashes must be doubled to be effective (because the +backquoting eats one level of backslashes). For example, assuming that +‘error’ is a shell function that signals an error, +

    +
     
    error "file not found: $filename"
    +
    + +

    is first transformed into +

    +
     
    error "`echo \"file not found: \$filename\"`"
    +
    + +

    which then becomes +

    +
     
    error "`eval_gettext \"file not found: \\\$filename\"`"
    +
    +
+ + + + +

15.5.12.2 Contents of gettext.sh

+ +

gettext.sh, contained in the run-time package of GNU gettext, provides +the following: +

+ + + + + +

15.5.12.3 Invoking the gettext program

+ + +
 
gettext [option] [[textdomain] msgid]
+gettext [option] -s [msgid]...
+
+ + +

The gettext program displays the native language translation of a +textual message. +

+

Arguments +

+
+
-c context
+
--context=context
+
+ +

Specify the context for the messages to be translated. +See Using contexts for solving ambiguities for details. +

+
+
-d textdomain
+
--domain=textdomain
+
+ +

Retrieve translated messages from textdomain. Usually a textdomain +corresponds to a package, a program, or a module of a program. +

+
+
-e
+
+

Enable expansion of some escape sequences. This option is for compatibility +with the ‘echo’ program or shell built-in. The escape sequences +‘\a’, ‘\b’, ‘\c’, ‘\f’, ‘\n’, ‘\r’, ‘\t’, +‘\v’, ‘\\’, and ‘\’ followed by one to three octal digits, are +interpreted like the System V ‘echo’ program did. +

+
+
-E
+
+

This option is only for compatibility with the ‘echo’ program or shell +built-in. It has no effect. +

+
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-n
+
+

This option has only an effect if the -s option is given. It +suppresses the additional newline at the end. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
[textdomain] msgid
+

Retrieve translated message corresponding to msgid from textdomain. +

+
+
+ +

If the textdomain parameter is not given, the domain is determined from +the environment variable TEXTDOMAIN. If the message catalog is not +found in the regular directory, another location can be specified with the +environment variable TEXTDOMAINDIR. +

+

When used with the -s option the program behaves like the ‘echo’ +command. But it does not simply copy its arguments to stdout. Instead those +messages found in the selected catalog are translated. Also, a newline is +added at the end, unless either the option -n is specified or the +option -e is specified and some of the argument strings contains a +‘\c’ escape sequence. +

+

Note: xgettext supports only the one-argument form of the +gettext invocation, where no options are present and the +textdomain is implicit, from the environment. +

+ + + +

15.5.12.4 Invoking the ngettext program

+ + +
 
ngettext [option] [textdomain] msgid msgid-plural count
+
+ + +

The ngettext program displays the native language translation of a +textual message whose grammatical form depends on a number. +

+

Arguments +

+
+
-c context
+
--context=context
+
+ +

Specify the context for the messages to be translated. +See Using contexts for solving ambiguities for details. +

+
+
-d textdomain
+
--domain=textdomain
+
+ +

Retrieve translated messages from textdomain. Usually a textdomain +corresponds to a package, a program, or a module of a program. +

+
+
-e
+
+

Enable expansion of some escape sequences. This option is for compatibility +with the ‘gettext’ program. The escape sequences +‘\a’, ‘\b’, ‘\f’, ‘\n’, ‘\r’, ‘\t’, +‘\v’, ‘\\’, and ‘\’ followed by one to three octal digits, are +interpreted like the System V ‘echo’ program did. +

+
+
-E
+
+

This option is only for compatibility with the ‘gettext’ program. It has +no effect. +

+
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
textdomain
+

Retrieve translated message from textdomain. +

+
+
msgid msgid-plural
+

Translate msgid (English singular) / msgid-plural (English plural). +

+
+
count
+

Choose singular/plural form based on this value. +

+
+
+ +

If the textdomain parameter is not given, the domain is determined from +the environment variable TEXTDOMAIN. If the message catalog is not +found in the regular directory, another location can be specified with the +environment variable TEXTDOMAINDIR. +

+

Note: xgettext supports only the three-arguments form of the +ngettext invocation, where no options are present and the +textdomain is implicit, from the environment. +

+ + + +

15.5.12.5 Invoking the envsubst program

+ + +
 
envsubst [option] [shell-format]
+
+ + + + +

The envsubst program substitutes the values of environment variables. +

+

Operation mode +

+
+
-v
+
--variables
+
+ +

Output the variables occurring in shell-format. +

+
+
+ +

Informative output +

+
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
+ +

In normal operation mode, standard input is copied to standard output, +with references to environment variables of the form $VARIABLE or +${VARIABLE} being replaced with the corresponding values. If a +shell-format is given, only those environment variables that are +referenced in shell-format are substituted; otherwise all environment +variables references occurring in standard input are substituted. +

+

These substitutions are a subset of the substitutions that a shell performs +on unquoted and double-quoted strings. Other kinds of substitutions done +by a shell, such as ${variable-default} or +$(command-list) or `command-list`, are not performed +by the envsubst program, due to security reasons. +

+

When --variables is used, standard input is ignored, and the output +consists of the environment variables that are referenced in +shell-format, one per line. +

+ + + +

15.5.12.6 Invoking the eval_gettext function

+ +
 
eval_gettext msgid
+
+ + +

This function outputs the native language translation of a textual message, +performing dollar-substitution on the result. Note that only shell variables +mentioned in msgid will be dollar-substituted in the result. +

+ + + +

15.5.12.7 Invoking the eval_ngettext function

+ +
 
eval_ngettext msgid msgid-plural count
+
+ + +

This function outputs the native language translation of a textual message +whose grammatical form depends on a number, performing dollar-substitution +on the result. Note that only shell variables mentioned in msgid or +msgid-plural will be dollar-substituted in the result. +

+ + + +

15.5.12.8 Invoking the eval_pgettext function

+ +
 
eval_pgettext msgctxt msgid
+
+ + +

This function outputs the native language translation of a textual message +in the given context msgctxt (see Using contexts for solving ambiguities), performing +dollar-substitution on the result. Note that only shell variables mentioned +in msgid will be dollar-substituted in the result. +

+ + + +

15.5.12.9 Invoking the eval_npgettext function

+ +
 
eval_npgettext msgctxt msgid msgid-plural count
+
+ + +

This function outputs the native language translation of a textual message +whose grammatical form depends on a number in the given context msgctxt +(see Using contexts for solving ambiguities), performing dollar-substitution on the result. Note +that only shell variables mentioned in msgid or msgid-plural +will be dollar-substituted in the result. +

+ + + +

15.5.13 bash - Bourne-Again Shell Script

+ +

GNU bash 2.0 or newer has a special shorthand for translating a +string and substituting variable values in it: $"msgid". But +the use of this construct is discouraged, due to the security +holes it opens and due to its portability problems. +

+

The security holes of $"..." come from the fact that after looking up +the translation of the string, bash processes it like it processes +any double-quoted string: dollar and backquote processing, like ‘eval’ +does. +

+
    +
  1. +In a locale whose encoding is one of BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, +JOHAB, some double-byte characters have a second byte whose value is +0x60. For example, the byte sequence \xe0\x60 is a single +character in these locales. Many versions of bash (all versions +up to bash-2.05, and newer versions on platforms without mbsrtowcs() +function) don't know about character boundaries and see a backquote character +where there is only a particular Chinese character. Thus it can start +executing part of the translation as a command list. This situation can occur +even without the translator being aware of it: if the translator provides +translations in the UTF-8 encoding, it is the gettext() function which +will, during its conversion from the translator's encoding to the user's +locale's encoding, produce the dangerous \x60 bytes. + +
  2. +A translator could - voluntarily or inadvertently - use backquotes +"`...`" or dollar-parentheses "$(...)" in her translations. +The enclosed strings would be executed as command lists by the shell. +
+ +

The portability problem is that bash must be built with +internationalization support; this is normally not the case on systems +that don't have the gettext() function in libc. +

+ + + +

15.5.14 GNU awk

+ +
+
RPMs
+

gawk 3.1 or newer +

+
+
Ubuntu packages
+

gawk +

+
+
File extension
+

awk, gawk, twjr. +The file extension twjr is used by TexiWeb Jr +(https://github.com/arnoldrobbins/texiwebjr). +

+
+
String syntax
+

"abc" +

+
+
gettext shorthand
+

_"abc" +

+
+
gettext/ngettext functions
+

dcgettext, missing dcngettext in gawk-3.1.0 +

+
+
textdomain
+

TEXTDOMAIN variable +

+
+
bindtextdomain
+

bindtextdomain function +

+
+
setlocale
+

automatic, but missing setlocale (LC_MESSAGES, "") in gawk-3.1.0 +

+
+
Prerequisite
+

— +

+
+
Use or emulate GNU gettext
+

use +

+
+
Extractor
+

xgettext +

+
+
Formatting with positions
+

printf "%2$d %1$d" (GNU awk only) +

+
+
Portability
+

On platforms without gettext, no translation. On non-GNU awks, you must +define dcgettext, dcngettext and bindtextdomain +yourself. +

+
+
po-mode marking
+

— +

+
+ +

An example is available in the ‘examples’ directory: hello-gawk. +

+ + + +

15.5.15 Lua

+ +
+
RPMs
+

lua +

+
+
Ubuntu packages
+

lua, lua-gettext +
+You need to install the lua-gettext package from +https://gitlab.com/sukhichev/lua-gettext/blob/master/README.us.md. +Debian and Ubuntu packages of it are available. Download the +appropriate one, and install it through +‘sudo dpkg -i lua-gettext_0.0_amd64.deb’. +

+
+
File extension
+

lua +

+
+
String syntax
+
    +
  • "abc" + +
  • 'abc' + +
  • [[abc]] + +
  • [=[abc]=] + +
  • [==[abc]==] + +
  • ... + +
+ +
+
gettext shorthand
+

_("abc") +

+
+
gettext/ngettext functions
+

gettext.gettext, gettext.dgettext, gettext.dcgettext, +gettext.ngettext, gettext.dngettext, gettext.dcngettext +

+
+
textdomain
+

textdomain function +

+
+
bindtextdomain
+

bindtextdomain function +

+
+
setlocale
+

automatic +

+
+
Prerequisite
+

require 'gettext' or running lua interpreter with -l gettext option +

+
+
Use or emulate GNU gettext
+

use +

+
+
Extractor
+

xgettext +

+
+
Formatting with positions
+

— +

+
+
Portability
+

On platforms without gettext, the functions are not available. +

+
+
po-mode marking
+

— +

+
+ + + + +

15.5.16 Pascal - Free Pascal Compiler

+ +
+
RPMs
+

fpk +

+
+
Ubuntu packages
+

fp-compiler, fp-units-fcl +

+
+
File extension
+

pp, pas +

+
+
String syntax
+

'abc' +

+
+
gettext shorthand
+

automatic +

+
+
gettext/ngettext functions
+

—, use ResourceString data type instead +

+
+
textdomain
+

—, use TranslateResourceStrings function instead +

+
+
bindtextdomain
+

—, use TranslateResourceStrings function instead +

+
+
setlocale
+

automatic, but uses only LANG, not LC_MESSAGES or LC_ALL +

+
+
Prerequisite
+

{$mode delphi} or {$mode objfpc}
uses gettext; +

+
+
Use or emulate GNU gettext
+

emulate partially +

+
+
Extractor
+

ppc386 followed by xgettext or rstconv +

+
+
Formatting with positions
+

uses sysutils;
format "%1:d %0:d" +

+
+
Portability
+

? +

+
+
po-mode marking
+

— +

+
+ +

The Pascal compiler has special support for the ResourceString data +type. It generates a .rst file. This is then converted to a +.pot file by use of xgettext or rstconv. At runtime, +a .mo file corresponding to translations of this .pot file +can be loaded using the TranslateResourceStrings function in the +gettext unit. +

+

An example is available in the ‘examples’ directory: hello-pascal. +

+ + + +

15.5.17 GNU Smalltalk

+ +
+
RPMs
+

smalltalk +

+
+
Ubuntu packages
+

gnu-smalltalk +

+
+
File extension
+

st +

+
+
String syntax
+

'abc' +

+
+
gettext shorthand
+

NLS ? 'abc' +

+
+
gettext/ngettext functions
+

LcMessagesDomain>>#at:, LcMessagesDomain>>#at:plural:with: +

+
+
textdomain
+

LcMessages>>#domain:localeDirectory: (returns a LcMessagesDomain +object).
+Example: I18N Locale default messages domain: 'gettext' localeDirectory: /usr/local/share/locale' +

+
+
bindtextdomain
+

LcMessages>>#domain:localeDirectory:, see above. +

+
+
setlocale
+

Automatic if you use I18N Locale default. +

+
+
Prerequisite
+

PackageLoader fileInPackage: 'I18N'! +

+
+
Use or emulate GNU gettext
+

emulate +

+
+
Extractor
+

xgettext +

+
+
Formatting with positions
+

'%1 %2' bindWith: 'Hello' with: 'world' +

+
+
Portability
+

fully portable +

+
+
po-mode marking
+

— +

+
+ +

An example is available in the ‘examples’ directory: +hello-smalltalk. +

+ + + +

15.5.18 Vala

+ +
+
RPMs
+

vala +

+
+
Ubuntu packages
+

valac +

+
+
File extension
+

vala +

+
+
String syntax
+
    +
  • "abc" + +
  • """abc""" + +
+ +
+
gettext shorthand
+

_("abc") +

+
+
gettext/ngettext functions
+

gettext, dgettext, dcgettext, ngettext, +dngettext, dpgettext, dpgettext2 +

+
+
textdomain
+

textdomain function, defined under the Intl namespace +

+
+
bindtextdomain
+

bindtextdomain function, defined under the Intl namespace +

+
+
setlocale
+

Programmer must call Intl.setlocale (LocaleCategory.ALL, "") +

+
+
Prerequisite
+

— +

+
+
Use or emulate GNU gettext
+

Use +

+
+
Extractor
+

xgettext +

+
+
Formatting with positions
+

Same as for the C language. +

+
+
Portability
+

autoconf (gettext.m4) and #if ENABLE_NLS +

+
+
po-mode marking
+

yes +

+
+ + + + +

15.5.19 wxWidgets library

+ +
+
RPMs
+

wxGTK, gettext +

+
+
Ubuntu packages
+

libwxgtk3.0-dev +

+
+
File extension
+

cpp +

+
+
String syntax
+

"abc" +

+
+
gettext shorthand
+

_("abc") +

+
+
gettext/ngettext functions
+

wxLocale::GetString, wxGetTranslation +

+
+
textdomain
+

wxLocale::AddCatalog +

+
+
bindtextdomain
+

wxLocale::AddCatalogLookupPathPrefix +

+
+
setlocale
+

wxLocale::Init, wxSetLocale +

+
+
Prerequisite
+

#include <wx/intl.h> +

+
+
Use or emulate GNU gettext
+

emulate, see include/wx/intl.h and src/common/intl.cpp +

+
+
Extractor
+

xgettext +

+
+
Formatting with positions
+

wxString::Format supports positions if and only if the system has +wprintf(), vswprintf() functions and they support positions +according to POSIX. +

+
+
Portability
+

fully portable +

+
+
po-mode marking
+

yes +

+
+ + + + +

15.5.20 Tcl - Tk's scripting language

+ +
+
RPMs
+

tcl +

+
+
Ubuntu packages
+

tcl +

+
+
File extension
+

tcl +

+
+
String syntax
+

"abc" +

+
+
gettext shorthand
+

[_ "abc"] +

+
+
gettext/ngettext functions
+

::msgcat::mc +

+
+
textdomain
+

— +

+
+
bindtextdomain
+

—, use ::msgcat::mcload instead +

+
+
setlocale
+

automatic, uses LANG, but ignores LC_MESSAGES and LC_ALL +

+
+
Prerequisite
+

package require msgcat +
proc _ {s} {return [::msgcat::mc $s]} +

+
+
Use or emulate GNU gettext
+

—, uses a Tcl specific message catalog format +

+
+
Extractor
+

xgettext -k_ +

+
+
Formatting with positions
+

format "%2\$d %1\$d" +

+
+
Portability
+

fully portable +

+
+
po-mode marking
+

— +

+
+ +

Two examples are available in the ‘examples’ directory: +hello-tcl, hello-tcl-tk. +

+

Before marking strings as internationalizable, substitutions of variables +into the string need to be converted to format applications. For +example, "file $filename not found" becomes +[format "file %s not found" $filename]. +Only after this is done, can the strings be marked and extracted. +After marking, this example becomes +[format [_ "file %s not found"] $filename] or +[msgcat::mc "file %s not found" $filename]. Note that the +msgcat::mc function implicitly calls format when more than one +argument is given. +

+ + + +

15.5.21 Perl

+ +
+
RPMs
+

perl +

+
+
Ubuntu packages
+

perl, libintl-perl +

+
+
File extension
+

pl, PL, pm, perl, cgi +

+
+
String syntax
+
    +
  • "abc" + +
  • 'abc' + +
  • qq (abc) + +
  • q (abc) + +
  • qr /abc/ + +
  • qx (/bin/date) + +
  • /pattern match/ + +
  • ?pattern match? + +
  • s/substitution/operators/ + +
  • $tied_hash{"message"} + +
  • $tied_hash_reference->{"message"} + +
  • etc., issue the command ‘man perlsyn’ for details + +
+ +
+
gettext shorthand
+

__ (double underscore) +

+
+
gettext/ngettext functions
+

gettext, dgettext, dcgettext, ngettext, +dngettext, dcngettext, pgettext, dpgettext, +dcpgettext, npgettext, dnpgettext, +dcnpgettext +

+
+
textdomain
+

textdomain function +

+
+
bindtextdomain
+

bindtextdomain function +

+
+
bind_textdomain_codeset
+

bind_textdomain_codeset function +

+
+
setlocale
+

Use setlocale (LC_ALL, ""); +

+
+
Prerequisite
+

use POSIX; +
use Locale::TextDomain; (included in the package libintl-perl +which is available on the Comprehensive Perl Archive Network CPAN, +https://www.cpan.org/). +

+
+
Use or emulate GNU gettext
+

platform dependent: gettext_pp emulates, gettext_xs uses GNU gettext +

+
+
Extractor
+

xgettext -k__ -k\$__ -k%__ -k__x -k__n:1,2 -k__nx:1,2 -k__xn:1,2 +-kN__ -kN__n:1,2 -k__p:1c,2 -k__np:1c,2,3 -kN__p:1c,2 -kN__np:1c,2,3 +

+
+
Formatting with positions
+

Both kinds of format strings support formatting with positions. +
printf "%2\$d %1\$d", ... (requires Perl 5.8.0 or newer) +
__expand("[new] replaces [old]", old => $oldvalue, new => $newvalue) +

+
+
Portability
+

The libintl-perl package is platform independent but is not +part of the Perl core. The programmer is responsible for +providing a dummy implementation of the required functions if the +package is not installed on the target system. +

+
+
po-mode marking
+

— +

+
+
Documentation
+

Included in libintl-perl, available on CPAN +(https://www.cpan.org/). +

+
+
+ +

An example is available in the ‘examples’ directory: hello-perl. +

+ + +

The xgettext parser backend for Perl differs significantly from +the parser backends for other programming languages, just as Perl +itself differs significantly from other programming languages. The +Perl parser backend offers many more string marking facilities than +the other backends but it also has some Perl specific limitations, the +worst probably being its imperfectness. +

+ + + + +

15.5.21.1 General Problems Parsing Perl Code

+ +

It is often heard that only Perl can parse Perl. This is not true. +Perl cannot be parsed at all, it can only be executed. +Perl has various built-in ambiguities that can only be resolved at runtime. +

+

The following example may illustrate one common problem: +

+
 
print gettext "Hello World!";
+
+ +

Although this example looks like a bullet-proof case of a function +invocation, it is not: +

+
 
open gettext, ">testfile" or die;
+print gettext "Hello world!"
+
+ +

In this context, the string gettext looks more like a +file handle. But not necessarily: +

+
 
use Locale::Messages qw (:libintl_h);
+open gettext ">testfile" or die;
+print gettext "Hello world!";
+
+ +

Now, the file is probably syntactically incorrect, provided that the module +Locale::Messages found first in the Perl include path exports a +function gettext. But what if the module +Locale::Messages really looks like this? +

+
 
use vars qw (*gettext);
+
+1;
+
+ +

In this case, the string gettext will be interpreted as a file +handle again, and the above example will create a file ‘testfile’ +and write the string “Hello world!” into it. Even advanced +control flow analysis will not really help: +

+
 
if (0.5 < rand) {
+   eval "use Sane";
+} else {
+   eval "use InSane";
+}
+print gettext "Hello world!";
+
+ +

If the module Sane exports a function gettext that does +what we expect, and the module InSane opens a file for writing +and associates the handle gettext with this output +stream, we are clueless again about what will happen at runtime. It is +completely unpredictable. The truth is that Perl has so many ways to +fill its symbol table at runtime that it is impossible to interpret a +particular piece of code without executing it. +

+

Of course, xgettext will not execute your Perl sources while +scanning for translatable strings, but rather use heuristics in order +to guess what you meant. +

+

Another problem is the ambiguity of the slash and the question mark. +Their interpretation depends on the context: +

+
 
# A pattern match.
+print "OK\n" if /foobar/;
+
+# A division.
+print 1 / 2;
+
+# Another pattern match.
+print "OK\n" if ?foobar?;
+
+# Conditional.
+print $x ? "foo" : "bar";
+
+ +

The slash may either act as the division operator or introduce a +pattern match, whereas the question mark may act as the ternary +conditional operator or as a pattern match, too. Other programming +languages like awk present similar problems, but the consequences of a +misinterpretation are particularly nasty with Perl sources. In awk +for instance, a statement can never exceed one line and the parser +can recover from a parsing error at the next newline and interpret +the rest of the input stream correctly. Perl is different, as a +pattern match is terminated by the next appearance of the delimiter +(the slash or the question mark) in the input stream, regardless of +the semantic context. If a slash is really a division sign but +mis-interpreted as a pattern match, the rest of the input file is most +probably parsed incorrectly. +

+

There are certain cases, where the ambiguity cannot be resolved at all: +

+
 
$x = wantarray ? 1 : 0;
+
+ +

The Perl built-in function wantarray does not accept any arguments. +The Perl parser therefore knows that the question mark does not start +a regular expression but is the ternary conditional operator. +

+
 
sub wantarrays {}
+$x = wantarrays ? 1 : 0;
+
+ +

Now the situation is different. The function wantarrays takes +a variable number of arguments (like any non-prototyped Perl function). +The question mark is now the delimiter of a pattern match, and hence +the piece of code does not compile. +

+
 
sub wantarrays() {}
+$x = wantarrays ? 1 : 0;
+
+ +

Now the function is prototyped, Perl knows that it does not accept any +arguments, and the question mark is therefore interpreted as the +ternaray operator again. But that unfortunately outsmarts xgettext. +

+

The Perl parser in xgettext cannot know whether a function has +a prototype and what that prototype would look like. It therefore makes +an educated guess. If a function is known to be a Perl built-in and +this function does not accept any arguments, a following question mark +or slash is treated as an operator, otherwise as the delimiter of a +following regular expression. The Perl built-ins that do not accept +arguments are wantarray, fork, time, times, +getlogin, getppid, getpwent, getgrent, +gethostent, getnetent, getprotoent, getservent, +setpwent, setgrent, endpwent, endgrent, +endhostent, endnetent, endprotoent, and +endservent. +

+

If you find that xgettext fails to extract strings from +portions of your sources, you should therefore look out for slashes +and/or question marks preceding these sections. You may have come +across a bug in xgettext's Perl parser (and of course you +should report that bug). In the meantime you should consider to +reformulate your code in a manner less challenging to xgettext. +

+

In particular, if the parser is too dumb to see that a function +does not accept arguments, use parentheses: +

+
 
$x = somefunc() ? 1 : 0;
+$y = (somefunc) ? 1 : 0;
+
+ +

In fact the Perl parser itself has similar problems and warns you +about such constructs. +

+ + + +

15.5.21.2 Which keywords will xgettext look for?

+ +

Unless you instruct xgettext otherwise by invoking it with one +of the options --keyword or -k, it will recognize the +following keywords in your Perl sources: +

+
    +
  • gettext + +
  • dgettext:2 + +

    The second argument will be extracted. +

    +
  • dcgettext:2 + +

    The second argument will be extracted. +

    +
  • ngettext:1,2 + +

    The first (singular) and the second (plural) argument will be +extracted. +

    +
  • dngettext:2,3 + +

    The second (singular) and the third (plural) argument will be +extracted. +

    +
  • dcngettext:2,3 + +

    The second (singular) and the third (plural) argument will be +extracted. +

    +
  • pgettext:1c,2 + +

    The first (message context) and the second argument will be extracted. +

    +
  • dpgettext:2c,3 + +

    The second (message context) and the third argument will be extracted. +

    +
  • dcpgettext:2c,3 + +

    The second (message context) and the third argument will be extracted. +

    +
  • npgettext:1c,2,3 + +

    The first (message context), second (singular), and third (plural) +argument will be extracted. +

    +
  • dnpgettext:2c,3,4 + +

    The second (message context), third (singular), and fourth (plural) +argument will be extracted. +

    +
  • dcnpgettext:2c,3,4 + +

    The second (message context), third (singular), and fourth (plural) +argument will be extracted. +

    +
  • gettext_noop + +
  • %gettext + +

    The keys of lookups into the hash %gettext will be extracted. +

    +
  • $gettext + +

    The keys of lookups into the hash reference $gettext will be extracted. +

    +
+ + + + +

15.5.21.3 How to Extract Hash Keys

+ +

Translating messages at runtime is normally performed by looking up the +original string in the translation database and returning the +translated version. The “natural” Perl implementation is a hash +lookup, and, of course, xgettext supports such practice. +

+
 
print __"Hello world!";
+print $__{"Hello world!"};
+print $__->{"Hello world!"};
+print $$__{"Hello world!"};
+
+ + +

The above four lines all do the same thing. The Perl module +Locale::TextDomain exports by default a hash %__ that +is tied to the function __(). It also exports a reference +$__ to %__. +

+

If an argument to the xgettext option --keyword, +resp. -k starts with a percent sign, the rest of the keyword is +interpreted as the name of a hash. If it starts with a dollar +sign, the rest of the keyword is interpreted as a reference to a +hash. +

+

Note that you can omit the quotation marks (single or double) around +the hash key (almost) whenever Perl itself allows it: +

+
 
print $gettext{Error};
+
+ +

The exact rule is: You can omit the surrounding quotes, when the hash +key is a valid C (!) identifier, i.e. when it starts with an +underscore or an ASCII letter and is followed by an arbitrary number +of underscores, ASCII letters or digits. Other Unicode characters +are not allowed, regardless of the use utf8 pragma. +

+ + + +

15.5.21.4 What are Strings And Quote-like Expressions?

+ +

Perl offers a plethora of different string constructs. Those that can +be used either as arguments to functions or inside braces for hash +lookups are generally supported by xgettext. +

+
    +
  • double-quoted strings +
    +
     
    print gettext "Hello World!";
    +
    + +
  • single-quoted strings +
    +
     
    print gettext 'Hello World!';
    +
    + +
  • the operator qq +
    +
     
    print gettext qq |Hello World!|;
    +print gettext qq <E-mail: <guido\@imperia.net>>;
    +
    + +

    The operator qq is fully supported. You can use arbitrary +delimiters, including the four bracketing delimiters (round, angle, +square, curly) that nest. +

    +
  • the operator q +
    +
     
    print gettext q |Hello World!|;
    +print gettext q <E-mail: <guido@imperia.net>>;
    +
    + +

    The operator q is fully supported. You can use arbitrary +delimiters, including the four bracketing delimiters (round, angle, +square, curly) that nest. +

    +
  • the operator qx +
    +
     
    print gettext qx ;LANGUAGE=C /bin/date;
    +print gettext qx [/usr/bin/ls | grep '^[A-Z]*'];
    +
    + +

    The operator qx is fully supported. You can use arbitrary +delimiters, including the four bracketing delimiters (round, angle, +square, curly) that nest. +

    +

    The example is actually a useless use of gettext. It will +invoke the gettext function on the output of the command +specified with the qx operator. The feature was included +in order to make the interface consistent (the parser will extract +all strings and quote-like expressions). +

    +
  • here documents +
    +
     
    print gettext <<'EOF';
    +program not found in $PATH
    +EOF
    +
    +print ngettext <<EOF, <<"EOF";
    +one file deleted
    +EOF
    +several files deleted
    +EOF
    +
    + +

    Here-documents are recognized. If the delimiter is enclosed in single +quotes, the string is not interpolated. If it is enclosed in double +quotes or has no quotes at all, the string is interpolated. +

    +

    Delimiters that start with a digit are not supported! +

    +
+ + + + +

15.5.21.5 Invalid Uses Of String Interpolation

+ +

Perl is capable of interpolating variables into strings. This offers +some nice features in localized programs but can also lead to +problems. +

+

A common error is a construct like the following: +

+
 
print gettext "This is the program $0!\n";
+
+ +

Perl will interpolate at runtime the value of the variable $0 +into the argument of the gettext() function. Hence, this +argument is not a string constant but a variable argument ($0 +is a global variable that holds the name of the Perl script being +executed). The interpolation is performed by Perl before the string +argument is passed to gettext() and will therefore depend on +the name of the script which can only be determined at runtime. +Consequently, it is almost impossible that a translation can be looked +up at runtime (except if, by accident, the interpolated string is found +in the message catalog). +

+

The xgettext program will therefore terminate parsing with a fatal +error if it encounters a variable inside of an extracted string. In +general, this will happen for all kinds of string interpolations that +cannot be safely performed at compile time. If you absolutely know +what you are doing, you can always circumvent this behavior: +

+
 
my $know_what_i_am_doing = "This is program $0!\n";
+print gettext $know_what_i_am_doing;
+
+ +

Since the parser only recognizes strings and quote-like expressions, +but not variables or other terms, the above construct will be +accepted. You will have to find another way, however, to let your +original string make it into your message catalog. +

+

If invoked with the option --extract-all, resp. -a, +variable interpolation will be accepted. Rationale: You will +generally use this option in order to prepare your sources for +internationalization. +

+

Please see the manual page ‘man perlop’ for details of strings and +quote-like expressions that are subject to interpolation and those +that are not. Safe interpolations (that will not lead to a fatal +error) are: +

+
    +
  • the escape sequences \t (tab, HT, TAB), \n +(newline, NL), \r (return, CR), \f (form feed, FF), +\b (backspace, BS), \a (alarm, bell, BEL), and \e +(escape, ESC). + +
  • octal chars, like \033 +
    +Note that octal escapes in the range of 400-777 are translated into a +UTF-8 representation, regardless of the presence of the use utf8 pragma. + +
  • hex chars, like \x1b + +
  • wide hex chars, like \x{263a} +
    +Note that this escape is translated into a UTF-8 representation, +regardless of the presence of the use utf8 pragma. + +
  • control chars, like \c[ (CTRL-[) + +
  • named Unicode chars, like \N{LATIN CAPITAL LETTER C WITH CEDILLA} +
    +Note that this escape is translated into a UTF-8 representation, +regardless of the presence of the use utf8 pragma. +
+ +

The following escapes are considered partially safe: +

+
    +
  • \l lowercase next char + +
  • \u uppercase next char + +
  • \L lowercase till \E + +
  • \U uppercase till \E + +
  • \E end case modification + +
  • \Q quote non-word characters till \E + +
+ +

These escapes are only considered safe if the string consists of +ASCII characters only. Translation of characters outside the range +defined by ASCII is locale-dependent and can actually only be performed +at runtime; xgettext doesn't do these locale-dependent translations +at extraction time. +

+

Except for the modifier \Q, these translations, albeit valid, +are generally useless and only obfuscate your sources. If a +translation can be safely performed at compile time you can just as +well write what you mean. +

+ + + +

15.5.21.6 Valid Uses Of String Interpolation

+ +

Perl is often used to generate sources for other programming languages +or arbitrary file formats. Web applications that output HTML code +make a prominent example for such usage. +

+

You will often come across situations where you want to intersperse +code written in the target (programming) language with translatable +messages, like in the following HTML example: +

+
 
print gettext <<EOF;
+<h1>My Homepage</h1>
+<script language="JavaScript"><!--
+for (i = 0; i < 100; ++i) {
+    alert ("Thank you so much for visiting my homepage!");
+}
+//--></script>
+EOF
+
+ +

The parser will extract the entire here document, and it will appear +entirely in the resulting PO file, including the JavaScript snippet +embedded in the HTML code. If you exaggerate with constructs like +the above, you will run the risk that the translators of your package +will look out for a less challenging project. You should consider an +alternative expression here: +

+
 
print <<EOF;
+<h1>$gettext{"My Homepage"}</h1>
+<script language="JavaScript"><!--
+for (i = 0; i < 100; ++i) {
+    alert ("$gettext{'Thank you so much for visiting my homepage!'}");
+}
+//--></script>
+EOF
+
+ +

Only the translatable portions of the code will be extracted here, and +the resulting PO file will begrudgingly improve in terms of readability. +

+

You can interpolate hash lookups in all strings or quote-like +expressions that are subject to interpolation (see the manual page +‘man perlop’ for details). Double interpolation is invalid, however: +

+
 
# TRANSLATORS: Replace "the earth" with the name of your planet.
+print gettext qq{Welcome to $gettext->{"the earth"}};
+
+ +

The qq-quoted string is recognized as an argument to xgettext in +the first place, and checked for invalid variable interpolation. The +dollar sign of hash-dereferencing will therefore terminate the parser +with an “invalid interpolation” error. +

+

It is valid to interpolate hash lookups in regular expressions: +

+
 
if ($var =~ /$gettext{"the earth"}/) {
+   print gettext "Match!\n";
+}
+s/$gettext{"U. S. A."}/$gettext{"U. S. A."} $gettext{"(dial +0)"}/g;
+
+ + + + +

15.5.21.7 When To Use Parentheses

+ +

In Perl, parentheses around function arguments are mostly optional. +xgettext will always assume that all +recognized keywords (except for hashes and hash references) are names +of properly prototyped functions, and will (hopefully) only require +parentheses where Perl itself requires them. All constructs in the +following example are therefore ok to use: +

+
 
print gettext ("Hello World!\n");
+print gettext "Hello World!\n";
+print dgettext ($package => "Hello World!\n");
+print dgettext $package, "Hello World!\n";
+
+# The "fat comma" => turns the left-hand side argument into a
+# single-quoted string!
+print dgettext smellovision => "Hello World!\n";
+
+# The following assignment only works with prototyped functions.
+# Otherwise, the functions will act as "greedy" list operators and
+# eat up all following arguments.
+my $anonymous_hash = {
+   planet => gettext "earth",
+   cakes => ngettext "one cake", "several cakes", $n,
+   still => $works,
+};
+# The same without fat comma:
+my $other_hash = {
+   'planet', gettext "earth",
+   'cakes', ngettext "one cake", "several cakes", $n,
+   'still', $works,
+};
+
+# Parentheses are only significant for the first argument.
+print dngettext 'package', ("one cake", "several cakes", $n), $discarded;
+
+ + + + +

15.5.21.8 How To Grok with Long Lines

+ +

The necessity of long messages can often lead to a cumbersome or +unreadable coding style. Perl has several options that may prevent +you from writing unreadable code, and +xgettext does its best to do likewise. This is where the dot +operator (the string concatenation operator) may come in handy: +

+
 
print gettext ("This is a very long"
+               . " message that is still"
+               . " readable, because"
+               . " it is split into"
+               . " multiple lines.\n");
+
+ +

Perl is smart enough to concatenate these constant string fragments +into one long string at compile time, and so is +xgettext. You will only find one long message in the resulting +POT file. +

+

Note that the future Perl 6 will probably use the underscore +(‘_’) as the string concatenation operator, and the dot +(‘.’) for dereferencing. This new syntax is not yet supported by +xgettext. +

+

If embedded newline characters are not an issue, or even desired, you +may also insert newline characters inside quoted strings wherever you +feel like it: +

+
 
print gettext ("<em>In HTML output
+embedded newlines are generally no
+problem, since adjacent whitespace
+is always rendered into a single
+space character.</em>");
+
+ +

You may also consider to use here documents: +

+
 
print gettext <<EOF;
+<em>In HTML output
+embedded newlines are generally no
+problem, since adjacent whitespace
+is always rendered into a single
+space character.</em>
+EOF
+
+ +

Please do not forget that the line breaks are real, i.e. they +translate into newline characters that will consequently show up in +the resulting POT file. +

+ + + +

15.5.21.9 Bugs, Pitfalls, And Things That Do Not Work

+ +

The foregoing sections should have proven that +xgettext is quite smart in extracting translatable strings from +Perl sources. Yet, some more or less exotic constructs that could be +expected to work, actually do not work. +

+

One of the more relevant limitations can be found in the +implementation of variable interpolation inside quoted strings. Only +simple hash lookups can be used there: +

+
 
print <<EOF;
+$gettext{"The dot operator"
+          . " does not work"
+          . "here!"}
+Likewise, you cannot @{[ gettext ("interpolate function calls") ]}
+inside quoted strings or quote-like expressions.
+EOF
+
+ +

This is valid Perl code and will actually trigger invocations of the +gettext function at runtime. Yet, the Perl parser in +xgettext will fail to recognize the strings. A less obvious +example can be found in the interpolation of regular expressions: +

+
 
s/<!--START_OF_WEEK-->/gettext ("Sunday")/e;
+
+ +

The modifier e will cause the substitution to be interpreted as +an evaluable statement. Consequently, at runtime the function +gettext() is called, but again, the parser fails to extract the +string “Sunday”. Use a temporary variable as a simple workaround if +you really happen to need this feature: +

+
 
my $sunday = gettext "Sunday";
+s/<!--START_OF_WEEK-->/$sunday/;
+
+ +

Hash slices would also be handy but are not recognized: +

+
 
my @weekdays = @gettext{'Sunday', 'Monday', 'Tuesday', 'Wednesday',
+                        'Thursday', 'Friday', 'Saturday'};
+# Or even:
+@weekdays = @gettext{qw (Sunday Monday Tuesday Wednesday Thursday
+                         Friday Saturday) };
+
+ +

This is perfectly valid usage of the tied hash %gettext but the +strings are not recognized and therefore will not be extracted. +

+

Another caveat of the current version is its rudimentary support for +non-ASCII characters in identifiers. You may encounter serious +problems if you use identifiers with characters outside the range of +'A'-'Z', 'a'-'z', '0'-'9' and the underscore '_'. +

+

Maybe some of these missing features will be implemented in future +versions, but since you can always make do without them at minimal effort, +these todos have very low priority. +

+

A nasty problem are brace format strings that already contain braces +as part of the normal text, for example the usage strings typically +encountered in programs: +

+
 
die "usage: $0 {OPTIONS} FILENAME...\n";
+
+ +

If you want to internationalize this code with Perl brace format strings, +you will run into a problem: +

+
 
die __x ("usage: {program} {OPTIONS} FILENAME...\n", program => $0);
+
+ +

Whereas ‘{program}’ is a placeholder, ‘{OPTIONS}’ +is not and should probably be translated. Yet, there is no way to teach +the Perl parser in xgettext to recognize the first one, and leave +the other one alone. +

+

There are two possible work-arounds for this problem. If you are +sure that your program will run under Perl 5.8.0 or newer (these +Perl versions handle positional parameters in printf()) or +if you are sure that the translator will not have to reorder the arguments +in her translation – for example if you have only one brace placeholder +in your string, or if it describes a syntax, like in this one –, you can +mark the string as no-perl-brace-format and use printf(): +

+
 
# xgettext: no-perl-brace-format
+die sprintf ("usage: %s {OPTIONS} FILENAME...\n", $0);
+
+ +

If you want to use the more portable Perl brace format, you will have to do +put placeholders in place of the literal braces: +

+
 
die __x ("usage: {program} {[}OPTIONS{]} FILENAME...\n",
+         program => $0, '[' => '{', ']' => '}');
+
+ +

Perl brace format strings know no escaping mechanism. No matter how this +escaping mechanism looked like, it would either give the programmer a +hard time, make translating Perl brace format strings heavy-going, or +result in a performance penalty at runtime, when the format directives +get executed. Most of the time you will happily get along with +printf() for this special case. +

+ + + +

15.5.22 PHP Hypertext Preprocessor

+ +
+
RPMs
+

mod_php4, mod_php4-core, phpdoc +

+
+
Ubuntu packages
+

php +

+
+
File extension
+

php, php3, php4 +

+
+
String syntax
+

"abc", 'abc' +

+
+
gettext shorthand
+

_("abc") +

+
+
gettext/ngettext functions
+

gettext, dgettext, dcgettext; starting with PHP 4.2.0 +also ngettext, dngettext, dcngettext +

+
+
textdomain
+

textdomain function +

+
+
bindtextdomain
+

bindtextdomain function +

+
+
setlocale
+

Programmer must call setlocale (LC_ALL, "") +

+
+
Prerequisite
+

— +

+
+
Use or emulate GNU gettext
+

use +

+
+
Extractor
+

xgettext +

+
+
Formatting with positions
+

printf "%2\$d %1\$d" +

+
+
Portability
+

On platforms without gettext, the functions are not available. +

+
+
po-mode marking
+

— +

+
+ +

An example is available in the ‘examples’ directory: hello-php. +

+ + + +

15.5.23 Pike

+ +
+
RPMs
+

roxen +

+
+
Ubuntu packages
+

pike8.0 or pike7.8 +

+
+
File extension
+

pike +

+
+
String syntax
+

"abc" +

+
+
gettext shorthand
+

— +

+
+
gettext/ngettext functions
+

gettext, dgettext, dcgettext +

+
+
textdomain
+

textdomain function +

+
+
bindtextdomain
+

bindtextdomain function +

+
+
setlocale
+

setlocale function +

+
+
Prerequisite
+

import Locale.Gettext; +

+
+
Use or emulate GNU gettext
+

use +

+
+
Extractor
+

— +

+
+
Formatting with positions
+

— +

+
+
Portability
+

On platforms without gettext, the functions are not available. +

+
+
po-mode marking
+

— +

+
+ + + + +

15.5.24 GNU Compiler Collection sources

+ +
+
RPMs
+

gcc +

+
+
Ubuntu packages
+

gcc +

+
+
File extension
+

c, h. +

+
+
String syntax
+

"abc" +

+
+
gettext shorthand
+

_("abc") +

+
+
gettext/ngettext functions
+

gettext, dgettext, dcgettext, ngettext, +dngettext, dcngettext +

+
+
textdomain
+

textdomain function +

+
+
bindtextdomain
+

bindtextdomain function +

+
+
setlocale
+

Programmer must call setlocale (LC_ALL, "") +

+
+
Prerequisite
+

#include "intl.h" +

+
+
Use or emulate GNU gettext
+

Use +

+
+
Extractor
+

xgettext -k_ +

+
+
Formatting with positions
+

— +

+
+
Portability
+

Uses autoconf macros +

+
+
po-mode marking
+

yes +

+
+ + + + +

15.5.25 YCP - YaST2 scripting language

+ +
+
RPMs
+

libycp, libycp-devel, yast2-core, yast2-core-devel +

+
+
Ubuntu packages
+

— +

+
+
File extension
+

ycp +

+
+
String syntax
+

"abc" +

+
+
gettext shorthand
+

_("abc") +

+
+
gettext/ngettext functions
+

_() with 1 or 3 arguments +

+
+
textdomain
+

textdomain statement +

+
+
bindtextdomain
+

— +

+
+
setlocale
+

— +

+
+
Prerequisite
+

— +

+
+
Use or emulate GNU gettext
+

use +

+
+
Extractor
+

xgettext +

+
+
Formatting with positions
+

sformat "%2 %1" +

+
+
Portability
+

fully portable +

+
+
po-mode marking
+

— +

+
+ +

An example is available in the ‘examples’ directory: hello-ycp. +

+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_16.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_16.html new file mode 100644 index 000000000..774e4d758 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_16.html @@ -0,0 +1,599 @@ + + + + + +GNU gettext utilities: 16. Other Data Formats + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

16. Other Data Formats

+ +

While the GNU gettext tools deal mainly with POT and PO files, they can +also manipulate a couple of other data formats. +

+ + + + +

16.1 Internationalizable Data Formats

+ +

Here is a list of other data formats which can be internationalized +using GNU gettext. +

+ + + + +

16.1.1 POT - Portable Object Template

+ +
+
RPMs
+

gettext +

+
+
Ubuntu packages
+

gettext +

+
+
File extension
+

pot, po +

+
+
Extractor
+

xgettext +

+
+ + + + +

16.1.2 Resource String Table

+ +

RST is the format of resource string table files of the Free Pascal compiler +versions older than 3.0.0. RSJ is the new format of resource string table +files, created by the Free Pascal compiler version 3.0.0 or newer. +

+
+
RPMs
+

fpk +

+
+
Ubuntu packages
+

fp-compiler +

+
+
File extension
+

rst, rsj +

+
+
Extractor
+

xgettext, rstconv +

+
+ + + + +

16.1.3 Glade - GNOME user interface description

+ +
+
RPMs
+

glade, libglade, glade2, libglade2, intltool +

+
+
Ubuntu packages
+

glade, libglade2-dev, intltool +

+
+
File extension
+

glade, glade2, ui +

+
+
Extractor
+

xgettext, libglade-xgettext, xml-i18n-extract, intltool-extract +

+
+ + + + +

16.1.4 GSettings - GNOME user configuration schema

+ +
+
RPMs
+

glib2 +

+
+
Ubuntu packages
+

libglib2.0-dev +

+
+
File extension
+

gschema.xml +

+
+
Extractor
+

xgettext, intltool-extract +

+
+ + + + +

16.1.5 AppData - freedesktop.org application description

+ +

This file format is specified in +https://www.freedesktop.org/software/appstream/docs/. +

+
+
RPMs
+

appdata-tools, appstream, libappstream-glib, libappstream-glib-builder +

+
+
Ubuntu packages
+

appdata-tools, appstream, libappstream-glib-dev +

+
+
File extension
+

appdata.xml, metainfo.xml +

+
+
Extractor
+

xgettext, intltool-extract, itstool +

+
+ + + + +

16.1.6 Preparing Rules for XML Internationalization

+ +

Marking translatable strings in an XML file is done through a separate +"rule" file, making use of the Internationalization Tag Set standard +(ITS, https://www.w3.org/TR/its20/). The currently supported ITS +data categories are: ‘Translate’, ‘Localization Note’, +‘Elements Within Text’, and ‘Preserve Space’. In addition to +them, xgettext also recognizes the following extended data +categories: +

+
+
Context
+
+

This data category associates msgctxt to the extracted text. In +the global rule, the contextRule element contains the following: +

+
    +
  • +A required selector attribute. It contains an absolute selector +that selects the nodes to which this rule applies. + +
  • +A required contextPointer attribute that contains a relative +selector pointing to a node that holds the msgctxt value. + +
  • +An optional textPointer attribute that contains a relative +selector pointing to a node that holds the msgid value. +
+ +
+
Escape Special Characters
+
+

This data category indicates whether the special XML characters +(<, >, &, ") are escaped with entity +reference. In the global rule, the escapeRule element contains +the following: +

+
    +
  • +A required selector attribute. It contains an absolute selector +that selects the nodes to which this rule applies. + +
  • +A required escape attribute with the value yes or no. +
+ +
+
Extended Preserve Space
+
+

This data category extends the standard ‘Preserve Space’ data +category with the additional values ‘trim’ and ‘paragraph’. +‘trim’ means to remove the leading and trailing whitespaces of the +content, but not to normalize whitespaces in the middle. +‘paragraph’ means to normalize the content but keep the paragraph +boundaries. In the global +rule, the preserveSpaceRule element contains the following: +

+
    +
  • +A required selector attribute. It contains an absolute selector +that selects the nodes to which this rule applies. + +
  • +A required space attribute with the value default, +preserve, trim, or paragraph. +
+ +
+
+ +

All those extended data categories can only be expressed with global +rules, and the rule elements have to have the +https://www.gnu.org/s/gettext/ns/its/extensions/1.0 namespace. +

+

Given the following XML document in a file ‘messages.xml’: +

+
 
<?xml version="1.0"?>
+<messages>
+  <message>
+    <p>A translatable string</p>
+  </message>
+  <message>
+    <p translatable="no">A non-translatable string</p>
+  </message>
+</messages>
+
+ +

To extract the first text content ("A translatable string"), but not the +second ("A non-translatable string"), the following ITS rules can be used: +

+
 
<?xml version="1.0"?>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
+  <its:translateRule selector="/messages" translate="no"/>
+  <its:translateRule selector="//message/p" translate="yes"/>
+
+  <!-- If 'p' has an attribute 'translatable' with the value 'no', then
+       the content is not translatable.  -->
+  <its:translateRule selector="//message/p[@translatable = 'no']"
+    translate="no"/>
+</its:rules>
+
+ +

xgettext’ needs another file called "locating rule" to associate +an ITS rule with an XML file. If the above ITS file is saved as +‘messages.its’, the locating rule would look like: +

+
 
<?xml version="1.0"?>
+<locatingRules>
+  <locatingRule name="Messages" pattern="*.xml">
+    <documentRule localName="messages" target="messages.its"/>
+  </locatingRule>
+  <locatingRule name="Messages" pattern="*.msg" target="messages.its"/>
+</locatingRules>
+
+ +

The locatingRule element must have a pattern attribute, +which denotes either a literal file name or a wildcard pattern of the +XML file(7). The locatingRule element can have child +documentRule element, which adds checks on the content of the XML +file. +

+

The first rule matches any file with the ‘.xml’ file extension, but +it only applies to XML files whose root element is ‘<messages>’. +

+

The second rule indicates that the same ITS rule file are also +applicable to any file with the ‘.msg’ file extension. The +optional name attribute of locatingRule allows to choose +rules by name, typically with xgettext's -L option. +

+

The associated ITS rule file is indicated by the target attribute +of locatingRule or documentRule. If it is specified in a +documentRule element, the parent locatingRule shouldn't +have the target attribute. +

+

Locating rule files must have the ‘.loc’ file extension. Both ITS +rule files and locating rule files must be installed in the +‘$prefix/share/gettext/its’ directory. Once those files are +properly installed, xgettext can extract translatable strings +from the matching XML files. +

+ + +

16.1.6.1 Two Use-cases of Translated Strings in XML

+ +

For XML, there are two use-cases of translated strings. One is the case +where the translated strings are directly consumed by programs, and the +other is the case where the translated strings are merged back to the +original XML document. In the former case, special characters in the +extracted strings shouldn't be escaped, while they should in the latter +case. To control wheter to escape special characters, the ‘Escape +Special Characters’ data category can be used. +

+

To merge the translations, the ‘msgfmt’ program can be used with +the option --xml. See section Invoking the msgfmt Program, for more details +about how one calls the ‘msgfmt’ program. ‘msgfmt’'s +--xml option doesn't perform character escaping, so translated +strings can have arbitrary XML constructs, such as elements for markup. +

+ + + + +

16.2 Localized Data Formats

+ +

Here is a list of file formats that contain localized data and that the +GNU gettext tools can manipulate. +

+ + + + +

16.2.1 Editable Message Catalogs

+ +

These file formats can be used with all of the msg* tools and with +the xgettext program. +

+

If you just want to convert among these formats, you can use the +msgcat program (with the appropriate option) or the xgettext +program. +

+ + + + +

16.2.1.1 PO - Portable Object

+ +
+
File extension
+

po +

+
+ + + + +

16.2.1.2 Java .properties

+ +
+
File extension
+

properties +

+
+ + + + +

16.2.1.3 NeXTstep/GNUstep .strings

+ +
+
File extension
+

strings +

+
+ + + + +

16.2.2 Compiled Message Catalogs

+ +

These file formats can be created through msgfmt and converted back +to PO format through msgunfmt. +

+ + + + +

16.2.2.1 MO - Machine Object

+ +
+
File extension
+

mo +

+
+ +

See section The Format of GNU MO Files for details. +

+ + + +

16.2.2.2 Java ResourceBundle

+ +
+
File extension
+

class +

+
+ +

For more information, see the section Java and the examples +hello-java, hello-java-awt, hello-java-swing. +

+ + + +

16.2.2.3 C# Satellite Assembly

+ +
+
File extension
+

dll +

+
+ +

For more information, see the section C#. +

+ + + +

16.2.2.4 C# Resource

+ +
+
File extension
+

resources +

+
+ +

For more information, see the section C#. +

+ + + +

16.2.2.5 Tcl message catalog

+ +
+
File extension
+

msg +

+
+ +

For more information, see the section Tcl - Tk's scripting language and the examples +hello-tcl, hello-tcl-tk. +

+ + + +

16.2.2.6 Qt message catalog

+ +
+
File extension
+

qm +

+
+ +

For more information, see the examples hello-c++-qt and +hello-c++-kde. +

+ + + +

16.2.3 Desktop Entry files

+ +

The programmer produces a desktop entry file template with only the +English strings. These strings get included in the POT file, by way of +xgettext (usually by listing the template in po/POTFILES.in). +The translators produce PO files, one for each language. Finally, an +msgfmt --desktop invocation collects all the translations in the +desktop entry file. +

+

For more information, see the example hello-c-gnome3. +

+ + + + +

16.2.3.1 How to handle icons in Desktop Entry files

+ +

Icons are generally locale dependent, for the following reasons: +

+
    +
  • +Icons may contain signs that are considered rude in some cultures. For +example, the high-five sign, in some cultures, is perceived as an +unfriendly “stop” sign. +
  • +Icons may contain metaphors that are culture specific. For example, a +mailbox in the U.S. looks different than mailboxes all around the world. +
  • +Icons may need to be mirrored for right-to-left locales. +
  • +Icons may contain text strings (a bad practice, but anyway). +
+ +

However, icons are not covered by GNU gettext localization, because +

    +
  • +Icons cannot be easily embedded in PO files, +
  • +The need to localize an icon is rare, and the ability to do so in a PO +file would introduce translator mistakes. +
+ +

Desktop Entry files may contain an ‘Icon’ property, and this +property is localizable. If a translator wishes to localize an icon, +she should do so by bypassing the normal workflow with PO files: +

    +
  1. +The translator contacts the package developers directly, sending them +the icon appropriate for her locale, with a request to change the +template file. +
  2. +The package developers add the icon file to their repository, and a +line +
     
    Icon[locale]=icon_file_name
    +
    +

    to the template file. +

+

This line remains in place when this template file is merged with the +translators' PO files, through msgfmt. +

+ + + +

16.2.4 XML files

+ +

See the section Preparing Rules for XML Internationalization and +Invoking the msgfmt Program, subsection “XML mode operations”. +

+ + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_17.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_17.html new file mode 100644 index 000000000..f074cfd6e --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_17.html @@ -0,0 +1,1364 @@ + + + + + +GNU gettext utilities: 17. Concluding Remarks + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

17. Concluding Remarks

+ +

We would like to conclude this GNU gettext manual by presenting +an history of the Translation Project so far. We finally give +a few pointers for those who want to do further research or readings +about Native Language Support matters. +

+ + + + +

17.1 History of GNU gettext

+ +

Internationalization concerns and algorithms have been informally +and casually discussed for years in GNU, sometimes around GNU +libc, maybe around the incoming Hurd, or otherwise +(nobody clearly remembers). And even then, when the work started for +real, this was somewhat independently of these previous discussions. +

+

This all began in July 1994, when Patrick D'Cruze had the idea and +initiative of internationalizing version 3.9.2 of GNU fileutils. +He then asked Jim Meyering, the maintainer, how to get those changes +folded into an official release. That first draft was full of +#ifdefs and somewhat disconcerting, and Jim wanted to find +nicer ways. Patrick and Jim shared some tries and experimentations +in this area. Then, feeling that this might eventually have a deeper +impact on GNU, Jim wanted to know what standards were, and contacted +Richard Stallman, who very quickly and verbally described an overall +design for what was meant to become glocale, at that time. +

+

Jim implemented glocale and got a lot of exhausting feedback +from Patrick and Richard, of course, but also from Mitchum DSouza +(who wrote a catgets-like package), Roland McGrath, maybe David +MacKenzie, François Pinard, and Paul Eggert, all pushing and +pulling in various directions, not always compatible, to the extent +that after a couple of test releases, glocale was torn apart. +In particular, Paul Eggert – always keeping an eye on developments +in Solaris – advocated the use of the gettext API over +glocale's catgets-based API. +

+

While Jim took some distance and time and became dad for a second +time, Roland wanted to get GNU libc internationalized, and +got Ulrich Drepper involved in that project. Instead of starting +from glocale, Ulrich rewrote something from scratch, but +more conforming to the set of guidelines who emerged out of the +glocale effort. Then, Ulrich got people from the previous +forum to involve themselves into this new project, and the switch +from glocale to what was first named msgutils, renamed +nlsutils, and later gettext, became officially accepted +by Richard in May 1995 or so. +

+

Let's summarize by saying that Ulrich Drepper wrote GNU gettext +in April 1995. The first official release of the package, including +PO mode, occurred in July 1995, and was numbered 0.7. Other people +contributed to the effort by providing a discussion forum around +Ulrich, writing little pieces of code, or testing. These are quoted +in the THANKS file which comes with the GNU gettext +distribution. +

+

While this was being done, François adapted half a dozen of +GNU packages to glocale first, then later to gettext, +putting them in pretest, so providing along the way an effective +user environment for fine tuning the evolving tools. He also took +the responsibility of organizing and coordinating the Translation +Project. After nearly a year of informal exchanges between people from +many countries, translator teams started to exist in May 1995, through +the creation and support by Patrick D'Cruze of twenty unmoderated +mailing lists for that many native languages, and two moderated +lists: one for reaching all teams at once, the other for reaching +all willing maintainers of internationalized free software packages. +

+

François also wrote PO mode in June 1995 with the collaboration +of Greg McGary, as a kind of contribution to Ulrich's package. +He also gave a hand with the GNU gettext Texinfo manual. +

+

In 1997, Ulrich Drepper released the GNU libc 2.0, which included the +gettext, textdomain and bindtextdomain functions. +

+

In 2000, Ulrich Drepper added plural form handling (the ngettext +function) to GNU libc. Later, in 2001, he released GNU libc 2.2.x, +which is the first free C library with full internationalization support. +

+

Ulrich being quite busy in his role of General Maintainer of GNU libc, +he handed over the GNU gettext maintenance to Bruno Haible in +2000. Bruno added the plural form handling to the tools as well, added +support for UTF-8 and CJK locales, and wrote a few new tools for +manipulating PO files. +

+ + + + +

17.2 Notes on the Free Translation Project

+ +

This section contains the text that was, for a long time, distributed +as a file named ABOUT-NLS. +

+

NOTE: This documentation section is outdated. It it included +here for historical purposes only. +

+ +

Free software is going international! The Free Translation Project is +a way to get maintainers of free software, translators, and users all +together, so that free software will gradually become able to speak many +languages. A few packages already provide translations for their messages. +

+

If you found this ‘ABOUT-NLS’ file inside a distribution, you +may assume that the distributed package does use GNU gettext +internally, itself available at your nearest GNU archive site. But you +do not need to install GNU gettext prior to configuring, +installing or using this package with messages translated. +

+

Installers will find here some useful hints. These notes also explain +how users should proceed for getting the programs to use the available +translations. They tell how people wanting to contribute and work +on translations can contact the appropriate team. +

+ + + + + +

17.2.1 INSTALL Matters

+ +

Some packages are localizable when properly installed; the +programs they contain can be made to speak your own native language. +Most such packages use GNU gettext. Other packages have their +own ways to internationalization, predating GNU gettext. +

+

By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system already +provides the GNU gettext functions. Installers may use special +options at configuration time for changing the default behaviour. The +command: +

+
 
./configure --disable-nls
+
+ +

will totally disable translation of messages. +

+

When you already have GNU gettext installed on your system and +run configure without an option for your new package, configure +will probably detect the previously built and installed ‘libintl’ +library and will decide to use it. If not, you may have to to use the +‘--with-libintl-prefix’ option to tell configure where to +look for it. +

+

Internationalized packages usually have many ‘po/ll.po’ +files, where ll gives an ISO 639 two-letter code +identifying the language. Unless translations have been forbidden +at configure time by using the ‘--disable-nls’ switch, +all available translations are installed together with the package. +However, the environment variable LINGUAS may be set, prior +to configuration, to limit the installed set. LINGUAS should +then contain a space separated list of two-letter codes, stating +which languages are allowed. +

+ + + +

17.2.2 Using This Package

+ +

As a user, if your language has been installed for this package, you +only have to set the LANG environment variable to the appropriate +‘ll_CC’ combination. If you happen to have the LC_ALL +or some other LC_xxx environment variables set, you should unset them +before setting LANG, otherwise the setting of LANG will not +have the desired effect. Here ‘ll’ is an +ISO 639 two-letter language code, and ‘CC’ is an +ISO 3166 two-letter country code. For example, let's suppose that you +speak German and live in Germany. At the shell prompt, merely execute +‘setenv LANG de_DE’ (in csh), +‘export LANG; LANG=de_DE’ (in sh) or +‘export LANG=de_DE’ (in bash). This can be done from your +‘.login’ or ‘.profile’ file, once and for all. +

+

You might think that the country code specification is redundant. But in +fact, some languages have dialects in different countries. For example, +‘de_AT’ is used for Austria, and ‘pt_BR’ for Brazil. The country +code serves to distinguish the dialects. +

+

The locale naming convention of ‘ll_CC’, with +‘ll’ denoting the language and ‘CC’ denoting the +country, is the one use on systems based on GNU libc. On other systems, +some variations of this scheme are used, such as ‘ll’ or +‘ll_CC.encoding’. You can get the list of +locales supported by your system for your language by running the command +‘locale -a | grep '^ll'’. +

+

Not all programs have translations for all languages. By default, an +English message is shown in place of a nonexistent translation. If you +understand other languages, you can set up a priority list of languages. +This is done through a different environment variable, called +LANGUAGE. GNU gettext gives preference to LANGUAGE +over LANG for the purpose of message handling, but you still +need to have LANG set to the primary language; this is required +by other parts of the system libraries. +For example, some Swedish users who would rather read translations in +German than English for when Swedish is not available, set LANGUAGE +to ‘sv:de’ while leaving LANG to ‘sv_SE’. +

+

Special advice for Norwegian users: The language code for Norwegian +bokmål changed from ‘no’ to ‘nb’ recently (in 2003). +During the transition period, while some message catalogs for this language +are installed under ‘nb’ and some older ones under ‘no’, it's +recommended for Norwegian users to set LANGUAGE to ‘nb:no’ so that +both newer and older translations are used. +

+

In the LANGUAGE environment variable, but not in the LANG +environment variable, ‘ll_CC’ combinations can be +abbreviated as ‘ll’ to denote the language's main dialect. +For example, ‘de’ is equivalent to ‘de_DE’ (German as spoken in +Germany), and ‘pt’ to ‘pt_PT’ (Portuguese as spoken in Portugal) +in this context. +

+ + + + +

17.2.3 Translating Teams

+ +

For the Free Translation Project to be a success, we need interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +Each translation team has its own mailing list. The up-to-date list +of teams can be found at the Free Translation Project's homepage, +‘https://translationproject.org/’, in the "Teams" area. +

+

If you'd like to volunteer to work at translating messages, you +should become a member of the translating team for your own language. +The subscribing address is not the same as the list itself, it +has ‘-request’ appended. For example, speakers of Swedish can send +a message to ‘sv-request@li.org’, having this message body: +

+
 
subscribe
+
+ +

Keep in mind that team members are expected to participate +actively in translations, or at solving translational +difficulties, rather than merely lurking around. If your team does not +exist yet and you want to start one, or if you are unsure about what to +do or how to get started, please write to +‘coordinator@translationproject.org’ to reach the +coordinator for all translator teams. +

+

The English team is special. It works at improving and uniformizing +the terminology in use. Proven linguistic skills are praised +more than programming skills, here. +

+ + + +

17.2.4 Available Packages

+ +

Languages are not equally supported in all packages. The following +matrix shows the current state of internationalization, as of +June 2023. The matrix shows, in regard of each package, for which +languages PO files have been submitted to translation coordination, +with a translation percentage of at least 50%. +

+
 
Ready PO files       ab af an ar ast be bg bn bn_IN ca ckb crh cs da 
+                   +--------------------------------------------------+
+a2ps               |                                           []     |
+anubis             |                                              []  |
+aspell             |             []                 []         [] []  |
+bash               |                    []          []         []     |
+beebase            |                                                  |
+bfd                |                                                  |
+binutils           |                                                  |
+bison              |                    []                            |
+bison-runtime      |             []     []          []            []  |
+buzztrax           |                                           [] []  |
+ccd2cue            |                                              []  |
+ccide              |                                              []  |
+cflow              |                                                  |
+clisp              |                                              []  |
+coreutils          |                    []          []         [] []  |
+cpio               |                                              []  |
+cppi               |                                              []  |
+cpplib             |                                []            []  |
+cryptsetup         |                                           [] []  |
+datamash           |                                              []  |
+denemo             |                                []         [] []  |
+dfarc              |                                []            []  |
+dialog             |       []    []                 []         [] []  |
+dico               |                                              []  |
+diffutils          |                    []                     [] []  |
+dink               |                                []            []  |
+direvent           |                                              []  |
+doodle             |                                           [] []  |
+dos2unix           |                                []            []  |
+dos2unix-man       |                                                  |
+e2fsprogs          |                                []         [] []  |
+enscript           |                                []            []  |
+exif               |             []                            [] []  |
+fetchmail          |                                []         [] []  |
+findutils          |                 [] []                     [] []  |
+flex               |                    []          []            []  |
+freedink           |                                []         [] []  |
+fusionforge        |                                                  |
+gas                |                                                  |
+gawk               |                    []          []                |
+gcal               |                                []            []  |
+gcc                |                                                  |
+gdbm               |                                              []  |
+gettext-examples   |    []       []     []          []         [] []  |
+gettext-runtime    |             []     []          []         [] []  |
+gettext-tools      |                    []          []            []  |
+gnubik             |          []                                  []  |
+gnuchess           |                                              []  |
+gnucobol           |                                                  |
+gnulib             |                    []                     [] []  |
+gnunet             |                                                  |
+gnunet-gtk         |                                                  |
+gnutls             |                                           []     |
+gold               |                                                  |
+gphoto2            |                                           [] []  |
+gprof              |                    []                        []  |
+grep               |                 [] []          []         [] []  |
+grip               |                 [] []          []            []  |
+grub               |             []                 []            []  |
+gsasl              |                                              []  |
+gss                |                                              []  |
+gst-plugins-bad    |             []     []                     [] []  |
+gst-plugins-base   |                    []          []         [] []  |
+gst-plugins-good   |                    []          []         [] []  |
+gst-plugins-ugly   |             []     []          []         [] []  |
+gstreamer          |             []     []          []         [] []  |
+gtick              |                                           [] []  |
+gtkam              |                 []                        [] []  |
+gtkspell           |    []       []  []             []         [] []  |
+gutenprint         |                                []            []  |
+hello              |                                           []     |
+help2man           |                                              []  |
+help2man-texi      |                                                  |
+idutils            |                                              []  |
+kbd                |                                           []     |
+klavaro            |          []        [] []       []         [] []  |
+ld                 |                                                  |
+libc               |                    []          []         [] []  |
+libexif            |                                              []  |
+libextractor       |                                              []  |
+libgphoto2         |                                           [] []  |
+libgphoto2_port    |                                           [] []  |
+libiconv           |                 [] []                     [] []  |
+libidn             |                                           [] []  |
+libidn2            |                                           [] []  |
+lilypond           |                                []         [] []  |
+lordsawar          |                                []            []  |
+lynx               |                                []         [] []  |
+m4                 |                    []                            |
+mailfromd          |                                              []  |
+mailutils          |                                                  |
+make               |                    []                     [] []  |
+man-db             |             []                 []         [] []  |
+man-db-manpages    |                                                  |
+meritous           |                                              []  |
+midi-instruments   |          []                    []         [] []  |
+minicom            |                                           [] []  |
+mpop               |                                                  |
+msmtp              |                                                  |
+nano               |                                []         [] []  |
+opcodes            |                                                  |
+parted             |                                           [] []  |
+pies               |                                                  |
+pnmixer            |                                              []  |
+procps-ng          |                                                  |
+procps-ng-man      |                                                  |
+psmisc             |                                           [] []  |
+psmisc-man         |                                                  |
+pspp               |          []                    []                |
+pyspread           |                                              []  |
+radius             |                                []                |
+recode             |                 []             []         [] []  |
+recutils           |                                                  |
+rush               |                                              []  |
+sarg               |                                              []  |
+savane             |                                                  |
+sed                |             []  [] []          []         [] []  |
+sharutils          |                                           []     |
+shepherd           |                                                  |
+shishi             |                                                  |
+skribilo           |                                              []  |
+solfege            |                                []         [] []  |
+solfege-manual     |                                []                |
+spotmachine        |                                              []  |
+sudo               |             []                 []         [] []  |
+sudoers            |                                []         []     |
+sysstat            |                 []                           []  |
+tar                |                    []          []         [] []  |
+texinfo            |                                []         [] []  |
+texinfo_document   |                                []         []     |
+tigervnc           |                    []                     []     |
+tin                |                                              []  |
+tin-man            |                                                  |
+trader             |                                              []  |
+util-linux         |                                           [] []  |
+util-linux-man     |                                                  |
+ve                 |                                                  |
+vmm                |                                                  |
+vorbis-tools       |                                           [] []  |
+wastesedge         |                                              []  |
+wcd                |                                              []  |
+wcd-man            |                                                  |
+wdiff              |                                []         [] []  |
+wget               |                 []                        []     |
+wget2              |                                                  |
+wyslij-po          |                                              []  |
+xboard             |                                              []  |
+xdg-user-dirs      | [] [] [] [] []  [] []     []   [] []  []  [] []  |
+xkeyboard-config   |          []        []          []         [] []  |
+xz                 |                                []         []     |
+xz-man             |                                                  |
+                   +--------------------------------------------------+
+                     ab af an ar ast be bg bn bn_IN ca ckb crh cs da 
+                      1  3  2  6 15  11 30  1   1   52  1   1  64 100
+
+                     de  el en en_GB eo es  et eu fa fi fr  fur ga gd
+                   +--------------------------------------------------+
+a2ps               | []  []             []                            |
+anubis             | []                 []           [] []            |
+aspell             | []         []   [] []           [] []  []  []    |
+bash               | []              [] []              []      []    |
+beebase            | []                 []              []            |
+bfd                |                                    []            |
+binutils           |                                    []            |
+bison              | []  []          [] []  []       [] []            |
+bison-runtime      | []  []          [] []  []       [] []      []    |
+buzztrax           | []                 []           [] []            |
+ccd2cue            | []              [] []              []            |
+ccide              | []              [] []           [] []  []        |
+cflow              | []              []                 []            |
+clisp              | []     []          []              []            |
+coreutils          | []                 []  []          []            |
+cpio               | []                 []           [] []      []    |
+cppi               | []              [] []           [] []            |
+cpplib             | []              [] []           [] []            |
+cryptsetup         | []                 []              []            |
+datamash           | []              [] []              []            |
+denemo             |                                                  |
+dfarc              | []              [] []           [] []  []        |
+dialog             | []  []          [] []     [] [] [] []  []  [] [] |
+dico               | []                 []           [] []            |
+diffutils          | []  []          [] []           [] []            |
+dink               | []              [] []           [] []            |
+direvent           | []              [] []              []            |
+doodle             | []              [] []           [] []      []    |
+dos2unix           | []              [] []              []  []        |
+dos2unix-man       | []                 []              []            |
+e2fsprogs          | []                 []              []            |
+enscript           | []         []   [] []           [] []      []    |
+exif               | []              [] []           [] []  []        |
+fetchmail          | ()  []     []   [] []              []            |
+findutils          | []  []          [] []  []       [] []            |
+flex               | []              [] []           [] []      []    |
+freedink           | []  []          [] []     []    [] []  []        |
+fusionforge        | []                 []              []            |
+gas                |                    []           [] []            |
+gawk               | []                 []           [] []            |
+gcal               | []                 []              []            |
+gcc                | []                                 []            |
+gdbm               | []              [] []              []            |
+gettext-examples   | []  []          [] []           [] []      []    |
+gettext-runtime    | []              [] []           [] []      []    |
+gettext-tools      | []                 []           [] []            |
+gnubik             | []              [] []           [] []  []        |
+gnuchess           | []              [] []              []            |
+gnucobol           |                                    []            |
+gnulib             | []              [] []  []       [] []            |
+gnunet             |                    []                            |
+gnunet-gtk         | []                 []                            |
+gnutls             | []              [] []           [] []            |
+gold               |                    []           [] []            |
+gphoto2            | ()              []                 []            |
+gprof              | []              [] []           [] []      []    |
+grep               | []              [] []  []       [] []      []    |
+grip               | []                 []           [] []  []        |
+grub               | []                 []           [] []            |
+gsasl              | []              [] []           [] []      []    |
+gss                | []              [] []           [] []      []    |
+gst-plugins-bad    | []              [] []              []  []        |
+gst-plugins-base   | []  []          [] []           [] []  []        |
+gst-plugins-good   | []  []          [] []           [] []  []        |
+gst-plugins-ugly   | []  []          [] []     []    [] []  []        |
+gstreamer          | []  []          [] []     []    [] []  []        |
+gtick              | ()              [] []           [] []      []    |
+gtkam              | ()              [] []           [] []            |
+gtkspell           | []  []          [] []     []    [] []  []  []    |
+gutenprint         | []                 []              []            |
+hello              | []                     []    [] []               |
+help2man           | []  []          [] []           [] []            |
+help2man-texi      | []                 []              []            |
+idutils            | []              [] []           [] []      []    |
+kbd                | []  []          [] []              []            |
+klavaro            | []  []          [] []     []       []            |
+ld                 |                    []              []            |
+libc               | []                 []           [] []            |
+libexif            | []                 []              []            |
+libextractor       | []                 []              []            |
+libgphoto2         | ()                 []              []            |
+libgphoto2_port    | ()                 []     []    [] []  []        |
+libiconv           | []              [] []  []       [] []      []    |
+libidn             | []              [] []           [] []            |
+libidn2            | []              [] []              []  []        |
+lilypond           | []              [] []              []            |
+lordsawar          | []                                 []            |
+lynx               | []              []     []       [] []            |
+m4                 | []              [] []                            |
+mailfromd          |                                    []            |
+mailutils          | []                 []           [] []            |
+make               | []                 []           [] []      []    |
+man-db             | []              [] []              []            |
+man-db-manpages    | []                 []              []            |
+meritous           |                 []                               |
+midi-instruments   | []  []          [] []  []    [] [] []            |
+minicom            | []                 []           [] []            |
+mpop               | []              [] []              []            |
+msmtp              | []              []                 []            |
+nano               | []              [] []           [] []      []    |
+opcodes            | []                 []              []            |
+parted             | []                 []              []  []        |
+pies               | []                 []              []            |
+pnmixer            | []                                 []            |
+procps-ng          | []                 []              []            |
+procps-ng-man      |                                    []            |
+psmisc             | []  []          [] []           [] []            |
+psmisc-man         | []                                 []            |
+pspp               | []  []             []              []            |
+pyspread           | []                                 []            |
+radius             |                    []              []            |
+recode             | []              [] []           [] []      []    |
+recutils           | []                              [] []            |
+rush               | []                              [] []            |
+sarg               | []                 []              []            |
+savane             |                    []              []            |
+sed                | []  []          [] []  []       [] []      []    |
+sharutils          | []              []     []          []            |
+shepherd           | []                                               |
+shishi             | []                              [] []            |
+skribilo           |                 [] []              []  []        |
+solfege            | []              [] []  []    [] [] []            |
+solfege-manual     | []              [] []  []          []            |
+spotmachine        | []              []              [] []            |
+sudo               | []              [] []           [] []  []        |
+sudoers            | []              []              [] []            |
+sysstat            | []              []              [] []  []        |
+tar                | []              [] []  []       [] []      []    |
+texinfo            | []              [] []              []            |
+texinfo_document   | []              [] []           [] []            |
+tigervnc           | []                 []           [] []  []        |
+tin                | []                     []          []            |
+tin-man            | []         []                                    |
+trader             | []         []   []              [] []            |
+util-linux         | []                 []              []            |
+util-linux-man     | []                                 []            |
+ve                 | []              [] []           [] []  []        |
+vmm                |                                                  |
+vorbis-tools       | []              [] []              []            |
+wastesedge         |                                    []            |
+wcd                | []              [] []           [] []  []        |
+wcd-man            | []                                 []            |
+wdiff              | []              [] []  []       [] []      []    |
+wget               | []              [] []  []       [] []      []    |
+wget2              | []                 []              []            |
+wyslij-po          | []              [] []           [] []            |
+xboard             | []                 []              []            |
+xdg-user-dirs      | []  []          [] []  [] [] [] [] []  []  [] [] |
+xkeyboard-config   | []              [] []           [] []  []        |
+xz                 | []              [] []           [] []            |
+xz-man             | []                                 []            |
+                   +--------------------------------------------------+
+                     de  el en en_GB eo es  et eu fa fi fr  fur ga gd
+                     130 22  1   5   83 119 19  8  5 78 141 26  26  2
+
+                     gl gu he hi hr hu hy id is it ja ka kk kn ko ku
+                   +-------------------------------------------------+
+a2ps               |             []                []                |
+anubis             |             [] []    []    []                   |
+aspell             |             []       []    [] []                |
+bash               |             [] []    []       []          []    |
+beebase            |                            ()                   |
+bfd                |                                                 |
+binutils           |                                                 |
+bison              |                               []                |
+bison-runtime      | []          [] []    []    [] [] []             |
+buzztrax           |                                                 |
+ccd2cue            |                []                               |
+ccide              |             [] []                []             |
+cflow              |                                                 |
+clisp              |                                                 |
+coreutils          |             [] []             []          []    |
+cpio               |             [] []    []    [] []          []    |
+cppi               | []          [] []          [] [] []             |
+cpplib             |                      []       []                |
+cryptsetup         |                            [] []                |
+datamash           |                                                 |
+denemo             |                                                 |
+dfarc              |             [] []          []                   |
+dialog             | []          [] []    [] [] [] [] []          [] |
+dico               |                                                 |
+diffutils          |             [] []    []    [] [] []       []    |
+dink               |                []                               |
+direvent           |                []                               |
+doodle             |                            []                   |
+dos2unix           |                []             [] []       []    |
+dos2unix-man       |                                           []    |
+e2fsprogs          |                []                               |
+enscript           |             []       []                         |
+exif               | []          [] []    [] [] [] [] []       []    |
+fetchmail          |                      []    [] []                |
+findutils          |             [] []    []    []    []       []    |
+flex               |                                                 |
+freedink           |             [] []    []    []                   |
+fusionforge        |                                                 |
+gas                |                      []                         |
+gawk               |                      []    ()             []    |
+gcal               |                                                 |
+gcc                |                                                 |
+gdbm               |                                                 |
+gettext-examples   | []          [] []    []    [] [] []             |
+gettext-runtime    | []          [] []          [] []          []    |
+gettext-tools      |             []       []    [] []          []    |
+gnubik             | []          []             []                   |
+gnuchess           | []                                              |
+gnucobol           |                                                 |
+gnulib             |                []          [] [] []             |
+gnunet             |                                                 |
+gnunet-gtk         |                                                 |
+gnutls             |                            []    []             |
+gold               |                                                 |
+gphoto2            |                []    []    [] []          []    |
+gprof              |                []    []    []    []             |
+grep               | []          [] []    []    [] [] []       []    |
+grip               |                []          [] []          []    |
+grub               | []          [] []          []    []       []    |
+gsasl              |                []    []    []    []             |
+gss                |             [] []    []    []    []             |
+gst-plugins-bad    |             [] []    []    []    []             |
+gst-plugins-base   | []          [] []    []    []    []             |
+gst-plugins-good   | []          [] []    []    [] [] []             |
+gst-plugins-ugly   | []          [] []    []    [] [] []             |
+gstreamer          | []          [] []    []    []                   |
+gtick              | []             []    []    []                   |
+gtkam              |       []       []    [] [] [] []                |
+gtkspell           | []    []    [] [] [] [] [] [] [] []             |
+gutenprint         | []          [] []          []    []             |
+hello              |             []                   []             |
+help2man           |             []             [] []          []    |
+help2man-texi      |                                                 |
+idutils            |                []    []          []             |
+kbd                |                                                 |
+klavaro            | []          [] []    []    []       []          |
+ld                 |                                                 |
+libc               | []          []       []    [] []          []    |
+libexif            |                            []                   |
+libextractor       |                                                 |
+libgphoto2         |                                                 |
+libgphoto2_port    |                            [] [] []             |
+libiconv           | []          [] []    []    [] [] []       []    |
+libidn             |             [] []    []    []             []    |
+libidn2            |                []    []          []       []    |
+lilypond           |                            [] []                |
+lordsawar          |                               []                |
+lynx               |                []    []    [] []                |
+m4                 |                                  []       []    |
+mailfromd          |                                                 |
+mailutils          |                                                 |
+make               |             []       []    [] []          []    |
+man-db             |                      []       []          []    |
+man-db-manpages    |                      []                   []    |
+meritous           |                                                 |
+midi-instruments   | []    []    [] [] [] [] [] [] [] []       [] [] |
+minicom            |                []    []       [] []       []    |
+mpop               |                                                 |
+msmtp              |                                                 |
+nano               | []          [] []    []    [] []          []    |
+opcodes            |                                                 |
+parted             |                []    []    [] [] []       []    |
+pies               |                                                 |
+pnmixer            |             []             []                   |
+procps-ng          |                                           []    |
+procps-ng-man      |                                                 |
+psmisc             |             [] []    []    []    []       []    |
+psmisc-man         |             []                            []    |
+pspp               |                []             []                |
+pyspread           |                                                 |
+radius             |                      []                         |
+recode             | []    []    [] []    []    []                   |
+recutils           |                                                 |
+rush               |                                                 |
+sarg               |                                                 |
+savane             |       []                                        |
+sed                | []          [] []    []    [] [] []       []    |
+sharutils          |                                                 |
+shepherd           |                                                 |
+shishi             |                                                 |
+skribilo           |                []                               |
+solfege            | []                         []                   |
+solfege-manual     |                                                 |
+spotmachine        |                                                 |
+sudo               | []          [] []          [] [] []       []    |
+sudoers            |             []             [] []          []    |
+sysstat            |             []       []    []    []       []    |
+tar                |             [] []    []    [] []          []    |
+texinfo            |             []       []    []                   |
+texinfo_document   |             [] []          []                   |
+tigervnc           |       []             []          []       []    |
+tin                |                                                 |
+tin-man            |                                                 |
+trader             |             [] []                               |
+util-linux         |             []                []          []    |
+util-linux-man     |                                                 |
+ve                 |                         [] []                   |
+vmm                |                                                 |
+vorbis-tools       |             []       []          []             |
+wastesedge         |                            []                   |
+wcd                |                                                 |
+wcd-man            |                                                 |
+wdiff              | []             []          []                   |
+wget               |             [] []    []    [] []          []    |
+wget2              |             []                []                |
+wyslij-po          | []          [] []    []                         |
+xboard             |                                                 |
+xdg-user-dirs      | [] [] [] [] [] []    [] [] [] [] [] [] [] [] [] |
+xkeyboard-config   | []    []    [] []    []    []    []       []    |
+xz                 |             [] []          []             []    |
+xz-man             |                                           []    |
+                   +-------------------------------------------------+
+                     gl gu he hi hr hu hy id is it ja ka kk kn ko ku
+                     30  1  8  1 59 62  2 57  7 67 48 39  2  1 43  3
+
+                     ky lg lt lv mk ml mn mr ms mt nb ne nl nn or pa
+                   +-------------------------------------------------+
+a2ps               |                         []    []    []          |
+anubis             |                         []    []    []          |
+aspell             |                   []                []          |
+bash               |                               []    []          |
+beebase            |                                     []          |
+bfd                |                                                 |
+binutils           |                                                 |
+bison              |                         []                      |
+bison-runtime      | []    [] []             []    []    []          |
+buzztrax           |                                                 |
+ccd2cue            |                                                 |
+ccide              |          []                         []          |
+cflow              |                                                 |
+clisp              |                                     []          |
+coreutils          |                               []    []          |
+cpio               |                                     []          |
+cppi               |                                                 |
+cpplib             |                                     []          |
+cryptsetup         |                                                 |
+datamash           |                               []    []          |
+denemo             |                                     []          |
+dfarc              |             []                      []          |
+dialog             |       [] []             []    []    []          |
+dico               |                                                 |
+diffutils          |          []             []    []    []          |
+dink               |                                     []          |
+direvent           |                                     []          |
+doodle             |                                     []          |
+dos2unix           |                               []    []          |
+dos2unix-man       |                                     []          |
+e2fsprogs          |                                     []          |
+enscript           |                                     []          |
+exif               |          []             []          []          |
+fetchmail          |                                     []          |
+findutils          |                               []    []          |
+flex               |                                     []          |
+freedink           |                               []    []          |
+fusionforge        |                                                 |
+gas                |                                                 |
+gawk               |                                     []          |
+gcal               |                                                 |
+gcc                |                                                 |
+gdbm               |                                                 |
+gettext-examples   | []       []             [] [] []    [] []       |
+gettext-runtime    |                               []    [] []       |
+gettext-tools      |                                                 |
+gnubik             |                               []    []          |
+gnuchess           |                               []    []          |
+gnucobol           |                                                 |
+gnulib             |                                     []          |
+gnunet             |                                                 |
+gnunet-gtk         |                                                 |
+gnutls             |                         []          []          |
+gold               |                                                 |
+gphoto2            |                                     []          |
+gprof              |                         []          []          |
+grep               |                               []    []          |
+grip               |                               []    []          |
+grub               |       []                      []    []          |
+gsasl              |                                     []          |
+gss                |                                                 |
+gst-plugins-bad    |          []                   []    []          |
+gst-plugins-base   |          []                   []    []          |
+gst-plugins-good   |          []                   []    []          |
+gst-plugins-ugly   |          []             [] [] []    []          |
+gstreamer          |       []                      []    []          |
+gtick              |                               []    []          |
+gtkam              |                               []    []       [] |
+gtkspell           | []    [] []       []    []    []    []          |
+gutenprint         |                                     []          |
+hello              |                               []    []          |
+help2man           |                               []                |
+help2man-texi      |                                                 |
+idutils            |                               []    []          |
+kbd                |                                                 |
+klavaro            |                               []    []       [] |
+ld                 |                                                 |
+libc               |                                     []          |
+libexif            |                                     []          |
+libextractor       |                                     []          |
+libgphoto2         |                                     []          |
+libgphoto2_port    |                                     []          |
+libiconv           |       []                            []          |
+libidn             |                                     []          |
+libidn2            |                                     []          |
+lilypond           |                                     []          |
+lordsawar          |                                                 |
+lynx               |                                     []          |
+m4                 |                                     []          |
+mailfromd          |                                                 |
+mailutils          |                                                 |
+make               |                                     []          |
+man-db             |                                     []          |
+man-db-manpages    |                                                 |
+meritous           |                                                 |
+midi-instruments   |       []          []    []       [] []          |
+minicom            |                               []                |
+mpop               |                                                 |
+msmtp              |                                                 |
+nano               |                         []    []    []          |
+opcodes            |                                                 |
+parted             |                                     []          |
+pies               |                                                 |
+pnmixer            |                                     []          |
+procps-ng          |                                                 |
+procps-ng-man      |                                                 |
+psmisc             |                                     []          |
+psmisc-man         |                                                 |
+pspp               |                                     []          |
+pyspread           |                                        []       |
+radius             |                                     []          |
+recode             |                               []    []          |
+recutils           |                                     []          |
+rush               |                                     []          |
+sarg               |                                                 |
+savane             |                                                 |
+sed                |                               []    []          |
+sharutils          |                                     []          |
+shepherd           |                                                 |
+shishi             |                                                 |
+skribilo           |                                                 |
+solfege            |                               []    []          |
+solfege-manual     |                                     []          |
+spotmachine        |                                     []          |
+sudo               |                               []    []          |
+sudoers            |                               []                |
+sysstat            |                               []    []          |
+tar                | []                            []    []          |
+texinfo            |                               []    []          |
+texinfo_document   |                                     []          |
+tigervnc           |                                                 |
+tin                |                                                 |
+tin-man            |                                                 |
+trader             |                               []                |
+util-linux         |                                     []          |
+util-linux-man     |                                                 |
+ve                 |                                     []          |
+vmm                |                                                 |
+vorbis-tools       |                                     []          |
+wastesedge         |                                     []          |
+wcd                |                                     []          |
+wcd-man            |                                     []          |
+wdiff              |                         []    []    []          |
+wget               |                               []    []          |
+wget2              |                                                 |
+wyslij-po          |                                     [] []       |
+xboard             |                                     []          |
+xdg-user-dirs      | [] [] [] [] [] []    []       []    [] [] [] [] |
+xkeyboard-config   |       []                            []          |
+xz                 |                                                 |
+xz-man             |                                                 |
+                   +-------------------------------------------------+
+                     ky lg lt lv mk ml mn mr ms mt nb ne nl nn or pa
+                      5  1  9 12  2  1  3  1 15  2 44  1 98  5  1  3
+
+                     pl pt pt_BR ro  ru rw sk sl sq sr  sv  sw ta te
+                   +-------------------------------------------------+
+a2ps               | []          []  []             []  []           |
+anubis             | [] []       []  []             []  []           |
+aspell             | [] []  []   []  []    [] [] [] []  []           |
+bash               | [] []  []   []                 []  []           |
+beebase            |                                []               |
+bfd                |    []       []  []             []               |
+binutils           |    []       []  []             []  []           |
+bison              | [] []  []                      []  []           |
+bison-runtime      | [] []  []   []  []       [] [] []  []     []    |
+buzztrax           |        []                      []  []           |
+ccd2cue            |        []   []                 []  []           |
+ccide              | []          []  []             []  []           |
+cflow              | []     []   []                 []  []           |
+clisp              |                 []             []  []           |
+coreutils          | [] []  []   []  []       []    []  []           |
+cpio               | [] []  []   []  []             []  []           |
+cppi               | []     []   []                 []  []           |
+cpplib             |        []   []  []             []  []           |
+cryptsetup         | []     []   []  []             []  []           |
+datamash           |        []   []                 []  []           |
+denemo             |                                                 |
+dfarc              | []     []   []                 []  []           |
+dialog             | [] []  []   []  []    [] [] [] []  []  []       |
+dico               | []     []                      []  []           |
+diffutils          | [] []  []   []  []             []  []           |
+dink               |                                    []           |
+direvent           | []     []   []                 []  []           |
+doodle             |        []   []              [] []  []           |
+dos2unix           | []     []   []  []             []  []           |
+dos2unix-man       | []     []   []                 []  []           |
+e2fsprogs          | [] []                          []  []           |
+enscript           | []     []   []  []       []    []  []           |
+exif               | [] []  []   []  []    []       []  []           |
+fetchmail          | []          []  []          [] []  []           |
+findutils          | [] []  []   []  []       []    []  []           |
+flex               | [] []  []   []  []             []  []           |
+freedink           | []     []   []  []       []    []  []           |
+fusionforge        |                                                 |
+gas                |                 []                 []           |
+gawk               | [] []  []   []                 []  []           |
+gcal               |                                []  []           |
+gcc                |                 []                 []           |
+gdbm               | []     []   []  []             []  []           |
+gettext-examples   | [] []  []   []  []    [] [] [] []  []     []    |
+gettext-runtime    | [] []  []   []  []    [] []    []  []           |
+gettext-tools      | [] []  []   []  []    [] []    []  []           |
+gnubik             | []     []   []           []    []  []           |
+gnuchess           |        []   []                 []  []           |
+gnucobol           |                                []               |
+gnulib             | [] []  []   []  []       []    []  []           |
+gnunet             |                                []               |
+gnunet-gtk         |                                []               |
+gnutls             | []     []   []                 []  []           |
+gold               |             []                 []               |
+gphoto2            | []     []   []  []             []  []           |
+gprof              |        []   []  []             []  []           |
+grep               | [] []  []   []  []    [] []    []  []     []    |
+grip               | []     []   []  []             []               |
+grub               | [] []  []   []  []       []    []  []           |
+gsasl              | []     []   []        []       []  []           |
+gss                | []     []   []        []       []  []           |
+gst-plugins-bad    | []     []   []  []    []       []  []           |
+gst-plugins-base   | []     []   []  []    [] []    []  []           |
+gst-plugins-good   | []     []   []  []    [] []    []  []           |
+gst-plugins-ugly   | []     []   []  []    [] [] [] []  []     []    |
+gstreamer          | []     []   []  []    [] []    []  []           |
+gtick              | []     []   []  []    []       []  []           |
+gtkam              | []     []   []  []    []       []  []           |
+gtkspell           | [] []  []   []  []    [] [] [] []  []     []    |
+gutenprint         |                 []    [] []        []           |
+hello              | []          []  []    []       []  []     []    |
+help2man           | []     []   []  []             []  []           |
+help2man-texi      | []     []   []                 []  []           |
+idutils            | []     []   []  []             []  []           |
+kbd                | [] []  []   []  []             []  []           |
+klavaro            | [] []  []   []  []       []    []  []           |
+ld                 |        []       []             []               |
+libc               | [] []  []   []  []    []       []  []           |
+libexif            | []                    []       []  []           |
+libextractor       | []     []   []                 []               |
+libgphoto2         | []                                 []           |
+libgphoto2_port    | []     []   []  []    []       []  []           |
+libiconv           | []     []   []  []    [] []    []  []           |
+libidn             | []     []   []                 []  []           |
+libidn2            | []     []   []  []             []  []           |
+lilypond           |                                    []           |
+lordsawar          |                 []                 []           |
+lynx               |        []       []                 []           |
+m4                 |        []   []                 []  []           |
+mailfromd          | []     []                      []               |
+mailutils          | []     []   []                 []               |
+make               | [] []  []   []  []             []  []           |
+man-db             | [] []  []   []  []             []  []           |
+man-db-manpages    | [] []  []   []  []             []  []           |
+meritous           |        []                      []  []           |
+midi-instruments   | [] []  []   []  []    [] []    []  []           |
+minicom            | []     []   []  []             []  []           |
+mpop               |        []       []             []  []           |
+msmtp              |        []       []             []  []           |
+nano               | [] []  []   []  []    []    [] []  []           |
+opcodes            |        []   []                 []  []           |
+parted             | []     []   []  []    [] []    []  []           |
+pies               | []     []                      []               |
+pnmixer            |        []   []  ()             []  []           |
+procps-ng          | []     []   []                     []           |
+procps-ng-man      |             []                     []           |
+psmisc             | [] []  []   []  []             []  []           |
+psmisc-man         |        []   []  []             []  []           |
+pspp               |                 []                              |
+pyspread           |        []                      []               |
+radius             | []              []             []               |
+recode             | [] []  []   []  []    [] []    []  []           |
+recutils           |        []                      []  []           |
+rush               | []     []                      []  []           |
+sarg               |        []       []             []               |
+savane             |        []       ()                              |
+sed                | [] []  []   []  []    [] []    []  []           |
+sharutils          | []     []   []                 []  []           |
+shepherd           |             []                 []  []           |
+shishi             | []                             []  []           |
+skribilo           |        []                      []  []           |
+solfege            | []     []       []    []           []           |
+solfege-manual     | []     []                                       |
+spotmachine        |        []   []                 []  []           |
+sudo               | [] []  []   []  []             []  []           |
+sudoers            | [] []  []   []  []             []  []           |
+sysstat            | [] []  []   []  []    []       []  []           |
+tar                | [] []  []   []  []       []    []  []           |
+texinfo            | [] []  []   []  []    []       []  []           |
+texinfo_document   | [] []  []   []        []       []  []           |
+tigervnc           |             []  []             []  []           |
+tin                |                 []                              |
+tin-man            |                                                 |
+trader             |        []       []             []  []           |
+util-linux         | [] []  []                      []  []           |
+util-linux-man     |                                []               |
+ve                 | []     []   []                 []  []           |
+vmm                |                                []               |
+vorbis-tools       | []          []           []    []  []           |
+wastesedge         |        []                          []           |
+wcd                |        []   []                 []  []           |
+wcd-man            |        []   []                 []  []           |
+wdiff              | []     []   []  []       []    []  []           |
+wget               | [] []  []   []  []    []       []  []           |
+wget2              | []          []  []             []  []           |
+wyslij-po          | []     []   []                 []  []           |
+xboard             | []              []             []  []           |
+xdg-user-dirs      | [] []  []   []  []    [] [] [] []  []     [] [] |
+xkeyboard-config   | [] []  []   []  []          [] []  []           |
+xz                 | [] []  []   []                 []  []           |
+xz-man             |        []   []                                  |
+                   +-------------------------------------------------+
+                     pl pt pt_BR ro  ru rw sk sl sq sr  sv  sw ta te
+                     99 45  113  105 87  0 34 30 11 131 126  1  7  1
+
+                     tg th tr uk  ur vi wa wo zh_CN zh_HK zh_TW
+                   +--------------------------------------------+
+a2ps               |          []                                | 15
+anubis             |       [] []     []                         | 21
+aspell             |          []     [] []     []               | 32
+bash               |       [] []     []        []          []   | 26
+beebase            |          []                                |  6
+bfd                |          []                                |  6
+binutils           |          []                                |  7
+bison              |          []                           []   | 17
+bison-runtime      |    [] [] []     []        []          []   | 41
+buzztrax           |                 []        []               | 11
+ccd2cue            |    []    []     []        []               | 14
+ccide              |          []     []        []               | 20
+cflow              |          []                                |  9
+clisp              |                                            | 12
+coreutils          |       [] []     []        []          []   | 27
+cpio               |       [] []     []        []               | 24
+cppi               |          []     []        []               | 20
+cpplib             |       [] []     []        []          []   | 20
+cryptsetup         |          []                                | 14
+datamash           |          []                                | 12
+denemo             |                           []    []    []   |  7
+dfarc              |                 []                         | 19
+dialog             |    [] [] []     [] []     []          []   | 48
+dico               |          []                                | 10
+diffutils          |       [] []     []        []          []   | 32
+dink               |       []                                   | 11
+direvent           |          []     []                         | 14
+doodle             |          []     []        []               | 18
+dos2unix           |          []     []        []          []   | 23
+dos2unix-man       |          []               []               | 12
+e2fsprogs          |          []     []        []               | 15
+enscript           |       [] []     []                         | 22
+exif               |       [] []     []        []               | 33
+fetchmail          |       []        []        []               | 21
+findutils          |       [] []     []        []               | 31
+flex               |       [] []     []        []          []   | 22
+freedink           |    []           []                         | 26
+fusionforge        |                                            |  3
+gas                |          []                                |  7
+gawk               |       []        []        []               | 18
+gcal               |       []                  []               |  9
+gcc                |                                            |  4
+gdbm               |          []     []                         | 13
+gettext-examples   |       [] []     []        []    []    []   | 44
+gettext-runtime    |       [] []     []        []          []   | 34
+gettext-tools      |       [] []     []        []          []   | 26
+gnubik             |          []     []        []               | 22
+gnuchess           |          []     []        []               | 15
+gnucobol           |                                            |  2
+gnulib             |          []     []        []          []   | 26
+gnunet             |                                            |  2
+gnunet-gtk         |                                            |  3
+gnutls             |          []     []        []               | 18
+gold               |          []                                |  6
+gphoto2            |          []     []        []          []   | 20
+gprof              |       [] []     []                         | 22
+grep               |    [] [] []     []        []          []   | 38
+grip               |          []     []        []    []    []   | 25
+grub               |       [] []     []        []               | 28
+gsasl              |          []     []        []               | 21
+gss                |                 []        []               | 20
+gst-plugins-bad    |       [] []     []        []          []   | 29
+gst-plugins-base   |       [] []     []        []               | 32
+gst-plugins-good   |       [] []     []        []          []   | 34
+gst-plugins-ugly   |       [] []     []        []          []   | 40
+gstreamer          |       [] []     []        []          []   | 34
+gtick              |          []     []        []               | 23
+gtkam              |          []     []        []               | 26
+gtkspell           |    [] [] []     [] []     []    []    []   | 51
+gutenprint         |       [] []               []               | 18
+hello              |          []               []               | 18
+help2man           |          []     []        []               | 21
+help2man-texi      |          []                                |  9
+idutils            |          []     []        []               | 21
+kbd                |          []               []               | 15
+klavaro            |       [] []  [] []    []  []               | 35
+ld                 |          []                                |  6
+libc               |       [] []     []        []          []   | 28
+libexif            |          []     []                         | 12
+libextractor       |          []     []                         | 11
+libgphoto2         |          []     []                         |  9
+libgphoto2_port    |          []     []        []          []   | 22
+libiconv           |          []     [] []     []          []   | 34
+libidn             |          []     []        []               | 21
+libidn2            |          []               []               | 20
+lilypond           |                           []               | 12
+lordsawar          |       []                                   |  8
+lynx               |       [] []     []                         | 19
+m4                 |          []               []               | 13
+mailfromd          |          []     []                         |  7
+mailutils          |          []     []                         | 10
+make               |          []     []        []          []   | 25
+man-db             |       []        []        []          []   | 23
+man-db-manpages    |       []                  []               | 14
+meritous           |                                            |  5
+midi-instruments   |    [] [] []     []        []          []   | 44
+minicom            |                 []                    []   | 20
+mpop               |          []                                |  9
+msmtp              |          []                                |  8
+nano               |       [] []     []        []          []   | 33
+opcodes            |          []                                |  8
+parted             |       [] []     []        []          []   | 26
+pies               |          []     []                         |  8
+pnmixer            |          []     []        ()               | 14
+procps-ng          |          []     []                         | 10
+procps-ng-man      |          []                                |  4
+psmisc             |          []     []        []          []   | 26
+psmisc-man         |          []                                | 10
+pspp               |          []               []               | 12
+pyspread           |          []                                |  7
+radius             |          []     []                         | 10
+recode             |       [] []     []        []               | 31
+recutils           |          []     []                         |  9
+rush               |          []     []        []               | 12
+sarg               |                                            |  7
+savane             |                                            |  4
+sed                |       [] []     []        []          []   | 38
+sharutils          |          []     []        []               | 14
+shepherd           |          []                                |  5
+shishi             |                 []        []               |  8
+skribilo           |          []                                | 10
+solfege            |       []        []        []               | 22
+solfege-manual     |       []                                   | 10
+spotmachine        |          []     []                         | 12
+sudo               |       [] []     []        []          []   | 31
+sudoers            |          []               []          []   | 21
+sysstat            |       [] []     []        []               | 26
+tar                |       [] []     []        []          []   | 33
+texinfo            |       [] []     []                         | 23
+texinfo_document   |          []                                | 19
+tigervnc           |          []                           []   | 17
+tin                |       []                  []          []   |  8
+tin-man            |                                            |  2
+trader             |                                            | 13
+util-linux         |       [] []     []        []               | 18
+util-linux-man     |          []                                |  4
+ve                 |          []     []        []               | 17
+vmm                |          []                                |  2
+vorbis-tools       |                 []                         | 16
+wastesedge         |       []                                   |  7
+wcd                |          []     []        []               | 15
+wcd-man            |          []                                |  8
+wdiff              |          []     []        []          []   | 27
+wget               |       [] []     []        []          []   | 30
+wget2              |          []                                | 11
+wyslij-po          |          []     []        []               | 20
+xboard             |       [] []               []               | 12
+xdg-user-dirs      |    [] [] []     [] []     []    []    []   | 72
+xkeyboard-config   |       [] []               []               | 32
+xz                 |       [] []     []        []          []   | 22
+xz-man             |          []                                |  6
+                   +--------------------------------------------+
+  85 teams           tg th tr uk  ur vi wa wo zh_CN zh_HK zh_TW
+ 151 domains          0  8 54 120  1 93  5  1  87     5    42    2792
+
+ +

Some counters in the preceding matrix are higher than the number of visible +blocks let us expect. This is because a few extra PO files are used for +implementing regional variants of languages, or language dialects. +

+

For a PO file in the matrix above to be effective, the package to which +it applies should also have been internationalized and distributed as +such by its maintainer. There might be an observable lag between the +mere existence a PO file and its wide availability in a distribution. +

+

If June 2023 seems to be old, you may fetch a more recent copy +of this ‘ABOUT-NLS’ file on most GNU archive sites. The most +up-to-date matrix with full percentage details can be found at +‘https://translationproject.org/extra/matrix.html’. +

+ + + + +

17.2.5 Using gettext in new packages

+ +

If you are writing a freely available program and want to internationalize +it you are welcome to use GNU ‘gettext’ in your package. Of course +you have to respect the GNU Lesser General Public License which covers +the use of the GNU ‘gettext’ library. This means in particular that +even non-free programs can use libintl as a shared library, whereas +only free software can use libintl as a static library or use +modified versions of libintl. +

+

Once the sources are changed appropriately and the setup can handle the +use of gettext the only thing missing are the translations. The +Free Translation Project is also available for packages which are not +developed inside the GNU project. Therefore the information given above +applies also for every other Free Software Project. Contact +‘coordinator@translationproject.org’ to make the ‘.pot’ files +available to the translation teams. +

+ + + +

17.3 Related Readings

+ +

NOTE: This documentation section is outdated and needs to be +revised. +

+

Eugene H. Dorr (‘dorre@well.com’) maintains an interesting +bibliography on internationalization matters, called +Internationalization Reference List, which is available as: +

 
ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/i18n-books.txt
+
+ +

Michael Gschwind (‘mike@vlsivie.tuwien.ac.at’) maintains a +Frequently Asked Questions (FAQ) list, entitled Programming for +Internationalisation. This FAQ discusses writing programs which +can handle different language conventions, character sets, etc.; +and is applicable to all character set encodings, with particular +emphasis on ISO 8859-1. It is regularly published in Usenet +groups ‘comp.unix.questions’, ‘comp.std.internat’, +‘comp.software.international’, ‘comp.lang.c’, +‘comp.windows.x’, ‘comp.std.c’, ‘comp.answers’ +and ‘news.answers’. The home location of this document is: +

 
ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit/ISO-programming
+
+ +

Patrick D'Cruze (‘pdcruze@li.org’) wrote a tutorial about NLS +matters, and Jochen Hein (‘Hein@student.tu-clausthal.de’) took +over the responsibility of maintaining it. It may be found as: +

 
ftp://sunsite.unc.edu/pub/Linux/utils/nls/catalogs/Incoming/...
+     ...locale-tutorial-0.8.txt.gz
+
+

This site is mirrored in: +

 
ftp://ftp.ibp.fr/pub/linux/sunsite/
+
+ +

A French version of the same tutorial should be findable at: +

 
ftp://ftp.ibp.fr/pub/linux/french/docs/
+
+

together with French translations of many Linux-related documents. +

+ + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_18.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_18.html new file mode 100644 index 000000000..c9ab3274b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_18.html @@ -0,0 +1,846 @@ + + + + + +GNU gettext utilities: A. Language Codes + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

A. Language Codes

+ +

The ISO 639 standard defines two-letter codes for many languages, and +three-letter codes for more rarely used languages. +All abbreviations for languages used in the Translation Project should +come from this standard. +

+ + + + +

A.1 Usual Language Codes

+ +

For the commonly used languages, the ISO 639-1 standard defines two-letter +codes. +

+
+
aa
+

Afar. +

+
ab
+

Abkhazian. +

+
ae
+

Avestan. +

+
af
+

Afrikaans. +

+
ak
+

Akan. +

+
am
+

Amharic. +

+
an
+

Aragonese. +

+
ar
+

Arabic. +

+
as
+

Assamese. +

+
av
+

Avaric. +

+
ay
+

Aymara. +

+
az
+

Azerbaijani. +

+
ba
+

Bashkir. +

+
be
+

Belarusian. +

+
bg
+

Bulgarian. +

+
bh
+

Bihari languages. +

+
bi
+

Bislama. +

+
bm
+

Bambara. +

+
bn
+

Bengali. +

+
bo
+

Tibetan. +

+
br
+

Breton. +

+
bs
+

Bosnian. +

+
ca
+

Catalan; Valencian. +

+
ce
+

Chechen. +

+
ch
+

Chamorro. +

+
co
+

Corsican. +

+
cr
+

Cree. +

+
cs
+

Czech. +

+
cu
+

Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic. +

+
cv
+

Chuvash. +

+
cy
+

Welsh. +

+
da
+

Danish. +

+
de
+

German. +

+
dv
+

Divehi; Dhivehi; Maldivian. +

+
dz
+

Dzongkha. +

+
ee
+

Ewe. +

+
el
+

Greek, Modern (1453-). +

+
en
+

English. +

+
eo
+

Esperanto. +

+
es
+

Spanish; Castilian. +

+
et
+

Estonian. +

+
eu
+

Basque. +

+
fa
+

Persian. +

+
ff
+

Fulah. +

+
fi
+

Finnish. +

+
fj
+

Fijian. +

+
fo
+

Faroese. +

+
fr
+

French. +

+
fy
+

Western Frisian. +

+
ga
+

Irish. +

+
gd
+

Gaelic; Scottish Gaelic. +

+
gl
+

Galician. +

+
gn
+

Guarani. +

+
gu
+

Gujarati. +

+
gv
+

Manx. +

+
ha
+

Hausa. +

+
he
+

Hebrew. +

+
hi
+

Hindi. +

+
ho
+

Hiri Motu. +

+
hr
+

Croatian. +

+
ht
+

Haitian; Haitian Creole. +

+
hu
+

Hungarian. +

+
hy
+

Armenian. +

+
hz
+

Herero. +

+
ia
+

Interlingua (International Auxiliary Language Association). +

+
id
+

Indonesian. +

+
ie
+

Interlingue; Occidental. +

+
ig
+

Igbo. +

+
ii
+

Sichuan Yi; Nuosu. +

+
ik
+

Inupiak. +

+
io
+

Ido. +

+
is
+

Icelandic. +

+
it
+

Italian. +

+
iu
+

Inuktitut. +

+
ja
+

Japanese. +

+
jv
+

Javanese. +

+
ka
+

Georgian. +

+
kg
+

Kongo. +

+
ki
+

Kikuyu; Gikuyu. +

+
kj
+

Kuanyama; Kwanyama. +

+
kk
+

Kazakh. +

+
kl
+

Kalaallisut; Greenlandic. +

+
km
+

Central Khmer. +

+
kn
+

Kannada. +

+
ko
+

Korean. +

+
kr
+

Kanuri. +

+
ks
+

Kashmiri. +

+
ku
+

Kurdish. +

+
kv
+

Komi. +

+
kw
+

Cornish. +

+
ky
+

Kirghiz; Kyrgyz. +

+
la
+

Latin. +

+
lb
+

Luxembourgish; Letzeburgesch. +

+
lg
+

Ganda. +

+
li
+

Limburgan; Limburger; Limburgish. +

+
ln
+

Lingala. +

+
lo
+

Lao. +

+
lt
+

Lithuanian. +

+
lu
+

Luba-Katanga. +

+
lv
+

Latvian. +

+
mg
+

Malagasy. +

+
mh
+

Marshallese. +

+
mi
+

Maori. +

+
mk
+

Macedonian. +

+
ml
+

Malayalam. +

+
mn
+

Mongolian. +

+
mr
+

Marathi. +

+
ms
+

Malay. +

+
mt
+

Maltese. +

+
my
+

Burmese. +

+
na
+

Nauru. +

+
nb
+

Bokmål, Norwegian; Norwegian Bokmål. +

+
nd
+

Ndebele, North; North Ndebele. +

+
ne
+

Nepali. +

+
ng
+

Ndonga. +

+
nl
+

Dutch; Flemish. +

+
nn
+

Norwegian Nynorsk; Nynorsk, Norwegian. +

+
no
+

Norwegian. +

+
nr
+

Ndebele, South; South Ndebele. +

+
nv
+

Navajo; Navaho. +

+
ny
+

Chichewa; Nyanja. +

+
oc
+

Occitan (post 1500); Provençal. +

+
oj
+

Ojibwa. +

+
om
+

Oromo. +

+
or
+

Oriya. +

+
os
+

Ossetian; Ossetic. +

+
pa
+

Panjabi; Punjabi. +

+
pi
+

Pali. +

+
pl
+

Polish. +

+
ps
+

Pushto; Pashto. +

+
pt
+

Portuguese. +

+
qu
+

Quechua. +

+
rm
+

Romansh. +

+
rn
+

Rundi. +

+
ro
+

Romanian; Moldavian; Moldovan. +

+
ru
+

Russian. +

+
rw
+

Kinyarwanda. +

+
sa
+

Sanskrit. +

+
sc
+

Sardinian. +

+
sd
+

Sindhi. +

+
se
+

Northern Sami. +

+
sg
+

Sango. +

+
si
+

Sinhala; Sinhalese. +

+
sk
+

Slovak. +

+
sl
+

Slovenian. +

+
sm
+

Samoan. +

+
sn
+

Shona. +

+
so
+

Somali. +

+
sq
+

Albanian. +

+
sr
+

Serbian. +

+
ss
+

Swati. +

+
st
+

Sotho, Southern. +

+
su
+

Sundanese. +

+
sv
+

Swedish. +

+
sw
+

Swahili. +

+
ta
+

Tamil. +

+
te
+

Telugu. +

+
tg
+

Tajik. +

+
th
+

Thai. +

+
ti
+

Tigrinya. +

+
tk
+

Turkmen. +

+
tl
+

Tagalog. +

+
tn
+

Tswana. +

+
to
+

Tonga (Tonga Islands). +

+
tr
+

Turkish. +

+
ts
+

Tsonga. +

+
tt
+

Tatar. +

+
tw
+

Twi. +

+
ty
+

Tahitian. +

+
ug
+

Uighur; Uyghur. +

+
uk
+

Ukrainian. +

+
ur
+

Urdu. +

+
uz
+

Uzbek. +

+
ve
+

Venda. +

+
vi
+

Vietnamese. +

+
vo
+

Volapük. +

+
wa
+

Walloon. +

+
wo
+

Wolof. +

+
xh
+

Xhosa. +

+
yi
+

Yiddish. +

+
yo
+

Yoruba. +

+
za
+

Zhuang; Chuang. +

+
zh
+

Chinese. +

+
zu
+

Zulu. +

+
+ + + + +

A.2 Rare Language Codes

+ +

For rarely used languages, the ISO 639-2 standard defines three-letter +codes. Here is the current list, reduced to only living languages with at least +one million of speakers. +

+
+
ace
+

Achinese. +

+
awa
+

Awadhi. +

+
bal
+

Baluchi. +

+
ban
+

Balinese. +

+
bej
+

Beja; Bedawiyet. +

+
bem
+

Bemba. +

+
bho
+

Bhojpuri. +

+
bik
+

Bikol. +

+
bin
+

Bini; Edo. +

+
bug
+

Buginese. +

+
ceb
+

Cebuano. +

+
din
+

Dinka. +

+
doi
+

Dogri. +

+
fil
+

Filipino; Pilipino. +

+
fon
+

Fon. +

+
gon
+

Gondi. +

+
gsw
+

Swiss German; Alemannic; Alsatian. +

+
hil
+

Hiligaynon. +

+
hmn
+

Hmong. +

+
ilo
+

Iloko. +

+
kab
+

Kabyle. +

+
kam
+

Kamba. +

+
kbd
+

Kabardian. +

+
kmb
+

Kimbundu. +

+
kok
+

Konkani. +

+
kru
+

Kurukh. +

+
lua
+

Luba-Lulua. +

+
luo
+

Luo (Kenya and Tanzania). +

+
mad
+

Madurese. +

+
mag
+

Magahi. +

+
mai
+

Maithili. +

+
mak
+

Makasar. +

+
man
+

Mandingo. +

+
men
+

Mende. +

+
min
+

Minangkabau. +

+
mni
+

Manipuri. +

+
mos
+

Mossi. +

+
mwr
+

Marwari. +

+
nap
+

Neapolitan. +

+
nso
+

Pedi; Sepedi; Northern Sotho. +

+
nym
+

Nyamwezi. +

+
nyn
+

Nyankole. +

+
pag
+

Pangasinan. +

+
pam
+

Pampanga; Kapampangan. +

+
raj
+

Rajasthani. +

+
sas
+

Sasak. +

+
sat
+

Santali. +

+
scn
+

Sicilian. +

+
shn
+

Shan. +

+
sid
+

Sidamo. +

+
srr
+

Serer. +

+
suk
+

Sukuma. +

+
sus
+

Susu. +

+
tem
+

Timne. +

+
tiv
+

Tiv. +

+
tum
+

Tumbuka. +

+
umb
+

Umbundu. +

+
wal
+

Walamo. +

+
war
+

Waray. +

+
yao
+

Yao. +

+
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_19.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_19.html new file mode 100644 index 000000000..4dde901b9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_19.html @@ -0,0 +1,839 @@ + + + + + +GNU gettext utilities: B. Country Codes + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

B. Country Codes

+ +

The ISO 3166 standard defines two character codes for many countries +and territories. All abbreviations for countries used in the Translation +Project should come from this standard. +

+
+
AD
+

Andorra. +

+
AE
+

United Arab Emirates. +

+
AF
+

Afghanistan. +

+
AG
+

Antigua and Barbuda. +

+
AI
+

Anguilla. +

+
AL
+

Albania. +

+
AM
+

Armenia. +

+
AO
+

Angola. +

+
AQ
+

Antarctica. +

+
AR
+

Argentina. +

+
AS
+

American Samoa. +

+
AT
+

Austria. +

+
AU
+

Australia. +

+
AW
+

Aruba. +

+
AX
+

Aaland Islands. +

+
AZ
+

Azerbaijan. +

+
BA
+

Bosnia and Herzegovina. +

+
BB
+

Barbados. +

+
BD
+

Bangladesh. +

+
BE
+

Belgium. +

+
BF
+

Burkina Faso. +

+
BG
+

Bulgaria. +

+
BH
+

Bahrain. +

+
BI
+

Burundi. +

+
BJ
+

Benin. +

+
BL
+

Saint Barthelemy. +

+
BM
+

Bermuda. +

+
BN
+

Brunei Darussalam. +

+
BO
+

Bolivia, Plurinational State of. +

+
BQ
+

Bonaire, Sint Eustatius and Saba. +

+
BR
+

Brazil. +

+
BS
+

Bahamas. +

+
BT
+

Bhutan. +

+
BV
+

Bouvet Island. +

+
BW
+

Botswana. +

+
BY
+

Belarus. +

+
BZ
+

Belize. +

+
CA
+

Canada. +

+
CC
+

Cocos (Keeling) Islands. +

+
CD
+

Congo, The Democratic Republic of the. +

+
CF
+

Central African Republic. +

+
CG
+

Congo. +

+
CH
+

Switzerland. +

+
CI
+

Côte d'Ivoire. +

+
CK
+

Cook Islands. +

+
CL
+

Chile. +

+
CM
+

Cameroon. +

+
CN
+

China. +

+
CO
+

Colombia. +

+
CR
+

Costa Rica. +

+
CU
+

Cuba. +

+
CV
+

Cape Verde. +

+
CW
+

Curaçao. +

+
CX
+

Christmas Island. +

+
CY
+

Cyprus. +

+
CZ
+

Czech Republic. +

+
DE
+

Germany. +

+
DJ
+

Djibouti. +

+
DK
+

Denmark. +

+
DM
+

Dominica. +

+
DO
+

Dominican Republic. +

+
DZ
+

Algeria. +

+
EC
+

Ecuador. +

+
EE
+

Estonia. +

+
EG
+

Egypt. +

+
EH
+

Western Sahara. +

+
ER
+

Eritrea. +

+
ES
+

Spain. +

+
ET
+

Ethiopia. +

+
FI
+

Finland. +

+
FJ
+

Fiji. +

+
FK
+

Falkland Islands (Malvinas). +

+
FM
+

Micronesia, Federated States of. +

+
FO
+

Faroe Islands. +

+
FR
+

France. +

+
GA
+

Gabon. +

+
GB
+

United Kingdom. +

+
GD
+

Grenada. +

+
GE
+

Georgia. +

+
GF
+

French Guiana. +

+
GG
+

Guernsey. +

+
GH
+

Ghana. +

+
GI
+

Gibraltar. +

+
GL
+

Greenland. +

+
GM
+

Gambia. +

+
GN
+

Guinea. +

+
GP
+

Guadeloupe. +

+
GQ
+

Equatorial Guinea. +

+
GR
+

Greece. +

+
GS
+

South Georgia and the South Sandwich Islands. +

+
GT
+

Guatemala. +

+
GU
+

Guam. +

+
GW
+

Guinea-Bissau. +

+
GY
+

Guyana. +

+
HK
+

Hong Kong. +

+
HM
+

Heard Island and McDonald Islands. +

+
HN
+

Honduras. +

+
HR
+

Croatia. +

+
HT
+

Haiti. +

+
HU
+

Hungary. +

+
ID
+

Indonesia. +

+
IE
+

Ireland. +

+
IL
+

Israel. +

+
IM
+

Isle of Man. +

+
IN
+

India. +

+
IO
+

British Indian Ocean Territory. +

+
IQ
+

Iraq. +

+
IR
+

Iran, Islamic Republic of. +

+
IS
+

Iceland. +

+
IT
+

Italy. +

+
JE
+

Jersey. +

+
JM
+

Jamaica. +

+
JO
+

Jordan. +

+
JP
+

Japan. +

+
KE
+

Kenya. +

+
KG
+

Kyrgyzstan. +

+
KH
+

Cambodia. +

+
KI
+

Kiribati. +

+
KM
+

Comoros. +

+
KN
+

Saint Kitts and Nevis. +

+
KP
+

Korea, Democratic People's Republic of. +

+
KR
+

Korea, Republic of. +

+
KW
+

Kuwait. +

+
KY
+

Cayman Islands. +

+
KZ
+

Kazakhstan. +

+
LA
+

Lao People's Democratic Republic. +

+
LB
+

Lebanon. +

+
LC
+

Saint Lucia. +

+
LI
+

Liechtenstein. +

+
LK
+

Sri Lanka. +

+
LR
+

Liberia. +

+
LS
+

Lesotho. +

+
LT
+

Lithuania. +

+
LU
+

Luxembourg. +

+
LV
+

Latvia. +

+
LY
+

Libya. +

+
MA
+

Morocco. +

+
MC
+

Monaco. +

+
MD
+

Moldova, Republic of. +

+
ME
+

Montenegro. +

+
MF
+

Saint Martin (French part). +

+
MG
+

Madagascar. +

+
MH
+

Marshall Islands. +

+
MK
+

North Macedonia. +

+
ML
+

Mali. +

+
MM
+

Myanmar. +

+
MN
+

Mongolia. +

+
MO
+

Macao. +

+
MP
+

Northern Mariana Islands. +

+
MQ
+

Martinique. +

+
MR
+

Mauritania. +

+
MS
+

Montserrat. +

+
MT
+

Malta. +

+
MU
+

Mauritius. +

+
MV
+

Maldives. +

+
MW
+

Malawi. +

+
MX
+

Mexico. +

+
MY
+

Malaysia. +

+
MZ
+

Mozambique. +

+
NA
+

Namibia. +

+
NC
+

New Caledonia. +

+
NE
+

Niger. +

+
NF
+

Norfolk Island. +

+
NG
+

Nigeria. +

+
NI
+

Nicaragua. +

+
NL
+

Netherlands. +

+
NO
+

Norway. +

+
NP
+

Nepal. +

+
NR
+

Nauru. +

+
NU
+

Niue. +

+
NZ
+

New Zealand. +

+
OM
+

Oman. +

+
PA
+

Panama. +

+
PE
+

Peru. +

+
PF
+

French Polynesia. +

+
PG
+

Papua New Guinea. +

+
PH
+

Philippines. +

+
PK
+

Pakistan. +

+
PL
+

Poland. +

+
PM
+

Saint Pierre and Miquelon. +

+
PN
+

Pitcairn. +

+
PR
+

Puerto Rico. +

+
PS
+

Palestine, State of. +

+
PT
+

Portugal. +

+
PW
+

Palau. +

+
PY
+

Paraguay. +

+
QA
+

Qatar. +

+
RE
+

Reunion. +

+
RO
+

Romania. +

+
RS
+

Serbia. +

+
RU
+

Russian Federation. +

+
RW
+

Rwanda. +

+
SA
+

Saudi Arabia. +

+
SB
+

Solomon Islands. +

+
SC
+

Seychelles. +

+
SD
+

Sudan. +

+
SE
+

Sweden. +

+
SG
+

Singapore. +

+
SH
+

Saint Helena, Ascension and Tristan da Cunha. +

+
SI
+

Slovenia. +

+
SJ
+

Svalbard and Jan Mayen. +

+
SK
+

Slovakia. +

+
SL
+

Sierra Leone. +

+
SM
+

San Marino. +

+
SN
+

Senegal. +

+
SO
+

Somalia. +

+
SR
+

Suriname. +

+
SS
+

South Sudan. +

+
ST
+

Sao Tome and Principe. +

+
SV
+

El Salvador. +

+
SX
+

Sint Maarten (Dutch part). +

+
SY
+

Syrian Arab Republic. +

+
SZ
+

Swaziland. +

+
TC
+

Turks and Caicos Islands. +

+
TD
+

Chad. +

+
TF
+

French Southern Territories. +

+
TG
+

Togo. +

+
TH
+

Thailand. +

+
TJ
+

Tajikistan. +

+
TK
+

Tokelau. +

+
TL
+

Timor-Leste. +

+
TM
+

Turkmenistan. +

+
TN
+

Tunisia. +

+
TO
+

Tonga. +

+
TR
+

Türkiye. +

+
TT
+

Trinidad and Tobago. +

+
TV
+

Tuvalu. +

+
TW
+

Taiwan, Province of China. +

+
TZ
+

Tanzania, United Republic of. +

+
UA
+

Ukraine. +

+
UG
+

Uganda. +

+
UM
+

United States Minor Outlying Islands. +

+
US
+

United States. +

+
UY
+

Uruguay. +

+
UZ
+

Uzbekistan. +

+
VA
+

Holy See (Vatican City State). +

+
VC
+

Saint Vincent and the Grenadines. +

+
VE
+

Venezuela, Bolivarian Republic of. +

+
VG
+

Virgin Islands, British. +

+
VI
+

Virgin Islands, U.S.. +

+
VN
+

Viet Nam. +

+
VU
+

Vanuatu. +

+
WF
+

Wallis and Futuna. +

+
WS
+

Samoa. +

+
YE
+

Yemen. +

+
YT
+

Mayotte. +

+
ZA
+

South Africa. +

+
ZM
+

Zambia. +

+
ZW
+

Zimbabwe. +

+
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_2.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_2.html new file mode 100644 index 000000000..4db7277a1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_2.html @@ -0,0 +1,375 @@ + + + + + +GNU gettext utilities: 2. The User's View + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

2. The User's View

+ +

Nowadays, when users log into a computer, they usually find that all +their programs show messages in their native language – at least for +users of languages with an active free software community, like French or +German; to a lesser extent for languages with a smaller participation in +free software and the GNU project, like Hindi and Filipino. +

+

How does this work? How can the user influence the language that is used +by the programs? This chapter will answer it. +

+ + + + +

2.1 Operating System Installation

+ +

The default language is often already specified during operating system +installation. When the operating system is installed, the installer +typically asks for the language used for the installation process and, +separately, for the language to use in the installed system. Some OS +installers only ask for the language once. +

+

This determines the system-wide default language for all users. But the +installers often give the possibility to install extra localizations for +additional languages. For example, the localizations of KDE (the K +Desktop Environment) and LibreOffice are often bundled separately, as one +installable package per language. +

+

At this point it is good to consider the intended use of the machine: If +it is a machine designated for personal use, additional localizations are +probably not necessary. If, however, the machine is in use in an +organization or company that has international relationships, one can +consider the needs of guest users. If you have a guest from abroad, for +a week, what could be his preferred locales? It may be worth installing +these additional localizations ahead of time, since they cost only a bit +of disk space at this point. +

+

The system-wide default language is the locale configuration that is used +when a new user account is created. But the user can have his own locale +configuration that is different from the one of the other users of the +same machine. He can specify it, typically after the first login, as +described in the next section. +

+ + + +

2.2 Setting the Locale Used by GUI Programs

+ +

The immediately available programs in a user's desktop come from a group +of programs called a “desktop environment”; it usually includes the window +manager, a web browser, a text editor, and more. The most common free +desktop environments are KDE, GNOME, and Xfce. +

+

The locale used by GUI programs of the desktop environment can be specified +in a configuration screen called “control center”, “language settings” +or “country settings”. +

+

Individual GUI programs that are not part of the desktop environment can +have their locale specified either in a settings panel, or through environment +variables. +

+

For some programs, it is possible to specify the locale through environment +variables, possibly even to a different locale than the desktop's locale. +This means, instead of starting a program through a menu or from the file +system, you can start it from the command-line, after having set some +environment variables. The environment variables can be those specified +in the next section (Setting the Locale through Environment Variables); for some versions of +KDE, however, the locale is specified through a variable KDE_LANG, +rather than LANG or LC_ALL. +

+ + + +

2.3 Setting the Locale through Environment Variables

+ +

As a user, if your language has been installed for this package, in the +simplest case, you only have to set the LANG environment variable +to the appropriate ‘ll_CC’ combination. For example, +let's suppose that you speak German and live in Germany. At the shell +prompt, merely execute +‘setenv LANG de_DE’ (in csh), +‘export LANG; LANG=de_DE’ (in sh) or +‘export LANG=de_DE’ (in bash). This can be done from your +‘.login’ or ‘.profile’ file, once and for all. +

+ + + + +

2.3.1 Locale Names

+ +

A locale name usually has the form ‘ll_CC’. Here +‘ll’ is an ISO 639 two-letter language code, and +‘CC’ is an ISO 3166 two-letter country code. For example, +for German in Germany, ll is de, and CC is DE. +You find a list of the language codes in appendix Language Codes and +a list of the country codes in appendix Country Codes. +

+

You might think that the country code specification is redundant. But in +fact, some languages have dialects in different countries. For example, +‘de_AT’ is used for Austria, and ‘pt_BR’ for Brazil. The country +code serves to distinguish the dialects. +

+

Many locale names have an extended syntax +‘ll_CC.encoding’ that also specifies the character +encoding. These are in use because between 2000 and 2005, most users have +switched to locales in UTF-8 encoding. For example, the German locale on +glibc systems is nowadays ‘de_DE.UTF-8’. The older name ‘de_DE’ +still refers to the German locale as of 2000 that stores characters in +ISO-8859-1 encoding – a text encoding that cannot even accommodate the Euro +currency sign. +

+

Some locale names use ‘ll_CC@variant’ instead of +‘ll_CC’. The ‘@variant’ can denote any kind of +characteristics that is not already implied by the language ll and +the country CC. It can denote a particular monetary unit. For example, +on glibc systems, ‘de_DE@euro’ denotes the locale that uses the Euro +currency, in contrast to the older locale ‘de_DE’ which implies the use +of the currency before 2002. It can also denote a dialect of the language, +or the script used to write text (for example, ‘sr_RS@latin’ uses the +Latin script, whereas ‘sr_RS’ uses the Cyrillic script to write Serbian), +or the orthography rules, or similar. +

+

On other systems, some variations of this scheme are used, such as +‘ll’. You can get the list of locales supported by your system +for your language by running the command ‘locale -a | grep '^ll'’. +

+

There is also a special locale, called ‘C’. +When it is used, it disables all localization: in this locale, all programs +standardized by POSIX use English messages and an unspecified character +encoding (often US-ASCII, but sometimes also ISO-8859-1 or UTF-8, depending on +the operating system). +

+ + + +

2.3.2 Locale Environment Variables

+ +

A locale is composed of several locale categories, see Aspects in Native Language Support. +When a program looks up locale dependent values, it does this according to +the following environment variables, in priority order: +

+
    +
  1. +
  2. LANGUAGE + +
  3. LC_ALL + + + + + + +
  4. LC_xxx, according to selected locale category: +LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, +LC_MONETARY, LC_MESSAGES, ... + +
  5. LANG +
+ +

Variables whose value is set but is empty are ignored in this lookup. +

+

LANG is the normal environment variable for specifying a locale. +As a user, you normally set this variable (unless some of the other variables +have already been set by the system, in ‘/etc/profile’ or similar +initialization files). +

+

LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, +LC_MONETARY, LC_MESSAGES, and so on, are the environment +variables meant to override LANG and affecting a single locale +category only. For example, assume you are a Swedish user in Spain, and you +want your programs to handle numbers and dates according to Spanish +conventions, and only the messages should be in Swedish. Then you could +create a locale named ‘sv_ES’ or ‘sv_ES.UTF-8’ by use of the +localedef program. But it is simpler, and achieves the same effect, +to set the LANG variable to es_ES.UTF-8 and the +LC_MESSAGES variable to sv_SE.UTF-8; these two locales come +already preinstalled with the operating system. +

+

LC_ALL is an environment variable that overrides all of these. +It is typically used in scripts that run particular programs. For example, +configure scripts generated by GNU autoconf use LC_ALL to make +sure that the configuration tests don't operate in locale dependent ways. +

+

Some systems, unfortunately, set LC_ALL in ‘/etc/profile’ or in +similar initialization files. As a user, you therefore have to unset this +variable if you want to set LANG and optionally some of the other +LC_xxx variables. +

+

The LANGUAGE variable is described in the next subsection. +

+ + + +

2.3.3 Specifying a Priority List of Languages

+ +

Not all programs have translations for all languages. By default, an +English message is shown in place of a nonexistent translation. If you +understand other languages, you can set up a priority list of languages. +This is done through a different environment variable, called +LANGUAGE. GNU gettext gives preference to LANGUAGE +over LC_ALL and LANG for the purpose of message handling, +but you still need to have LANG (or LC_ALL) set to the primary +language; this is required by other parts of the system libraries. +For example, some Swedish users who would rather read translations in +German than English for when Swedish is not available, set LANGUAGE +to ‘sv:de’ while leaving LANG to ‘sv_SE’. +

+

Special advice for Norwegian users: The language code for Norwegian +bokmål changed from ‘no’ to ‘nb’ recently (in 2003). +During the transition period, while some message catalogs for this language +are installed under ‘nb’ and some older ones under ‘no’, it is +recommended for Norwegian users to set LANGUAGE to ‘nb:no’ so that +both newer and older translations are used. +

+

In the LANGUAGE environment variable, but not in the other +environment variables, ‘ll_CC’ combinations can be +abbreviated as ‘ll’ to denote the language's main dialect. +For example, ‘de’ is equivalent to ‘de_DE’ (German as spoken in +Germany), and ‘pt’ to ‘pt_PT’ (Portuguese as spoken in Portugal) +in this context. +

+

Note: The variable LANGUAGE is ignored if the locale is set to +‘C’. In other words, you have to first enable localization, by setting +LANG (or LC_ALL) to a value other than ‘C’, before you can +use a language priority list through the LANGUAGE variable. +

+ + + +

2.4 Obtaining good output in a Windows console

+ +

On Windows, consoles such as the one started by the cmd.exe +program do input and output in an encoding, called “OEM code page”, +that is different from the encoding that text-mode programs usually use, +called “ANSI code page”. (Note: This problem does not exist for +Cygwin consoles; these consoles do input and output in the UTF-8 +encoding.) As a workaround, you may request that the programs produce +output in this “OEM” encoding. To do so, set the environment variable +OUTPUT_CHARSET to the “OEM” encoding, through a command such as +

 
set OUTPUT_CHARSET=CP850
+
+

Note: This has an effect only on strings looked up in message catalogs; +other categories of text are usually not affected by this setting. +Note also that this environment variable also affects output sent to a +file or to a pipe; output to a file is most often expected to be in the +“ANSI” or in the UTF-8 encoding. +

+

Here are examples of the “ANSI” and “OEM” code pages: +

+ + + + + + +

Territories  

  ANSI encoding  

  OEM encoding +

Western Europe  

  CP1252  

  CP850 +

Slavic countries (Latin 2)  

  CP1250  

  CP852 +

Baltic countries  

  CP1257  

  CP775 +

Russia  

  CP1251  

  CP866 +

+ + + + +

2.5 Installing Translations for Particular Programs

+ +

Languages are not equally well supported in all packages using GNU +gettext, and more translations are added over time. Usually, you +use the translations that are shipped with the operating system +or with particular packages that you install afterwards. But you can also +install newer localizations directly. For doing this, you will need an +understanding where each localization file is stored on the file system. +

+ +

For programs that participate in the Translation Project, you can start +looking for translations here: +https://translationproject.org/team/index.html. +

+

For programs that are part of the KDE project, the starting point is: +https://l10n.kde.org/. +

+

For programs that are part of the GNOME project, the starting point is: +https://wiki.gnome.org/TranslationProject. +

+

For other programs, you may check whether the program's source code package +contains some ‘ll.po’ files; often they are kept together in a +directory called ‘po/’. Each ‘ll.po’ file contains the +message translations for the language whose abbreviation of ll. +

+ + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_20.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_20.html new file mode 100644 index 000000000..6ddc8aa2a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_20.html @@ -0,0 +1,1492 @@ + + + + + +GNU gettext utilities: C. Licenses + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

C. Licenses

+ +

The files of this package are covered by the licenses indicated in each +particular file or directory. Here is a summary: +

+
    +
  • +The libintl and libasprintf libraries are covered by the +GNU Lesser General Public License (LGPL). +A copy of the license is included in GNU LESSER GENERAL PUBLIC LICENSE. + +
  • +The executable programs of this package and the libgettextpo library +are covered by the GNU General Public License (GPL). +A copy of the license is included in GNU GENERAL PUBLIC LICENSE. + +
  • +This manual is free documentation. It is dually licensed under the +GNU FDL and the GNU GPL. This means that you can redistribute this +manual under either of these two licenses, at your choice. +
    +This manual is covered by the GNU FDL. Permission is granted to copy, +distribute and/or modify this document under the terms of the +GNU Free Documentation License (FDL), either version 1.2 of the +License, or (at your option) any later version published by the +Free Software Foundation (FSF); with no Invariant Sections, with no +Front-Cover Text, and with no Back-Cover Texts. +A copy of the license is included in GNU Free Documentation License. +
    +This manual is covered by the GNU GPL. You can redistribute it and/or +modify it under the terms of the GNU General Public License (GPL), either +version 2 of the License, or (at your option) any later version published +by the Free Software Foundation (FSF). +A copy of the license is included in GNU GENERAL PUBLIC LICENSE. +
+ + + + + + +

C.1 GNU GENERAL PUBLIC LICENSE

+

Version 2, June 1991 +

+ +
 
Copyright © 1989, 1991 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ + +

Preamble

+ +

The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software—to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. +

+

When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. +

+

To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. +

+

For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. +

+

We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. +

+

Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. +

+

Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. +

+

The precise terms and conditions for copying, distribution and +modification follow. +

+ +

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

+ +
    +
  1. +This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The “Program”, below, +refers to any such program or work, and a “work based on the Program” +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term “modification”.) Each licensee is addressed as “you”. + +

    Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. +

    +
  2. +You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +

    You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. +

    +
  3. +You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +
      +
    1. +You must cause the modified files to carry prominent notices +stating that you changed the files and the date of any change. + +
    2. +You must cause any work that you distribute or publish, that in +whole or in part contains or is derived from the Program or any +part thereof, to be licensed as a whole at no charge to all third +parties under the terms of this License. + +
    3. +If the modified program normally reads commands interactively +when run, you must cause it, when started running for such +interactive use in the most ordinary way, to print or display an +announcement including an appropriate copyright notice and a +notice that there is no warranty (or else, saying that you provide +a warranty) and that users may redistribute the program under +these conditions, and telling the user how to view a copy of this +License. (Exception: if the Program itself is interactive but +does not normally print such an announcement, your work based on +the Program is not required to print an announcement.) +
    + +

    These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. +

    +

    Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. +

    +

    In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. +

    +
  4. +You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + +
      +
    1. +Accompany it with the complete corresponding machine-readable +source code, which must be distributed under the terms of Sections +1 and 2 above on a medium customarily used for software interchange; or, + +
    2. +Accompany it with a written offer, valid for at least three +years, to give any third party, for a charge no more than your +cost of physically performing source distribution, a complete +machine-readable copy of the corresponding source code, to be +distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, + +
    3. +Accompany it with the information you received as to the offer +to distribute corresponding source code. (This alternative is +allowed only for noncommercial distribution and only if you +received the program in object code or executable form with such +an offer, in accord with Subsection b above.) +
    + +

    The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. +

    +

    If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. +

    +
  5. +You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + +
  6. +You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +
  7. +Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +
  8. +If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +

    If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. +

    +

    It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. +

    +

    This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. +

    +
  9. +If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + +
  10. +The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +

    Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and “any +later version”, you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. +

    +
  11. +If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + +
  12. +BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +
  13. +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. +
+ + + + +

Appendix: How to Apply These Terms to Your New Programs

+ +

If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. +

+

To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the “copyright” line and a pointer to where the full notice is found. +

+
 
one line to give the program's name and a brief idea of what it does.
+Copyright (C) yyyy  name of author
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+ +

Also add information on how to contact you by electronic and paper mail. +

+

If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: +

+
 
Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+ +

The hypothetical commands ‘show w’ and ‘show c’ should show +the appropriate parts of the General Public License. Of course, the +commands you use may be called something other than ‘show w’ and +‘show c’; they could even be mouse-clicks or menu items—whatever +suits your program. +

+

You should also get your employer (if you work as a programmer) or your +school, if any, to sign a “copyright disclaimer” for the program, if +necessary. Here is a sample; alter the names: +

+
 
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+signature of Ty Coon, 1 April 1989
+Ty Coon, President of Vice
+
+ +

This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + +

+ + +

C.2 GNU LESSER GENERAL PUBLIC LICENSE

+

Version 2.1, February 1999 +

+ +
 
Copyright © 1991, 1999 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+as the successor of the GNU Library Public License, version 2, hence the
+version number 2.1.]
+
+ + +

Preamble

+ +

The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software—to make sure the software is free for all its users. +

+

This license, the Lesser General Public License, applies to some +specially designated software—typically libraries—of the Free +Software Foundation and other authors who decide to use it. You can use +it too, but we suggest you first think carefully about whether this +license or the ordinary General Public License is the better strategy to +use in any particular case, based on the explanations below. +

+

When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of it +in new free programs; and that you are informed that you can do these +things. +

+

To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. +

+

For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. +

+

We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. +

+

To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. +

+

Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. +

+

Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. +

+

When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. +

+

We call this license the Lesser General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. +

+

For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. +

+

In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. +

+

Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. +

+

The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +“work based on the library” and a “work that uses the library”. The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. +

+ +

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

+ +
    +
  1. +This License Agreement applies to any software library or other program +which contains a notice placed by the copyright holder or other +authorized party saying it may be distributed under the terms of this +Lesser General Public License (also called “this License”). Each +licensee is addressed as “you”. + +

    A “library” means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. +

    +

    The “Library”, below, refers to any such software library or work +which has been distributed under these terms. A “work based on the +Library” means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term “modification”.) +

    +

    “Source code” for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. +

    +

    Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. +

    +
  2. +You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + +

    You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. +

    +
  3. +You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +
      +
    1. +The modified work must itself be a software library. + +
    2. +You must cause the files modified to carry prominent notices +stating that you changed the files and the date of any change. + +
    3. +You must cause the whole of the work to be licensed at no +charge to all third parties under the terms of this License. + +
    4. +If a facility in the modified Library refers to a function or a +table of data to be supplied by an application program that uses +the facility, other than as an argument passed when the facility +is invoked, then you must make a good faith effort to ensure that, +in the event an application does not supply such function or +table, the facility still operates, and performs whatever part of +its purpose remains meaningful. + +

      (For example, a function in a library to compute square roots has +a purpose that is entirely well-defined independent of the +application. Therefore, Subsection 2d requires that any +application-supplied function or table used by this function must +be optional: if the application does not supply it, the square +root function must still compute square roots.) +

    + +

    These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. +

    +

    Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. +

    +

    In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. +

    +
  4. +You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + +

    Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. +

    +

    This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. +

    +
  5. +You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + +

    If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. +

    +
  6. +A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a “work that uses the Library”. Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + +

    However, linking a “work that uses the Library” with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a “work that uses the +library”. The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. +

    +

    When a “work that uses the Library” uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. +

    +

    If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) +

    +

    Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. +

    +
  7. +As an exception to the Sections above, you may also combine or +link a “work that uses the Library” with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + +

    You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: +

    +
      +
    1. +Accompany the work with the complete corresponding +machine-readable source code for the Library including whatever +changes were used in the work (which must be distributed under +Sections 1 and 2 above); and, if the work is an executable linked +with the Library, with the complete machine-readable “work that +uses the Library”, as object code and/or source code, so that the +user can modify the Library and then relink to produce a modified +executable containing the modified Library. (It is understood +that the user who changes the contents of definitions files in the +Library will not necessarily be able to recompile the application +to use the modified definitions.) + +
    2. +Use a suitable shared library mechanism for linking with the Library. A +suitable mechanism is one that (1) uses at run time a copy of the +library already present on the user's computer system, rather than +copying library functions into the executable, and (2) will operate +properly with a modified version of the library, if the user installs +one, as long as the modified version is interface-compatible with the +version that the work was made with. + +
    3. +Accompany the work with a written offer, valid for at +least three years, to give the same user the materials +specified in Subsection 6a, above, for a charge no more +than the cost of performing this distribution. + +
    4. +If distribution of the work is made by offering access to copy +from a designated place, offer equivalent access to copy the above +specified materials from the same place. + +
    5. +Verify that the user has already received a copy of these +materials or that you have already sent this user a copy. +
    + +

    For an executable, the required form of the “work that uses the +Library” must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies the +executable. +

    +

    It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. +

    +
  8. +You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + +
      +
    1. +Accompany the combined library with a copy of the same work +based on the Library, uncombined with any other library +facilities. This must be distributed under the terms of the +Sections above. + +
    2. +Give prominent notice with the combined library of the fact +that part of it is a work based on the Library, and explaining +where to find the accompanying uncombined form of the same work. +
    + +
  9. +You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + +
  10. +You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + +
  11. +Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + +
  12. +If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +

    If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. +

    +

    It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. +

    +

    This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. +

    +
  13. +If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + +
  14. +The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +

    Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +“any later version”, you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. +

    +
  15. +If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + +

    NO WARRANTY +

    +
  16. +BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY “AS IS” WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +
  17. +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. +
+ + +

END OF TERMS AND CONDITIONS

+ + + +

How to Apply These Terms to Your New Libraries

+ +

If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). +

+

To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +“copyright” line and a pointer to where the full notice is found. +

+
 
one line to give the library's name and an idea of what it does.
+Copyright (C) year  name of author
+
+This library is free software; you can redistribute it and/or modify it
+under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or (at
+your option) any later version.
+
+This library is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+USA.
+
+ +

Also add information on how to contact you by electronic and paper mail. +

+

You should also get your employer (if you work as a programmer) or your +school, if any, to sign a “copyright disclaimer” for the library, if +necessary. Here is a sample; alter the names: +

+
 
Yoyodyne, Inc., hereby disclaims all copyright interest in the library
+`Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+signature of Ty Coon, 1 April 1990
+Ty Coon, President of Vice
+
+ +

That's all there is to it! + +

+ + +

C.3 GNU Free Documentation License

+

Version 1.2, November 2002 +

+ +
 
Copyright © 2000,2001,2002 Free Software Foundation, Inc.
+51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ +
    +
  1. +PREAMBLE + +

    The purpose of this License is to make a manual, textbook, or other +functional and useful document free in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. +

    +

    This License is a kind of “copyleft”, which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. +

    +

    We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. +

    +
  2. +APPLICABILITY AND DEFINITIONS + +

    This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The “Document”, below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as “you”. You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. +

    +

    A “Modified Version” of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. +

    +

    A “Secondary Section” is a named appendix or a front-matter section +of the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall +subject (or to related matters) and contains nothing that could fall +directly within that overall subject. (Thus, if the Document is in +part a textbook of mathematics, a Secondary Section may not explain +any mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. +

    +

    The “Invariant Sections” are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. +

    +

    The “Cover Texts” are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. +

    +

    A “Transparent” copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not “Transparent” is called “Opaque”. +

    +

    Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input +format, SGML or XML using a publicly available +DTD, and standard-conforming simple HTML, +PostScript or PDF designed for human modification. Examples +of transparent image formats include PNG, XCF and +JPG. Opaque formats include proprietary formats that can be +read and edited only by proprietary word processors, SGML or +XML for which the DTD and/or processing tools are +not generally available, and the machine-generated HTML, +PostScript or PDF produced by some word processors for +output purposes only. +

    +

    The “Title Page” means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, “Title Page” means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. +

    +

    A section “Entitled XYZ” means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as “Acknowledgements”, +“Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” +of such a section when you modify the Document means that it remains a +section “Entitled XYZ” according to this definition. +

    +

    The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. +

    +
  3. +VERBATIM COPYING + +

    You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. +

    +

    You may also lend copies, under the same conditions stated above, and +you may publicly display copies. +

    +
  4. +COPYING IN QUANTITY + +

    If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. +

    +

    If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. +

    +

    If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. +

    +

    It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. +

    +
  5. +MODIFICATIONS + +

    You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: +

    +
      +
    1. +Use in the Title Page (and on the covers, if any) a title distinct +from that of the Document, and from those of previous versions +(which should, if there were any, be listed in the History section +of the Document). You may use the same title as a previous version +if the original publisher of that version gives permission. + +
    2. +List on the Title Page, as authors, one or more persons or entities +responsible for authorship of the modifications in the Modified +Version, together with at least five of the principal authors of the +Document (all of its principal authors, if it has fewer than five), +unless they release you from this requirement. + +
    3. +State on the Title page the name of the publisher of the +Modified Version, as the publisher. + +
    4. +Preserve all the copyright notices of the Document. + +
    5. +Add an appropriate copyright notice for your modifications +adjacent to the other copyright notices. + +
    6. +Include, immediately after the copyright notices, a license notice +giving the public permission to use the Modified Version under the +terms of this License, in the form shown in the Addendum below. + +
    7. +Preserve in that license notice the full lists of Invariant Sections +and required Cover Texts given in the Document's license notice. + +
    8. +Include an unaltered copy of this License. + +
    9. +Preserve the section Entitled “History”, Preserve its Title, and add +to it an item stating at least the title, year, new authors, and +publisher of the Modified Version as given on the Title Page. If +there is no section Entitled “History” in the Document, create one +stating the title, year, authors, and publisher of the Document as +given on its Title Page, then add an item describing the Modified +Version as stated in the previous sentence. + +
    10. +Preserve the network location, if any, given in the Document for +public access to a Transparent copy of the Document, and likewise +the network locations given in the Document for previous versions +it was based on. These may be placed in the “History” section. +You may omit a network location for a work that was published at +least four years before the Document itself, or if the original +publisher of the version it refers to gives permission. + +
    11. +For any section Entitled “Acknowledgements” or “Dedications”, Preserve +the Title of the section, and preserve in the section all the +substance and tone of each of the contributor acknowledgements and/or +dedications given therein. + +
    12. +Preserve all the Invariant Sections of the Document, +unaltered in their text and in their titles. Section numbers +or the equivalent are not considered part of the section titles. + +
    13. +Delete any section Entitled “Endorsements”. Such a section +may not be included in the Modified Version. + +
    14. +Do not retitle any existing section to be Entitled “Endorsements” or +to conflict in title with any Invariant Section. + +
    15. +Preserve any Warranty Disclaimers. +
    + +

    If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. +

    +

    You may add a section Entitled “Endorsements”, provided it contains +nothing but endorsements of your Modified Version by various +parties—for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. +

    +

    You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. +

    +

    The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. +

    +
  6. +COMBINING DOCUMENTS + +

    You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. +

    +

    The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. +

    +

    In the combination, you must combine any sections Entitled “History” +in the various original documents, forming one section Entitled +“History”; likewise combine any sections Entitled “Acknowledgements”, +and any sections Entitled “Dedications”. You must delete all +sections Entitled “Endorsements.” +

    +
  7. +COLLECTIONS OF DOCUMENTS + +

    You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. +

    +

    You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. +

    +
  8. +AGGREGATION WITH INDEPENDENT WORKS + +

    A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an “aggregate” if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. +

    +

    If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. +

    +
  9. +TRANSLATION + +

    Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. +

    +

    If a section in the Document is Entitled “Acknowledgements”, +“Dedications”, or “History”, the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. +

    +
  10. +TERMINATION + +

    You may not copy, modify, sublicense, or distribute the Document except +as expressly provided for under this License. Any other attempt to +copy, modify, sublicense or distribute the Document is void, and will +automatically terminate your rights under this License. However, +parties who have received copies, or rights, from you under this +License will not have their licenses terminated so long as such +parties remain in full compliance. +

    +
  11. +FUTURE REVISIONS OF THIS LICENSE + +

    The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. See +https://www.gnu.org/copyleft/. +

    +

    Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License “or any later version” applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. +

+ + + +

ADDENDUM: How to use this License for your documents

+ +

To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: +

+
 
  Copyright (C)  year  your name.
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.2
+  or any later version published by the Free Software Foundation;
+  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+  Texts.  A copy of the license is included in the section entitled ``GNU
+  Free Documentation License''.
+
+ +

If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, +replace the “with…Texts.” line with this: +

+
 
    with the Invariant Sections being list their titles, with
+    the Front-Cover Texts being list, and with the Back-Cover Texts
+    being list.
+
+ +

If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. +

+

If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. +

+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_21.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_21.html new file mode 100644 index 000000000..f25bf21b1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_21.html @@ -0,0 +1,171 @@ + + + + + +GNU gettext utilities: Program Index + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

Program Index

+ +
Jump to:   A +   +B +   +E +   +G +   +M +   +N +   +Q +   +R +   +X +   +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Index Entry Section

A
autopoint13.6.4 Invoking the autopoint Program

B
boldquot9.4.5 Built-in filters

E
envsubst15.5.12.5 Invoking the envsubst program

G
gettext15.5.12 sh - Shell Script
gettext15.5.12.3 Invoking the gettext program
gettextize13.3 Invoking the gettextize Program

M
msgattrib9.8 Invoking the msgattrib Program
msgcat9.1 Invoking the msgcat Program
msgcmp9.7 Invoking the msgcmp Program
msgcomm9.6 Invoking the msgcomm Program
msgconv9.2 Invoking the msgconv Program
msgen9.9 Invoking the msgen Program
msgexec9.10 Invoking the msgexec Program
msgfilter9.4 Invoking the msgfilter Program
msgfmt10.1 Invoking the msgfmt Program
msggrep9.3 Invoking the msggrep Program
msginit6.1 Invoking the msginit Program
msgmerge7.1 Invoking the msgmerge Program
msgunfmt10.2 Invoking the msgunfmt Program
msguniq9.5 Invoking the msguniq Program

N
ngettext15.5.12 sh - Shell Script
ngettext15.5.12.4 Invoking the ngettext program

Q
quot9.4.5 Built-in filters

R
recode-sr-latin9.4.5 Built-in filters

X
xgettext5.1 Invoking the xgettext Program

+
Jump to:   A +   +B +   +E +   +G +   +M +   +N +   +Q +   +R +   +X +   +
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_22.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_22.html new file mode 100644 index 000000000..068aa2a3a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_22.html @@ -0,0 +1,728 @@ + + + + + +GNU gettext utilities: Option Index + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

Option Index

+ +
Jump to:   - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Index Entry Section

-
-<, msgcat option9.1.3 Message selection
-<, msgcomm option9.6.3 Message selection
->, msgcat option9.1.3 Message selection
->, msgcomm option9.6.3 Message selection
-a, msgfmt option10.1.11 Output details
-a, xgettext option5.1.6 Language specific options
--add-comments, xgettext option5.1.5 Operation mode
--add-location, msgattrib option9.8.6 Output details
--add-location, msgcat option9.1.5 Output details
--add-location, msgcomm option9.6.5 Output details
--add-location, msgconv option9.2.5 Output details
--add-location, msgen option9.9.4 Output details
--add-location, msgfilter option9.4.7 Output details
--add-location, msggrep option9.3.5 Output details
--add-location, msgmerge option7.1.7 Output details
--add-location, msguniq option9.5.5 Output details
--add-location, xgettext option5.1.7 Output details
--alignment, msgfmt option10.1.11 Output details
--backup, msgmerge option7.1.4 Output file location in update mode
--boost, xgettext option5.1.6 Language specific options
--c++, xgettext option5.1.3 Choice of input file language
-c, gettext option15.5.12.3 Invoking the gettext program
-c, msgfmt option10.1.10 Input file interpretation
-C, msgfmt option10.1.10 Input file interpretation
-C, msggrep option9.3.3 Message selection
-C, msgmerge option7.1.1 Input file location
-c, ngettext option15.5.12.4 Invoking the ngettext program
-C, xgettext option5.1.3 Choice of input file language
-c, xgettext option5.1.5 Operation mode
--check, msgfmt option10.1.10 Input file interpretation
--check, xgettext option5.1.5 Operation mode
--check-accelerators, msgfmt option10.1.10 Input file interpretation
--check-compatibility, msgfmt option10.1.10 Input file interpretation
--check-domain, msgfmt option10.1.10 Input file interpretation
--check-format, msgfmt option10.1.10 Input file interpretation
--check-header, msgfmt option10.1.10 Input file interpretation
--clear-fuzzy, msgattrib option9.8.4 Attribute manipulation
--clear-obsolete, msgattrib option9.8.4 Attribute manipulation
--clear-previous, msgattrib option9.8.4 Attribute manipulation
--color, msgattrib option9.8.6 Output details
--color, msgcat option9.1.5 Output details
--color, msgcat option9.11.1 The --color option
--color, msgcomm option9.6.5 Output details
--color, msgconv option9.2.5 Output details
--color, msgen option9.9.4 Output details
--color, msgfilter option9.4.7 Output details
--color, msggrep option9.3.5 Output details
--color, msginit option6.1.4 Output details
--color, msgmerge option7.1.7 Output details
--color, msgunfmt option10.2.7 Output details
--color, msguniq option9.5.5 Output details
--color, xgettext option5.1.7 Output details
--comment, msggrep option9.3.3 Message selection
--compendium, msgmerge option7.1.1 Input file location
--context, gettext option15.5.12.3 Invoking the gettext program
--context, ngettext option15.5.12.4 Invoking the ngettext program
--copyright-holder, xgettext option5.1.7 Output details
--csharp, msgfmt option10.1.2 Operation mode
--csharp, msgunfmt option10.2.1 Operation mode
--csharp-resources, msgfmt option10.1.2 Operation mode
--csharp-resources, msgunfmt option10.2.1 Operation mode
-d, autopoint option13.6.4.1 Options
-d, gettext option15.5.12.3 Invoking the gettext program
-d, gettextize option13.3 Invoking the gettextize Program
-D, msgattrib option9.8.1 Input file location
-D, msgcat option9.1.1 Input file location
-D, msgcmp option9.7.1 Input file location
-D, msgcomm option9.6.1 Input file location
-D, msgconv option9.2.1 Input file location
-D, msgen option9.9.1 Input file location
-D, msgexec option9.10.1 Input file location
-D, msgfilter option9.4.1 Input file location
-d, msgfmt option10.1.4 Output file location in Java mode
-D, msgfmt option10.1.1 Input file location
-d, msgfmt option10.1.5 Output file location in C# mode
-d, msgfmt option10.1.6 Output file location in Tcl mode
-d, msgfmt option10.1.7 Desktop Entry mode operations
-d, msgfmt option10.1.8 XML mode operations
-D, msggrep option9.3.1 Input file location
-D, msgmerge option7.1.1 Input file location
-d, msgunfmt option10.2.4 Input file location in C# mode
-d, msgunfmt option10.2.5 Input file location in Tcl mode
-d, msguniq option9.5.3 Message selection
-D, msguniq option9.5.1 Input file location
-d, ngettext option15.5.12.4 Invoking the ngettext program
-d, xgettext option5.1.2 Output file location
-D, xgettext option5.1.1 Input file location
--debug, xgettext option5.1.6 Language specific options
--default-domain, xgettext option5.1.2 Output file location
--desktop, msgfmt option10.1.2 Operation mode
--directory, msgattrib option9.8.1 Input file location
--directory, msgcat option9.1.1 Input file location
--directory, msgcmp option9.7.1 Input file location
--directory, msgcomm option9.6.1 Input file location
--directory, msgconv option9.2.1 Input file location
--directory, msgen option9.9.1 Input file location
--directory, msgexec option9.10.1 Input file location
--directory, msgfilter option9.4.1 Input file location
--directory, msgfmt option10.1.1 Input file location
--directory, msggrep option9.3.1 Input file location
--directory, msgmerge option7.1.1 Input file location
--directory, msguniq option9.5.1 Input file location
--directory, xgettext option5.1.1 Input file location
--domain, gettext option15.5.12.3 Invoking the gettext program
--domain, msggrep option9.3.3 Message selection
--domain, ngettext option15.5.12.4 Invoking the ngettext program
--dry-run, autopoint option13.6.4.1 Options
--dry-run, gettextize option13.3 Invoking the gettextize Program
-e, gettext option15.5.12.3 Invoking the gettext program
-E, gettext option15.5.12.3 Invoking the gettext program
-e, msgfilter option9.4.4 Useful filter-options when the filter is ‘sed
-e, msggrep option9.3.3 Message selection
-E, msggrep option9.3.3 Message selection
-E, ngettext option15.5.12.4 Invoking the ngettext program
-e, ngettext option15.5.12.4 Invoking the ngettext program
--empty, msgattrib option9.8.4 Attribute manipulation
--endianness, msgfmt option10.1.11 Output details
--exclude-file, xgettext option5.1.5 Operation mode
--expression, msgfilter option9.4.4 Useful filter-options when the filter is ‘sed
--extended-regexp, msggrep option9.3.3 Message selection
--extract-all, xgettext option5.1.6 Language specific options
--extracted-comment, msggrep option9.3.3 Message selection
-f, autopoint option13.6.4.1 Options
-f, gettextize option13.3 Invoking the gettextize Program
-F, msgattrib option9.8.6 Output details
-f, msgcat option9.1.1 Input file location
-F, msgcat option9.1.5 Output details
-f, msgcomm option9.6.1 Input file location
-F, msgcomm option9.6.5 Output details
-F, msgconv option9.2.5 Output details
-F, msgen option9.9.4 Output details
-f, msgfilter option9.4.4 Useful filter-options when the filter is ‘sed
-F, msgfilter option9.4.7 Output details
-f, msgfmt option10.1.10 Input file interpretation
-f, msggrep option9.3.3 Message selection
-F, msggrep option9.3.3 Message selection
-F, msgmerge option7.1.7 Output details
-F, msguniq option9.5.5 Output details
-f, xgettext option5.1.1 Input file location
-F, xgettext option5.1.7 Output details
--file, msgfilter option9.4.4 Useful filter-options when the filter is ‘sed
--file, msggrep option9.3.3 Message selection
--files-from, msgcat option9.1.1 Input file location
--files-from, msgcomm option9.6.1 Input file location
--files-from, xgettext option5.1.1 Input file location
--fixed-strings, msggrep option9.3.3 Message selection
--flag, xgettext option5.1.6 Language specific options
--for-msgfmt, msgmerge option7.1.5 Operation modifiers
--force, autopoint option13.6.4.1 Options
--force, gettextize option13.3 Invoking the gettextize Program
--force-po, msgattrib option9.8.6 Output details
--force-po, msgcat option9.1.5 Output details
--force-po, msgcomm option9.6.5 Output details
--force-po, msgconv option9.2.5 Output details
--force-po, msgen option9.9.4 Output details
--force-po, msgfilter option9.4.7 Output details
--force-po, msggrep option9.3.5 Output details
--force-po, msgmerge option7.1.7 Output details
--force-po, msgunfmt option10.2.7 Output details
--force-po, msguniq option9.5.5 Output details
--force-po, xgettext option5.1.7 Output details
--foreign-user, xgettext option5.1.7 Output details
--from-code, xgettext option5.1.4 Input file interpretation
--fuzzy, msgattrib option9.8.4 Attribute manipulation
-h, envsubst option15.5.12.5 Invoking the envsubst program
-h, gettext option15.5.12.3 Invoking the gettext program
-h, msgattrib option9.8.7 Informative output
-h, msgcat option9.1.6 Informative output
-h, msgcmp option9.7.4 Informative output
-h, msgcomm option9.6.6 Informative output
-h, msgconv option9.2.6 Informative output
-h, msgen option9.9.5 Informative output
-h, msgexec option9.10.3 Informative output
-h, msgfilter option9.4.8 Informative output
-h, msgfmt option10.1.12 Informative output
-h, msggrep option9.3.6 Informative output
-h, msginit option6.1.5 Informative output
-h, msgmerge option7.1.8 Informative output
-h, msgunfmt option10.2.8 Informative output
-h, msguniq option9.5.6 Informative output
-h, ngettext option15.5.12.4 Invoking the ngettext program
-h, xgettext option5.1.8 Informative output
--help, autopoint option13.6.4.2 Informative output
--help, envsubst option15.5.12.5 Invoking the envsubst program
--help, gettext option15.5.12.3 Invoking the gettext program
--help, gettextize option13.3 Invoking the gettextize Program
--help, msgattrib option9.8.7 Informative output
--help, msgcat option9.1.6 Informative output
--help, msgcmp option9.7.4 Informative output
--help, msgcomm option9.6.6 Informative output
--help, msgconv option9.2.6 Informative output
--help, msgen option9.9.5 Informative output
--help, msgexec option9.10.3 Informative output
--help, msgfilter option9.4.8 Informative output
--help, msgfmt option10.1.12 Informative output
--help, msggrep option9.3.6 Informative output
--help, msginit option6.1.5 Informative output
--help, msgmerge option7.1.8 Informative output
--help, msgunfmt option10.2.8 Informative output
--help, msguniq option9.5.6 Informative output
--help, ngettext option15.5.12.4 Invoking the ngettext program
--help, xgettext option5.1.8 Informative output
-i, msgattrib option9.8.6 Output details
-i, msgcat option9.1.5 Output details
-i, msgcomm option9.6.5 Output details
-i, msgconv option9.2.5 Output details
-i, msgen option9.9.4 Output details
-i, msgexec option9.10.1 Input file location
-i, msgfilter option9.4.1 Input file location
-i, msggrep option9.3.3 Message selection
-i, msginit option6.1.1 Input file location
-i, msgmerge option7.1.7 Output details
-i, msgunfmt option10.2.7 Output details
-i, msguniq option9.5.5 Output details
-i, xgettext option5.1.7 Output details
--ignore-case, msggrep option9.3.3 Message selection
--ignore-file, msgattrib option9.8.4 Attribute manipulation
--indent, msgattrib option9.8.6 Output details
--indent, msgcat option9.1.5 Output details
--indent, msgcomm option9.6.5 Output details
--indent, msgconv option9.2.5 Output details
--indent, msgen option9.9.4 Output details
--indent, msgfilter option9.4.7 Output details
--indent, msggrep option9.3.5 Output details
--indent, msgmerge option7.1.7 Output details
--indent, msgunfmt option10.2.7 Output details
--indent, msguniq option9.5.5 Output details
--indent, xgettext option5.1.7 Output details
--input, msgexec option9.10.1 Input file location
--input, msgfilter option9.4.1 Input file location
--input, msginit option6.1.1 Input file location
--invert-match, msggrep option9.3.3 Message selection
--its, xgettext option5.1.7 Output details
--itstool, xgettext option5.1.7 Output details
-j, msgfmt option10.1.2 Operation mode
-J, msggrep option9.3.3 Message selection
-j, msgunfmt option10.2.1 Operation mode
-j, xgettext option5.1.5 Operation mode
--java, msgfmt option10.1.2 Operation mode
--java, msgunfmt option10.2.1 Operation mode
--java2, msgfmt option10.1.2 Operation mode
--join-existing, xgettext option5.1.5 Operation mode
-k, msgfmt option10.1.7 Desktop Entry mode operations
-K, msggrep option9.3.3 Message selection
-k, xgettext option5.1.6 Language specific options
--kde, xgettext option5.1.6 Language specific options
--keep-header, msgfilter option9.4.7 Output details
--keyword, msgfmt option10.1.7 Desktop Entry mode operations
--keyword, xgettext option5.1.6 Language specific options
-l, msgfmt option10.1.4 Output file location in Java mode
-L, msgfmt option10.1.8 XML mode operations
-l, msgfmt option10.1.5 Output file location in C# mode
-l, msgfmt option10.1.6 Output file location in Tcl mode
-l, msgfmt option10.1.7 Desktop Entry mode operations
-l, msgfmt option10.1.8 XML mode operations
-l, msginit option6.1.4 Output details
-l, msgunfmt option10.2.3 Input file location in Java mode
-l, msgunfmt option10.2.4 Input file location in C# mode
-l, msgunfmt option10.2.5 Input file location in Tcl mode
-L, xgettext option5.1.3 Choice of input file language
--lang, msgcat option9.1.5 Output details
--lang, msgen option9.9.4 Output details
--lang, msgmerge option7.1.7 Output details
--language, msgfmt option10.1.8 XML mode operations
--language, xgettext option5.1.3 Choice of input file language
--less-than, msgcat option9.1.3 Message selection
--less-than, msgcomm option9.6.3 Message selection
--locale, msgfmt option10.1.4 Output file location in Java mode
--locale, msgfmt option10.1.5 Output file location in C# mode
--locale, msgfmt option10.1.6 Output file location in Tcl mode
--locale, msgfmt option10.1.7 Desktop Entry mode operations
--locale, msgfmt option10.1.8 XML mode operations
--locale, msginit option6.1.4 Output details
--locale, msgunfmt option10.2.3 Input file location in Java mode
--locale, msgunfmt option10.2.4 Input file location in C# mode
--locale, msgunfmt option10.2.5 Input file location in Tcl mode
--location, msggrep option9.3.3 Message selection
-m, msgcmp option9.7.2 Operation modifiers
-M, msggrep option9.3.3 Message selection
-m, msgmerge option7.1.5 Operation modifiers
-M, xgettext option5.1.7 Output details
-m, xgettext option5.1.7 Output details
--more-than, msgcat option9.1.3 Message selection
--more-than, msgcomm option9.6.3 Message selection
--msgctxt, msggrep option9.3.3 Message selection
--msgid, msggrep option9.3.3 Message selection
--msgid-bugs-address, xgettext option5.1.7 Output details
--msgstr, msggrep option9.3.3 Message selection
--msgstr-prefix, xgettext option5.1.7 Output details
--msgstr-suffix, xgettext option5.1.7 Output details
--multi-domain, msgcmp option9.7.2 Operation modifiers
--multi-domain, msgmerge option7.1.5 Operation modifiers
-n, gettext option15.5.12.3 Invoking the gettext program
-n, msgattrib option9.8.6 Output details
-n, msgcat option9.1.5 Output details
-N, msgcmp option9.7.2 Operation modifiers
-n, msgcomm option9.6.5 Output details
-n, msgfilter option9.4.4 Useful filter-options when the filter is ‘sed
-N, msggrep option9.3.3 Message selection
-N, msgmerge option7.1.5 Operation modifiers
-n, msguniq option9.5.5 Output details
-n, xgettext option5.1.7 Output details
--newline, msgfilter option9.4.3 The filter
--newline, msgfilter option9.10 Invoking the msgexec Program
--no-changelog, gettextize option13.3 Invoking the gettextize Program
--no-convert, msgfmt option10.1.11 Output details
--no-fuzzy, msgattrib option9.8.3 Message selection
--no-fuzzy-matching, msgcmp option9.7.2 Operation modifiers
--no-fuzzy-matching, msgmerge option7.1.5 Operation modifiers
--no-hash, msgfmt option10.1.11 Output details
--no-location, msgattrib option9.8.6 Output details
--no-location, msgcat option9.1.5 Output details
--no-location, msgcomm option9.6.5 Output details
--no-location, msgconv option9.2.5 Output details
--no-location, msgen option9.9.4 Output details
--no-location, msgfilter option9.4.7 Output details
--no-location, msggrep option9.3.5 Output details
--no-location, msgmerge option7.1.7 Output details
--no-location, msguniq option9.5.5 Output details
--no-location, xgettext option5.1.7 Output details
--no-obsolete, msgattrib option9.8.3 Message selection
--no-redundancy, msgfmt option10.1.11 Output details
--no-translator, msginit option6.1.4 Output details
--no-wrap, msgattrib option9.8.6 Output details
--no-wrap, msgcat option9.1.5 Output details
--no-wrap, msgcomm option9.6.5 Output details
--no-wrap, msgconv option9.2.5 Output details
--no-wrap, msgen option9.9.4 Output details
--no-wrap, msgfilter option9.4.7 Output details
--no-wrap, msggrep option9.3.5 Output details
--no-wrap, msginit option6.1.4 Output details
--no-wrap, msgmerge option7.1.7 Output details
--no-wrap, msgunfmt option10.2.7 Output details
--no-wrap, msguniq option9.5.5 Output details
--no-wrap, xgettext option5.1.7 Output details
-o, msgattrib option9.8.2 Output file location
-o, msgcat option9.1.2 Output file location
-o, msgcomm option9.6.2 Output file location
-o, msgconv option9.2.2 Output file location
-o, msgen option9.9.2 Output file location
-o, msgfilter option9.4.2 Output file location
-o, msgfmt option10.1.3 Output file location
-o, msggrep option9.3.2 Output file location
-o, msginit option6.1.2 Output file location
-o, msgmerge option7.1.3 Output file location
-o, msgunfmt option10.2.6 Output file location
-o, msguniq option9.5.2 Output file location
-o, xgettext option5.1.2 Output file location
--obsolete, msgattrib option9.8.4 Attribute manipulation
--omit-header, msgcomm option9.6.5 Output details
--omit-header, xgettext option5.1.7 Output details
--only-file, msgattrib option9.8.4 Attribute manipulation
--only-fuzzy, msgattrib option9.8.3 Message selection
--only-obsolete, msgattrib option9.8.3 Message selection
--output, xgettext option5.1.2 Output file location
--output-dir, xgettext option5.1.2 Output file location
--output-file, msgattrib option9.8.2 Output file location
--output-file, msgcat option9.1.2 Output file location
--output-file, msgcomm option9.6.2 Output file location
--output-file, msgconv option9.2.2 Output file location
--output-file, msgen option9.9.2 Output file location
--output-file, msgfilter option9.4.2 Output file location
--output-file, msgfmt option10.1.3 Output file location
--output-file, msggrep option9.3.2 Output file location
--output-file, msginit option6.1.2 Output file location
--output-file, msgmerge option7.1.3 Output file location
--output-file, msgunfmt option10.2.6 Output file location
--output-file, msguniq option9.5.2 Output file location
-P, msgattrib option9.8.5 Input file syntax
-p, msgattrib option9.8.6 Output details
-p, msgcat option9.1.5 Output details
-P, msgcat option9.1.4 Input file syntax
-P, msgcmp option9.7.3 Input file syntax
-p, msgcomm option9.6.5 Output details
-P, msgcomm option9.6.4 Input file syntax
-p, msgconv option9.2.5 Output details
-P, msgconv option9.2.4 Input file syntax
-P, msgen option9.9.3 Input file syntax
-p, msgen option9.9.4 Output details
-P, msgexec option9.10.2 Input file syntax
-P, msgfilter option9.4.6 Input file syntax
-p, msgfilter option9.4.7 Output details
-P, msgfmt option10.1.9 Input file syntax
-P, msggrep option9.3.4 Input file syntax
-p, msggrep option9.3.5 Output details
-p, msginit option6.1.4 Output details
-P, msginit option6.1.3 Input file syntax
-P, msgmerge option7.1.6 Input file syntax
-p, msgmerge option7.1.7 Output details
-p, msgunfmt option10.2.7 Output details
-P, msguniq option9.5.4 Input file syntax
-p, msguniq option9.5.5 Output details
-p, xgettext option5.1.2 Output file location
--package-name, xgettext option5.1.7 Output details
--package-version, xgettext option5.1.7 Output details
--po-dir, gettextize option13.3 Invoking the gettextize Program
--previous, msgattrib option9.8.4 Attribute manipulation
--previous, msgmerge option7.1.5 Operation modifiers
--properties-input, msgattrib option9.8.5 Input file syntax
--properties-input, msgcat option9.1.4 Input file syntax
--properties-input, msgcmp option9.7.3 Input file syntax
--properties-input, msgcomm option9.6.4 Input file syntax
--properties-input, msgconv option9.2.4 Input file syntax
--properties-input, msgen option9.9.3 Input file syntax
--properties-input, msgexec option9.10.2 Input file syntax
--properties-input, msgfilter option9.4.6 Input file syntax
--properties-input, msgfmt option10.1.9 Input file syntax
--properties-input, msggrep option9.3.4 Input file syntax
--properties-input, msginit option6.1.3 Input file syntax
--properties-input, msgmerge option7.1.6 Input file syntax
--properties-input, msguniq option9.5.4 Input file syntax
--properties-output, msgattrib option9.8.6 Output details
--properties-output, msgcat option9.1.5 Output details
--properties-output, msgcomm option9.6.5 Output details
--properties-output, msgconv option9.2.5 Output details
--properties-output, msgen option9.9.4 Output details
--properties-output, msgfilter option9.4.7 Output details
--properties-output, msggrep option9.3.5 Output details
--properties-output, msginit option6.1.4 Output details
--properties-output, msgmerge option7.1.7 Output details
--properties-output, msgunfmt option10.2.7 Output details
--properties-output, msguniq option9.5.5 Output details
--properties-output, xgettext option5.1.7 Output details
-q, msgmerge option7.1.8 Informative output
--qt, msgfmt option10.1.2 Operation mode
--qt, xgettext option5.1.6 Language specific options
--quiet, msgfilter option9.4.4 Useful filter-options when the filter is ‘sed
--quiet, msgmerge option7.1.8 Informative output
-r, msgfmt option10.1.4 Output file location in Java mode
-r, msgfmt option10.1.5 Output file location in C# mode
-r, msgunfmt option10.2.3 Input file location in Java mode
-r, msgunfmt option10.2.4 Input file location in C# mode
--regexp=, msggrep option9.3.3 Message selection
--repeated, msguniq option9.5.3 Message selection
--resource, msgfmt option10.1.4 Output file location in Java mode
--resource, msgfmt option10.1.5 Output file location in C# mode
--resource, msgunfmt option10.2.3 Input file location in Java mode
--resource, msgunfmt option10.2.4 Input file location in C# mode
-s, msgattrib option9.8.6 Output details
-s, msgcat option9.1.5 Output details
-s, msgcomm option9.6.5 Output details
-s, msgconv option9.2.5 Output details
-s, msgen option9.9.4 Output details
-s, msgfilter option9.4.7 Output details
-s, msgmerge option7.1.7 Output details
-s, msgunfmt option10.2.7 Output details
-s, msguniq option9.5.5 Output details
-s, xgettext option5.1.7 Output details
--sentence-end, xgettext option5.1.5 Operation mode
--set-fuzzy, msgattrib option9.8.4 Attribute manipulation
--set-obsolete, msgattrib option9.8.4 Attribute manipulation
--silent, msgfilter option9.4.4 Useful filter-options when the filter is ‘sed
--silent, msgmerge option7.1.8 Informative output
--sort-by-file, msgattrib option9.8.6 Output details
--sort-by-file, msgcat option9.1.5 Output details
--sort-by-file, msgcomm option9.6.5 Output details
--sort-by-file, msgconv option9.2.5 Output details
--sort-by-file, msgen option9.9.4 Output details
--sort-by-file, msgfilter option9.4.7 Output details
--sort-by-file, msggrep option9.3.5 Output details
--sort-by-file, msgmerge option7.1.7 Output details
--sort-by-file, msguniq option9.5.5 Output details
--sort-by-file, xgettext option5.1.7 Output details
--sort-output, msgattrib option9.8.6 Output details
--sort-output, msgcat option9.1.5 Output details
--sort-output, msgcomm option9.6.5 Output details
--sort-output, msgconv option9.2.5 Output details
--sort-output, msgen option9.9.4 Output details
--sort-output, msgfilter option9.4.7 Output details
--sort-output, msggrep option9.3.5 Output details
--sort-output, msgmerge option7.1.7 Output details
--sort-output, msgunfmt option10.2.7 Output details
--sort-output, msguniq option9.5.5 Output details
--sort-output, xgettext option5.1.7 Output details
--source, msgfmt option10.1.4 Output file location in Java mode
--statistics, msgfmt option10.1.12 Informative output
--strict, msgattrib option9.8.6 Output details
--strict, msgcat option9.1.5 Output details
--strict, msgcomm option9.6.5 Output details
--strict, msgconv option9.2.5 Output details
--strict, msgen option9.9.4 Output details
--strict, msgfilter option9.4.7 Output details
--strict, msgfmt option10.1.3 Output file location
--strict, msggrep option9.3.5 Output details
--strict, msgmerge option7.1.7 Output details
--strict, msgunfmt option10.2.7 Output details
--strict, msguniq option9.5.5 Output details
--strict, xgettext option5.1.7 Output details
--stringtable-input, msgattrib option9.8.5 Input file syntax
--stringtable-input, msgcat option9.1.4 Input file syntax
--stringtable-input, msgcmp option9.7.3 Input file syntax
--stringtable-input, msgcomm option9.6.4 Input file syntax
--stringtable-input, msgen option9.9.3 Input file syntax
--stringtable-input, msgexec option9.10.2 Input file syntax
--stringtable-input, msgfilter option9.4.6 Input file syntax
--stringtable-input, msgfmt option10.1.9 Input file syntax
--stringtable-input, msggrep option9.3.4 Input file syntax
--stringtable-input, msginit option6.1.3 Input file syntax
--stringtable-input, msgmerge option7.1.6 Input file syntax
--stringtable-input, msgonv option9.2.4 Input file syntax
--stringtable-input, msguniq option9.5.4 Input file syntax
--stringtable-output, msgattrib option9.8.6 Output details
--stringtable-output, msgcat option9.1.5 Output details
--stringtable-output, msgcomm option9.6.5 Output details
--stringtable-output, msgconv option9.2.5 Output details
--stringtable-output, msgen option9.9.4 Output details
--stringtable-output, msgfilter option9.4.7 Output details
--stringtable-output, msggrep option9.3.5 Output details
--stringtable-output, msginit option6.1.4 Output details
--stringtable-output, msgmerge option7.1.7 Output details
--stringtable-output, msgunfmt option10.2.7 Output details
--stringtable-output, msguniq option9.5.5 Output details
--stringtable-output, xgettext option5.1.7 Output details
--style, msgattrib option9.8.6 Output details
--style, msgcat option9.1.5 Output details
--style, msgcat option9.11.3 The --style option
--style, msgcomm option9.6.5 Output details
--style, msgconv option9.2.5 Output details
--style, msgen option9.9.4 Output details
--style, msgfilter option9.4.7 Output details
--style, msggrep option9.3.5 Output details
--style, msginit option6.1.4 Output details
--style, msgmerge option7.1.7 Output details
--style, msgunfmt option10.2.7 Output details
--style, msguniq option9.5.5 Output details
--style, xgettext option5.1.7 Output details
--suffix, msgmerge option7.1.4 Output file location in update mode
--symlink, gettextize option13.3 Invoking the gettextize Program
-t, msgcat option9.1.5 Output details
-t, msgconv option9.2.3 Conversion target
-T, msggrep option9.3.3 Message selection
-t, msguniq option9.5.5 Output details
-T, xgettext option5.1.6 Language specific options
--tcl, msgfmt option10.1.2 Operation mode
--tcl, msgunfmt option10.2.1 Operation mode
--template, msgfmt option10.1.7 Desktop Entry mode operations
--template, msgfmt option10.1.8 XML mode operations
--to-code, msgcat option9.1.5 Output details
--to-code, msgconv option9.2.3 Conversion target
--to-code, msguniq option9.5.5 Output details
--translated, msgattrib option9.8.3 Message selection
--trigraphs, xgettext option5.1.6 Language specific options
-u, msgcat option9.1.3 Message selection
-u, msgcomm option9.6.3 Message selection
-U, msgmerge option7.1.2 Operation mode
-u, msguniq option9.5.3 Message selection
--unique, msgcat option9.1.3 Message selection
--unique, msgcomm option9.6.3 Message selection
--unique, msguniq option9.5.3 Message selection
--untranslated, msgattrib option9.8.3 Message selection
--update, msgmerge option7.1.2 Operation mode
--use-first, msgcat option9.1.5 Output details
--use-first, msguniq option9.5.5 Output details
--use-fuzzy, msgcmp option9.7.2 Operation modifiers
--use-fuzzy, msgfmt option10.1.10 Input file interpretation
--use-untranslated, msgcmp option9.7.2 Operation modifiers
-V, envsubst option15.5.12.5 Invoking the envsubst program
-v, envsubst option15.5.12.5 Invoking the envsubst program
-V, gettext option15.5.12.3 Invoking the gettext program
-V, msgattrib option9.8.7 Informative output
-V, msgcat option9.1.6 Informative output
-V, msgcmp option9.7.4 Informative output
-V, msgcomm option9.6.6 Informative output
-V, msgconv option9.2.6 Informative output
-V, msgen option9.9.5 Informative output
-V, msgexec option9.10.3 Informative output
-V, msgfilter option9.4.8 Informative output
-V, msgfmt option10.1.12 Informative output
-v, msgfmt option10.1.12 Informative output
-v, msggrep option9.3.3 Message selection
-V, msggrep option9.3.6 Informative output
-V, msginit option6.1.5 Informative output
-v, msgmerge option7.1.8 Informative output
-V, msgmerge option7.1.8 Informative output
-v, msgunfmt option10.2.8 Informative output
-V, msgunfmt option10.2.8 Informative output
-V, msguniq option9.5.6 Informative output
-V, ngettext option15.5.12.4 Invoking the ngettext program
-v, xgettext option5.1.8 Informative output
-V, xgettext option5.1.8 Informative output
--variables, envsubst option15.5.12.5 Invoking the envsubst program
--verbose, msgfmt option10.1.12 Informative output
--verbose, msgmerge option7.1.8 Informative output
--verbose, msgunfmt option10.2.8 Informative output
--verbose, xgettext option5.1.8 Informative output
--version, autopoint option13.6.4.2 Informative output
--version, envsubst option15.5.12.5 Invoking the envsubst program
--version, gettext option15.5.12.3 Invoking the gettext program
--version, gettextize option13.3 Invoking the gettextize Program
--version, msgattrib option9.8.7 Informative output
--version, msgcat option9.1.6 Informative output
--version, msgcmp option9.7.4 Informative output
--version, msgcomm option9.6.6 Informative output
--version, msgconv option9.2.6 Informative output
--version, msgen option9.9.5 Informative output
--version, msgexec option9.10.3 Informative output
--version, msgfilter option9.4.8 Informative output
--version, msgfmt option10.1.12 Informative output
--version, msggrep option9.3.6 Informative output
--version, msginit option6.1.5 Informative output
--version, msgmerge option7.1.8 Informative output
--version, msgunfmt option10.2.8 Informative output
--version, msguniq option9.5.6 Informative output
--version, ngettext option15.5.12.4 Invoking the ngettext program
--version, xgettext option5.1.8 Informative output
-w, msgattrib option9.8.6 Output details
-w, msgcat option9.1.5 Output details
-w, msgcomm option9.6.5 Output details
-w, msgconv option9.2.5 Output details
-w, msgen option9.9.4 Output details
-w, msgfilter option9.4.7 Output details
-w, msggrep option9.3.5 Output details
-w, msginit option6.1.4 Output details
-w, msgmerge option7.1.7 Output details
-w, msgunfmt option10.2.7 Output details
-w, msguniq option9.5.5 Output details
-w, xgettext option5.1.7 Output details
--width, msgattrib option9.8.6 Output details
--width, msgcat option9.1.5 Output details
--width, msgcomm option9.6.5 Output details
--width, msgconv option9.2.5 Output details
--width, msgen option9.9.4 Output details
--width, msgfilter option9.4.7 Output details
--width, msggrep option9.3.5 Output details
--width, msginit option6.1.4 Output details
--width, msgmerge option7.1.7 Output details
--width, msgunfmt option10.2.7 Output details
--width, msguniq option9.5.5 Output details
--width, xgettext option5.1.7 Output details
-X, msggrep option9.3.3 Message selection
-x, xgettext option5.1.5 Operation mode
--xml, msgfmt option10.1.2 Operation mode

+
Jump to:   - +
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_23.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_23.html new file mode 100644 index 000000000..443ab0cf8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_23.html @@ -0,0 +1,170 @@ + + + + + +GNU gettext utilities: Variable Index + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

Variable Index

+ +
Jump to:   G +   +L +   +M +   +O +   +P +   +T +   +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Index Entry Section

G
GETTEXT_LOG_UNTRANSLATED, environment variable12.7 Prioritizing messages: How to determine which messages to translate first

L
LANG, environment variable2.3.2 Locale Environment Variables
LANG, environment variable11.5 Being a gettext grok
LANGUAGE, environment variable2.3.2 Locale Environment Variables
LANGUAGE, environment variable11.5 Being a gettext grok
LANGUAGE, environment variable13.4.4 Extending ‘Makefile’ in ‘po/
LC_ALL, environment variable2.3.2 Locale Environment Variables
LC_ALL, environment variable11.5 Being a gettext grok
LC_COLLATE, environment variable2.3.2 Locale Environment Variables
LC_COLLATE, environment variable11.5 Being a gettext grok
LC_CTYPE, environment variable2.3.2 Locale Environment Variables
LC_CTYPE, environment variable11.5 Being a gettext grok
LC_MESSAGES, environment variable2.3.2 Locale Environment Variables
LC_MESSAGES, environment variable11.5 Being a gettext grok
LC_MONETARY, environment variable2.3.2 Locale Environment Variables
LC_MONETARY, environment variable11.5 Being a gettext grok
LC_NUMERIC, environment variable2.3.2 Locale Environment Variables
LC_NUMERIC, environment variable11.5 Being a gettext grok
LC_TIME, environment variable2.3.2 Locale Environment Variables
LC_TIME, environment variable11.5 Being a gettext grok
LINGUAS, environment variable14. The Installer's and Distributor's View

M
MSGEXEC_LOCATION, environment variable9.10 Invoking the msgexec Program
MSGEXEC_MSGCTXT, environment variable9.10 Invoking the msgexec Program
MSGEXEC_MSGID, environment variable9.10 Invoking the msgexec Program
MSGEXEC_MSGID_PLURAL, environment variable9.10 Invoking the msgexec Program
MSGEXEC_PLURAL_FORM, environment variable9.10 Invoking the msgexec Program
MSGEXEC_PREV_MSGCTXT, environment variable9.10 Invoking the msgexec Program
MSGEXEC_PREV_MSGID, environment variable9.10 Invoking the msgexec Program
MSGEXEC_PREV_MSGID_PLURAL, environment variable9.10 Invoking the msgexec Program
MSGFILTER_LOCATION, environment variable9.4 Invoking the msgfilter Program
MSGFILTER_MSGCTXT, environment variable9.4 Invoking the msgfilter Program
MSGFILTER_MSGID, environment variable9.4 Invoking the msgfilter Program
MSGFILTER_MSGID_PLURAL, environment variable9.4 Invoking the msgfilter Program
MSGFILTER_PLURAL_FORM, environment variable9.4 Invoking the msgfilter Program
MSGFILTER_PREV_MSGCTXT, environment variable9.4 Invoking the msgfilter Program
MSGFILTER_PREV_MSGID, environment variable9.4 Invoking the msgfilter Program
MSGFILTER_PREV_MSGID_PLURAL, environment variable9.4 Invoking the msgfilter Program

O
OUTPUT_CHARSET, environment variable2.4 Obtaining good output in a Windows console

P
PO_STYLE, environment variable9.11.3 The --style option

T
TERM, environment variable9.11.2 The environment variable TERM
TEXTDOMAIN, environment variable15.5.12 sh - Shell Script
TEXTDOMAINDIR, environment variable15.5.12 sh - Shell Script

+
Jump to:   G +   +L +   +M +   +O +   +P +   +T +   +
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_24.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_24.html new file mode 100644 index 000000000..c2fd76c5c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_24.html @@ -0,0 +1,408 @@ + + + + + +GNU gettext utilities: PO Mode Index + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

PO Mode Index

+ +
Jump to:   # +   +, +   +. +   +0 +   +< +   += +   +> +   +? +   +_ +   +
+A +   +C +   +D +   +E +   +F +   +H +   +I +   +K +   +L +   +M +   +N +   +O +   +P +   +Q +   +R +   +S +   +T +   +U +   +V +   +W +   +X +   +Y +   +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Index Entry Section

#
#, PO Mode command8.3.10 Modifying Comments
#, PO Mode command8.3.10 Modifying Comments

,
,, PO Mode command4.5 Marking Translatable Strings

.
., PO Mode command8.3.3 Entry Positioning
., PO Mode command8.3.3 Entry Positioning
.emacs’ customizations8.3.1 Completing GNU gettext Installation

0
0, PO Mode command8.3.2 Main PO mode Commands
0, PO Mode command8.3.2 Main PO mode Commands

<
<, PO Mode command8.3.3 Entry Positioning
<, PO Mode command8.3.3 Entry Positioning

=
=, PO Mode command8.3.2 Main PO mode Commands
=, PO Mode command8.3.2 Main PO mode Commands

>
>, PO Mode command8.3.3 Entry Positioning
>, PO Mode command8.3.3 Entry Positioning

?
?, PO Mode command8.3.2 Main PO mode Commands
?, PO Mode command8.3.2 Main PO mode Commands

_
_, PO Mode command8.3.2 Main PO mode Commands
_, PO Mode command8.3.2 Main PO mode Commands

A
a, PO Mode command8.3.13 Consulting Auxiliary PO Files
A, PO Mode command8.3.13 Consulting Auxiliary PO Files
a, PO Mode command8.3.13 Consulting Auxiliary PO Files
A, PO Mode command8.3.13 Consulting Auxiliary PO Files
auxiliary PO file8.3.13 Consulting Auxiliary PO Files

C
C-c C-a, PO Mode command8.3.11 Details of Sub Edition
C-c C-a, PO Mode command8.3.11 Details of Sub Edition
C-c C-a, PO Mode command8.3.13 Consulting Auxiliary PO Files
C-c C-a, PO Mode command8.3.13 Consulting Auxiliary PO Files
C-c C-c, PO Mode command8.3.11 Details of Sub Edition
C-c C-c, PO Mode command8.3.11 Details of Sub Edition
C-c C-k, PO Mode command8.3.11 Details of Sub Edition
C-c C-k, PO Mode command8.3.11 Details of Sub Edition
C-j, PO Mode command8.3.9 Modifying Translations
C-j, PO Mode command8.3.9 Modifying Translations
commands8.3.2 Main PO mode Commands
comment out PO file entry8.3.8 Obsolete Entries
consulting program sources8.3.12 C Sources Context
consulting translations to other languages8.3.13 Consulting Auxiliary PO Files
current entry of a PO file8.3.3 Entry Positioning
cut and paste for translated strings8.3.9 Modifying Translations

D
DEL, PO Mode command8.3.6 Fuzzy Entries
DEL, PO Mode command8.3.8 Obsolete Entries
DEL, PO Mode command8.3.8 Obsolete Entries

E
editing comments8.3.10 Modifying Comments
editing multiple entries8.3.11 Details of Sub Edition
editing translations8.3.9 Modifying Translations
etags, using for marking strings4.5 Marking Translatable Strings
exiting PO subedit8.3.11 Details of Sub Edition

F
f, PO Mode command8.3.6 Fuzzy Entries
F, PO Mode command8.3.6 Fuzzy Entries
F, PO Mode command8.3.6 Fuzzy Entries
f, PO Mode command8.3.6 Fuzzy Entries
find source fragment for a PO file entry8.3.12 C Sources Context

H
h, PO Mode command8.3.2 Main PO mode Commands
h, PO Mode command8.3.2 Main PO mode Commands

I
installing PO mode8.3.1 Completing GNU gettext Installation

K
K, PO Mode command8.3.10 Modifying Comments
k, PO Mode command8.3.7 Untranslated Entries
K, PO Mode command8.3.10 Modifying Comments
k, PO Mode command8.3.7 Untranslated Entries
k, PO Mode command8.3.9 Modifying Translations
k, PO Mode command8.3.9 Modifying Translations

L
LFD, PO Mode command8.3.9 Modifying Translations
LFD, PO Mode command8.3.9 Modifying Translations
looking at the source to aid translation8.3.12 C Sources Context

M
m, PO Mode command8.3.3 Entry Positioning
m, PO Mode command8.3.3 Entry Positioning
M-,, PO Mode command4.5 Marking Translatable Strings
M-., PO Mode command4.5 Marking Translatable Strings
M-A, PO Mode command8.3.13 Consulting Auxiliary PO Files
M-A, PO Mode command8.3.13 Consulting Auxiliary PO Files
M-s, PO Mode command8.3.12 C Sources Context
M-S, PO Mode command8.3.12 C Sources Context
M-s, PO Mode command8.3.12 C Sources Context
M-S, PO Mode command8.3.12 C Sources Context
marking strings for translation4.5 Marking Translatable Strings
moving by fuzzy entries8.3.6 Fuzzy Entries
moving by obsolete entries8.3.8 Obsolete Entries
moving by translated entries8.3.5 Translated Entries
moving by untranslated entries8.3.7 Untranslated Entries
moving through a PO file8.3.3 Entry Positioning

N
n, PO Mode command8.3.3 Entry Positioning
n, PO Mode command8.3.3 Entry Positioning
next-error, stepping through PO file validation results8.3.2 Main PO mode Commands
normalize, PO Mode command8.3.13 Consulting Auxiliary PO Files

O
O, PO Mode command8.3.8 Obsolete Entries
o, PO Mode command8.3.8 Obsolete Entries
O, PO Mode command8.3.8 Obsolete Entries
o, PO Mode command8.3.8 Obsolete Entries
obsolete active entry8.3.8 Obsolete Entries

P
p, PO Mode command8.3.3 Entry Positioning
p, PO Mode command8.3.3 Entry Positioning
pending subedits8.3.11 Details of Sub Edition
po-auto-edit-with-msgid, PO Mode variable8.3.9 Modifying Translations
po-auto-fuzzy-on-edit, PO Mode variable8.3.5 Translated Entries
po-auto-select-on-unfuzzy, PO Mode variable8.3.6 Fuzzy Entries
po-confirm-and-quit, PO Mode command8.3.2 Main PO mode Commands
po-consider-as-auxiliary, PO Mode command8.3.13 Consulting Auxiliary PO Files
po-consider-source-path, PO Mode command8.3.12 C Sources Context
po-current-entry, PO Mode command8.3.3 Entry Positioning
po-cycle-auxiliary, PO Mode command8.3.13 Consulting Auxiliary PO Files
po-cycle-source-reference, PO Mode command8.3.12 C Sources Context
po-edit-comment, PO Mode command8.3.10 Modifying Comments
po-edit-msgstr, PO Mode command8.3.9 Modifying Translations
po-exchange-location, PO Mode command8.3.3 Entry Positioning
po-fade-out-entry, PO Mode command8.3.6 Fuzzy Entries
po-fade-out-entry, PO Mode command8.3.8 Obsolete Entries
po-first-entry, PO Mode command8.3.3 Entry Positioning
po-help, PO Mode command8.3.2 Main PO mode Commands
po-ignore-as-auxiliary, PO Mode command8.3.13 Consulting Auxiliary PO Files
po-ignore-source-path, PO Mode command8.3.12 C Sources Context
po-kill-comment, PO Mode command8.3.10 Modifying Comments
po-kill-msgstr, PO Mode command8.3.7 Untranslated Entries
po-kill-msgstr, PO Mode command8.3.9 Modifying Translations
po-kill-ring-save-comment, PO Mode command8.3.10 Modifying Comments
po-kill-ring-save-msgstr, PO Mode command8.3.9 Modifying Translations
po-last-entry, PO Mode command8.3.3 Entry Positioning
po-mark-translatable, PO Mode command4.5 Marking Translatable Strings
po-msgid-to-msgstr, PO Mode command8.3.9 Modifying Translations
po-next-entry, PO Mode command8.3.3 Entry Positioning
po-next-fuzzy-entry, PO Mode command8.3.6 Fuzzy Entries
po-next-obsolete-entry, PO Mode command8.3.8 Obsolete Entries
po-next-translated-entry, PO Mode command8.3.5 Translated Entries
po-next-untranslated-entry, PO Mode command8.3.7 Untranslated Entries
po-normalize, PO Mode command8.3.4 Normalizing Strings in Entries
po-other-window, PO Mode command8.3.2 Main PO mode Commands
po-pop-location, PO Mode command8.3.3 Entry Positioning
po-previous-entry, PO Mode command8.3.3 Entry Positioning
po-previous-fuzzy-entry, PO Mode command8.3.6 Fuzzy Entries
po-previous-obsolete-entry, PO Mode command8.3.8 Obsolete Entries
po-previous-translated-entry, PO Mode command8.3.5 Translated Entries
po-previous-untransted-entry, PO Mode command8.3.7 Untranslated Entries
po-push-location, PO Mode command8.3.3 Entry Positioning
po-quit, PO Mode command8.3.2 Main PO mode Commands
po-select-auxiliary, PO Mode command8.3.13 Consulting Auxiliary PO Files
po-select-mark-and-mark, PO Mode command4.5 Marking Translatable Strings
po-select-source-reference, PO Mode command8.3.12 C Sources Context
po-statistics, PO Mode command8.3.2 Main PO mode Commands
po-subedit-abort, PO Mode command8.3.11 Details of Sub Edition
po-subedit-cycle-auxiliary, PO Mode command8.3.11 Details of Sub Edition
po-subedit-exit, PO Mode command8.3.11 Details of Sub Edition
po-subedit-mode-hook, PO Mode variable8.3.10 Modifying Comments
po-tags-search, PO Mode command4.5 Marking Translatable Strings
po-undo, PO Mode command8.3.2 Main PO mode Commands
po-unfuzzy, PO Mode command8.3.6 Fuzzy Entries
po-validate, PO Mode command8.3.2 Main PO mode Commands
po-yank-comment, PO Mode command8.3.10 Modifying Comments
po-yank-msgstr, PO Mode command8.3.9 Modifying Translations

+
Jump to:   # +   +, +   +. +   +0 +   +< +   += +   +> +   +? +   +_ +   +
+A +   +C +   +D +   +E +   +F +   +H +   +I +   +K +   +L +   +M +   +N +   +O +   +P +   +Q +   +R +   +S +   +T +   +U +   +V +   +W +   +X +   +Y +   +
+ + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_25.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_25.html new file mode 100644 index 000000000..d4e0384f9 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_25.html @@ -0,0 +1,275 @@ + + + + + +GNU gettext utilities: PO Mode Index: Q – Y + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ +

PO Mode Index: Q – Y

+
Jump to:   # +   +, +   +. +   +0 +   +< +   += +   +> +   +? +   +_ +   +
+A +   +C +   +D +   +E +   +F +   +H +   +I +   +K +   +L +   +M +   +N +   +O +   +P +   +Q +   +R +   +S +   +T +   +U +   +V +   +W +   +X +   +Y +   +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Index Entry Section

Q
q, PO Mode command8.3.2 Main PO mode Commands
Q, PO Mode command8.3.2 Main PO mode Commands
Q, PO Mode command8.3.2 Main PO mode Commands
q, PO Mode command8.3.2 Main PO mode Commands

R
r, PO Mode command8.3.3 Entry Positioning
r, PO Mode command8.3.3 Entry Positioning
RET, PO Mode command8.3.9 Modifying Translations
RET, PO Mode command8.3.9 Modifying Translations

S
S, PO Mode command8.3.12 C Sources Context
s, PO Mode command8.3.12 C Sources Context
s, PO Mode command8.3.12 C Sources Context
S, PO Mode command8.3.12 C Sources Context
starting a string translation8.3.9 Modifying Translations
string normalization in entries8.3.4 Normalizing Strings in Entries
subedit minor mode8.3.11 Details of Sub Edition

T
T, PO Mode command8.3.5 Translated Entries
t, PO Mode command8.3.5 Translated Entries
t, PO Mode command8.3.5 Translated Entries
T, PO Mode command8.3.5 Translated Entries
TAB, PO Mode command8.3.6 Fuzzy Entries
TAB, PO Mode command8.3.6 Fuzzy Entries
TAGS’, and marking translatable strings4.5 Marking Translatable Strings

U
U, PO Mode command8.3.7 Untranslated Entries
u, PO Mode command8.3.7 Untranslated Entries
u, PO Mode command8.3.7 Untranslated Entries
U, PO Mode command8.3.7 Untranslated Entries
use the source, Luke8.3.12 C Sources Context
using obsolete translations to make new entries8.3.9 Modifying Translations
using translation compendia8.4 Using Translation Compendia

V
V, PO Mode command8.3.2 Main PO mode Commands
V, PO Mode command8.3.2 Main PO mode Commands

W
w, PO Mode command8.3.9 Modifying Translations
W, PO Mode command8.3.10 Modifying Comments
W, PO Mode command8.3.10 Modifying Comments
w, PO Mode command8.3.9 Modifying Translations

X
x, PO Mode command8.3.3 Entry Positioning
x, PO Mode command8.3.3 Entry Positioning

Y
y, PO Mode command8.3.9 Modifying Translations
Y, PO Mode command8.3.10 Modifying Comments
Y, PO Mode command8.3.10 Modifying Comments
y, PO Mode command8.3.9 Modifying Translations

+
Jump to:   # +   +, +   +. +   +0 +   +< +   += +   +> +   +? +   +_ +   +
+A +   +C +   +D +   +E +   +F +   +H +   +I +   +K +   +L +   +M +   +N +   +O +   +P +   +Q +   +R +   +S +   +T +   +U +   +V +   +W +   +X +   +Y +   +
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_26.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_26.html new file mode 100644 index 000000000..eb6b174b3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_26.html @@ -0,0 +1,104 @@ + + + + + +GNU gettext utilities: Autoconf Macro Index + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

Autoconf Macro Index

+ +
Jump to:   A +   +
+ + + + + + + + + + + +
Index Entry Section

A
AM_GNU_GETTEXT13.5.1 AM_GNU_GETTEXT in ‘gettext.m4
AM_GNU_GETTEXT_NEED13.5.3 AM_GNU_GETTEXT_NEED in ‘gettext.m4
AM_GNU_GETTEXT_VERSION13.5.2 AM_GNU_GETTEXT_VERSION in ‘gettext.m4
AM_ICONV13.5.6 AM_ICONV in ‘iconv.m4
AM_PO_SUBDIRS13.5.4 AM_PO_SUBDIRS in ‘po.m4
AM_XGETTEXT_OPTION13.5.5 AM_XGETTEXT_OPTION in ‘po.m4

+
Jump to:   A +   +
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_27.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_27.html new file mode 100644 index 000000000..1554a250c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_27.html @@ -0,0 +1,328 @@ + + + + + +GNU gettext utilities: General Index + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

General Index

+ +
Jump to:   _ +   +
+A +   +B +   +C +   +D +   +E +   +F +   +G +   +H +   +I +   +J +   +K +   +L +   +M +   +N +   +O +   +P +   +Q +   +R +   +S +   +T +   +U +   +V +   +W +   +X +   +Y +   +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Index Entry Section

_
_, a macro to mark strings for translation4.4 How Marks Appear in Sources
_nl_msg_cat_cntr11.5 Being a gettext grok

A
ABOUT-NLS’ file2.5 Installing Translations for Particular Programs
ABOUT-NLS’ file17.2 Notes on the Free Translation Project
accumulating translations8.4.1.1 Concatenate PO Files
aclocal.m4’ file13.4.8 ‘aclocal.m4’ at top level
adding keywords, xgettext5.1.6 Language specific options
ambiguitiesDecent English style
ANSI encoding2.4 Obtaining good output in a Windows console
apply a filter to translations9.4 Invoking the msgfilter Program
apply command to all translations in a catalog9.10 Invoking the msgexec Program
Arabic digits15.3.1 C Format Strings
attribute manipulation9.8 Invoking the msgattrib Program
attribute, fuzzy8.3.6 Fuzzy Entries
attributes of a PO file entry8.3.6 Fuzzy Entries
attributes, manipulating9. Manipulating PO Files
autoconf macros for gettext13.5 Autoconf macros for use in ‘configure.ac
autopoint program, usage13.6.4 Invoking the autopoint Program
auxiliary PO file8.3.13 Consulting Auxiliary PO Files
available translations2.5 Installing Translations for Particular Programs
awk15.5.14 GNU awk
awk-format flag3. The Format of PO Files

B
backup old file, and msgmerge program7.1.4 Output file location in update mode
bash15.5.13 bash - Bourne-Again Shell Script
bibliography17.3 Related Readings
big picture1.5 Overview of GNU gettext
bind_textdomain_codeset11.2.4 How to specify the output character set gettext uses
Boost format strings5.1.6 Language specific options
boost-format flag3. The Format of PO Files
bug report address1. Introduction

C
C and C-like languages15.5.1 C, C++, Objective C
C trigraphs5.1.6 Language specific options
C#15.5.4 C#
C# mode, and msgfmt program10.1.2 Operation mode
C# mode, and msgunfmt program10.2.1 Operation mode
C# resources mode, and msgfmt program10.1.2 Operation mode
C# resources mode, and msgunfmt program10.2.1 Operation mode
C#, string concatenationNo string concatenation
c++-format flag3. The Format of PO Files
c-format flag3. The Format of PO Files
c-format, and xgettext4.6 Special Comments preceding Keywords
catalog encoding and msgexec output9.10 Invoking the msgexec Program
catclose, a catgets function11.1.1 The Interface
catgets, a catgets function11.1.1 The Interface
catgets, X/Open specification11.1 About catgets
catopen, a catgets function11.1.1 The Interface
character encoding1.3 Aspects in Native Language Support
charset conversion at runtime11.2.4 How to specify the output character set gettext uses
charset of PO files6.2 Filling in the Header Entry
check format strings10.1.10 Input file interpretation
checking of translations9. Manipulating PO Files
clisp15.5.7 GNU clisp - Common Lisp
clisp C sources15.5.8 GNU clisp C sources
codeset1.3 Aspects in Native Language Support
comments in PO files3. The Format of PO Files
comments, automatic3. The Format of PO Files
comments, extracted3. The Format of PO Files
comments, translator3. The Format of PO Files
Common Lisp15.5.7 GNU clisp - Common Lisp
compare PO files9.7 Invoking the msgcmp Program
comparison of interfaces11.3 Comparing the Two Interfaces
compatibility with X/Open msgfmt10.1.10 Input file interpretation
compendium8.4 Using Translation Compendia
compendium, creating8.4.1 Creating Compendia
concatenate PO files9.1 Invoking the msgcat Program
concatenating PO files into a compendium8.4.1.1 Concatenate PO Files
concatenation of stringsNo string concatenation
config.h.in’ file13.4.9 ‘config.h.in’ at top level
context11.2.5 Using contexts for solving ambiguities
context, argument specification in xgettext5.1.6 Language specific options
context, in MO files10.3 The Format of GNU MO Files
context, in PO files3. The Format of PO Files
control charactersNo unusual markup
convert binary message catalog into PO file10.2 Invoking the msgunfmt Program
convert translations to a different encoding9.2 Invoking the msgconv Program
converting a package to use gettext13.2 Prerequisite Works
country codesB. Country Codes
create new PO file6.1 Invoking the msginit Program
creating a new PO file6. Creating a New PO File
creating compendia8.4.1 Creating Compendia
csharp-format flag3. The Format of PO Files
currency symbols1.3 Aspects in Native Language Support

D
date format1.3 Aspects in Native Language Support
dcngettext11.2.6 Additional functions for plural forms
dcpgettext11.2.5 Using contexts for solving ambiguities
dcpgettext_expr11.2.5 Using contexts for solving ambiguities
debugging messages marked as format strings5.1.6 Language specific options
Desktop Entry mode, and msgfmt program10.1.2 Operation mode
dialect9. Manipulating PO Files
disabling NLS13.4.12 ‘gettext.h’ in ‘lib/
distribution tarball13.7 Creating a Distribution Tarball
dngettext11.2.6 Additional functions for plural forms
dollar substitution15.5.12.5 Invoking the envsubst program
domain ambiguities11.2.2 Solving Ambiguities
dpgettext11.2.5 Using contexts for solving ambiguities
dpgettext_expr11.2.5 Using contexts for solving ambiguities
duplicate elimination9. Manipulating PO Files
duplicate removal9.5 Invoking the msguniq Program

E
editing comments in PO files8.3.10 Modifying Comments
Editing PO Files8. Editing PO Files
editing translations8.3.9 Modifying Translations
elisp-format flag3. The Format of PO Files
Emacs Lisp15.5.9 Emacs Lisp
Emacs PO Mode8.3 Emacs's PO File Editor
encoding1.3 Aspects in Native Language Support
encoding conversion9. Manipulating PO Files
encoding conversion at runtime11.2.4 How to specify the output character set gettext uses
encoding for your language6.2 Filling in the Header Entry
encoding in MO files10.3 The Format of GNU MO Files
encoding list6.2 Filling in the Header Entry
encoding of PO files6.2 Filling in the Header Entry
environment variables15.5.12.5 Invoking the envsubst program
envsubst program, usage15.5.12.5 Invoking the envsubst program
eval_gettext function, usage15.5.12.6 Invoking the eval_gettext function
eval_ngettext function, usage15.5.12.7 Invoking the eval_ngettext function
eval_npgettext function, usage15.5.12.9 Invoking the eval_npgettext function
eval_pgettext function, usage15.5.12.8 Invoking the eval_pgettext function
evolution of packages1.5 Overview of GNU gettext
extracting parts of a PO file into a compendium8.4.1.2 Extract a Message Subset from a PO File

+
Jump to:   _ +   +
+A +   +B +   +C +   +D +   +E +   +F +   +G +   +H +   +I +   +J +   +K +   +L +   +M +   +N +   +O +   +P +   +Q +   +R +   +S +   +T +   +U +   +V +   +W +   +X +   +Y +   +
+ + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_28.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_28.html new file mode 100644 index 000000000..e9fbaa7d7 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_28.html @@ -0,0 +1,321 @@ + + + + + +GNU gettext utilities: General Index: F – L + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ +

General Index: F – L

+
Jump to:   _ +   +
+A +   +B +   +C +   +D +   +E +   +F +   +G +   +H +   +I +   +J +   +K +   +L +   +M +   +N +   +O +   +P +   +Q +   +R +   +S +   +T +   +U +   +V +   +W +   +X +   +Y +   +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Index Entry Section

F
FDL, GNU Free Documentation LicenseC.3 GNU Free Documentation License
file format, ‘.mo10.3 The Format of GNU MO Files
file format, ‘.po3. The Format of PO Files
files, ‘.po’ and ‘.mo1.4 Files Conveying Translations
files, ‘.pot1.5 Overview of GNU gettext
filter messages according to attributes9.8 Invoking the msgattrib Program
find common messages9.6 Invoking the msgcomm Program
force use of fuzzy entries10.1.10 Input file interpretation
format strings4.6 Special Comments preceding Keywords
Free Pascal15.5.16 Pascal - Free Pascal Compiler
function attribute, __format__5.1.6 Language specific options
function attribute, __format_arg__5.1.6 Language specific options
fuzzy entries8.3.6 Fuzzy Entries
fuzzy flag3. The Format of PO Files

G
gawk15.5.14 GNU awk
gcc-internal-format flag3. The Format of PO Files
GCC-source15.5.24 GNU Compiler Collection sources
generate binary message catalog from PO file10.1 Invoking the msgfmt Program
generate translation catalog in English9.9 Invoking the msgen Program
gettext files13.4 Files You Must Create or Alter
gettext installation8.3.1 Completing GNU gettext Installation
gettext interface11.2.1 The Interface
gettext program, usage15.5.12.3 Invoking the gettext program
gettext vs catgets11.3 Comparing the Two Interfaces
gettext, a programmer's view11.2 About gettext
gettext.h’ file13.4.12 ‘gettext.h’ in ‘lib/
gettextize program, usage13.3 Invoking the gettextize Program
gfc-internal-format flag3. The Format of PO Files
GNOME PO file editor8.2 GNOME's PO File Editor
GPL, GNU General Public LicenseC.1 GNU GENERAL PUBLIC LICENSE
GUI programs11.2.5 Using contexts for solving ambiguities
guile15.5.6 GNU guile - Scheme

H
hash table, inside MO files10.3 The Format of GNU MO Files
he, she, and they1. Introduction
header entry of a PO file6.2 Filling in the Header Entry
help optionSplit at paragraphs
history of GNU gettext17.1 History of GNU gettext

I
i18n1.2 I18n, L10n, and Such
importing PO files8.3.4 Normalizing Strings in Entries
include file ‘libintl.h1.5 Overview of GNU gettext
include file ‘libintl.h4.1 Importing the gettext declaration
include file ‘libintl.h11.3 Comparing the Two Interfaces
include file ‘libintl.h13.4.12 ‘gettext.h’ in ‘lib/
initialization4.2 Triggering gettext Operations
initialize new PO file6.1 Invoking the msginit Program
initialize translations from a compendium8.4.2.1 Initialize a New Translation File
installing gettext8.3.1 Completing GNU gettext Installation
interface to catgets11.1.1 The Interface
internationalization1.2 I18n, L10n, and Such
inttypes.hNo string concatenation
ISO 3166B. Country Codes
ISO 639A. Language Codes

J
Java15.5.3 Java
Java mode, and msgfmt program10.1.2 Operation mode
Java mode, and msgunfmt program10.2.1 Operation mode
Java, string concatenationNo string concatenation
java-format flag3. The Format of PO Files
java-printf-format flag3. The Format of PO Files
javascript-format flag3. The Format of PO Files

K
KDE format strings5.1.6 Language specific options
KDE PO file editor8.1 KDE's PO File Editor
kde-format flag3. The Format of PO Files
keyboard accelerator checking10.1.10 Input file interpretation

L
l10n1.2 I18n, L10n, and Such
language codesA. Language Codes
language selection2.3.2 Locale Environment Variables
language selection at runtime11.5 Being a gettext grok
large package11.2.2 Solving Ambiguities
LGPL, GNU Lesser General Public LicenseC.2 GNU LESSER GENERAL PUBLIC LICENSE
libiconv library13.5.6 AM_ICONV in ‘iconv.m4
libintl for C#15.5.4 C#
libintl for Java15.5.3 Java
libintl library13.5.1 AM_GNU_GETTEXT in ‘gettext.m4
librep Lisp15.5.10 librep
librep-format flag3. The Format of PO Files
License, GNU FDLC.3 GNU Free Documentation License
License, GNU GPLC.1 GNU GENERAL PUBLIC LICENSE
License, GNU LGPLC.2 GNU LESSER GENERAL PUBLIC LICENSE
LicensesC. Licenses
LINGUAS’ file13.4.2 ‘LINGUAS’ in ‘po/
link with ‘libintl1.5 Overview of GNU gettext
Linux1.3 Aspects in Native Language Support
Linux1.5 Overview of GNU gettext
Linux6.2 Filling in the Header Entry
Lisp15.5.7 GNU clisp - Common Lisp
lisp-format flag3. The Format of PO Files
list of translation teams, where to find6.2 Filling in the Header Entry
locale categories1.3 Aspects in Native Language Support
locale categories1.3 Aspects in Native Language Support
locale category, LC_ALL4.2 Triggering gettext Operations
locale category, LC_COLLATE4.2 Triggering gettext Operations
locale category, LC_CTYPE1.3 Aspects in Native Language Support
locale category, LC_CTYPE4.2 Triggering gettext Operations
locale category, LC_CTYPE4.2 Triggering gettext Operations
locale category, LC_MESSAGES1.3 Aspects in Native Language Support
locale category, LC_MESSAGES4.2 Triggering gettext Operations
locale category, LC_MONETARY1.3 Aspects in Native Language Support
locale category, LC_MONETARY4.2 Triggering gettext Operations
locale category, LC_NUMERIC1.3 Aspects in Native Language Support
locale category, LC_NUMERIC4.2 Triggering gettext Operations
locale category, LC_RESPONSES4.2 Triggering gettext Operations
locale category, LC_TIME1.3 Aspects in Native Language Support
locale category, LC_TIME4.2 Triggering gettext Operations
locale program6.2 Filling in the Header Entry
localization1.2 I18n, L10n, and Such
lookup message translation15.5.12.3 Invoking the gettext program
lookup message translation15.5.12.6 Invoking the eval_gettext function
lookup message translation with context15.5.12.8 Invoking the eval_pgettext function
lookup plural message translation15.5.12.4 Invoking the ngettext program
lookup plural message translation15.5.12.7 Invoking the eval_ngettext function
lookup plural message translation with context15.5.12.9 Invoking the eval_npgettext function
lua-format flag3. The Format of PO Files

+
Jump to:   _ +   +
+A +   +B +   +C +   +D +   +E +   +F +   +G +   +H +   +I +   +J +   +K +   +L +   +M +   +N +   +O +   +P +   +Q +   +R +   +S +   +T +   +U +   +V +   +W +   +X +   +Y +   +
+ + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_29.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_29.html new file mode 100644 index 000000000..944071195 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_29.html @@ -0,0 +1,385 @@ + + + + + +GNU gettext utilities: General Index: M – P + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ +

General Index: M – P

+
Jump to:   _ +   +
+A +   +B +   +C +   +D +   +E +   +F +   +G +   +H +   +I +   +J +   +K +   +L +   +M +   +N +   +O +   +P +   +Q +   +R +   +S +   +T +   +U +   +V +   +W +   +X +   +Y +   +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Index Entry Section

M
magic signature of MO files10.3 The Format of GNU MO Files
Makefile.in.in’ extensions13.4.4 Extending ‘Makefile’ in ‘po/
Makevars’ file13.4.3 ‘Makevars’ in ‘po/
manipulating PO files9. Manipulating PO Files
marking Perl sources15.5.21 Perl
marking string initializers4.7 Special Cases of Translatable Strings
marking strings that require translation4.4 How Marks Appear in Sources
marking strings, preparations4.3 Preparing Translatable Strings
marking translatable strings1.5 Overview of GNU gettext
markupNo unusual markup
menu entries11.2.5 Using contexts for solving ambiguities
menu, keyboard accelerator support10.1.10 Input file interpretation
merge PO files9.1 Invoking the msgcat Program
merging two PO files9. Manipulating PO Files
message catalog files location11.2.3 Locating Message Catalog Files
messages1.3 Aspects in Native Language Support
migration from earlier versions of gettext13.2 Prerequisite Works
mkinstalldirs’ file13.4.7 ‘mkinstalldirs’ at top level
mnemonics of menu entries10.1.10 Input file interpretation
MO file's format10.3 The Format of GNU MO Files
modify message attributes9.8.4 Attribute manipulation
msgattrib program, usage9.8 Invoking the msgattrib Program
msgcat program, usage9.1 Invoking the msgcat Program
msgcmp program, usage9.7 Invoking the msgcmp Program
msgcomm program, usage9.6 Invoking the msgcomm Program
msgconv program, usage9.2 Invoking the msgconv Program
msgctxt3. The Format of PO Files
msgen program, usage9.9 Invoking the msgen Program
msgexec program, usage9.10 Invoking the msgexec Program
msgfilter filter and catalog encoding9.4.3 The filter
msgfilter program, usage9.4 Invoking the msgfilter Program
msgfmt program, usage10.1 Invoking the msgfmt Program
msggrep program, usage9.3 Invoking the msggrep Program
msgid3. The Format of PO Files
msgid_plural3. The Format of PO Files
msginit program, usage6.1 Invoking the msginit Program
msgmerge program, usage7.1 Invoking the msgmerge Program
msgstr3. The Format of PO Files
msgunfmt program, usage10.2 Invoking the msgunfmt Program
msguniq program, usage9.5 Invoking the msguniq Program
multi-line strings8.3.4 Normalizing Strings in Entries

N
N_, a convenience macro11.3 Comparing the Two Interfaces
Native Language Support1.2 I18n, L10n, and Such
Natural Language Support1.2 I18n, L10n, and Such
newlines in PO files3. The Format of PO Files
ngettext11.2.6 Additional functions for plural forms
ngettext program, usage15.5.12.4 Invoking the ngettext program
NLS1.2 I18n, L10n, and Such
no-awk-format flag3. The Format of PO Files
no-boost-format flag3. The Format of PO Files
no-c++-format flag3. The Format of PO Files
no-c-format flag3. The Format of PO Files
no-c-format, and xgettext4.6 Special Comments preceding Keywords
no-csharp-format flag3. The Format of PO Files
no-elisp-format flag3. The Format of PO Files
no-gcc-internal-format flag3. The Format of PO Files
no-gfc-internal-format flag3. The Format of PO Files
no-java-format flag3. The Format of PO Files
no-java-printf-format flag3. The Format of PO Files
no-javascript-format flag3. The Format of PO Files
no-kde-format flag3. The Format of PO Files
no-librep-format flag3. The Format of PO Files
no-lisp-format flag3. The Format of PO Files
no-lua-format flag3. The Format of PO Files
no-objc-format flag3. The Format of PO Files
no-object-pascal-format flag3. The Format of PO Files
no-perl-brace-format flag3. The Format of PO Files
no-perl-format flag3. The Format of PO Files
no-php-format flag3. The Format of PO Files
no-python-brace-format flag3. The Format of PO Files
no-python-format flag3. The Format of PO Files
no-qt-format flag3. The Format of PO Files
no-qt-plural-format flag3. The Format of PO Files
no-ruby-format flag3. The Format of PO Files
no-scheme-format flag3. The Format of PO Files
no-sh-format flag3. The Format of PO Files
no-smalltalk-format flag3. The Format of PO Files
no-tcl-format flag3. The Format of PO Files
no-ycp-format flag3. The Format of PO Files
nplurals, in a PO file header11.2.6 Additional functions for plural forms
number format1.3 Aspects in Native Language Support

O
objc-format flag3. The Format of PO Files
Object Pascal15.5.16 Pascal - Free Pascal Compiler
object-pascal-format flag3. The Format of PO Files
obsolete entries8.3.8 Obsolete Entries
OEM encoding2.4 Obtaining good output in a Windows console
optimization of gettext functions11.2.7 Optimization of the *gettext functions
orthography9. Manipulating PO Files
outdigits15.3.1 C Format Strings
output to stdout, xgettext5.1.2 Output file location
overview of gettext1.5 Overview of GNU gettext

P
package and version declaration in ‘configure.ac13.4.5 ‘configure.ac’ at top level
package build and installation options14. The Installer's and Distributor's View
package distributor's view of gettext14. The Installer's and Distributor's View
package installer's view of gettext14. The Installer's and Distributor's View
package maintainer's view of gettext13. The Maintainer's View
paragraphsSplit at paragraphs
Pascal15.5.16 Pascal - Free Pascal Compiler
Perl15.5.21 Perl
Perl default keywords15.5.21.2 Which keywords will xgettext look for?
Perl invalid string interpolation15.5.21.5 Invalid Uses Of String Interpolation
Perl long lines15.5.21.8 How To Grok with Long Lines
Perl parentheses15.5.21.7 When To Use Parentheses
Perl pitfalls15.5.21.9 Bugs, Pitfalls, And Things That Do Not Work
Perl quote-like expressions15.5.21.4 What are Strings And Quote-like Expressions?
Perl special keywords for hash-lookups15.5.21.3 How to Extract Hash Keys
Perl valid string interpolation15.5.21.6 Valid Uses Of String Interpolation
perl-brace-format flag3. The Format of PO Files
perl-format flag3. The Format of PO Files
pgettext11.2.5 Using contexts for solving ambiguities
pgettext_expr11.2.5 Using contexts for solving ambiguities
PHP15.5.22 PHP Hypertext Preprocessor
php-format flag3. The Format of PO Files
Pike15.5.23 Pike
plural form formulas11.2.6 Additional functions for plural forms
plural forms11.2.6 Additional functions for plural forms
plural forms, in MO files10.3 The Format of GNU MO Files
plural forms, in PO files3. The Format of PO Files
plural forms, translating12.6 Translating plural forms
plural, in a PO file header11.2.6 Additional functions for plural forms
PO files' format3. The Format of PO Files
PO mode (Emacs) commands8.3.2 Main PO mode Commands
PO template file5. Making the PO Template File
po_file_check_all9.13.8 Checking API
po_file_create9.13.2 po_file_t API
po_file_domain_header9.13.5 PO Header Entry API
po_file_domains9.13.2 po_file_t API
po_file_free9.13.2 po_file_t API
po_file_read9.13.2 po_file_t API
po_file_write9.13.2 po_file_t API
po_format_list9.13.7 Format Type API
po_format_pretty_name9.13.7 Format Type API
po_header_field9.13.5 PO Header Entry API
po_header_set_field9.13.5 PO Header Entry API
po_message_add_filepos9.13.6 po_filepos_t API
po_message_check_all9.13.8 Checking API
po_message_check_format9.13.8 Checking API
po_message_comments9.13.4 po_message_t API
po_message_create9.13.4 po_message_t API
po_message_extracted_comments9.13.4 po_message_t API
po_message_filepos9.13.6 po_filepos_t API
po_message_is_format9.13.4 po_message_t API
po_message_is_fuzzy9.13.4 po_message_t API
po_message_is_obsolete9.13.4 po_message_t API
po_message_is_range9.13.4 po_message_t API
po_message_iterator9.13.3 po_message_iterator_t API
po_message_iterator_free9.13.3 po_message_iterator_t API
po_message_msgctxt9.13.4 po_message_t API
po_message_msgid9.13.4 po_message_t API
po_message_msgid_plural9.13.4 po_message_t API
po_message_msgstr9.13.4 po_message_t API
po_message_msgstr_plural9.13.4 po_message_t API
po_message_prev_msgctxt9.13.4 po_message_t API
po_message_prev_msgid9.13.4 po_message_t API
po_message_prev_msgid_plural9.13.4 po_message_t API
po_message_remove_filepos9.13.6 po_filepos_t API
po_message_set_comments9.13.4 po_message_t API
po_message_set_extracted_comments9.13.4 po_message_t API
po_message_set_format9.13.4 po_message_t API
po_message_set_fuzzy9.13.4 po_message_t API
po_message_set_msgctxt9.13.4 po_message_t API
po_message_set_msgid9.13.4 po_message_t API
po_message_set_msgid_plural9.13.4 po_message_t API
po_message_set_msgstr9.13.4 po_message_t API
po_message_set_msgstr_plural9.13.4 po_message_t API
po_message_set_obsolete9.13.4 po_message_t API
po_message_set_prev_msgctxt9.13.4 po_message_t API
po_message_set_prev_msgid9.13.4 po_message_t API
po_message_set_prev_msgid_plural9.13.4 po_message_t API
po_message_set_range9.13.4 po_message_t API
po_next_message9.13.3 po_message_iterator_t API
Pology9.12 Other tools for manipulating PO files
portability problems with sed9.4.3 The filter
POTFILES.in’ file13.4.1 ‘POTFILES.in’ in ‘po/
preparing programs for translation4. Preparing Program Sources
preparing rules for XML translation16.1.6 Preparing Rules for XML Internationalization
preparing shell scripts for translation15.5.12.1 Preparing Shell Scripts for Internationalization
problems with catgets interface11.1.2 Problems with the catgets Interface?!
programming languages15.1 The Language Implementor's View
Python15.5.2 Python
python-brace-format flag3. The Format of PO Files
python-format flag3. The Format of PO Files

+
Jump to:   _ +   +
+A +   +B +   +C +   +D +   +E +   +F +   +G +   +H +   +I +   +J +   +K +   +L +   +M +   +N +   +O +   +P +   +Q +   +R +   +S +   +T +   +U +   +V +   +W +   +X +   +Y +   +
+ + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_3.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_3.html new file mode 100644 index 000000000..83459028f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_3.html @@ -0,0 +1,578 @@ + + + + + +GNU gettext utilities: 3. The Format of PO Files + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

3. The Format of PO Files

+ +

The GNU gettext toolset helps programmers and translators +at producing, updating and using translation files, mainly those +PO files which are textual, editable files. This chapter explains +the format of PO files. +

+

A PO file is made up of many entries, each entry holding the relation +between an original untranslated string and its corresponding +translation. All entries in a given PO file usually pertain +to a single project, and all translations are expressed in a single +target language. One PO file entry has the following schematic +structure: +

+
 
white-space
+#  translator-comments
+#. extracted-comments
+#: reference…
+#, flag…
+#| msgid previous-untranslated-string
+msgid untranslated-string
+msgstr translated-string
+
+ +

The general structure of a PO file should be well understood by +the translator. When using PO mode, very little has to be known +about the format details, as PO mode takes care of them for her. +

+

A simple entry can look like this: +

+
 
#: lib/error.c:116
+msgid "Unknown system error"
+msgstr "Error desconegut del sistema"
+
+ + + + +

Entries begin with some optional white space. Usually, when generated +through GNU gettext tools, there is exactly one blank line +between entries. Then comments follow, on lines all starting with the +character #. There are two kinds of comments: those which have +some white space immediately following the # - the translator +comments -, which comments are created and maintained exclusively by the +translator, and those which have some non-white character just after the +# - the automatic comments -, which comments are created and +maintained automatically by GNU gettext tools. Comment lines +starting with #. contain comments given by the programmer, directed +at the translator; these comments are called extracted comments +because the xgettext program extracts them from the program's +source code. Comment lines starting with #: contain references to +the program's source code. Comment lines starting with #, contain +flags; more about these below. Comment lines starting with #| +contain the previous untranslated string for which the translator gave +a translation. +

+

All comments, of either kind, are optional. +

+

References to the program's source code, in lines that start with #:, +are of the form file_name:line_number or just +file_name. If the file_name contains spaces. it is enclosed +within Unicode characters U+2068 and U+2069. +

+ + +

After white space and comments, entries show two strings, namely +first the untranslated string as it appears in the original program +sources, and then, the translation of this string. The original +string is introduced by the keyword msgid, and the translation, +by msgstr. The two strings, untranslated and translated, +are quoted in various ways in the PO file, using " +delimiters and \ escapes, but the translator does not really +have to pay attention to the precise quoting format, as PO mode fully +takes care of quoting for her. +

+

The msgid strings, as well as automatic comments, are produced +and managed by other GNU gettext tools, and PO mode does not +provide means for the translator to alter these. The most she can +do is merely deleting them, and only by deleting the whole entry. +On the other hand, the msgstr string, as well as translator +comments, are really meant for the translator, and PO mode gives her +the full control she needs. +

+

The comment lines beginning with #, are special because they are +not completely ignored by the programs as comments generally are. The +comma separated list of flags is used by the msgfmt +program to give the user some better diagnostic messages. Currently +there are two forms of flags defined: +

+
+
fuzzy
+
+

This flag can be generated by the msgmerge program or it can be +inserted by the translator herself. It shows that the msgstr +string might not be a correct translation (anymore). Only the translator +can judge if the translation requires further modification, or is +acceptable as is. Once satisfied with the translation, she then removes +this fuzzy attribute. The msgmerge program inserts this +when it combined the msgid and msgstr entries after fuzzy +search only. See section Fuzzy Entries. +

+
+
c-format
+
+
+
no-c-format
+
+

These flags should not be added by a human. Instead only the +xgettext program adds them. In an automated PO file processing +system as proposed here, the user's changes would be thrown away again as +soon as the xgettext program generates a new template file. +

+

The c-format flag indicates that the untranslated string and the +translation are supposed to be C format strings. The no-c-format +flag indicates that they are not C format strings, even though the untranslated +string happens to look like a C format string (with ‘%’ directives). +

+

When the c-format flag is given for a string the msgfmt +program does some more tests to check the validity of the translation. +See section Invoking the msgfmt Program, Special Comments preceding Keywords and C Format Strings. +

+
+
objc-format
+
+
+
no-objc-format
+
+

Likewise for Objective C, see Objective C Format Strings. +

+
+
c++-format
+
+
+
no-c++-format
+
+

Likewise for C++, see C++ Format Strings. +

+
+
python-format
+
+
+
no-python-format
+
+

Likewise for Python, see Python Format Strings. +

+
+
python-brace-format
+
+
+
no-python-brace-format
+
+

Likewise for Python brace, see Python Format Strings. +

+
+
java-format
+
+
+
no-java-format
+
+

Likewise for Java MessageFormat format strings, see Java Format Strings. +

+
+
java-printf-format
+
+
+
no-java-printf-format
+
+

Likewise for Java printf format strings, see Java Format Strings. +

+
+
csharp-format
+
+
+
no-csharp-format
+
+

Likewise for C#, see C# Format Strings. +

+
+
javascript-format
+
+
+
no-javascript-format
+
+

Likewise for JavaScript, see JavaScript Format Strings. +

+
+
scheme-format
+
+
+
no-scheme-format
+
+

Likewise for Scheme, see Scheme Format Strings. +

+
+
lisp-format
+
+
+
no-lisp-format
+
+

Likewise for Lisp, see Lisp Format Strings. +

+
+
elisp-format
+
+
+
no-elisp-format
+
+

Likewise for Emacs Lisp, see Emacs Lisp Format Strings. +

+
+
librep-format
+
+
+
no-librep-format
+
+

Likewise for librep, see librep Format Strings. +

+
+
ruby-format
+
+
+
no-ruby-format
+
+

Likewise for Ruby, see Ruby Format Strings. +

+
+
sh-format
+
+
+
no-sh-format
+
+

Likewise for Shell, see Shell Format Strings. +

+
+
awk-format
+
+
+
no-awk-format
+
+

Likewise for awk, see awk Format Strings. +

+
+
lua-format
+
+
+
no-lua-format
+
+

Likewise for Lua, see Lua Format Strings. +

+
+
object-pascal-format
+
+
+
no-object-pascal-format
+
+

Likewise for Object Pascal, see Object Pascal Format Strings. +

+
+
smalltalk-format
+
+
+
no-smalltalk-format
+
+

Likewise for Smalltalk, see Smalltalk Format Strings. +

+
+
qt-format
+
+
+
no-qt-format
+
+

Likewise for Qt, see Qt Format Strings. +

+
+
qt-plural-format
+
+
+
no-qt-plural-format
+
+

Likewise for Qt plural forms, see Qt Format Strings. +

+
+
kde-format
+
+
+
no-kde-format
+
+

Likewise for KDE, see KDE Format Strings. +

+
+
boost-format
+
+
+
no-boost-format
+
+

Likewise for Boost, see Boost Format Strings. +

+
+
tcl-format
+
+
+
no-tcl-format
+
+

Likewise for Tcl, see Tcl Format Strings. +

+
+
perl-format
+
+
+
no-perl-format
+
+

Likewise for Perl, see Perl Format Strings. +

+
+
perl-brace-format
+
+
+
no-perl-brace-format
+
+

Likewise for Perl brace, see Perl Format Strings. +

+
+
php-format
+
+
+
no-php-format
+
+

Likewise for PHP, see PHP Format Strings. +

+
+
gcc-internal-format
+
+
+
no-gcc-internal-format
+
+

Likewise for the GCC sources, see GCC internal Format Strings. +

+
+
gfc-internal-format
+
+
+
no-gfc-internal-format
+
+

Likewise for the GNU Fortran Compiler sources, see GFC internal Format Strings. +

+
+
ycp-format
+
+
+
no-ycp-format
+
+

Likewise for YCP, see YCP Format Strings. +

+
+
+ + + +

It is also possible to have entries with a context specifier. They look like +this: +

+
 
white-space
+#  translator-comments
+#. extracted-comments
+#: reference…
+#, flag…
+#| msgctxt previous-context
+#| msgid previous-untranslated-string
+msgctxt context
+msgid untranslated-string
+msgstr translated-string
+
+ +

The context serves to disambiguate messages with the same +untranslated-string. It is possible to have several entries with +the same untranslated-string in a PO file, provided that they each +have a different context. Note that an empty context string +and an absent msgctxt line do not mean the same thing. +

+ + +

A different kind of entries is used for translations which involve +plural forms. +

+
 
white-space
+#  translator-comments
+#. extracted-comments
+#: reference…
+#, flag…
+#| msgid previous-untranslated-string-singular
+#| msgid_plural previous-untranslated-string-plural
+msgid untranslated-string-singular
+msgid_plural untranslated-string-plural
+msgstr[0] translated-string-case-0
+...
+msgstr[N] translated-string-case-n
+
+ +

Such an entry can look like this: +

+
 
#: src/msgcmp.c:338 src/po-lex.c:699
+#, c-format
+msgid "found %d fatal error"
+msgid_plural "found %d fatal errors"
+msgstr[0] "s'ha trobat %d error fatal"
+msgstr[1] "s'han trobat %d errors fatals"
+
+ +

Here also, a msgctxt context can be specified before msgid, +like above. +

+

Here, additional kinds of flags can be used: +

+
+
range:
+
+

This flag is followed by a range of non-negative numbers, using the syntax +range: minimum-value..maximum-value. It designates the +possible values that the numeric parameter of the message can take. In some +languages, translators may produce slightly better translations if they know +that the value can only take on values between 0 and 10, for example. +

+
+ +

The previous-untranslated-string is optionally inserted by the +msgmerge program, at the same time when it marks a message fuzzy. +It helps the translator to see which changes were done by the developers +on the untranslated-string. +

+

It happens that some lines, usually whitespace or comments, follow the +very last entry of a PO file. Such lines are not part of any entry, +and will be dropped when the PO file is processed by the tools, or may +disturb some PO file editors. +

+

The remainder of this section may be safely skipped by those using +a PO file editor, yet it may be interesting for everybody to have a better +idea of the precise format of a PO file. On the other hand, those +wishing to modify PO files by hand should carefully continue reading on. +

+

An empty untranslated-string is reserved to contain the header +entry with the meta information (see section Filling in the Header Entry). This header +entry should be the first entry of the file. The empty +untranslated-string is reserved for this purpose and must +not be used anywhere else. +

+

Each of untranslated-string and translated-string respects +the C syntax for a character string, including the surrounding quotes +and embedded backslashed escape sequences, except that universal character +escape sequences (\u and \U) are not allowed. When the time +comes to write multi-line strings, one should not use escaped newlines. +Instead, a closing quote should follow the last character on the +line to be continued, and an opening quote should resume the string +at the beginning of the following PO file line. For example: +

+
 
msgid ""
+"Here is an example of how one might continue a very long string\n"
+"for the common case the string represents multi-line output.\n"
+
+ +

In this example, the empty string is used on the first line, to +allow better alignment of the H from the word ‘Here’ +over the f from the word ‘for’. In this example, the +msgid keyword is followed by three strings, which are meant +to be concatenated. Concatenating the empty string does not change +the resulting overall string, but it is a way for us to comply with +the necessity of msgid to be followed by a string on the same +line, while keeping the multi-line presentation left-justified, as +we find this to be a cleaner disposition. The empty string could have +been omitted, but only if the string starting with ‘Here’ was +promoted on the first line, right after msgid.(2) It was not really necessary +either to switch between the two last quoted strings immediately after +the newline ‘\n’, the switch could have occurred after any +other character, we just did it this way because it is neater. +

+ +

One should carefully distinguish between end of lines marked as +‘\ninside quotes, which are part of the represented +string, and end of lines in the PO file itself, outside string quotes, +which have no incidence on the represented string. +

+ +

Outside strings, white lines and comments may be used freely. +Comments start at the beginning of a line with ‘#’ and extend +until the end of the PO file line. Comments written by translators +should have the initial ‘#’ immediately followed by some white +space. If the ‘#’ is not immediately followed by white space, +this comment is most likely generated and managed by specialized GNU +tools, and might disappear or be replaced unexpectedly when the PO +file is given to msgmerge. +

+

For a PO file to be valid, no two entries without msgctxt may have +the same untranslated-string or untranslated-string-singular. +Similarly, no two entries may have the same msgctxt and the same +untranslated-string or untranslated-string-singular. +

+ + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_30.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_30.html new file mode 100644 index 000000000..525996142 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_30.html @@ -0,0 +1,289 @@ + + + + + +GNU gettext utilities: General Index: Q – Y + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ +

General Index: Q – Y

+
Jump to:   _ +   +
+A +   +B +   +C +   +D +   +E +   +F +   +G +   +H +   +I +   +J +   +K +   +L +   +M +   +N +   +O +   +P +   +Q +   +R +   +S +   +T +   +U +   +V +   +W +   +X +   +Y +   +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Index Entry Section

Q
Qt format strings5.1.6 Language specific options
Qt mode, and msgfmt program10.1.2 Operation mode
qt-format flag3. The Format of PO Files
qt-plural-format flag3. The Format of PO Files
quotation marks6.2 Filling in the Header Entry
quotation marks13.4.4 Extending ‘Makefile’ in ‘po/
quote characters, use in PO files6.2 Filling in the Header Entry

R
range: flag3. The Format of PO Files
recode-sr-latin program9.4.5 Built-in filters
related reading17.3 Related Readings
release13.7 Creating a Distribution Tarball
RSJ16.1.2 Resource String Table
RST16.1.2 Resource String Table
Ruby15.5.11 Ruby
ruby-format flag3. The Format of PO Files

S
Scheme15.5.6 GNU guile - Scheme
scheme-format flag3. The Format of PO Files
scripting languages15.1 The Language Implementor's View
search messages in a catalog9.3 Invoking the msggrep Program
selecting message language2.3.2 Locale Environment Variables
sentence end markers, xgettext5.1.5 Operation mode
sentencesEntire sentences
setting up gettext at build time14. The Installer's and Distributor's View
setting up gettext at run time2.3.2 Locale Environment Variables
several domains11.2.2 Solving Ambiguities
sex1. Introduction
sh-format flag3. The Format of PO Files
she, he, and they1. Introduction
shell format string15.5.12.5 Invoking the envsubst program
shell scripts15.5.12 sh - Shell Script
Smalltalk15.5.17 GNU Smalltalk
smalltalk-format flag3. The Format of PO Files
sorting msgcat output9.1.5 Output details
sorting msgmerge output7.1.7 Output details
sorting msgunfmt output10.2.7 Output details
sorting output of xgettext5.1.7 Output details
specifying plural form in a PO file11.2.6 Additional functions for plural forms
standard output, and msgcat9.1.2 Output file location
standard output, and msgmerge program7.1.3 Output file location
string concatenationNo string concatenation
string normalization in entries8.3.4 Normalizing Strings in Entries
styleDecent English style
supported languages, msgfmt10.1.8 XML mode operations
supported languages, xgettext5.1.3 Choice of input file language
supported syntax checks, xgettext5.1.5 Operation mode

T
Tcl15.5.20 Tcl - Tk's scripting language
Tcl mode, and msgfmt program10.1.2 Operation mode
Tcl mode, and msgunfmt program10.2.1 Operation mode
tcl-format flag3. The Format of PO Files
template PO file1.5 Overview of GNU gettext
testing ‘.po’ files for equivalence5.1.7 Output details
Tk's scripting language15.5.20 Tcl - Tk's scripting language
translated entries8.3.5 Translated Entries
translating menu entries11.2.5 Using contexts for solving ambiguities
translation aspects1.3 Aspects in Native Language Support
Translation Matrix2.5 Installing Translations for Particular Programs
Translation Project1.1 The Purpose of GNU gettext
turning off NLS support13.4.12 ‘gettext.h’ in ‘lib/
tutorial of gettext usage1.5 Overview of GNU gettext

U
unify duplicate translations9.5 Invoking the msguniq Program
untranslated entries8.3.7 Untranslated Entries
update translations from a compendium8.4.2.2 Update an Existing Translation File
upgrading to new versions of gettext13.2 Prerequisite Works

V
version control for backup files, msgmerge7.1.4 Output file location in update mode

W
Windows2.4 Obtaining good output in a Windows console
wxWidgets library15.5.19 wxWidgets library

X
xargs, and output from msgexec9.10 Invoking the msgexec Program
xerror9.13.1 Error Handling
xerror29.13.1 Error Handling
xgettext program, usage5.1 Invoking the xgettext Program
XML mode, and msgfmt program10.1.2 Operation mode
xmodmap program, and typing quotation marks6.2 Filling in the Header Entry

Y
YaST2 scripting language15.5.25 YCP - YaST2 scripting language
YCP15.5.25 YCP - YaST2 scripting language
ycp-format flag3. The Format of PO Files

+
Jump to:   _ +   +
+A +   +B +   +C +   +D +   +E +   +F +   +G +   +H +   +I +   +J +   +K +   +L +   +M +   +N +   +O +   +P +   +Q +   +R +   +S +   +T +   +U +   +V +   +W +   +X +   +Y +   +
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_4.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_4.html new file mode 100644 index 000000000..c9a56148c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_4.html @@ -0,0 +1,1181 @@ + + + + + +GNU gettext utilities: 4. Preparing Program Sources + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

4. Preparing Program Sources

+ + +

For the programmer, changes to the C source code fall into three +categories. First, you have to make the localization functions +known to all modules needing message translation. Second, you should +properly trigger the operation of GNU gettext when the program +initializes, usually from the main function. Last, you should +identify, adjust and mark all constant strings in your program +needing translation. +

+ + + + +

4.1 Importing the gettext declaration

+ +

Presuming that your set of programs, or package, has been adjusted +so all needed GNU gettext files are available, and your +‘Makefile’ files are adjusted (see section The Maintainer's View), each C module +having translated C strings should contain the line: +

+ +
 
#include <libintl.h>
+
+ +

Similarly, each C module containing printf()/fprintf()/... +calls with a format string that could be a translated C string (even if +the C string comes from a different C module) should contain the line: +

+
 
#include <libintl.h>
+
+ + + + +

4.2 Triggering gettext Operations

+ +

The initialization of locale data should be done with more or less +the same code in every program, as demonstrated below: +

+
 
int
+main (int argc, char *argv[])
+{
+  …
+  setlocale (LC_ALL, "");
+  bindtextdomain (PACKAGE, LOCALEDIR);
+  textdomain (PACKAGE);
+  …
+}
+
+ +

PACKAGE and LOCALEDIR should be provided either by +‘config.h’ or by the Makefile. For now consult the gettext +or hello sources for more information. +

+ + +

The use of LC_ALL might not be appropriate for you. +LC_ALL includes all locale categories and especially +LC_CTYPE. This latter category is responsible for determining +character classes with the isalnum etc. functions from +‘ctype.h’ which could especially for programs, which process some +kind of input language, be wrong. For example this would mean that a +source code using the ç (c-cedilla character) is runnable in +France but not in the U.S. +

+

Some systems also have problems with parsing numbers using the +scanf functions if an other but the LC_ALL locale category is +used. The standards say that additional formats but the one known in the +"C" locale might be recognized. But some systems seem to reject +numbers in the "C" locale format. In some situation, it might +also be a problem with the notation itself which makes it impossible to +recognize whether the number is in the "C" locale or the local +format. This can happen if thousands separator characters are used. +Some locales define this character according to the national +conventions to '.' which is the same character used in the +"C" locale to denote the decimal point. +

+

So it is sometimes necessary to replace the LC_ALL line in the +code above by a sequence of setlocale lines +

+
 
{
+  …
+  setlocale (LC_CTYPE, "");
+  setlocale (LC_MESSAGES, "");
+  …
+}
+
+ + + + + + + + +

On all POSIX conformant systems the locale categories LC_CTYPE, +LC_MESSAGES, LC_COLLATE, LC_MONETARY, +LC_NUMERIC, and LC_TIME are available. On some systems +which are only ISO C compliant, LC_MESSAGES is missing, but +a substitute for it is defined in GNU gettext's <libintl.h> and +in GNU gnulib's <locale.h>. +

+

Note that changing the LC_CTYPE also affects the functions +declared in the <ctype.h> standard header and some functions +declared in the <string.h> and <stdlib.h> standard headers. +If this is not +desirable in your application (for example in a compiler's parser), +you can use a set of substitute functions which hardwire the C locale, +such as found in the modules ‘c-ctype’, ‘c-strcase’, +‘c-strcasestr’, ‘c-strtod’, ‘c-strtold’ in the GNU gnulib +source distribution. +

+

It is also possible to switch the locale forth and back between the +environment dependent locale and the C locale, but this approach is +normally avoided because a setlocale call is expensive, +because it is tedious to determine the places where a locale switch +is needed in a large program's source, and because switching a locale +is not multithread-safe. +

+ + + +

4.3 Preparing Translatable Strings

+ +

Before strings can be marked for translations, they sometimes need to +be adjusted. Usually preparing a string for translation is done right +before marking it, during the marking phase which is described in the +next sections. What you have to keep in mind while doing that is the +following. +

+
    +
  • +Decent English style. + +
  • +Entire sentences. + +
  • +Split at paragraphs. + +
  • +Use format strings instead of string concatenation. + +
  • +Use placeholders in format strings instead of embedded URLs. + +
  • +Use placeholders in format strings instead of programmer-defined format +string directives. + +
  • +Avoid unusual markup and unusual control characters. +
+ +

Let's look at some examples of these guidelines. +

+ +

Decent English style

+ +

Translatable strings should be in good English style. If slang language +with abbreviations and shortcuts is used, often translators will not +understand the message and will produce very inappropriate translations. +

+
 
"%s: is parameter\n"
+
+ +

This is nearly untranslatable: Is the displayed item a parameter or +the parameter? +

+
 
"No match"
+
+ +

The ambiguity in this message makes it unintelligible: Is the program +attempting to set something on fire? Does it mean "The given object does +not match the template"? Does it mean "The template does not fit for any +of the objects"? +

+ +

In both cases, adding more words to the message will help both the +translator and the English speaking user. +

+ +

Entire sentences

+ +

Translatable strings should be entire sentences. It is often not possible +to translate single verbs or adjectives in a substitutable way. +

+
 
printf ("File %s is %s protected", filename, rw ? "write" : "read");
+
+ +

Most translators will not look at the source and will thus only see the +string "File %s is %s protected", which is unintelligible. Change +this to +

+
 
printf (rw ? "File %s is write protected" : "File %s is read protected",
+        filename);
+
+ +

This way the translator will not only understand the message, she will +also be able to find the appropriate grammatical construction. A French +translator for example translates "write protected" like "protected +against writing". +

+

Entire sentences are also important because in many languages, the +declination of some word in a sentence depends on the gender or the +number (singular/plural) of another part of the sentence. There are +usually more interdependencies between words than in English. The +consequence is that asking a translator to translate two half-sentences +and then combining these two half-sentences through dumb string concatenation +will not work, for many languages, even though it would work for English. +That's why translators need to handle entire sentences. +

+

Often sentences don't fit into a single line. If a sentence is output +using two subsequent printf statements, like this +

+
 
printf ("Locale charset \"%s\" is different from\n", lcharset);
+printf ("input file charset \"%s\".\n", fcharset);
+
+ +

the translator would have to translate two half sentences, but nothing +in the POT file would tell her that the two half sentences belong together. +It is necessary to merge the two printf statements so that the +translator can handle the entire sentence at once and decide at which +place to insert a line break in the translation (if at all): +

+
 
printf ("Locale charset \"%s\" is different from\n\
+input file charset \"%s\".\n", lcharset, fcharset);
+
+ +

You may now ask: how about two or more adjacent sentences? Like in this case: +

+
 
puts ("Apollo 13 scenario: Stack overflow handling failed.");
+puts ("On the next stack overflow we will crash!!!");
+
+ +

Should these two statements merged into a single one? I would recommend to +merge them if the two sentences are related to each other, because then it +makes it easier for the translator to understand and translate both. On +the other hand, if one of the two messages is a stereotypic one, occurring +in other places as well, you will do a favour to the translator by not +merging the two. (Identical messages occurring in several places are +combined by xgettext, so the translator has to handle them once only.) +

+ +

Split at paragraphs

+ +

Translatable strings should be limited to one paragraph; don't let a +single message be longer than ten lines. The reason is that when the +translatable string changes, the translator is faced with the task of +updating the entire translated string. Maybe only a single word will +have changed in the English string, but the translator doesn't see that +(with the current translation tools), therefore she has to proofread +the entire message. +

+ +

Many GNU programs have a ‘--help’ output that extends over several +screen pages. It is a courtesy towards the translators to split such a +message into several ones of five to ten lines each. While doing that, +you can also attempt to split the documented options into groups, +such as the input options, the output options, and the informative +output options. This will help every user to find the option he is +looking for. +

+ +

No string concatenation

+ +

Hardcoded string concatenation is sometimes used to construct English +strings: +

+
 
strcpy (s, "Replace ");
+strcat (s, object1);
+strcat (s, " with ");
+strcat (s, object2);
+strcat (s, "?");
+
+ +

In order to present to the translator only entire sentences, and also +because in some languages the translator might want to swap the order +of object1 and object2, it is necessary to change this +to use a format string: +

+
 
sprintf (s, "Replace %s with %s?", object1, object2);
+
+ + +

A similar case is compile time concatenation of strings. The ISO C 99 +include file <inttypes.h> contains a macro PRId64 that +can be used as a formatting directive for outputting an ‘int64_t’ +integer through printf. It expands to a constant string, usually +"d" or "ld" or "lld" or something like this, depending on the platform. +Assume you have code like +

+
 
printf ("The amount is %0" PRId64 "\n", number);
+
+ +

The gettext tools and library have special support for these +<inttypes.h> macros. You can therefore simply write +

+
 
printf (gettext ("The amount is %0" PRId64 "\n"), number);
+
+ +

The PO file will contain the string "The amount is %0<PRId64>\n". +The translators will provide a translation containing "%0<PRId64>" +as well, and at runtime the gettext function's result will +contain the appropriate constant string, "d" or "ld" or "lld". +

+

This works only for the predefined <inttypes.h> macros. If +you have defined your own similar macros, let's say ‘MYPRId64’, +that are not known to xgettext, the solution for this problem +is to change the code like this: +

+
 
char buf1[100];
+sprintf (buf1, "%0" MYPRId64, number);
+printf (gettext ("The amount is %s\n"), buf1);
+
+ +

This means, you put the platform dependent code in one statement, and the +internationalization code in a different statement. Note that a buffer length +of 100 is safe, because all available hardware integer types are limited to +128 bits, and to print a 128 bit integer one needs at most 54 characters, +regardless whether in decimal, octal or hexadecimal. +

+ + +

All this applies to other programming languages as well. For example, in +Java and C#, string concatenation is very frequently used, because it is a +compiler built-in operator. Like in C, in Java, you would change +

+
 
System.out.println("Replace "+object1+" with "+object2+"?");
+
+ +

into a statement involving a format string: +

+
 
System.out.println(
+    MessageFormat.format("Replace {0} with {1}?",
+                         new Object[] { object1, object2 }));
+
+ +

Similarly, in C#, you would change +

+
 
Console.WriteLine("Replace "+object1+" with "+object2+"?");
+
+ +

into a statement involving a format string: +

+
 
Console.WriteLine(
+    String.Format("Replace {0} with {1}?", object1, object2));
+
+ + +

No embedded URLs

+ +

It is good to not embed URLs in translatable strings, for several reasons: +

    +
  • +It avoids possible mistakes during copy and paste. +
  • +Translators cannot translate the URLs or, by mistake, use the URLs from +other packages that are present in their compendium. +
  • +When the URLs change, translators don't need to revisit the translation +of the string. +
+ +

The same holds for email addresses. +

+

So, you would change +

+
 
fputs (_("GNU GPL version 3 <https://gnu.org/licenses/gpl.html>\n"),
+       stream);
+
+ +

to +

+
 
fprintf (stream, _("GNU GPL version 3 <%s>\n"),
+         "https://gnu.org/licenses/gpl.html");
+
+ + +

No programmer-defined format string directives

+ +

The GNU C Library's <printf.h> facility and the C++ standard library's <format> header file make it possible for the programmer to define their own format string directives. However, such format directives cannot be used in translatable strings, for two reasons: +

    +
  • +There is no reference documentation for format strings with such directives, that the translators could consult. They would therefore have to guess where the directive starts and where it ends. +
  • +An ‘msgfmt -c’ invocation cannot check whether the translator has produced a compatible translation of the format string. As a consequence, when a format string contains a programmer-defined directive, the program may crash at runtime when it uses the translated format string. +
+ +

To avoid this situation, you need to move the formatting with the custom directive into a format string that does not get translated. +

+

For example, assuming code that makes use of a %r directive: +

+
 
fprintf (stream, _("The contents is: %r"), data);
+
+ +

you would rewrite it to: +

+
 
char *tmp;
+if (asprintf (&tmp, "%r", data) < 0)
+  error (...);
+fprintf (stream, _("The contents is: %s"), tmp);
+free (tmp);
+
+ +

Similarly, in C++, assuming you have defined a custom formatter for the type of data, the code +

+
 
cout << format (_("The contents is: {:#$#}"), data);
+
+ +

should be rewritten to: +

+
 
string tmp = format ("{:#$#}", data);
+cout << format (_("The contents is: {}"), tmp);
+
+ + +

No unusual markup

+ +

Unusual markup or control characters should not be used in translatable +strings. Translators will likely not understand the particular meaning +of the markup or control characters. +

+

For example, if you have a convention that ‘|’ delimits the +left-hand and right-hand part of some GUI elements, translators will +often not understand it without specific comments. It might be +better to have the translator translate the left-hand and right-hand +part separately. +

+

Another example is the ‘argp’ convention to use a single ‘\v’ +(vertical tab) control character to delimit two sections inside a +string. This is flawed. Some translators may convert it to a simple +newline, some to blank lines. With some PO file editors it may not be +easy to even enter a vertical tab control character. So, you cannot +be sure that the translation will contain a ‘\v’ character, at the +corresponding position. The solution is, again, to let the translator +translate two separate strings and combine at run-time the two translated +strings with the ‘\v’ required by the convention. +

+

HTML markup, however, is common enough that it's probably ok to use in +translatable strings. But please bear in mind that the GNU gettext tools +don't verify that the translations are well-formed HTML. +

+ + + +

4.4 How Marks Appear in Sources

+ +

All strings requiring translation should be marked in the C sources. Marking +is done in such a way that each translatable string appears to be +the sole argument of some function or preprocessor macro. There are +only a few such possible functions or macros meant for translation, +and their names are said to be marking keywords. The marking is +attached to strings themselves, rather than to what we do with them. +This approach has more uses. A blatant example is an error message +produced by formatting. The format string needs translation, as +well as some strings inserted through some ‘%s’ specification +in the format, while the result from sprintf may have so many +different instances that it is impractical to list them all in some +‘error_string_out()’ routine, say. +

+

This marking operation has two goals. The first goal of marking +is for triggering the retrieval of the translation, at run time. +The keyword is possibly resolved into a routine able to dynamically +return the proper translation, as far as possible or wanted, for the +argument string. Most localizable strings are found in executable +positions, that is, attached to variables or given as parameters to +functions. But this is not universal usage, and some translatable +strings appear in structured initializations. See section Special Cases of Translatable Strings. +

+

The second goal of the marking operation is to help xgettext +at properly extracting all translatable strings when it scans a set +of program sources and produces PO file templates. +

+

The canonical keyword for marking translatable strings is +‘gettext’, it gave its name to the whole GNU gettext +package. For packages making only light use of the ‘gettext’ +keyword, macro or function, it is easily used as is. However, +for packages using the gettext interface more heavily, it +is usually more convenient to give the main keyword a shorter, less +obtrusive name. Indeed, the keyword might appear on a lot of strings +all over the package, and programmers usually do not want nor need +their program sources to remind them forcefully, all the time, that they +are internationalized. Further, a long keyword has the disadvantage +of using more horizontal space, forcing more indentation work on +sources for those trying to keep them within 79 or 80 columns. +

+ +

Many packages use ‘_’ (a simple underline) as a keyword, +and write ‘_("Translatable string")’ instead of ‘gettext +("Translatable string")’. Further, the coding rule, from GNU standards, +wanting that there is a space between the keyword and the opening +parenthesis is relaxed, in practice, for this particular usage. +So, the textual overhead per translatable string is reduced to +only three characters: the underline and the two parentheses. +However, even if GNU gettext uses this convention internally, +it does not offer it officially. The real, genuine keyword is truly +‘gettext’ indeed. It is fairly easy for those wanting to use +‘_’ instead of ‘gettext’ to declare: +

+
 
#include <libintl.h>
+#define _(String) gettext (String)
+
+ +

instead of merely using ‘#include <libintl.h>’. +

+

The marking keywords ‘gettext’ and ‘_’ take the translatable +string as sole argument. It is also possible to define marking functions +that take it at another argument position. It is even possible to make +the marked argument position depend on the total number of arguments of +the function call; this is useful in C++. All this is achieved using +xgettext's ‘--keyword’ option. How to pass such an option +to xgettext, assuming that gettextize is used, is described +in Makevars’ in ‘po/ and AM_XGETTEXT_OPTION in ‘po.m4. +

+

Note also that long strings can be split across lines, into multiple +adjacent string tokens. Automatic string concatenation is performed +at compile time according to ISO C and ISO C++; xgettext also +supports this syntax. +

+

In C++, marking a C++ format string requires a small code change, +because the first argument to std::format must be a constant +expression. +For example, +

 
std::format ("{} {}!", "Hello", "world")
+
+

needs to be changed to +

 
std::vformat (gettext ("{} {}!"), std::make_format_args("Hello", "world"))
+
+ +

Later on, the maintenance is relatively easy. If, as a programmer, +you add or modify a string, you will have to ask yourself if the +new or altered string requires translation, and include it within +‘_()’ if you think it should be translated. For example, ‘"%s"’ +is an example of string not requiring translation. But +‘"%s: %d"does require translation, because in French, unlike +in English, it's customary to put a space before a colon. +

+ + + +

4.5 Marking Translatable Strings

+ +

In PO mode, one set of features is meant more for the programmer than +for the translator, and allows him to interactively mark which strings, +in a set of program sources, are translatable, and which are not. +Even if it is a fairly easy job for a programmer to find and mark +such strings by other means, using any editor of his choice, PO mode +makes this work more comfortable. Further, this gives translators +who feel a little like programmers, or programmers who feel a little +like translators, a tool letting them work at marking translatable +strings in the program sources, while simultaneously producing a set of +translation in some language, for the package being internationalized. +

+ +

The set of program sources, targeted by the PO mode commands describe +here, should have an Emacs tags table constructed for your project, +prior to using these PO file commands. This is easy to do. In any +shell window, change the directory to the root of your project, then +execute a command resembling: +

+
 
etags src/*.[hc] lib/*.[hc]
+
+ +

presuming here you want to process all ‘.h’ and ‘.c’ files +from the ‘src/’ and ‘lib/’ directories. This command will +explore all said files and create a ‘TAGS’ file in your root +directory, somewhat summarizing the contents using a special file +format Emacs can understand. +

+ +

For packages following the GNU coding standards, there is +a make goal tags or TAGS which constructs the tag files in +all directories and for all files containing source code. +

+

Once your ‘TAGS’ file is ready, the following commands assist +the programmer at marking translatable strings in his set of sources. +But these commands are necessarily driven from within a PO file +window, and it is likely that you do not even have such a PO file yet. +This is not a problem at all, as you may safely open a new, empty PO +file, mainly for using these commands. This empty PO file will slowly +fill in while you mark strings as translatable in your program sources. +

+
+
,
+
+

Search through program sources for a string which looks like a +candidate for translation (po-tags-search). +

+
+
M-,
+
+

Mark the last string found with ‘_()’ (po-mark-translatable). +

+
+
M-.
+
+

Mark the last string found with a keyword taken from a set of possible +keywords. This command with a prefix allows some management of these +keywords (po-select-mark-and-mark). +

+
+
+ + +

The , (po-tags-search) command searches for the next +occurrence of a string which looks like a possible candidate for +translation, and displays the program source in another Emacs window, +positioned in such a way that the string is near the top of this other +window. If the string is too big to fit whole in this window, it is +positioned so only its end is shown. In any case, the cursor +is left in the PO file window. If the shown string would be better +presented differently in different native languages, you may mark it +using M-, or M-.. Otherwise, you might rather ignore it +and skip to the next string by merely repeating the , command. +

+

A string is a good candidate for translation if it contains a sequence +of three or more letters. A string containing at most two letters in +a row will be considered as a candidate if it has more letters than +non-letters. The command disregards strings containing no letters, +or isolated letters only. It also disregards strings within comments, +or strings already marked with some keyword PO mode knows (see below). +

+

If you have never told Emacs about some ‘TAGS’ file to use, the +command will request that you specify one from the minibuffer, the +first time you use the command. You may later change your ‘TAGS’ +file by using the regular Emacs command M-x visit-tags-table, +which will ask you to name the precise ‘TAGS’ file you want +to use. See (emacs)Tags section `Tag Tables' in The Emacs Editor. +

+

Each time you use the , command, the search resumes from where it was +left by the previous search, and goes through all program sources, +obeying the ‘TAGS’ file, until all sources have been processed. +However, by giving a prefix argument to the command (C-u +,), you may request that the search be restarted all over again +from the first program source; but in this case, strings that you +recently marked as translatable will be automatically skipped. +

+

Using this , command does not prevent using of other regular +Emacs tags commands. For example, regular tags-search or +tags-query-replace commands may be used without disrupting the +independent , search sequence. However, as implemented, the +initial , command (or the , command is used with a +prefix) might also reinitialize the regular Emacs tags searching to the +first tags file, this reinitialization might be considered spurious. +

+ + +

The M-, (po-mark-translatable) command will mark the +recently found string with the ‘_’ keyword. The M-. +(po-select-mark-and-mark) command will request that you type +one keyword from the minibuffer and use that keyword for marking +the string. Both commands will automatically create a new PO file +untranslated entry for the string being marked, and make it the +current entry (making it easy for you to immediately proceed to its +translation, if you feel like doing it right away). It is possible +that the modifications made to the program source by M-, or +M-. render some source line longer than 80 columns, forcing you +to break and re-indent this line differently. You may use the O +command from PO mode, or any other window changing command from +Emacs, to break out into the program source window, and do any +needed adjustments. You will have to use some regular Emacs command +to return the cursor to the PO file window, if you want command +, for the next string, say. +

+

The M-. command has a few built-in speedups, so you do not +have to explicitly type all keywords all the time. The first such +speedup is that you are presented with a preferred keyword, +which you may accept by merely typing <RET> at the prompt. +The second speedup is that you may type any non-ambiguous prefix of the +keyword you really mean, and the command will complete it automatically +for you. This also means that PO mode has to know all +your possible keywords, and that it will not accept mistyped keywords. +

+

If you reply ? to the keyword request, the command gives a +list of all known keywords, from which you may choose. When the +command is prefixed by an argument (C-u M-.), it inhibits +updating any program source or PO file buffer, and does some simple +keyword management instead. In this case, the command asks for a +keyword, written in full, which becomes a new allowed keyword for +later M-. commands. Moreover, this new keyword automatically +becomes the preferred keyword for later commands. By typing +an already known keyword in response to C-u M-., one merely +changes the preferred keyword and does nothing more. +

+

All keywords known for M-. are recognized by the , command +when scanning for strings, and strings already marked by any of those +known keywords are automatically skipped. If many PO files are opened +simultaneously, each one has its own independent set of known keywords. +There is no provision in PO mode, currently, for deleting a known +keyword, you have to quit the file (maybe using q) and reopen +it afresh. When a PO file is newly brought up in an Emacs window, only +‘gettext’ and ‘_’ are known as keywords, and ‘gettext’ +is preferred for the M-. command. In fact, this is not useful to +prefer ‘_’, as this one is already built in the M-, command. +

+ + + +

4.6 Special Comments preceding Keywords

+ + +

In C programs strings are often used within calls of functions from the +printf family. The special thing about these format strings is +that they can contain format specifiers introduced with %. Assume +we have the code +

+
 
printf (gettext ("String `%s' has %d characters\n"), s, strlen (s));
+
+ +

A possible German translation for the above string might be: +

+
 
"%d Zeichen lang ist die Zeichenkette `%s'"
+
+ +

A C programmer, even if he cannot speak German, will recognize that +there is something wrong here. The order of the two format specifiers +is changed but of course the arguments in the printf don't have. +This will most probably lead to problems because now the length of the +string is regarded as the address. +

+

To prevent errors at runtime caused by translations, the msgfmt +tool can check statically whether the arguments in the original and the +translation string match in type and number. If this is not the case +and the ‘-c’ option has been passed to msgfmt, msgfmt +will give an error and refuse to produce a MO file. Thus consistent +use of ‘msgfmt -c’ will catch the error, so that it cannot cause +problems at runtime. +

+

If the word order in the above German translation would be correct one +would have to write +

+
 
"%2$d Zeichen lang ist die Zeichenkette `%1$s'"
+
+ +

The routines in msgfmt know about this special notation. +

+

Because not all strings in a program will be format strings, it is not +useful for msgfmt to test all the strings in the ‘.po’ file. +This might cause problems because the string might contain what looks +like a format specifier, but the string is not used in printf. +

+

Therefore xgettext adds a special tag to those messages it +thinks might be a format string. There is no absolute rule for this, +only a heuristic. In the ‘.po’ file the entry is marked using the +c-format flag in the #, comment line (see section The Format of PO Files). +

+ + +

The careful reader now might say that this again can cause problems. +The heuristic might guess it wrong. This is true and therefore +xgettext knows about a special kind of comment which lets +the programmer take over the decision. If in the same line as or +the immediately preceding line to the gettext keyword +the xgettext program finds a comment containing the words +xgettext:c-format, it will mark the string in any case with +the c-format flag. This kind of comment should be used when +xgettext does not recognize the string as a format string but +it really is one and it should be tested. Please note that when the +comment is in the same line as the gettext keyword, it must be +before the string to be translated. Also note that a comment such as +xgettext:c-format applies only to the first string in the same +or the next line, not to multiple strings. +

+

This situation happens quite often. The printf function is often +called with strings which do not contain a format specifier. Of course +one would normally use fputs but it does happen. In this case +xgettext does not recognize this as a format string but what +happens if the translation introduces a valid format specifier? The +printf function will try to access one of the parameters but none +exists because the original code does not pass any parameters. +

+

xgettext of course could make a wrong decision the other way +round, i.e. a string marked as a format string actually is not a format +string. In this case the msgfmt might give too many warnings and +would prevent translating the ‘.po’ file. The method to prevent +this wrong decision is similar to the one used above, only the comment +to use must contain the string xgettext:no-c-format. +

+

If a string is marked with c-format and this is not correct the +user can find out who is responsible for the decision. See +Invoking the xgettext Program to see how the --debug option can be +used for solving this problem. +

+ + + +

4.7 Special Cases of Translatable Strings

+ +

The attentive reader might now point out that it is not always possible +to mark translatable string with gettext or something like this. +Consider the following case: +

+
 
{
+  static const char *messages[] = {
+    "some very meaningful message",
+    "and another one"
+  };
+  const char *string;
+  …
+  string
+    = index > 1 ? "a default message" : messages[index];
+
+  fputs (string);
+  …
+}
+
+ +

While it is no problem to mark the string "a default message" it +is not possible to mark the string initializers for messages. +What is to be done? We have to fulfill two tasks. First we have to mark the +strings so that the xgettext program (see section Invoking the xgettext Program) +can find them, and second we have to translate the string at runtime +before printing them. +

+

The first task can be fulfilled by creating a new keyword, which names a +no-op. For the second we have to mark all access points to a string +from the array. So one solution can look like this: +

+
 
#define gettext_noop(String) String
+
+{
+  static const char *messages[] = {
+    gettext_noop ("some very meaningful message"),
+    gettext_noop ("and another one")
+  };
+  const char *string;
+  …
+  string
+    = index > 1 ? gettext ("a default message") : gettext (messages[index]);
+
+  fputs (string);
+  …
+}
+
+ +

Please convince yourself that the string which is written by +fputs is translated in any case. How to get xgettext know +the additional keyword gettext_noop is explained in Invoking the xgettext Program. +

+

The above is of course not the only solution. You could also come along +with the following one: +

+
 
#define gettext_noop(String) String
+
+{
+  static const char *messages[] = {
+    gettext_noop ("some very meaningful message"),
+    gettext_noop ("and another one")
+  };
+  const char *string;
+  …
+  string
+    = index > 1 ? gettext_noop ("a default message") : messages[index];
+
+  fputs (gettext (string));
+  …
+}
+
+ +

But this has a drawback. The programmer has to take care that +he uses gettext_noop for the string "a default message". +A use of gettext could have in rare cases unpredictable results. +

+

One advantage is that you need not make control flow analysis to make +sure the output is really translated in any case. But this analysis is +generally not very difficult. If it should be in any situation you can +use this second method in this situation. +

+ + + +

4.8 Letting Users Report Translation Bugs

+ +

Code sometimes has bugs, but translations sometimes have bugs too. The +users need to be able to report them. Reporting translation bugs to the +programmer or maintainer of a package is not very useful, since the +maintainer must never change a translation, except on behalf of the +translator. Hence the translation bugs must be reported to the +translators. +

+

Here is a way to organize this so that the maintainer does not need to +forward translation bug reports, nor even keep a list of the addresses of +the translators or their translation teams. +

+

Every program has a place where is shows the bug report address. For +GNU programs, it is the code which handles the “–help” option, +typically in a function called “usage”. In this place, instruct the +translator to add her own bug reporting address. For example, if that +code has a statement +

+
 
printf (_("Report bugs to <%s>.\n"), PACKAGE_BUGREPORT);
+
+ +

you can add some translator instructions like this: +

+
 
/* TRANSLATORS: The placeholder indicates the bug-reporting address
+   for this package.  Please add _another line_ saying
+   "Report translation bugs to <...>\n" with the address for translation
+   bugs (typically your translation team's web or email address).  */
+printf (_("Report bugs to <%s>.\n"), PACKAGE_BUGREPORT);
+
+ +

These will be extracted by ‘xgettext’, leading to a .pot file that +contains this: +

+
 
#. TRANSLATORS: The placeholder indicates the bug-reporting address
+#. for this package.  Please add _another line_ saying
+#. "Report translation bugs to <...>\n" with the address for translation
+#. bugs (typically your translation team's web or email address).
+#: src/hello.c:178
+#, c-format
+msgid "Report bugs to <%s>.\n"
+msgstr ""
+
+ + + + +

4.9 Marking Proper Names for Translation

+ +

Should names of persons, cities, locations etc. be marked for translation +or not? People who only know languages that can be written with Latin +letters (English, Spanish, French, German, etc.) are tempted to say “no”, +because names usually do not change when transported between these languages. +However, in general when translating from one script to another, names +are translated too, usually phonetically or by transliteration. For +example, Russian or Greek names are converted to the Latin alphabet when +being translated to English, and English or French names are converted +to the Katakana script when being translated to Japanese. This is +necessary because the speakers of the target language in general cannot +read the script the name is originally written in. +

+

As a programmer, you should therefore make sure that names are marked +for translation, with a special comment telling the translators that it +is a proper name and how to pronounce it. In its simple form, it looks +like this: +

+
 
printf (_("Written by %s.\n"),
+        /* TRANSLATORS: This is a proper name.  See the gettext
+           manual, section Names.  Note this is actually a non-ASCII
+           name: The first name is (with Unicode escapes)
+           "Fran\u00e7ois" or (with HTML entities) "Fran&ccedil;ois".
+           Pronunciation is like "fraa-swa pee-nar".  */
+        _("Francois Pinard"));
+
+ +

The GNU gnulib library offers a module ‘propername’ +(https://www.gnu.org/software/gnulib/MODULES.html#module=propername) +which takes care to automatically append the original name, in parentheses, +to the translated name. For names that cannot be written in ASCII, it +also frees the translator from the task of entering the appropriate non-ASCII +characters if no script change is needed. In this more comfortable form, +it looks like this: +

+
 
printf (_("Written by %s and %s.\n"),
+        proper_name ("Ulrich Drepper"),
+        /* TRANSLATORS: This is a proper name.  See the gettext
+           manual, section Names.  Note this is actually a non-ASCII
+           name: The first name is (with Unicode escapes)
+           "Fran\u00e7ois" or (with HTML entities) "Fran&ccedil;ois".
+           Pronunciation is like "fraa-swa pee-nar".  */
+        proper_name_utf8 ("Francois Pinard", "Fran\303\247ois Pinard"));
+
+ +

You can also write the original name directly in Unicode (rather than with +Unicode escapes or HTML entities) and denote the pronunciation using the +International Phonetic Alphabet (see +https://en.wikipedia.org/wiki/International_Phonetic_Alphabet). +

+

As a translator, you should use some care when translating names, because +it is frustrating if people see their names mutilated or distorted. +

+

If your language uses the Latin script, all you need to do is to reproduce +the name as perfectly as you can within the usual character set of your +language. In this particular case, this means to provide a translation +containing the c-cedilla character. If your language uses a different +script and the people speaking it don't usually read Latin words, it means +transliteration. If the programmer used the simple case, you should still +give, in parentheses, the original writing of the name – for the sake of +the people that do read the Latin script. If the programmer used the +‘propername’ module mentioned above, you don't need to give the original +writing of the name in parentheses, because the program will already do so. +Here is an example, using Greek as the target script: +

+
 
#. This is a proper name.  See the gettext
+#. manual, section Names.  Note this is actually a non-ASCII
+#. name: The first name is (with Unicode escapes)
+#. "Fran\u00e7ois" or (with HTML entities) "Fran&ccedil;ois".
+#. Pronunciation is like "fraa-swa pee-nar".
+msgid "Francois Pinard"
+msgstr "\phi\rho\alpha\sigma\omicron\alpha \pi\iota\nu\alpha\rho"
+       " (Francois Pinard)"
+
+ +

Because translation of names is such a sensitive domain, it is a good +idea to test your translation before submitting it. +

+ + + +

4.10 Preparing Library Sources

+ +

When you are preparing a library, not a program, for the use of +gettext, only a few details are different. Here we assume that +the library has a translation domain and a POT file of its own. (If +it uses the translation domain and POT file of the main program, then +the previous sections apply without changes.) +

+
    +
  1. +The library code doesn't call setlocale (LC_ALL, ""). It's the +responsibility of the main program to set the locale. The library's +documentation should mention this fact, so that developers of programs +using the library are aware of it. + +
  2. +The library code doesn't call textdomain (PACKAGE), because it +would interfere with the text domain set by the main program. + +
  3. +The initialization code for a program was + +
     
      setlocale (LC_ALL, "");
    +  bindtextdomain (PACKAGE, LOCALEDIR);
    +  textdomain (PACKAGE);
    +
    + +

    For a library it is reduced to +

    +
     
      bindtextdomain (PACKAGE, LOCALEDIR);
    +
    + +

    If your library's API doesn't already have an initialization function, +you need to create one, containing at least the bindtextdomain +invocation. However, you usually don't need to export and document this +initialization function: It is sufficient that all entry points of the +library call the initialization function if it hasn't been called before. +The typical idiom used to achieve this is a static boolean variable that +indicates whether the initialization function has been called. If the +library is meant to be used in multithreaded applications, this variable +needs to be marked volatile, so that its value get propagated +between threads. Like this: +

    +
     
    static volatile bool libfoo_initialized;
    +
    +static void
    +libfoo_initialize (void)
    +{
    +  bindtextdomain (PACKAGE, LOCALEDIR);
    +  libfoo_initialized = true;
    +}
    +
    +/* This function is part of the exported API.  */
    +struct foo *
    +create_foo (...)
    +{
    +  /* Must ensure the initialization is performed.  */
    +  if (!libfoo_initialized)
    +    libfoo_initialize ();
    +  ...
    +}
    +
    +/* This function is part of the exported API.  The argument must be
    +   non-NULL and have been created through create_foo().  */
    +int
    +foo_refcount (struct foo *argument)
    +{
    +  /* No need to invoke the initialization function here, because
    +     create_foo() must already have been called before.  */
    +  ...
    +}
    +
    + +

    The more general solution for initialization functions, POSIX +pthread_once, is not needed in this case. +

    +
  4. +The usual declaration of the ‘_’ macro in each source file was + +
     
    #include <libintl.h>
    +#define _(String) gettext (String)
    +
    + +

    for a program. For a library, which has its own translation domain, +it reads like this: +

    +
     
    #include <libintl.h>
    +#define _(String) dgettext (PACKAGE, String)
    +
    + +

    In other words, dgettext is used instead of gettext. +Similarly, the dngettext function should be used in place of the +ngettext function. +

+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_5.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_5.html new file mode 100644 index 000000000..3213de54b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_5.html @@ -0,0 +1,822 @@ + + + + + +GNU gettext utilities: 5. Making the PO Template File + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

5. Making the PO Template File

+ +

After preparing the sources, the programmer creates a PO template file. +This section explains how to use xgettext for this purpose. +

+

xgettext creates a file named ‘domainname.po’. You +should then rename it to ‘domainname.pot’. (Why doesn't +xgettext create it under the name ‘domainname.pot’ +right away? The answer is: for historical reasons. When xgettext +was specified, the distinction between a PO file and PO file template +was fuzzy, and the suffix ‘.pot’ wasn't in use at that time.) +

+ + + + + +

5.1 Invoking the xgettext Program

+ + +
 
xgettext [option] [inputfile] …
+
+ +

The xgettext program extracts translatable strings from given +input files. +

+ + +

5.1.1 Input file location

+ +
+
inputfile
+

Input files. +

+
+
-f file
+
--files-from=file
+
+ +

Read the names of the input files from file instead of getting +them from the command line. +

+
+
-D directory
+
--directory=directory
+
+ +

Add directory to the list of directories. Source files are +searched relative to this list of directories. The resulting ‘.po’ +file will be written relative to the current directory, though. +

+
+
+ +

If inputfile is ‘-’, standard input is read. +

+ + +

5.1.2 Output file location

+ +
+
-d name
+
--default-domain=name
+
+ +

Use ‘name.po’ for output (instead of ‘messages.po’). +

+
+
-o file
+
--output=file
+
+ +

Write output to specified file (instead of ‘name.po’ or +‘messages.po’). +

+
+
-p dir
+
--output-dir=dir
+
+ +

Output files will be placed in directory dir. +

+
+
+ + +

If the output file is ‘-’ or ‘/dev/stdout’, the output +is written to standard output. +

+ + +

5.1.3 Choice of input file language

+ +
+
-L name
+
--language=name
+
+ + +

Specifies the language of the input files. The supported languages +are C, C++, ObjectiveC, PO, Shell, +Python, Lisp, EmacsLisp, librep, Scheme, +Smalltalk, Java, JavaProperties, C#, awk, +YCP, Tcl, Perl, PHP, Ruby, +GCC-source, NXStringTable, RST, RSJ, Glade, +Lua, JavaScript, Vala, GSettings, Desktop. +

+
+
-C
+
--c++
+
+ +

This is a shorthand for --language=C++. +

+
+
+ +

By default the language is guessed depending on the input file name +extension. +

+ + +

5.1.4 Input file interpretation

+ +
+
--from-code=name
+
+

Specifies the encoding of the input files. This option is needed only +if some untranslated message strings or their corresponding comments +contain non-ASCII characters. Note that Tcl and Glade input files are +always assumed to be in UTF-8, regardless of this option. +

+
+
+ +

By default the input files are assumed to be in ASCII. +

+ + +

5.1.5 Operation mode

+ +
+
-j
+
--join-existing
+
+ +

Join messages with existing file. +

+
+
-x file
+
--exclude-file=file
+
+ +

Entries from file are not extracted. file should be a PO or +POT file. +

+
+
-c[tag]
+
--add-comments[=tag]
+
+ +

Place comment blocks starting with tag and preceding keyword lines +in the output file. Without a tag, the option means to put all +comment blocks preceding keyword lines in the output file. +

+

Note that comment blocks are only extracted if there is no program code +between the comment and the string that gets extracted. +For example, in the following C source code: +

+
 
/* This is the first comment.  */
+gettext ("foo");
+
+/* This is the second comment: not extracted  */
+gettext (
+  "bar");
+
+gettext (
+  /* This is the third comment.  */
+  "baz");
+
+/* This is the fourth comment.  */
+
+gettext ("I love blank lines in my programs");
+
+ +

the second comment line will not be extracted, because there is a line +with some tokens between the comment line and the line that contains +the string. But the fourth comment is extracted, because between it and +the line with the string there is merely a blank line. +

+
+
--check[=CHECK]
+
+ +

Perform a syntax check on msgid and msgid_plural. The supported checks +are: +

+
+
ellipsis-unicode
+

Prefer Unicode ellipsis character over ASCII ... +

+
+
space-ellipsis
+

Prohibit whitespace before an ellipsis character +

+
+
quote-unicode
+

Prefer Unicode quotation marks over ASCII "'` +

+
+
bullet-unicode
+

Prefer Unicode bullet character over ASCII * or - +

+
+
+ +

The option has an effect on all input files. To enable or disable +checks for a certain string, you can mark it with an xgettext: +special comment in the source file. For example, if you specify the +--check=space-ellipsis option, but want to suppress the check on +a particular string, add the following comment: +

+
 
/* xgettext: no-space-ellipsis-check */
+gettext ("We really want a space before ellipsis here ...");
+
+ +

The xgettext: comment can be followed by flags separated with a +comma. The possible flags are of the form ‘[no-]name-check’, +where name is the name of a valid syntax check. If a flag is +prefixed by no-, the meaning is negated. +

+

Some tests apply the checks to each sentence within the msgid, rather +than the whole string. xgettext detects the end of sentence by +performing a pattern match, which usually looks for a period followed by +a certain number of spaces. The number is specified with the +--sentence-end option. +

+
+
--sentence-end[=TYPE]
+
+ +

The supported values are: +

+
+
single-space
+

Expect at least one whitespace after a period +

+
+
double-space
+

Expect at least two whitespaces after a period +

+
+
+ +
+
+ + + +

5.1.6 Language specific options

+ +
+
-a
+
--extract-all
+
+ +

Extract all strings. +

+

This option has an effect with most languages, namely C, C++, ObjectiveC, +Shell, Python, Lisp, EmacsLisp, librep, Java, C#, awk, Tcl, Perl, PHP, +GCC-source, Glade, Lua, JavaScript, Vala, GSettings. +

+
+
-k[keywordspec]
+
--keyword[=keywordspec]
+
+ +

Specify keywordspec as an additional keyword to be looked for. +Without a keywordspec, the option means to not use default keywords. +

+ + +

If keywordspec is a C identifier id, xgettext looks +for strings in the first argument of each call to the function or macro +id. If keywordspec is of the form +‘id:argnum’, xgettext looks for strings in the +argnumth argument of the call. If keywordspec is of the form +‘id:argnum1,argnum2’, xgettext looks for +strings in the argnum1st argument and in the argnum2nd argument +of the call, and treats them as singular/plural variants for a message +with plural handling. Also, if keywordspec is of the form +‘id:contextargnumc,argnum’ or +‘id:argnum,contextargnumc’, xgettext treats +strings in the contextargnumth argument as a context specifier. +And, as a special-purpose support for GNOME, if keywordspec is of the +form ‘id:argnumg’, xgettext recognizes the +argnumth argument as a string with context, using the GNOME glib +syntax ‘"msgctxt|msgid"’. +
+Furthermore, if keywordspec is of the form +‘id:…,totalnumargst’, xgettext recognizes this +argument specification only if the number of actual arguments is equal to +totalnumargs. This is useful for disambiguating overloaded function +calls in C++. +
+Finally, if keywordspec is of the form +‘id:argnum...,"xcomment"’, xgettext, when +extracting a message from the specified argument strings, adds an extracted +comment xcomment to the message. Note that when used through a normal +shell command line, the double-quotes around the xcomment need to be +escaped. +

+

This option has an effect with most languages, namely C, C++, ObjectiveC, +Shell, Python, Lisp, EmacsLisp, librep, Java, C#, awk, Tcl, Perl, PHP, +GCC-source, Glade, Lua, JavaScript, Vala, GSettings, Desktop. +

+

The default keyword specifications, which are always looked for if not +explicitly disabled, are language dependent. They are: +

+
    +
  • +For C, C++, and GCC-source: gettext, dgettext:2, +dcgettext:2, ngettext:1,2, dngettext:2,3, +dcngettext:2,3, gettext_noop, and pgettext:1c,2, +dpgettext:2c,3, dcpgettext:2c,3, npgettext:1c,2,3, +dnpgettext:2c,3,4, dcnpgettext:2c,3,4. + +
  • +For Objective C: Like for C, and also NSLocalizedString, _, +NSLocalizedStaticString, __. + +
  • +For Shell scripts: gettext, ngettext:1,2, eval_gettext, +eval_ngettext:1,2, eval_pgettext:1c,2, +eval_npgettext:1c,2,3. + +
  • +For Python: gettext, ugettext, dgettext:2, +ngettext:1,2, ungettext:1,2, dngettext:2,3, _. + +
  • +For Lisp: gettext, ngettext:1,2, gettext-noop. + +
  • +For EmacsLisp: _. + +
  • +For librep: _. + +
  • +For Scheme: gettext, ngettext:1,2, gettext-noop. + +
  • +For Java: GettextResource.gettext:2, +GettextResource.ngettext:2,3, GettextResource.pgettext:2c,3, +GettextResource.npgettext:2c,3,4, gettext, ngettext:1,2, +pgettext:1c,2, npgettext:1c,2,3, getString. + +
  • +For C#: GetString, GetPluralString:1,2, +GetParticularString:1c,2, GetParticularPluralString:1c,2,3. + +
  • +For awk: dcgettext, dcngettext:1,2. + +
  • +For Tcl: ::msgcat::mc. + +
  • +For Perl: gettext, %gettext, $gettext, dgettext:2, +dcgettext:2, ngettext:1,2, dngettext:2,3, +dcngettext:2,3, gettext_noop. + +
  • +For PHP: _, gettext, dgettext:2, dcgettext:2, +ngettext:1,2, dngettext:2,3, dcngettext:2,3. + +
  • +For Glade 1: label, title, text, format, +copyright, comments, preview_text, tooltip. + +
  • +For Lua: _, gettext.gettext, gettext.dgettext:2, +gettext.dcgettext:2, gettext.ngettext:1,2, +gettext.dngettext:2,3, gettext.dcngettext:2,3. + +
  • +For JavaScript: _, gettext, dgettext:2, +dcgettext:2, ngettext:1,2, dngettext:2,3, +pgettext:1c,2, dpgettext:2c,3. + +
  • +For Vala: _, Q_, N_, NC_, dgettext:2, +dcgettext:2, ngettext:1,2, dngettext:2,3, +dpgettext:2c,3, dpgettext2:2c,3. + +
  • +For Desktop: Name, GenericName, Comment, +Keywords. +
+ +

To disable the default keyword specifications, the option ‘-k’ or +‘--keyword’ or ‘--keyword=’, without a keywordspec, can be +used. +

+
+
--flag=word:arg:flag
+
+

Specifies additional flags for strings occurring as part of the argth +argument of the function word. The possible flags are the possible +format string indicators, such as ‘c-format’, and their negations, +such as ‘no-c-format’, possibly prefixed with ‘pass-’. +
+ +The meaning of --flag=function:arg:lang-format +is that in language lang, the specified function expects as +argth argument a format string. (For those of you familiar with +GCC function attributes, --flag=function:arg:c-format is +roughly equivalent to the declaration +‘__attribute__ ((__format__ (__printf__, arg, ...)))’ attached +to function in a C source file.) +For example, if you use the ‘error’ function from GNU libc, you can +specify its behaviour through --flag=error:3:c-format. The effect of +this specification is that xgettext will mark as format strings all +gettext invocations that occur as argth argument of +function. +This is useful when such strings contain no format string directives: +together with the checks done by ‘msgfmt -c’ it will ensure that +translators cannot accidentally use format string directives that would +lead to a crash at runtime. +
+ +The meaning of --flag=function:arg:pass-lang-format +is that in language lang, if the function call occurs in a +position that must yield a format string, then its argth argument +must yield a format string of the same type as well. (If you know GCC +function attributes, the --flag=function:arg:pass-c-format +option is roughly equivalent to the declaration +‘__attribute__ ((__format_arg__ (arg)))’ attached to function +in a C source file.) +For example, if you use the ‘_’ shortcut for the gettext function, +you should use --flag=_:1:pass-c-format. The effect of this +specification is that xgettext will propagate a format string +requirement for a _("string") call to its first argument, the literal +"string", and thus mark it as a format string. +This is useful when such strings contain no format string directives: +together with the checks done by ‘msgfmt -c’ it will ensure that +translators cannot accidentally use format string directives that would +lead to a crash at runtime. +
+This option has an effect with most languages, namely C, C++, ObjectiveC, +Shell, Python, Lisp, EmacsLisp, librep, Scheme, Java, C#, awk, YCP, Tcl, Perl, PHP, +GCC-source, Lua, JavaScript, Vala. +

+
+
-T
+
--trigraphs
+
+ + +

Understand ANSI C trigraphs for input. +
+This option has an effect only with the languages C, C++, ObjectiveC. +

+
+
--qt
+
+ +

Recognize Qt format strings. +
+This option has an effect only with the language C++. +

+
+
--kde
+
+ +

Recognize KDE 4 format strings. +
+This option has an effect only with the language C++. +

+
+
--boost
+
+ +

Recognize Boost format strings. +
+This option has an effect only with the language C++. +

+
+
--debug
+
+ +

Use the flags c-format and possible-c-format to show who was +responsible for marking a message as a format string. The latter form is +used if the xgettext program decided, the former form is used if +the programmer prescribed it. +

+

By default only the c-format form is used. The translator should +not have to care about these details. +

+
+
+ +

This implementation of xgettext is able to process a few awkward +cases, like strings in preprocessor macros, ANSI concatenation of +adjacent strings, and escaped end of lines for continued strings. +

+ + +

5.1.7 Output details

+ + +
+
--color
+
--color=when
+
+

Specify whether or when to use colors and other text attributes. +See The --color option for details. +

+
+
--style=style_file
+
+

Specify the CSS style rule file to use for --color. +See The --style option for details. +

+
+
--force-po
+
+

Always write an output file even if no message is defined. +

+
+
-i
+
--indent
+
+ +

Write the .po file using indented style. +

+
+
--no-location
+
+

Do not write ‘#: filename:line’ lines. Note that using +this option makes it harder for technically skilled translators to understand +each message's context. +

+
+
-n
+
--add-location=type
+
+ +

Generate ‘#: filename:line’ lines (default). +

+

The optional type can be either ‘full’, ‘file’, or +‘never’. If it is not given or ‘full’, it generates the +lines with both file name and line number. If it is ‘file’, the +line number part is omitted. If it is ‘never’, it completely +suppresses the lines (same as --no-location). +

+
+
--strict
+
+

Write out a strict Uniforum conforming PO file. Note that this +Uniforum format should be avoided because it doesn't support the +GNU extensions. +

+
+
--properties-output
+
+

Write out a Java ResourceBundle in Java .properties syntax. Note +that this file format doesn't support plural forms and silently drops +obsolete messages. +

+
+
--stringtable-output
+
+

Write out a NeXTstep/GNUstep localized resource file in .strings syntax. +Note that this file format doesn't support plural forms. +

+
+
--its=file
+
+

Use ITS rules defined in file. +Note that this is only effective with XML files. +

+
+
--itstool
+
+

Write out comments recognized by itstool (http://itstool.org). +Note that this is only effective with XML files. +

+
+
-w number
+
--width=number
+
+ +

Set the output page width. Long strings in the output files will be +split across multiple lines in order to ensure that each line's width +(= number of screen columns) is less or equal to the given number. +

+
+
--no-wrap
+
+

Do not break long message lines. Message lines whose width exceeds the +output page width will not be split into several lines. Only file reference +lines which are wider than the output page width will be split. +

+
+
-s
+
--sort-output
+
+ + +

Generate sorted output (deprecated). Note that using this option makes it +much harder for the translator to understand each message's context. +

+
+
-F
+
--sort-by-file
+
+ +

Sort output by file location. +

+
+
--omit-header
+
+

Don't write header with ‘msgid ""’ entry. +

+ +

This is useful for testing purposes because it eliminates a source +of variance for generated .gmo files. With --omit-header, +two invocations of xgettext on the same files with the same +options at different times are guaranteed to produce the same results. +

+

Note that using this option will lead to an error if the resulting file +would not entirely be in ASCII. +

+
+
--copyright-holder=string
+
+

Set the copyright holder in the output. string should be the +copyright holder of the surrounding package. (Note that the msgstr +strings, extracted from the package's sources, belong to the copyright +holder of the package.) Translators are expected to transfer or disclaim +the copyright for their translations, so that package maintainers can +distribute them without legal risk. If string is empty, the output +files are marked as being in the public domain; in this case, the translators +are expected to disclaim their copyright, again so that package maintainers +can distribute them without legal risk. +

+

The default value for string is the Free Software Foundation, Inc., +simply because xgettext was first used in the GNU project. +

+
+
--foreign-user
+
+

Omit FSF copyright in output. This option is equivalent to +‘--copyright-holder=''’. It can be useful for packages outside the GNU +project that want their translations to be in the public domain. +

+
+
--package-name=package
+
+

Set the package name in the header of the output. +

+
+
--package-version=version
+
+

Set the package version in the header of the output. This option has an +effect only if the ‘--package-name’ option is also used. +

+
+
--msgid-bugs-address=email@address
+
+

Set the reporting address for msgid bugs. This is the email address or URL +to which the translators shall report bugs in the untranslated strings: +

+
    +
  • - Strings which are not entire sentences; see the maintainer guidelines +in Preparing Translatable Strings. +
  • - Strings which use unclear terms or require additional context to be +understood. +
  • - Strings which make invalid assumptions about notation of date, time or +money. +
  • - Pluralisation problems. +
  • - Incorrect English spelling. +
  • - Incorrect formatting. +
+ +

It can be your email address, or a mailing list address where translators +can write to without being subscribed, or the URL of a web page through +which the translators can contact you. +

+

The default value is empty, which means that translators will be clueless! +Don't forget to specify this option. +

+
+
-m[string]
+
--msgstr-prefix[=string]
+
+ +

Use string (or "" if not specified) as prefix for msgstr values. +

+
+
-M[string]
+
--msgstr-suffix[=string]
+
+ +

Use string (or "" if not specified) as suffix for msgstr values. +

+
+
+ + + +

5.1.8 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
-v
+
--verbose
+
+ +

Increase verbosity level. +

+
+
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_6.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_6.html new file mode 100644 index 000000000..408b7726a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_6.html @@ -0,0 +1,536 @@ + + + + + +GNU gettext utilities: 6. Creating a New PO File + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

6. Creating a New PO File

+ +

When starting a new translation, the translator creates a file called +‘LANG.po’, as a copy of the ‘package.pot’ template +file with modifications in the initial comments (at the beginning of the file) +and in the header entry (the first entry, near the beginning of the file). +

+

The easiest way to do so is by use of the ‘msginit’ program. +For example: +

+
 
$ cd PACKAGE-VERSION
+$ cd po
+$ msginit
+
+ +

The alternative way is to do the copy and modifications by hand. +To do so, the translator copies ‘package.pot’ to +‘LANG.po’. Then she modifies the initial comments and +the header entry of this file. +

+ + + + +

6.1 Invoking the msginit Program

+ + +
 
msginit [option]
+
+ + + +

The msginit program creates a new PO file, initializing the meta +information with values from the user's environment. +

+

Here are more details. The following header fields of a PO file are +automatically filled, when possible. +

+
+
Project-Id-Version
+

The value is guessed from the configure script or any other files +in the current directory. +

+
+
PO-Revision-Date
+

The value is taken from the PO-Creation-Data in the input POT +file, or the current date is used. +

+
+
Last-Translator
+

The value is taken from user's password file entry and the mailer +configuration files. +

+
+
Language-Team, Language
+

These values are set according to the current locale and the predefined +list of translation teams. +

+
+
MIME-Version, Content-Type, Content-Transfer-Encoding
+

These values are set according to the content of the POT file and the +current locale. If the POT file contains charset=UTF-8, it means that +the POT file contains non-ASCII characters, and we keep the UTF-8 +encoding. Otherwise, when the POT file is plain ASCII, we use the +locale's encoding. +

+
+
Plural-Forms
+

The value is first looked up from the embedded table. +

+

As an experimental feature, you can instruct msginit to use the +information from Unicode CLDR, by setting the GETTEXTCLDRDIR +environment variable. The program will look for a file named +common/supplemental/plurals.xml under that directory. You can +get the CLDR data from http://cldr.unicode.org/. +

+
+
+ + + +

6.1.1 Input file location

+ +
+
-i inputfile
+
--input=inputfile
+
+ +

Input POT file. +

+
+
+ +

If no inputfile is given, the current directory is searched for the +POT file. If it is ‘-’, standard input is read. +

+ + +

6.1.2 Output file location

+ +
+
-o file
+
--output-file=file
+
+ +

Write output to specified PO file. +

+
+
+ +

If no output file is given, it depends on the ‘--locale’ option or the +user's locale setting. If it is ‘-’, the results are written to +standard output. +

+ + +

6.1.3 Input file syntax

+ +
+
-P
+
--properties-input
+
+ +

Assume the input file is a Java ResourceBundle in Java .properties +syntax, not in PO file syntax. +

+
+
--stringtable-input
+
+

Assume the input file is a NeXTstep/GNUstep localized resource file in +.strings syntax, not in PO file syntax. +

+
+
+ + + +

6.1.4 Output details

+ +
+
-l ll_CC[.encoding]
+
--locale=ll_CC[.encoding]
+
+ +

Set target locale. ll should be a language code, and CC should +be a country code. The optional part .encoding specifies the encoding +of the locale; most often this part is .UTF-8. +The command ‘locale -a’ can be used to output a list +of all installed locales. The default is the user's locale setting. +

+
+
--no-translator
+
+

Declares that the PO file will not have a human translator and is instead +automatically generated. +

+
+
--color
+
--color=when
+
+

Specify whether or when to use colors and other text attributes. +See The --color option for details. +

+
+
--style=style_file
+
+

Specify the CSS style rule file to use for --color. +See The --style option for details. +

+
+
-p
+
--properties-output
+
+ +

Write out a Java ResourceBundle in Java .properties syntax. Note +that this file format doesn't support plural forms and silently drops +obsolete messages. +

+
+
--stringtable-output
+
+

Write out a NeXTstep/GNUstep localized resource file in .strings syntax. +Note that this file format doesn't support plural forms. +

+
+
-w number
+
--width=number
+
+ +

Set the output page width. Long strings in the output files will be +split across multiple lines in order to ensure that each line's width +(= number of screen columns) is less or equal to the given number. +

+
+
--no-wrap
+
+

Do not break long message lines. Message lines whose width exceeds the +output page width will not be split into several lines. Only file reference +lines which are wider than the output page width will be split. +

+
+
+ + + +

6.1.5 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
+ + + + +

6.2 Filling in the Header Entry

+ +

The initial comments "SOME DESCRIPTIVE TITLE", "YEAR" and +"FIRST AUTHOR <EMAIL@ADDRESS>, YEAR" ought to be replaced by sensible +information. This can be done in any text editor; if Emacs is used +and it switched to PO mode automatically (because it has recognized +the file's suffix), you can disable it by typing M-x fundamental-mode. +

+

Modifying the header entry can already be done using PO mode: in Emacs, +type M-x po-mode RET and then RET again to start editing the +entry. You should fill in the following fields. +

+
+
Project-Id-Version
+

This is the name and version of the package. Fill it in if it has not +already been filled in by xgettext. +

+
+
Report-Msgid-Bugs-To
+

This has already been filled in by xgettext. It contains an email +address or URL where you can report bugs in the untranslated strings: +

+
    +
  • - Strings which are not entire sentences, see the maintainer guidelines +in Preparing Translatable Strings. +
  • - Strings which use unclear terms or require additional context to be +understood. +
  • - Strings which make invalid assumptions about notation of date, time or +money. +
  • - Pluralisation problems. +
  • - Incorrect English spelling. +
  • - Incorrect formatting. +
+ +
+
POT-Creation-Date
+

This has already been filled in by xgettext. +

+
+
PO-Revision-Date
+

You don't need to fill this in. It will be filled by the PO file editor +when you save the file. +

+
+
Last-Translator
+

Fill in your name and email address (without double quotes). +

+
+
Language-Team
+

Fill in the English name of the language, and the email address or +homepage URL of the language team you are part of. +

+

Before starting a translation, it is a good idea to get in touch with +your translation team, not only to make sure you don't do duplicated work, +but also to coordinate difficult linguistic issues. +

+ +

In the Free Translation Project, each translation team has its own mailing +list. The up-to-date list of teams can be found at the Free Translation +Project's homepage, https://translationproject.org/, in the "Teams" +area. +

+
+
Language
+

Fill in the language code of the language. This can be in one of three +forms: +

+
    +
  • - +‘ll’, an ISO 639 two-letter language code (lowercase). +See Language Codes for the list of codes. + +
  • - +‘ll_CC’, where ‘ll’ is an ISO 639 two-letter +language code (lowercase) and ‘CC’ is an ISO 3166 two-letter +country code (uppercase). The country code specification is not redundant: +Some languages have dialects in different countries. For example, +‘de_AT’ is used for Austria, and ‘pt_BR’ for Brazil. The country +code serves to distinguish the dialects. See Language Codes and +Country Codes for the lists of codes. + +
  • - +‘ll_CC@variant’, where ‘ll’ is an +ISO 639 two-letter language code (lowercase), ‘CC’ is an +ISO 3166 two-letter country code (uppercase), and ‘variant’ is +a variant designator. The variant designator (lowercase) can be a script +designator, such as ‘latin’ or ‘cyrillic’. +
+ +

The naming convention ‘ll_CC’ is also the way locales are +named on systems based on GNU libc. But there are three important differences: +

+
    +
  • +In this PO file field, but not in locale names, ‘ll_CC’ +combinations denoting a language's main dialect are abbreviated as +‘ll’. For example, ‘de’ is equivalent to ‘de_DE’ +(German as spoken in Germany), and ‘pt’ to ‘pt_PT’ (Portuguese as +spoken in Portugal) in this context. + +
  • +In this PO file field, suffixes like ‘.encoding’ are not used. + +
  • +In this PO file field, variant designators that are not relevant to message +translation, such as ‘@euro’, are not used. +
+ +

So, if your locale name is ‘de_DE.UTF-8’, the language specification in +PO files is just ‘de’. +

+
+
Content-Type
+
+ +

Replace ‘CHARSET’ with the character encoding used for your language, +in your locale, or UTF-8. This field is needed for correct operation of the +msgmerge and msgfmt programs, as well as for users whose +locale's character encoding differs from yours (see How to specify the output character set gettext uses). +

+ +

You get the character encoding of your locale by running the shell command +‘locale charmap’. If the result is ‘C’ or ‘ANSI_X3.4-1968’, +which is equivalent to ‘ASCII’ (= ‘US-ASCII’), it means that your +locale is not correctly configured. In this case, ask your translation +team which charset to use. ‘ASCII’ is not usable for any language +except Latin. +

+ +

Because the PO files must be portable to operating systems with less advanced +internationalization facilities, the character encodings that can be used +are limited to those supported by both GNU libc and GNU +libiconv. These are: +ASCII, ISO-8859-1, ISO-8859-2, ISO-8859-3, +ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, +ISO-8859-8, ISO-8859-9, ISO-8859-13, ISO-8859-14, +ISO-8859-15, +KOI8-R, KOI8-U, KOI8-T, +CP850, CP866, CP874, +CP932, CP949, CP950, CP1250, CP1251, +CP1252, CP1253, CP1254, CP1255, CP1256, +CP1257, GB2312, EUC-JP, EUC-KR, EUC-TW, +BIG5, BIG5-HKSCS, GBK, GB18030, SHIFT_JIS, +JOHAB, TIS-620, VISCII, GEORGIAN-PS, UTF-8. +

+ +

In the GNU system, the following encodings are frequently used for the +corresponding languages. +

+ +
    +
  • ISO-8859-1 for +Afrikaans, Albanian, Basque, Breton, Catalan, Cornish, Danish, Dutch, +English, Estonian, Faroese, Finnish, French, Galician, German, +Greenlandic, Icelandic, Indonesian, Irish, Italian, Malay, Manx, +Norwegian, Occitan, Portuguese, Spanish, Swedish, Tagalog, Uzbek, +Walloon, +
  • ISO-8859-2 for +Bosnian, Croatian, Czech, Hungarian, Polish, Romanian, Serbian, Slovak, +Slovenian, +
  • ISO-8859-3 for Maltese, +
  • ISO-8859-5 for Macedonian, Serbian, +
  • ISO-8859-6 for Arabic, +
  • ISO-8859-7 for Greek, +
  • ISO-8859-8 for Hebrew, +
  • ISO-8859-9 for Turkish, +
  • ISO-8859-13 for Latvian, Lithuanian, Maori, +
  • ISO-8859-14 for Welsh, +
  • ISO-8859-15 for +Basque, Catalan, Dutch, English, Finnish, French, Galician, German, Irish, +Italian, Portuguese, Spanish, Swedish, Walloon, +
  • KOI8-R for Russian, +
  • KOI8-U for Ukrainian, +
  • KOI8-T for Tajik, +
  • CP1251 for Bulgarian, Belarusian, +
  • GB2312, GBK, GB18030 +for simplified writing of Chinese, +
  • BIG5, BIG5-HKSCS +for traditional writing of Chinese, +
  • EUC-JP for Japanese, +
  • EUC-KR for Korean, +
  • TIS-620 for Thai, +
  • GEORGIAN-PS for Georgian, +
  • UTF-8 for any language, including those listed above. +
+ + + +

When single quote characters or double quote characters are used in +translations for your language, and your locale's encoding is one of the +ISO-8859-* charsets, it is best if you create your PO files in UTF-8 +encoding, instead of your locale's encoding. This is because in UTF-8 +the real quote characters can be represented (single quote characters: +U+2018, U+2019, double quote characters: U+201C, U+201D), whereas none of +ISO-8859-* charsets has them all. Users in UTF-8 locales will see the +real quote characters, whereas users in ISO-8859-* locales will see the +vertical apostrophe and the vertical double quote instead (because that's +what the character set conversion will transliterate them to). +

+ +

To enter such quote characters under X11, you can change your keyboard +mapping using the xmodmap program. The X11 names of the quote +characters are "leftsinglequotemark", "rightsinglequotemark", +"leftdoublequotemark", "rightdoublequotemark", "singlelowquotemark", +"doublelowquotemark". +

+

Note that only recent versions of GNU Emacs support the UTF-8 encoding: +Emacs 20 with Mule-UCS, and Emacs 21. As of January 2001, XEmacs doesn't +support the UTF-8 encoding. +

+

The character encoding name can be written in either upper or lower case. +Usually upper case is preferred. +

+
+
Content-Transfer-Encoding
+

Set this to 8bit. +

+
+
Plural-Forms
+

This field is optional. It is only needed if the PO file has plural forms. +You can find them by searching for the ‘msgid_plural’ keyword. The +format of the plural forms field is described in Additional functions for plural forms and +Translating plural forms. +

+
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_7.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_7.html new file mode 100644 index 000000000..bd886675a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_7.html @@ -0,0 +1,429 @@ + + + + + +GNU gettext utilities: 7. Updating Existing PO Files + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

7. Updating Existing PO Files

+ + + + + +

7.1 Invoking the msgmerge Program

+ + +
 
msgmerge [option] def.po ref.pot
+
+ +

The msgmerge program merges two Uniforum style .po files together. +The def.po file is an existing PO file with translations which will +be taken over to the newly created file as long as they still match; +comments will be preserved, but extracted comments and file positions will +be discarded. The ref.pot file is the last created PO file with +up-to-date source references but old translations, or a PO Template file +(generally created by xgettext); any translations or comments +in the file will be discarded, however dot comments and file positions +will be preserved. Where an exact match cannot be found, fuzzy matching +is used to produce better results. +

+ + +

7.1.1 Input file location

+ +
+
def.po
+

Translations referring to old sources. +

+
+
ref.pot
+

References to the new sources. +

+
+
-D directory
+
--directory=directory
+
+ +

Add directory to the list of directories. Source files are +searched relative to this list of directories. The resulting ‘.po’ +file will be written relative to the current directory, though. +

+
+
-C file
+
--compendium=file
+
+ +

Specify an additional library of message translations. See section Using Translation Compendia. +This option may be specified more than once. +

+
+
+ + + +

7.1.2 Operation mode

+ +
+
-U
+
--update
+
+ +

Update def.po. Do nothing if def.po is already up to date. +

+
+
+ + + +

7.1.3 Output file location

+ +
+
-o file
+
--output-file=file
+
+ +

Write output to specified file. +

+
+
+ + +

The results are written to standard output if no output file is specified +or if it is ‘-’. +

+ + +

7.1.4 Output file location in update mode

+ +

The result is written back to def.po. +

+
+
--backup=control
+
+ +

Make a backup of def.po +

+
+
--suffix=suffix
+
+

Override the usual backup suffix. +

+
+
+ + +

The version control method may be selected via the --backup option +or through the VERSION_CONTROL environment variable. Here are the +values: +

+
+
none
+
off
+

Never make backups (even if --backup is given). +

+
+
numbered
+
t
+

Make numbered backups. +

+
+
existing
+
nil
+

Make numbered backups if numbered backups for this file already exist, +otherwise make simple backups. +

+
+
simple
+
never
+

Always make simple backups. +

+
+
+ +

The backup suffix is ‘~’, unless set with --suffix or the +SIMPLE_BACKUP_SUFFIX environment variable. +

+ + +

7.1.5 Operation modifiers

+ +
+
-m
+
--multi-domain
+
+ +

Apply ref.pot to each of the domains in def.po. +

+
+
--for-msgfmt
+
+

Produce a PO file meant for msgfmt only, not for a translator. +This option omits untranslated messages, fuzzy messages (except the header +entry), and obsolete messages from the output. Also, it omits translator +comments and ‘#: filename:line’ lines from the output. +In particular, this option implies ‘--no-fuzzy-matching’. +

+
+
-N
+
--no-fuzzy-matching
+
+ +

Do not use fuzzy matching when an exact match is not found. This may speed +up the operation considerably. +

+
+
--previous
+
+

Keep the previous msgids of translated messages, marked with ‘#|’, when +adding the fuzzy marker to such messages. +

+
+ + + +

7.1.6 Input file syntax

+ +
+
-P
+
--properties-input
+
+ +

Assume the input files are Java ResourceBundles in Java .properties +syntax, not in PO file syntax. +

+
+
--stringtable-input
+
+

Assume the input files are NeXTstep/GNUstep localized resource files in +.strings syntax, not in PO file syntax. +

+
+
+ + + +

7.1.7 Output details

+ + +
+
--lang=catalogname
+
+

Specify the ‘Language’ field to be used in the header entry. See +Filling in the Header Entry for the meaning of this field. Note: The +‘Language-Team’ and ‘Plural-Forms’ fields are left unchanged. +If this option is not specified, the ‘Language’ field is inferred, as +best as possible, from the ‘Language-Team’ field. +

+
+
--color
+
--color=when
+
+

Specify whether or when to use colors and other text attributes. +See The --color option for details. +

+
+
--style=style_file
+
+

Specify the CSS style rule file to use for --color. +See The --style option for details. +

+
+
--force-po
+
+

Always write an output file even if it contains no message. +

+
+
-i
+
--indent
+
+ +

Write the .po file using indented style. +

+
+
--no-location
+
+

Do not write ‘#: filename:line’ lines. +

+
+
-n
+
--add-location=type
+
+

Generate ‘#: filename:line’ lines (default). +

+

The optional type can be either ‘full’, ‘file’, or +‘never’. If it is not given or ‘full’, it generates the +lines with both file name and line number. If it is ‘file’, the +line number part is omitted. If it is ‘never’, it completely +suppresses the lines (same as --no-location). +

+
+
--strict
+
+

Write out a strict Uniforum conforming PO file. Note that this +Uniforum format should be avoided because it doesn't support the +GNU extensions. +

+
+
-p
+
--properties-output
+
+ +

Write out a Java ResourceBundle in Java .properties syntax. Note +that this file format doesn't support plural forms and silently drops +obsolete messages. +

+
+
--stringtable-output
+
+

Write out a NeXTstep/GNUstep localized resource file in .strings syntax. +Note that this file format doesn't support plural forms. +

+
+
-w number
+
--width=number
+
+ +

Set the output page width. Long strings in the output files will be +split across multiple lines in order to ensure that each line's width +(= number of screen columns) is less or equal to the given number. +

+
+
--no-wrap
+
+

Do not break long message lines. Message lines whose width exceeds the +output page width will not be split into several lines. Only file reference +lines which are wider than the output page width will be split. +

+
+
-s
+
--sort-output
+
+ + +

Generate sorted output. Note that using this option makes it much harder +for the translator to understand each message's context. +

+
+
-F
+
--sort-by-file
+
+ +

Sort output by file location. +

+
+
+ + + +

7.1.8 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
-v
+
--verbose
+
+ +

Increase verbosity level. +

+
+
-q
+
--quiet
+
--silent
+
+ + +

Suppress progress indicators. +

+
+
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_8.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_8.html new file mode 100644 index 000000000..7b970411f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_8.html @@ -0,0 +1,1556 @@ + + + + + +GNU gettext utilities: 8. Editing PO Files + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

8. Editing PO Files

+ + + + + +

8.1 KDE's PO File Editor

+ + + + +

8.2 GNOME's PO File Editor

+ + + + +

8.3 Emacs's PO File Editor

+ + +

For those of you being +the lucky users of Emacs, PO mode has been specifically created +for providing a cozy environment for editing or modifying PO files. +While editing a PO file, PO mode allows for the easy browsing of +auxiliary and compendium PO files, as well as for following references into +the set of C program sources from which PO files have been derived. +It has a few special features, among which are the interactive marking +of program strings as translatable, and the validation of PO files +with easy repositioning to PO file lines showing errors. +

+

For the beginning, besides main PO mode commands +(see section Main PO mode Commands), you should know how to move between entries +(see section Entry Positioning), and how to handle untranslated entries +(see section Untranslated Entries). +

+ + + + +

8.3.1 Completing GNU gettext Installation

+ +

Once you have received, unpacked, configured and compiled the GNU +gettext distribution, the ‘make install’ command puts in +place the programs xgettext, msgfmt, gettext, and +msgmerge, as well as their available message catalogs. To +top off a comfortable installation, you might also want to make the +PO mode available to your Emacs users. +

+ + +

During the installation of the PO mode, you might want to modify your +file ‘.emacs’, once and for all, so it contains a few lines looking +like: +

+
 
(setq auto-mode-alist
+      (cons '("\\.po\\'\\|\\.po\\." . po-mode) auto-mode-alist))
+(autoload 'po-mode "po-mode" "Major mode for translators to edit PO files" t)
+
+ +

Later, whenever you edit some ‘.po’ +file, or any file having the string ‘.po.’ within its name, +Emacs loads ‘po-mode.elc’ (or ‘po-mode.el’) as needed, and +automatically activates PO mode commands for the associated buffer. +The string PO appears in the mode line for any buffer for +which PO mode is active. Many PO files may be active at once in a +single Emacs session. +

+

If you are using Emacs version 20 or newer, and have already installed +the appropriate international fonts on your system, you may also tell +Emacs how to determine automatically the coding system of every PO file. +This will often (but not always) cause the necessary fonts to be loaded +and used for displaying the translations on your Emacs screen. For this +to happen, add the lines: +

+
 
(modify-coding-system-alist 'file "\\.po\\'\\|\\.po\\."
+                            'po-find-file-coding-system)
+(autoload 'po-find-file-coding-system "po-mode")
+
+ +

to your ‘.emacs’ file. If, with this, you still see boxes instead +of international characters, try a different font set (via Shift Mouse +button 1). +

+ + + +

8.3.2 Main PO mode Commands

+ +

After setting up Emacs with something similar to the lines in +Completing GNU gettext Installation, PO mode is activated for a window when Emacs finds a +PO file in that window. This puts the window read-only and establishes a +po-mode-map, which is a genuine Emacs mode, in a way that is not derived +from text mode in any way. Functions found on po-mode-hook, +if any, will be executed. +

+

When PO mode is active in a window, the letters ‘PO’ appear +in the mode line for that window. The mode line also displays how +many entries of each kind are held in the PO file. For example, +the string ‘132t+3f+10u+2o’ would tell the translator that the +PO mode contains 132 translated entries (see section Translated Entries, +3 fuzzy entries (see section Fuzzy Entries), 10 untranslated entries +(see section Untranslated Entries) and 2 obsolete entries (see section Obsolete Entries). Zero-coefficients items are not shown. So, in this example, if +the fuzzy entries were unfuzzied, the untranslated entries were translated +and the obsolete entries were deleted, the mode line would merely display +‘145t’ for the counters. +

+

The main PO commands are those which do not fit into the other categories of +subsequent sections. These allow for quitting PO mode or for managing windows +in special ways. +

+
+
_
+
+

Undo last modification to the PO file (po-undo). +

+
+
Q
+
+

Quit processing and save the PO file (po-quit). +

+
+
q
+
+

Quit processing, possibly after confirmation (po-confirm-and-quit). +

+
+
0
+
+

Temporary leave the PO file window (po-other-window). +

+
+
?
+
h
+
+ +

Show help about PO mode (po-help). +

+
+
=
+
+

Give some PO file statistics (po-statistics). +

+
+
V
+
+

Batch validate the format of the whole PO file (po-validate). +

+
+
+ + + +

The command _ (po-undo) interfaces to the Emacs +undo facility. See (emacs)Undo section `Undoing Changes' in The Emacs Editor. Each time _ is typed, modifications which the translator +did to the PO file are undone a little more. For the purpose of +undoing, each PO mode command is atomic. This is especially true for +the <RET> command: the whole edition made by using a single +use of this command is undone at once, even if the edition itself +implied several actions. However, while in the editing window, one +can undo the edition work quite parsimoniously. +

+ + + + +

The commands Q (po-quit) and q +(po-confirm-and-quit) are used when the translator is done with the +PO file. The former is a bit less verbose than the latter. If the file +has been modified, it is saved to disk first. In both cases, and prior to +all this, the commands check if any untranslated messages remain in the +PO file and, if so, the translator is asked if she really wants to leave +off working with this PO file. This is the preferred way of getting rid +of an Emacs PO file buffer. Merely killing it through the usual command +C-x k (kill-buffer) is not the tidiest way to proceed. +

+ + +

The command 0 (po-other-window) is another, softer way, +to leave PO mode, temporarily. It just moves the cursor to some other +Emacs window, and pops one if necessary. For example, if the translator +just got PO mode to show some source context in some other, she might +discover some apparent bug in the program source that needs correction. +This command allows the translator to change sex, become a programmer, +and have the cursor right into the window containing the program she +(or rather he) wants to modify. By later getting the cursor back +in the PO file window, or by asking Emacs to edit this file once again, +PO mode is then recovered. +

+ + + +

The command h (po-help) displays a summary of all available PO +mode commands. The translator should then type any character to resume +normal PO mode operations. The command ? has the same effect +as h. +

+ + +

The command = (po-statistics) computes the total number of +entries in the PO file, the ordinal of the current entry (counted from +1), the number of untranslated entries, the number of obsolete entries, +and displays all these numbers. +

+ + +

The command V (po-validate) launches msgfmt in +checking and verbose +mode over the current PO file. This command first offers to save the +current PO file on disk. The msgfmt tool, from GNU gettext, +has the purpose of creating a MO file out of a PO file, and PO mode uses +the features of this program for checking the overall format of a PO file, +as well as all individual entries. +

+ +

The program msgfmt runs asynchronously with Emacs, so the +translator regains control immediately while her PO file is being studied. +Error output is collected in the Emacs ‘*compilation*’ buffer, +displayed in another window. The regular Emacs command C-x` +(next-error), as well as other usual compile commands, allow the +translator to reposition quickly to the offending parts of the PO file. +Once the cursor is on the line in error, the translator may decide on +any PO mode action which would help correcting the error. +

+ + + +

8.3.3 Entry Positioning

+ +

The cursor in a PO file window is almost always part of +an entry. The only exceptions are the special case when the cursor +is after the last entry in the file, or when the PO file is +empty. The entry where the cursor is found to be is said to be the +current entry. Many PO mode commands operate on the current entry, +so moving the cursor does more than allowing the translator to browse +the PO file, this also selects on which entry commands operate. +

+ +

Some PO mode commands alter the position of the cursor in a specialized +way. A few of those special purpose positioning are described here, +the others are described in following sections (for a complete list try +C-h m): +

+
+
.
+
+

Redisplay the current entry (po-current-entry). +

+
+
n
+
+

Select the entry after the current one (po-next-entry). +

+
+
p
+
+

Select the entry before the current one (po-previous-entry). +

+
+
<
+
+

Select the first entry in the PO file (po-first-entry). +

+
+
>
+
+

Select the last entry in the PO file (po-last-entry). +

+
+
m
+
+

Record the location of the current entry for later use +(po-push-location). +

+
+
r
+
+

Return to a previously saved entry location (po-pop-location). +

+
+
x
+
+

Exchange the current entry location with the previously saved one +(po-exchange-location). +

+
+
+ + + +

Any Emacs command able to reposition the cursor may be used +to select the current entry in PO mode, including commands which +move by characters, lines, paragraphs, screens or pages, and search +commands. However, there is a kind of standard way to display the +current entry in PO mode, which usual Emacs commands moving +the cursor do not especially try to enforce. The command . +(po-current-entry) has the sole purpose of redisplaying the +current entry properly, after the current entry has been changed by +means external to PO mode, or the Emacs screen otherwise altered. +

+

It is yet to be decided if PO mode helps the translator, or otherwise +irritates her, by forcing a rigid window disposition while she +is doing her work. We originally had quite precise ideas about +how windows should behave, but on the other hand, anyone used to +Emacs is often happy to keep full control. Maybe a fixed window +disposition might be offered as a PO mode option that the translator +might activate or deactivate at will, so it could be offered on an +experimental basis. If nobody feels a real need for using it, or +a compulsion for writing it, we should drop this whole idea. +The incentive for doing it should come from translators rather than +programmers, as opinions from an experienced translator are surely +more worth to me than opinions from programmers thinking about +how others should do translation. +

+ + + + +

The commands n (po-next-entry) and p +(po-previous-entry) move the cursor the entry following, +or preceding, the current one. If n is given while the +cursor is on the last entry of the PO file, or if p +is given while the cursor is on the first entry, no move is done. +

+ + + + +

The commands < (po-first-entry) and > +(po-last-entry) move the cursor to the first entry, or last +entry, of the PO file. When the cursor is located past the last +entry in a PO file, most PO mode commands will return an error saying +‘After last entry’. Moreover, the commands < and > +have the special property of being able to work even when the cursor +is not into some PO file entry, and one may use them for nicely +correcting this situation. But even these commands will fail on a +truly empty PO file. There are development plans for the PO mode for it +to interactively fill an empty PO file from sources. See section Marking Translatable Strings. +

+

The translator may decide, before working at the translation of +a particular entry, that she needs to browse the remainder of the +PO file, maybe for finding the terminology or phraseology used +in related entries. She can of course use the standard Emacs idioms +for saving the current cursor location in some register, and use that +register for getting back, or else, use the location ring. +

+ + + + +

PO mode offers another approach, by which cursor locations may be saved +onto a special stack. The command m (po-push-location) +merely adds the location of current entry to the stack, pushing +the already saved locations under the new one. The command +r (po-pop-location) consumes the top stack element and +repositions the cursor to the entry associated with that top element. +This position is then lost, for the next r will move the cursor +to the previously saved location, and so on until no locations remain +on the stack. +

+

If the translator wants the position to be kept on the location stack, +maybe for taking a look at the entry associated with the top +element, then go elsewhere with the intent of getting back later, she +ought to use m immediately after r. +

+ + +

The command x (po-exchange-location) simultaneously +repositions the cursor to the entry associated with the top element of +the stack of saved locations, and replaces that top element with the +location of the current entry before the move. Consequently, repeating +the x command toggles alternatively between two entries. +For achieving this, the translator will position the cursor on the +first entry, use m, then position to the second entry, and +merely use x for making the switch. +

+ + + +

8.3.4 Normalizing Strings in Entries

+ +

There are many different ways for encoding a particular string into a +PO file entry, because there are so many different ways to split and +quote multi-line strings, and even, to represent special characters +by backslashed escaped sequences. Some features of PO mode rely on +the ability for PO mode to scan an already existing PO file for a +particular string encoded into the msgid field of some entry. +Even if PO mode has internally all the built-in machinery for +implementing this recognition easily, doing it fast is technically +difficult. To facilitate a solution to this efficiency problem, +we decided on a canonical representation for strings. +

+

A conventional representation of strings in a PO file is currently +under discussion, and PO mode experiments with a canonical representation. +Having both xgettext and PO mode converging towards a uniform +way of representing equivalent strings would be useful, as the internal +normalization needed by PO mode could be automatically satisfied +when using xgettext from GNU gettext. An explicit +PO mode normalization should then be only necessary for PO files +imported from elsewhere, or for when the convention itself evolves. +

+

So, for achieving normalization of at least the strings of a given +PO file needing a canonical representation, the following PO mode +command is available: +

+ +
+
M-x po-normalize
+
+

Tidy the whole PO file by making entries more uniform. +

+
+
+ +

The special command M-x po-normalize, which has no associated +keys, revises all entries, ensuring that strings of both original +and translated entries use uniform internal quoting in the PO file. +It also removes any crumb after the last entry. This command may be +useful for PO files freshly imported from elsewhere, or if we ever +improve on the canonical quoting format we use. This canonical format +is not only meant for getting cleaner PO files, but also for greatly +speeding up msgid string lookup for some other PO mode commands. +

+

M-x po-normalize presently makes three passes over the entries. +The first implements heuristics for converting PO files for GNU +gettext 0.6 and earlier, in which msgid and msgstr +fields were using K&R style C string syntax for multi-line strings. +These heuristics may fail for comments not related to obsolete +entries and ending with a backslash; they also depend on subsequent +passes for finalizing the proper commenting of continued lines for +obsolete entries. This first pass might disappear once all oldish PO +files would have been adjusted. The second and third pass normalize +all msgid and msgstr strings respectively. They also +clean out those trailing backslashes used by XView's msgfmt +for continued lines. +

+ +

Having such an explicit normalizing command allows for importing PO +files from other sources, but also eases the evolution of the current +convention, evolution driven mostly by aesthetic concerns, as of now. +It is easy to make suggested adjustments at a later time, as the +normalizing command and eventually, other GNU gettext tools +should greatly automate conformance. A description of the canonical +string format is given below, for the particular benefit of those not +having Emacs handy, and who would nevertheless want to handcraft +their PO files in nice ways. +

+ +

Right now, in PO mode, strings are single line or multi-line. A string +goes multi-line if and only if it has embedded newlines, that +is, if it matches ‘[^\n]\n+[^\n]’. So, we would have: +

+
 
msgstr "\n\nHello, world!\n\n\n"
+
+ +

but, replacing the space by a newline, this becomes: +

+
 
msgstr ""
+"\n"
+"\n"
+"Hello,\n"
+"world!\n"
+"\n"
+"\n"
+
+ +

We are deliberately using a caricatural example, here, to make the +point clearer. Usually, multi-lines are not that bad looking. +It is probable that we will implement the following suggestion. +We might lump together all initial newlines into the empty string, +and also all newlines introducing empty lines (that is, for n +> 1, the n-1'th last newlines would go together on a separate +string), so making the previous example appear: +

+
 
msgstr "\n\n"
+"Hello,\n"
+"world!\n"
+"\n\n"
+
+ +

There are a few yet undecided little points about string normalization, +to be documented in this manual, once these questions settle. +

+ + + +

8.3.5 Translated Entries

+ +

Each PO file entry for which the msgstr field has been filled with +a translation, and which is not marked as fuzzy (see section Fuzzy Entries), +is said to be a translated entry. Only translated entries will +later be compiled by GNU msgfmt and become usable in programs. +Other entry types will be excluded; translation will not occur for them. +

+ +

Some commands are more specifically related to translated entry processing. +

+
+
t
+
+

Find the next translated entry (po-next-translated-entry). +

+
+
T
+
+

Find the previous translated entry (po-previous-translated-entry). +

+
+
+ + + + + +

The commands t (po-next-translated-entry) and T +(po-previous-translated-entry) move forwards or backwards, chasing +for an translated entry. If none is found, the search is extended and +wraps around in the PO file buffer. +

+ +

Translated entries usually result from the translator having edited in +a translation for them, Modifying Translations. However, if the +variable po-auto-fuzzy-on-edit is not nil, the entry having +received a new translation first becomes a fuzzy entry, which ought to +be later unfuzzied before becoming an official, genuine translated entry. +See section Fuzzy Entries. +

+ + + +

8.3.6 Fuzzy Entries

+ +

Each PO file entry may have a set of attributes, which are +qualities given a name and explicitly associated with the translation, +using a special system comment. One of these attributes +has the name fuzzy, and entries having this attribute are said +to have a fuzzy translation. They are called fuzzy entries, for short. +

+

Fuzzy entries, even if they account for translated entries for +most other purposes, usually call for revision by the translator. +Those may be produced by applying the program msgmerge to +update an older translated PO files according to a new PO template +file, when this tool hypothesises that some new msgid has +been modified only slightly out of an older one, and chooses to pair +what it thinks to be the old translation for the new modified entry. +The slight alteration in the original string (the msgid string) +should often be reflected in the translated string, and this requires +the intervention of the translator. For this reason, msgmerge +might mark some entries as being fuzzy. +

+ +

Also, the translator may decide herself to mark an entry as fuzzy +for her own convenience, when she wants to remember that the entry +has to be later revisited. So, some commands are more specifically +related to fuzzy entry processing. +

+
+
f
+
+

Find the next fuzzy entry (po-next-fuzzy-entry). +

+
+
F
+
+

Find the previous fuzzy entry (po-previous-fuzzy-entry). +

+
+
<TAB>
+
+

Remove the fuzzy attribute of the current entry (po-unfuzzy). +

+
+
+ + + + + +

The commands f (po-next-fuzzy-entry) and F +(po-previous-fuzzy-entry) move forwards or backwards, chasing for +a fuzzy entry. If none is found, the search is extended and wraps +around in the PO file buffer. +

+ + + +

The command <TAB> (po-unfuzzy) removes the fuzzy +attribute associated with an entry, usually leaving it translated. +Further, if the variable po-auto-select-on-unfuzzy has not +the nil value, the <TAB> command will automatically chase +for another interesting entry to work on. The initial value of +po-auto-select-on-unfuzzy is nil. +

+

The initial value of po-auto-fuzzy-on-edit is nil. However, +if the variable po-auto-fuzzy-on-edit is set to t, any entry +edited through the <RET> command is marked fuzzy, as a way to +ensure some kind of double check, later. In this case, the usual paradigm +is that an entry becomes fuzzy (if not already) whenever the translator +modifies it. If she is satisfied with the translation, she then uses +<TAB> to pick another entry to work on, clearing the fuzzy attribute +on the same blow. If she is not satisfied yet, she merely uses <SPC> +to chase another entry, leaving the entry fuzzy. +

+ + +

The translator may also use the <DEL> command +(po-fade-out-entry) over any translated entry to mark it as being +fuzzy, when she wants to easily leave a trace she wants to later return +working at this entry. +

+

Also, when time comes to quit working on a PO file buffer with the q +command, the translator is asked for confirmation, if fuzzy string +still exists. +

+ + + +

8.3.7 Untranslated Entries

+ +

When xgettext originally creates a PO file, unless told +otherwise, it initializes the msgid field with the untranslated +string, and leaves the msgstr string to be empty. Such entries, +having an empty translation, are said to be untranslated entries. +Later, when the programmer slightly modifies some string right in +the program, this change is later reflected in the PO file +by the appearance of a new untranslated entry for the modified string. +

+

The usual commands moving from entry to entry consider untranslated +entries on the same level as active entries. Untranslated entries +are easily recognizable by the fact they end with ‘msgstr ""’. +

+ +

The work of the translator might be (quite naively) seen as the process +of seeking for an untranslated entry, editing a translation for +it, and repeating these actions until no untranslated entries remain. +Some commands are more specifically related to untranslated entry +processing. +

+
+
u
+
+

Find the next untranslated entry (po-next-untranslated-entry). +

+
+
U
+
+

Find the previous untranslated entry (po-previous-untransted-entry). +

+
+
k
+
+

Turn the current entry into an untranslated one (po-kill-msgstr). +

+
+
+ + + + + +

The commands u (po-next-untranslated-entry) and U +(po-previous-untransted-entry) move forwards or backwards, +chasing for an untranslated entry. If none is found, the search is +extended and wraps around in the PO file buffer. +

+ + +

An entry can be turned back into an untranslated entry by +merely emptying its translation, using the command k +(po-kill-msgstr). See section Modifying Translations. +

+

Also, when time comes to quit working on a PO file buffer +with the q command, the translator is asked for confirmation, +if some untranslated string still exists. +

+ + + +

8.3.8 Obsolete Entries

+ +

By obsolete PO file entries, we mean those entries which are +commented out, usually by msgmerge when it found that the +translation is not needed anymore by the package being localized. +

+

The usual commands moving from entry to entry consider obsolete +entries on the same level as active entries. Obsolete entries are +easily recognizable by the fact that all their lines start with +#, even those lines containing msgid or msgstr. +

+

Commands exist for emptying the translation or reinitializing it +to the original untranslated string. Commands interfacing with the +kill ring may force some previously saved text into the translation. +The user may interactively edit the translation. All these commands +may apply to obsolete entries, carefully leaving the entry obsolete +after the fact. +

+ +

Moreover, some commands are more specifically related to obsolete +entry processing. +

+
+
o
+
+

Find the next obsolete entry (po-next-obsolete-entry). +

+
+
O
+
+

Find the previous obsolete entry (po-previous-obsolete-entry). +

+
+
<DEL>
+
+

Make an active entry obsolete, or zap out an obsolete entry +(po-fade-out-entry). +

+
+
+ + + + + +

The commands o (po-next-obsolete-entry) and O +(po-previous-obsolete-entry) move forwards or backwards, +chasing for an obsolete entry. If none is found, the search is +extended and wraps around in the PO file buffer. +

+

PO mode does not provide ways for un-commenting an obsolete entry +and making it active, because this would reintroduce an original +untranslated string which does not correspond to any marked string +in the program sources. This goes with the philosophy of never +introducing useless msgid values. +

+ + + + +

However, it is possible to comment out an active entry, so making +it obsolete. GNU gettext utilities will later react to the +disappearance of a translation by using the untranslated string. +The command <DEL> (po-fade-out-entry) pushes the current entry +a little further towards annihilation. If the entry is active (it is a +translated entry), then it is first made fuzzy. If it is already fuzzy, +then the entry is merely commented out, with confirmation. If the entry +is already obsolete, then it is completely deleted from the PO file. +It is easy to recycle the translation so deleted into some other PO file +entry, usually one which is untranslated. See section Modifying Translations. +

+

Here is a quite interesting problem to solve for later development of +PO mode, for those nights you are not sleepy. The idea would be that +PO mode might become bright enough, one of these days, to make good +guesses at retrieving the most probable candidate, among all obsolete +entries, for initializing the translation of a newly appeared string. +I think it might be a quite hard problem to do this algorithmically, as +we have to develop good and efficient measures of string similarity. +Right now, PO mode completely lets the decision to the translator, +when the time comes to find the adequate obsolete translation, it +merely tries to provide handy tools for helping her to do so. +

+ + + +

8.3.9 Modifying Translations

+ +

PO mode prevents direct modification of the PO file, by the usual +means Emacs gives for altering a buffer's contents. By doing so, +it pretends helping the translator to avoid little clerical errors +about the overall file format, or the proper quoting of strings, +as those errors would be easily made. Other kinds of errors are +still possible, but some may be caught and diagnosed by the batch +validation process, which the translator may always trigger by the +V command. For all other errors, the translator has to rely on +her own judgment, and also on the linguistic reports submitted to her +by the users of the translated package, having the same mother tongue. +

+

When the time comes to create a translation, correct an error diagnosed +mechanically or reported by a user, the translators have to resort to +using the following commands for modifying the translations. +

+
+
<RET>
+
+

Interactively edit the translation (po-edit-msgstr). +

+
+
<LFD>
+
C-j
+
+ +

Reinitialize the translation with the original, untranslated string +(po-msgid-to-msgstr). +

+
+
k
+
+

Save the translation on the kill ring, and delete it (po-kill-msgstr). +

+
+
w
+
+

Save the translation on the kill ring, without deleting it +(po-kill-ring-save-msgstr). +

+
+
y
+
+

Replace the translation, taking the new from the kill ring +(po-yank-msgstr). +

+
+
+ + + +

The command <RET> (po-edit-msgstr) opens a new Emacs +window meant to edit in a new translation, or to modify an already existing +translation. The new window contains a copy of the translation taken from +the current PO file entry, all ready for edition, expunged of all quoting +marks, fully modifiable and with the complete extent of Emacs modifying +commands. When the translator is done with her modifications, she may use +C-c C-c to close the subedit window with the automatically requoted +results, or C-c C-k to abort her modifications. See section Details of Sub Edition, +for more information. +

+ + + +

The command <LFD> (po-msgid-to-msgstr) initializes, or +reinitializes the translation with the original string. This command is +normally used when the translator wants to redo a fresh translation of +the original string, disregarding any previous work. +

+ +

It is possible to arrange so, whenever editing an untranslated +entry, the <LFD> command be automatically executed. If you set +po-auto-edit-with-msgid to t, the translation gets +initialised with the original string, in case none exists already. +The default value for po-auto-edit-with-msgid is nil. +

+ +

In fact, whether it is best to start a translation with an empty +string, or rather with a copy of the original string, is a matter of +taste or habit. Sometimes, the source language and the +target language are so different that is simply best to start writing +on an empty page. At other times, the source and target languages +are so close that it would be a waste to retype a number of words +already being written in the original string. A translator may also +like having the original string right under her eyes, as she will +progressively overwrite the original text with the translation, even +if this requires some extra editing work to get rid of the original. +

+ + + + + +

The command k (po-kill-msgstr) merely empties the +translation string, so turning the entry into an untranslated +one. But while doing so, its previous contents is put apart in +a special place, known as the kill ring. The command w +(po-kill-ring-save-msgstr) has also the effect of taking a +copy of the translation onto the kill ring, but it otherwise leaves +the entry alone, and does not remove the translation from the +entry. Both commands use exactly the Emacs kill ring, which is shared +between buffers, and which is well known already to Emacs lovers. +

+

The translator may use k or w many times in the course +of her work, as the kill ring may hold several saved translations. +From the kill ring, strings may later be reinserted in various +Emacs buffers. In particular, the kill ring may be used for moving +translation strings between different entries of a single PO file +buffer, or if the translator is handling many such buffers at once, +even between PO files. +

+

To facilitate exchanges with buffers which are not in PO mode, the +translation string put on the kill ring by the k command is fully +unquoted before being saved: external quotes are removed, multi-line +strings are concatenated, and backslash escaped sequences are turned +into their corresponding characters. In the special case of obsolete +entries, the translation is also uncommented prior to saving. +

+ + +

The command y (po-yank-msgstr) completely replaces the +translation of the current entry by a string taken from the kill ring. +Following Emacs terminology, we then say that the replacement +string is yanked into the PO file buffer. +See (emacs)Yanking section `Yanking' in The Emacs Editor. +The first time y is used, the translation receives the value of +the most recent addition to the kill ring. If y is typed once +again, immediately, without intervening keystrokes, the translation +just inserted is taken away and replaced by the second most recent +addition to the kill ring. By repeating y many times in a row, +the translator may travel along the kill ring for saved strings, +until she finds the string she really wanted. +

+

When a string is yanked into a PO file entry, it is fully and +automatically requoted for complying with the format PO files should +have. Further, if the entry is obsolete, PO mode then appropriately +push the inserted string inside comments. Once again, translators +should not burden themselves with quoting considerations besides, of +course, the necessity of the translated string itself respective to +the program using it. +

+

Note that k or w are not the only commands pushing strings +on the kill ring, as almost any PO mode command replacing translation +strings (or the translator comments) automatically saves the old string +on the kill ring. The main exceptions to this general rule are the +yanking commands themselves. +

+ +

To better illustrate the operation of killing and yanking, let's +use an actual example, taken from a common situation. When the +programmer slightly modifies some string right in the program, his +change is later reflected in the PO file by the appearance +of a new untranslated entry for the modified string, and the fact +that the entry translating the original or unmodified string becomes +obsolete. In many cases, the translator might spare herself some work +by retrieving the unmodified translation from the obsolete entry, +then initializing the untranslated entry msgstr field with +this retrieved translation. Once this done, the obsolete entry is +not wanted anymore, and may be safely deleted. +

+

When the translator finds an untranslated entry and suspects that a +slight variant of the translation exists, she immediately uses m +to mark the current entry location, then starts chasing obsolete +entries with o, hoping to find some translation corresponding +to the unmodified string. Once found, she uses the <DEL> command +for deleting the obsolete entry, knowing that <DEL> also kills +the translation, that is, pushes the translation on the kill ring. +Then, r returns to the initial untranslated entry, and y +then yanks the saved translation right into the msgstr +field. The translator is then free to use <RET> for fine +tuning the translation contents, and maybe to later use u, +then m again, for going on with the next untranslated string. +

+

When some sequence of keys has to be typed over and over again, the +translator may find it useful to become better acquainted with the Emacs +capability of learning these sequences and playing them back under request. +See (emacs)Keyboard Macros section `Keyboard Macros' in The Emacs Editor. +

+ + + +

8.3.10 Modifying Comments

+ +

Any translation work done seriously will raise many linguistic +difficulties, for which decisions have to be made, and the choices +further documented. These documents may be saved within the +PO file in form of translator comments, which the translator +is free to create, delete, or modify at will. These comments may +be useful to herself when she returns to this PO file after a while. +

+

Comments not having whitespace after the initial ‘#’, for example, +those beginning with ‘#.’ or ‘#:’, are not translator +comments, they are exclusively created by other gettext tools. +So, the commands below will never alter such system added comments, +they are not meant for the translator to modify. See section The Format of PO Files. +

+

The following commands are somewhat similar to those modifying translations, +so the general indications given for those apply here. See section Modifying Translations. +

+
+
#
+
+

Interactively edit the translator comments (po-edit-comment). +

+
+
K
+
+

Save the translator comments on the kill ring, and delete it +(po-kill-comment). +

+
+
W
+
+

Save the translator comments on the kill ring, without deleting it +(po-kill-ring-save-comment). +

+
+
Y
+
+

Replace the translator comments, taking the new from the kill ring +(po-yank-comment). +

+
+
+ +

These commands parallel PO mode commands for modifying the translation +strings, and behave much the same way as they do, except that they handle +this part of PO file comments meant for translator usage, rather +than the translation strings. So, if the descriptions given below are +slightly succinct, it is because the full details have already been given. +See section Modifying Translations. +

+ + +

The command # (po-edit-comment) opens a new Emacs window +containing a copy of the translator comments on the current PO file entry. +If there are no such comments, PO mode understands that the translator wants +to add a comment to the entry, and she is presented with an empty screen. +Comment marks (#) and the space following them are automatically +removed before edition, and reinstated after. For translator comments +pertaining to obsolete entries, the uncommenting and recommenting operations +are done twice. Once in the editing window, the keys C-c C-c +allow the translator to tell she is finished with editing the comment. +See section Details of Sub Edition, for further details. +

+ +

Functions found on po-subedit-mode-hook, if any, are executed after +the string has been inserted in the edit buffer. +

+ + + + + + +

The command K (po-kill-comment) gets rid of all +translator comments, while saving those comments on the kill ring. +The command W (po-kill-ring-save-comment) takes +a copy of the translator comments on the kill ring, but leaves +them undisturbed in the current entry. The command Y +(po-yank-comment) completely replaces the translator comments +by a string taken at the front of the kill ring. When this command +is immediately repeated, the comments just inserted are withdrawn, +and replaced by other strings taken along the kill ring. +

+

On the kill ring, all strings have the same nature. There is no +distinction between translation strings and translator +comments strings. So, for example, let's presume the translator +has just finished editing a translation, and wants to create a new +translator comment to document why the previous translation was +not good, just to remember what was the problem. Foreseeing that she +will do that in her documentation, the translator may want to quote +the previous translation in her translator comments. To do so, she +may initialize the translator comments with the previous translation, +still at the head of the kill ring. Because editing already pushed the +previous translation on the kill ring, she merely has to type M-w +prior to #, and the previous translation will be right there, +all ready for being introduced by some explanatory text. +

+

On the other hand, presume there are some translator comments already +and that the translator wants to add to those comments, instead +of wholly replacing them. Then, she should edit the comment right +away with #. Once inside the editing window, she can use the +regular Emacs commands C-y (yank) and M-y +(yank-pop) to get the previous translation where she likes. +

+ + + +

8.3.11 Details of Sub Edition

+ +

The PO subedit minor mode has a few peculiarities worth being described +in fuller detail. It installs a few commands over the usual editing set +of Emacs, which are described below. +

+
+
C-c C-c
+
+

Complete edition (po-subedit-exit). +

+
+
C-c C-k
+
+

Abort edition (po-subedit-abort). +

+
+
C-c C-a
+
+

Consult auxiliary PO files (po-subedit-cycle-auxiliary). +

+
+
+ + + + +

The window's contents represents a translation for a given message, +or a translator comment. The translator may modify this window to +her heart's content. Once this is done, the command C-c C-c +(po-subedit-exit) may be used to return the edited translation into +the PO file, replacing the original translation, even if it moved out of +sight or if buffers were switched. +

+ + +

If the translator becomes unsatisfied with her translation or comment, +to the extent she prefers keeping what was existent prior to the +<RET> or # command, she may use the command C-c C-k +(po-subedit-abort) to merely get rid of edition, while preserving +the original translation or comment. Another way would be for her to exit +normally with C-c C-c, then type U once for undoing the +whole effect of last edition. +

+ + +

The command C-c C-a (po-subedit-cycle-auxiliary) +allows for glancing through translations +already achieved in other languages, directly while editing the current +translation. This may be quite convenient when the translator is fluent +at many languages, but of course, only makes sense when such completed +auxiliary PO files are already available to her (see section Consulting Auxiliary PO Files). +

+

Functions found on po-subedit-mode-hook, if any, are executed after +the string has been inserted in the edit buffer. +

+

While editing her translation, the translator should pay attention to not +inserting unwanted <RET> (newline) characters at the end of +the translated string if those are not meant to be there, or to removing +such characters when they are required. Since these characters are not +visible in the editing buffer, they are easily introduced by mistake. +To help her, <RET> automatically puts the character < +at the end of the string being edited, but this < is not really +part of the string. On exiting the editing window with C-c C-c, +PO mode automatically removes such < and all whitespace added after +it. If the translator adds characters after the terminating <, it +looses its delimiting property and integrally becomes part of the string. +If she removes the delimiting <, then the edited string is taken +as is, with all trailing newlines, even if invisible. Also, if +the translated string ought to end itself with a genuine <, then +the delimiting < may not be removed; so the string should appear, +in the editing window, as ending with two < in a row. +

+ +

When a translation (or a comment) is being edited, the translator may move +the cursor back into the PO file buffer and freely move to other entries, +browsing at will. If, with an edition pending, the translator wanders in the +PO file buffer, she may decide to start modifying another entry. Each entry +being edited has its own subedit buffer. It is possible to simultaneously +edit the translation and the comment of a single entry, or to +edit entries in different PO files, all at once. Typing <RET> +on a field already being edited merely resumes that particular edit. Yet, +the translator should better be comfortable at handling many Emacs windows! +

+ +

Pending subedits may be completed or aborted in any order, regardless +of how or when they were started. When many subedits are pending and the +translator asks for quitting the PO file (with the q command), subedits +are automatically resumed one at a time, so she may decide for each of them. +

+ + + +

8.3.12 C Sources Context

+ +

PO mode is particularly powerful when used with PO files +created through GNU gettext utilities, as those utilities +insert special comments in the PO files they generate. +Some of these special comments relate the PO file entry to +exactly where the untranslated string appears in the program sources. +

+

When the translator gets to an untranslated entry, she is fairly +often faced with an original string which is not as informative as +it normally should be, being succinct, cryptic, or otherwise ambiguous. +Before choosing how to translate the string, she needs to understand +better what the string really means and how tight the translation has +to be. Most of the time, when problems arise, the only way left to make +her judgment is looking at the true program sources from where this +string originated, searching for surrounding comments the programmer +might have put in there, and looking around for helping clues of +any kind. +

+

Surely, when looking at program sources, the translator will receive +more help if she is a fluent programmer. However, even if she is +not versed in programming and feels a little lost in C code, the +translator should not be shy at taking a look, once in a while. +It is most probable that she will still be able to find some of the +hints she needs. She will learn quickly to not feel uncomfortable +in program code, paying more attention to programmer's comments, +variable and function names (if he dared choosing them well), and +overall organization, than to the program code itself. +

+ +

The following commands are meant to help the translator at getting +program source context for a PO file entry. +

+
+
s
+
+

Resume the display of a program source context, or cycle through them +(po-cycle-source-reference). +

+
+
M-s
+
+

Display of a program source context selected by menu +(po-select-source-reference). +

+
+
S
+
+

Add a directory to the search path for source files +(po-consider-source-path). +

+
+
M-S
+
+

Delete a directory from the search path for source files +(po-ignore-source-path). +

+
+
+ + + + + +

The commands s (po-cycle-source-reference) and M-s +(po-select-source-reference) both open another window displaying +some source program file, and already positioned in such a way that +it shows an actual use of the string to be translated. By doing +so, the command gives source program context for the string. But if +the entry has no source context references, or if all references +are unresolved along the search path for program sources, then the +command diagnoses this as an error. +

+

Even if s (or M-s) opens a new window, the cursor stays +in the PO file window. If the translator really wants to +get into the program source window, she ought to do it explicitly, +maybe by using command O. +

+

When s is typed for the first time, or for a PO file entry which +is different of the last one used for getting source context, then the +command reacts by giving the first context available for this entry, +if any. If some context has already been recently displayed for the +current PO file entry, and the translator wandered off to do other +things, typing s again will merely resume, in another window, +the context last displayed. In particular, if the translator moved +the cursor away from the context in the source file, the command will +bring the cursor back to the context. By using s many times +in a row, with no other commands intervening, PO mode will cycle to +the next available contexts for this particular entry, getting back +to the first context once the last has been shown. +

+

The command M-s behaves differently. Instead of cycling through +references, it lets the translator choose a particular reference among +many, and displays that reference. It is best used with completion, +if the translator types <TAB> immediately after M-s, in +response to the question, she will be offered a menu of all possible +references, as a reminder of which are the acceptable answers. +This command is useful only where there are really many contexts +available for a single string to translate. +

+ + + + +

Program source files are usually found relative to where the PO +file stands. As a special provision, when this fails, the file is +also looked for, but relative to the directory immediately above it. +Those two cases take proper care of most PO files. However, it might +happen that a PO file has been moved, or is edited in a different +place than its normal location. When this happens, the translator +should tell PO mode in which directory normally sits the genuine PO +file. Many such directories may be specified, and all together, they +constitute what is called the search path for program sources. +The command S (po-consider-source-path) is used to interactively +enter a new directory at the front of the search path, and the command +M-S (po-ignore-source-path) is used to select, with completion, +one of the directories she does not want anymore on the search path. +

+ + + +

8.3.13 Consulting Auxiliary PO Files

+ +

PO mode is able to help the knowledgeable translator, being fluent in +many languages, at taking advantage of translations already achieved +in other languages she just happens to know. It provides these other +language translations as additional context for her own work. Moreover, +it has features to ease the production of translations for many languages +at once, for translators preferring to work in this way. +

+ + +

An auxiliary PO file is an existing PO file meant for the same +package the translator is working on, but targeted to a different mother +tongue language. Commands exist for declaring and handling auxiliary +PO files, and also for showing contexts for the entry under work. +

+

Here are the auxiliary file commands available in PO mode. +

+
+
a
+
+

Seek auxiliary files for another translation for the same entry +(po-cycle-auxiliary). +

+
+
C-c C-a
+
+

Switch to a particular auxiliary file (po-select-auxiliary). +

+
+
A
+
+

Declare this PO file as an auxiliary file (po-consider-as-auxiliary). +

+
+
M-A
+
+

Remove this PO file from the list of auxiliary files +(po-ignore-as-auxiliary). +

+
+
+ + + + + +

Command A (po-consider-as-auxiliary) adds the current +PO file to the list of auxiliary files, while command M-A +(po-ignore-as-auxiliary just removes it. +

+ + +

The command a (po-cycle-auxiliary) seeks all auxiliary PO +files, round-robin, searching for a translated entry in some other language +having an msgid field identical as the one for the current entry. +The found PO file, if any, takes the place of the current PO file in +the display (its window gets on top). Before doing so, the current PO +file is also made into an auxiliary file, if not already. So, a +in this newly displayed PO file will seek another PO file, and so on, +so repeating a will eventually yield back the original PO file. +

+ + +

The command C-c C-a (po-select-auxiliary) asks the translator +for her choice of a particular auxiliary file, with completion, and +then switches to that selected PO file. The command also checks if +the selected file has an msgid field identical as the one for +the current entry, and if yes, this entry becomes current. Otherwise, +the cursor of the selected file is left undisturbed. +

+

For all this to work fully, auxiliary PO files will have to be normalized, +in that way that msgid fields should be written exactly +the same way. It is possible to write msgid fields in various +ways for representing the same string, different writing would break the +proper behaviour of the auxiliary file commands of PO mode. This is not +expected to be much a problem in practice, as most existing PO files have +their msgid entries written by the same GNU gettext tools. +

+ +

However, PO files initially created by PO mode itself, while marking +strings in source files, are normalised differently. So are PO +files resulting of the ‘M-x normalize’ command. Until these +discrepancies between PO mode and other GNU gettext tools get +fully resolved, the translator should stay aware of normalisation issues. +

+ + + +

8.4 Using Translation Compendia

+ +

A compendium is a special PO file containing a set of +translations recurring in many different packages. The translator can +use gettext tools to build a new compendium, to add entries to her +compendium, and to initialize untranslated entries, or to update +already translated entries, from translations kept in the compendium. +

+ + + + +

8.4.1 Creating Compendia

+ +

Basically every PO file consisting of translated entries only can be +declared as a valid compendium. Often the translator wants to have +special compendia; let's consider two cases: concatenating PO +files and extracting a message subset from a PO file. +

+ + +

8.4.1.1 Concatenate PO Files

+ +

To concatenate several valid PO files into one compendium file you can +use ‘msgcomm’ or ‘msgcat’ (the latter preferred): +

+
 
msgcat -o compendium.po file1.po file2.po
+
+ +

By default, msgcat will accumulate divergent translations +for the same string. Those occurrences will be marked as fuzzy +and highly visible decorated; calling msgcat on +‘file1.po’: +

+
 
#: src/hello.c:200
+#, c-format
+msgid "Report bugs to <%s>.\n"
+msgstr "Comunicar `bugs' a <%s>.\n"
+
+ +

and ‘file2.po’: +

+
 
#: src/bye.c:100
+#, c-format
+msgid "Report bugs to <%s>.\n"
+msgstr "Comunicar \"bugs\" a <%s>.\n"
+
+ +

will result in: +

+
 
#: src/hello.c:200 src/bye.c:100
+#, fuzzy, c-format
+msgid "Report bugs to <%s>.\n"
+msgstr ""
+"#-#-#-#-#  file1.po  #-#-#-#-#\n"
+"Comunicar `bugs' a <%s>.\n"
+"#-#-#-#-#  file2.po  #-#-#-#-#\n"
+"Comunicar \"bugs\" a <%s>.\n"
+
+ +

The translator will have to resolve this “conflict” manually; she +has to decide whether the first or the second version is appropriate +(or provide a new translation), to delete the “marker lines”, and +finally to remove the fuzzy mark. +

+

If the translator knows in advance the first found translation of a +message is always the best translation she can make use to the +‘--use-first’ switch: +

+
 
msgcat --use-first -o compendium.po file1.po file2.po
+
+ +

A good compendium file must not contain fuzzy or untranslated +entries. If input files are “dirty” you must preprocess the input +files or postprocess the result using ‘msgattrib --translated --no-fuzzy’. +

+ + +

8.4.1.2 Extract a Message Subset from a PO File

+ +

Nobody wants to translate the same messages again and again; thus you +may wish to have a compendium file containing ‘getopt.c’ messages. +

+

To extract a message subset (e.g., all ‘getopt.c’ messages) from an +existing PO file into one compendium file you can use ‘msggrep’: +

+
 
msggrep --location src/getopt.c -o compendium.po file.po
+
+ + + + +

8.4.2 Using Compendia

+ +

You can use a compendium file to initialize a translation from scratch +or to update an already existing translation. +

+ + +

8.4.2.1 Initialize a New Translation File

+ +

Since a PO file with translations does not exist the translator can +merely use ‘/dev/null’ to fake the “old” translation file. +

+
 
msgmerge --compendium compendium.po -o file.po /dev/null file.pot
+
+ + + +

8.4.2.2 Update an Existing Translation File

+ +

Concatenate the compendium file(s) and the existing PO, merge the +result with the POT file and remove the obsolete entries (optional, +here done using ‘msgattrib’): +

+
 
msgcat --use-first -o update.po compendium1.po compendium2.po file.po
+msgmerge update.po file.pot | msgattrib --no-obsolete > file.po
+
+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_9.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_9.html new file mode 100644 index 000000000..f9ab603f0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_9.html @@ -0,0 +1,3704 @@ + + + + + +GNU gettext utilities: 9. Manipulating PO Files + + + + + + + + + + + + + + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+ +
+ + +

9. Manipulating PO Files

+ +

Sometimes it is necessary to manipulate PO files in a way that is better +performed automatically than by hand. GNU gettext includes a +complete set of tools for this purpose. +

+ +

When merging two packages into a single package, the resulting POT file +will be the concatenation of the two packages' POT files. Thus the +maintainer must concatenate the two existing package translations into +a single translation catalog, for each language. This is best performed +using ‘msgcat’. It is then the translators' duty to deal with any +possible conflicts that arose during the merge. +

+ +

When a translator takes over the translation job from another translator, +but she uses a different character encoding in her locale, she will +convert the catalog to her character encoding. This is best done through +the ‘msgconv’ program. +

+

When a maintainer takes a source file with tagged messages from another +package, he should also take the existing translations for this source +file (and not let the translators do the same job twice). One way to do +this is through ‘msggrep’, another is to create a POT file for +that source file and use ‘msgmerge’. +

+ + +

When a translator wants to adjust some translation catalog for a special +dialect or orthography — for example, German as written in Switzerland +versus German as written in Germany — she needs to apply some text +processing to every message in the catalog. The tool for doing this is +‘msgfilter’. +

+

Another use of msgfilter is to produce approximately the POT file for +which a given PO file was made. This can be done through a filter command +like ‘msgfilter sed -e d | sed -e '/^# /d'’. Note that the original +POT file may have had different comments and different plural message counts, +that's why it's better to use the original POT file if available. +

+ +

When a translator wants to check her translations, for example according +to orthography rules or using a non-interactive spell checker, she can do +so using the ‘msgexec’ program. +

+ +

When third party tools create PO or POT files, sometimes duplicates cannot +be avoided. But the GNU gettext tools give an error when they +encounter duplicate msgids in the same file and in the same domain. +To merge duplicates, the ‘msguniq’ program can be used. +

+

msgcomm’ is a more general tool for keeping or throwing away +duplicates, occurring in different files. +

+

msgcmp’ can be used to check whether a translation catalog is +completely translated. +

+ +

msgattrib’ can be used to select and extract only the fuzzy +or untranslated messages of a translation catalog. +

+

msgen’ is useful as a first step for preparing English translation +catalogs. It copies each message's msgid to its msgstr. +

+

Finally, for those applications where all these various programs are not +sufficient, a library ‘libgettextpo’ is provided that can be used to +write other specialized programs that process PO files. +

+ + + + +

9.1 Invoking the msgcat Program

+ + +
 
msgcat [option] [inputfile]...
+
+ + + +

The msgcat program concatenates and merges the specified PO files. +It finds messages which are common to two or more of the specified PO files. +By using the --more-than option, greater commonality may be requested +before messages are printed. Conversely, the --less-than option may be +used to specify less commonality before messages are printed (i.e. +‘--less-than=2’ will only print the unique messages). Translations, +comments, extracted comments, and file positions will be cumulated, except that +if --use-first is specified, they will be taken from the first PO file +to define them. +

+

To concatenate POT files, better use xgettext, not msgcat, +because msgcat would choke on the undefined charsets in the specified +POT files. +

+ + +

9.1.1 Input file location

+ +
+
inputfile
+

Input files. +

+
+
-f file
+
--files-from=file
+
+ +

Read the names of the input files from file instead of getting +them from the command line. +

+
+
-D directory
+
--directory=directory
+
+ +

Add directory to the list of directories. Source files are +searched relative to this list of directories. The resulting ‘.po’ +file will be written relative to the current directory, though. +

+
+
+ +

If inputfile is ‘-’, standard input is read. +

+ + +

9.1.2 Output file location

+ +
+
-o file
+
--output-file=file
+
+ +

Write output to specified file. +

+
+
+ + +

The results are written to standard output if no output file is specified +or if it is ‘-’. +

+ + +

9.1.3 Message selection

+ +
+
-< number
+
--less-than=number
+
+ +

Print messages with less than number definitions, defaults to infinite +if not set. +

+
+
-> number
+
--more-than=number
+
+ +

Print messages with more than number definitions, defaults to 0 if not +set. +

+
+
-u
+
--unique
+
+ +

Shorthand for ‘--less-than=2’. Requests that only unique messages be +printed. +

+
+
+ + + +

9.1.4 Input file syntax

+ +
+
-P
+
--properties-input
+
+ +

Assume the input files are Java ResourceBundles in Java .properties +syntax, not in PO file syntax. +

+
+
--stringtable-input
+
+

Assume the input files are NeXTstep/GNUstep localized resource files in +.strings syntax, not in PO file syntax. +

+
+
+ + + +

9.1.5 Output details

+ + +
+
-t
+
--to-code=name
+
+ +

Specify encoding for output. +

+
+
--use-first
+
+

Use first available translation for each message. Don't merge several +translations into one. +

+
+
--lang=catalogname
+
+

Specify the ‘Language’ field to be used in the header entry. See +Filling in the Header Entry for the meaning of this field. Note: The +‘Language-Team’ and ‘Plural-Forms’ fields are left unchanged. +

+
+
--color
+
--color=when
+
+

Specify whether or when to use colors and other text attributes. +See The --color option for details. +

+
+
--style=style_file
+
+

Specify the CSS style rule file to use for --color. +See The --style option for details. +

+
+
--force-po
+
+

Always write an output file even if it contains no message. +

+
+
-i
+
--indent
+
+ +

Write the .po file using indented style. +

+
+
--no-location
+
+

Do not write ‘#: filename:line’ lines. +

+
+
-n
+
--add-location=type
+
+ +

Generate ‘#: filename:line’ lines (default). +

+

The optional type can be either ‘full’, ‘file’, or +‘never’. If it is not given or ‘full’, it generates the +lines with both file name and line number. If it is ‘file’, the +line number part is omitted. If it is ‘never’, it completely +suppresses the lines (same as --no-location). +

+
+
--strict
+
+

Write out a strict Uniforum conforming PO file. Note that this +Uniforum format should be avoided because it doesn't support the +GNU extensions. +

+
+
-p
+
--properties-output
+
+ +

Write out a Java ResourceBundle in Java .properties syntax. Note +that this file format doesn't support plural forms and silently drops +obsolete messages. +

+
+
--stringtable-output
+
+

Write out a NeXTstep/GNUstep localized resource file in .strings syntax. +Note that this file format doesn't support plural forms. +

+
+
-w number
+
--width=number
+
+ +

Set the output page width. Long strings in the output files will be +split across multiple lines in order to ensure that each line's width +(= number of screen columns) is less or equal to the given number. +

+
+
--no-wrap
+
+

Do not break long message lines. Message lines whose width exceeds the +output page width will not be split into several lines. Only file reference +lines which are wider than the output page width will be split. +

+
+
-s
+
--sort-output
+
+ + +

Generate sorted output. Note that using this option makes it much harder +for the translator to understand each message's context. +

+
+
-F
+
--sort-by-file
+
+ +

Sort output by file location. +

+
+
+ + + +

9.1.6 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
+ + + + +

9.2 Invoking the msgconv Program

+ + +
 
msgconv [option] [inputfile]
+
+ + +

The msgconv program converts a translation catalog to a different +character encoding. +

+ + +

9.2.1 Input file location

+ +
+
inputfile
+

Input PO file. +

+
+
-D directory
+
--directory=directory
+
+ +

Add directory to the list of directories. Source files are +searched relative to this list of directories. The resulting ‘.po’ +file will be written relative to the current directory, though. +

+
+
+ +

If no inputfile is given or if it is ‘-’, standard input is read. +

+ + +

9.2.2 Output file location

+ +
+
-o file
+
--output-file=file
+
+ +

Write output to specified file. +

+
+
+ +

The results are written to standard output if no output file is specified +or if it is ‘-’. +

+ + +

9.2.3 Conversion target

+ +
+
-t
+
--to-code=name
+
+ +

Specify encoding for output. +

+
+
+ +

The default encoding is the current locale's encoding. +

+ + +

9.2.4 Input file syntax

+ +
+
-P
+
--properties-input
+
+ +

Assume the input file is a Java ResourceBundle in Java .properties +syntax, not in PO file syntax. +

+
+
--stringtable-input
+
+

Assume the input file is a NeXTstep/GNUstep localized resource file in +.strings syntax, not in PO file syntax. +

+
+
+ + + +

9.2.5 Output details

+ + +
+
--color
+
--color=when
+
+

Specify whether or when to use colors and other text attributes. +See The --color option for details. +

+
+
--style=style_file
+
+

Specify the CSS style rule file to use for --color. +See The --style option for details. +

+
+
--force-po
+
+

Always write an output file even if it contains no message. +

+
+
-i
+
--indent
+
+ +

Write the .po file using indented style. +

+
+
--no-location
+
+

Do not write ‘#: filename:line’ lines. +

+
+
-n
+
--add-location=type
+
+

Generate ‘#: filename:line’ lines (default). +

+

The optional type can be either ‘full’, ‘file’, or +‘never’. If it is not given or ‘full’, it generates the +lines with both file name and line number. If it is ‘file’, the +line number part is omitted. If it is ‘never’, it completely +suppresses the lines (same as --no-location). +

+
+
--strict
+
+

Write out a strict Uniforum conforming PO file. Note that this +Uniforum format should be avoided because it doesn't support the +GNU extensions. +

+
+
-p
+
--properties-output
+
+ +

Write out a Java ResourceBundle in Java .properties syntax. Note +that this file format doesn't support plural forms and silently drops +obsolete messages. +

+
+
--stringtable-output
+
+

Write out a NeXTstep/GNUstep localized resource file in .strings syntax. +Note that this file format doesn't support plural forms. +

+
+
-w number
+
--width=number
+
+ +

Set the output page width. Long strings in the output files will be +split across multiple lines in order to ensure that each line's width +(= number of screen columns) is less or equal to the given number. +

+
+
--no-wrap
+
+

Do not break long message lines. Message lines whose width exceeds the +output page width will not be split into several lines. Only file reference +lines which are wider than the output page width will be split. +

+
+
-s
+
--sort-output
+
+ +

Generate sorted output. Note that using this option makes it much harder +for the translator to understand each message's context. +

+
+
-F
+
--sort-by-file
+
+ +

Sort output by file location. +

+
+
+ + + +

9.2.6 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
+ + + + +

9.3 Invoking the msggrep Program

+ + +
 
msggrep [option] [inputfile]
+
+ + +

The msggrep program extracts all messages of a translation catalog +that match a given pattern or belong to some given source files. +

+ + +

9.3.1 Input file location

+ +
+
inputfile
+

Input PO file. +

+
+
-D directory
+
--directory=directory
+
+ +

Add directory to the list of directories. Source files are +searched relative to this list of directories. The resulting ‘.po’ +file will be written relative to the current directory, though. +

+
+
+ +

If no inputfile is given or if it is ‘-’, standard input is read. +

+ + +

9.3.2 Output file location

+ +
+
-o file
+
--output-file=file
+
+ +

Write output to specified file. +

+
+
+ +

The results are written to standard output if no output file is specified +or if it is ‘-’. +

+ + +

9.3.3 Message selection

+ +
 
  [-N sourcefile]... [-M domainname]...
+  [-J msgctxt-pattern] [-K msgid-pattern] [-T msgstr-pattern]
+  [-C comment-pattern]
+
+ +

A message is selected if +

    +
  • it comes from one of the specified source files, +
  • or if it comes from one of the specified domains, +
  • or if ‘-J’ is given and its context (msgctxt) matches +msgctxt-pattern, +
  • or if ‘-K’ is given and its key (msgid or msgid_plural) matches +msgid-pattern, +
  • or if ‘-T’ is given and its translation (msgstr) matches +msgstr-pattern, +
  • or if ‘-C’ is given and the translator's comment matches +comment-pattern. +
+ +

When more than one selection criterion is specified, the set of selected +messages is the union of the selected messages of each criterion. +

+

msgctxt-pattern or msgid-pattern or msgstr-pattern syntax: +

 
  [-E | -F] [-e pattern | -f file]...
+
+

patterns are basic regular expressions by default, or extended regular +expressions if -E is given, or fixed strings if -F is given. +

+
+
-N sourcefile
+
--location=sourcefile
+
+ +

Select messages extracted from sourcefile. sourcefile can be +either a literal file name or a wildcard pattern. +

+
+
-M domainname
+
--domain=domainname
+
+ +

Select messages belonging to domain domainname. +

+
+
-J
+
--msgctxt
+
+ +

Start of patterns for the msgctxt. +

+
+
-K
+
--msgid
+
+ +

Start of patterns for the msgid. +

+
+
-T
+
--msgstr
+
+ +

Start of patterns for the msgstr. +

+
+
-C
+
--comment
+
+ +

Start of patterns for the translator's comment. +

+
+
-X
+
--extracted-comment
+
+ +

Start of patterns for the extracted comments. +

+
+
-E
+
--extended-regexp
+
+ +

Specify that pattern is an extended regular expression. +

+
+
-F
+
--fixed-strings
+
+ +

Specify that pattern is a set of newline-separated strings. +

+
+
-e pattern
+
--regexp=pattern
+
+ +

Use pattern as a regular expression. +

+
+
-f file
+
--file=file
+
+ +

Obtain pattern from file. +

+
+
-i
+
--ignore-case
+
+ +

Ignore case distinctions. +

+
+
-v
+
--invert-match
+
+ +

Output only the messages that do not match any selection criterion, instead +of the messages that match a selection criterion. +

+
+
+ + + +

9.3.4 Input file syntax

+ +
+
-P
+
--properties-input
+
+ +

Assume the input file is a Java ResourceBundle in Java .properties +syntax, not in PO file syntax. +

+
+
--stringtable-input
+
+

Assume the input file is a NeXTstep/GNUstep localized resource file in +.strings syntax, not in PO file syntax. +

+
+
+ + + +

9.3.5 Output details

+ + +
+
--color
+
--color=when
+
+

Specify whether or when to use colors and other text attributes. +See The --color option for details. +

+
+
--style=style_file
+
+

Specify the CSS style rule file to use for --color. +See The --style option for details. +

+
+
--force-po
+
+

Always write an output file even if it contains no message. +

+
+
--indent
+
+

Write the .po file using indented style. +

+
+
--no-location
+
+

Do not write ‘#: filename:line’ lines. +

+
+
-n
+
--add-location=type
+
+

Generate ‘#: filename:line’ lines (default). +

+

The optional type can be either ‘full’, ‘file’, or +‘never’. If it is not given or ‘full’, it generates the +lines with both file name and line number. If it is ‘file’, the +line number part is omitted. If it is ‘never’, it completely +suppresses the lines (same as --no-location). +

+
+
--strict
+
+

Write out a strict Uniforum conforming PO file. Note that this +Uniforum format should be avoided because it doesn't support the +GNU extensions. +

+
+
-p
+
--properties-output
+
+ +

Write out a Java ResourceBundle in Java .properties syntax. Note +that this file format doesn't support plural forms and silently drops +obsolete messages. +

+
+
--stringtable-output
+
+

Write out a NeXTstep/GNUstep localized resource file in .strings syntax. +Note that this file format doesn't support plural forms. +

+
+
-w number
+
--width=number
+
+ +

Set the output page width. Long strings in the output files will be +split across multiple lines in order to ensure that each line's width +(= number of screen columns) is less or equal to the given number. +

+
+
--no-wrap
+
+

Do not break long message lines. Message lines whose width exceeds the +output page width will not be split into several lines. Only file reference +lines which are wider than the output page width will be split. +

+
+
--sort-output
+
+

Generate sorted output. Note that using this option makes it much harder +for the translator to understand each message's context. +

+
+
--sort-by-file
+
+

Sort output by file location. +

+
+
+ + + +

9.3.6 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
+ + + +

9.3.7 Examples

+ +

To extract the messages that come from the source files +gnulib-lib/error.c and gnulib-lib/getopt.c: +

+
 
msggrep -N gnulib-lib/error.c -N gnulib-lib/getopt.c input.po
+
+ +

To extract the messages that contain the string “Please specify” in the +original string: +

+
 
msggrep --msgid -F -e 'Please specify' input.po
+
+ +

To extract the messages that have a context specifier of either “Menu>File” +or “Menu>Edit” or a submenu of them: +

+
 
msggrep --msgctxt -E -e '^Menu>(File|Edit)' input.po
+
+ +

To extract the messages whose translation contains one of the strings in the +file wordlist.txt: +

+
 
msggrep --msgstr -F -f wordlist.txt input.po
+
+ + + + +

9.4 Invoking the msgfilter Program

+ + +
 
msgfilter [option] filter [filter-option]
+
+ + +

The msgfilter program applies a filter to all translations of a +translation catalog. +

+ + + + + + + + +

During each filter invocation, the environment variable +MSGFILTER_MSGID is bound to the message's msgid, and the environment +variable MSGFILTER_LOCATION is bound to the location in the PO file +of the message. If the message has a context, the environment variable +MSGFILTER_MSGCTXT is bound to the message's msgctxt, otherwise it is +unbound. If the message has a plural form, environment variable +MSGFILTER_MSGID_PLURAL is bound to the message's msgid_plural and +MSGFILTER_PLURAL_FORM is bound to the order number of the plural +actually processed (starting with 0), otherwise both are unbound. +If the message has a previous msgid (added by msgmerge), +environment variable MSGFILTER_PREV_MSGCTXT is bound to the +message's previous msgctxt, MSGFILTER_PREV_MSGID is bound to +the previous msgid, and MSGFILTER_PREV_MSGID_PLURAL is bound to +the previous msgid_plural. +

+ + +

9.4.1 Input file location

+ +
+
-i inputfile
+
--input=inputfile
+
+ +

Input PO file. +

+
+
-D directory
+
--directory=directory
+
+ +

Add directory to the list of directories. Source files are +searched relative to this list of directories. The resulting ‘.po’ +file will be written relative to the current directory, though. +

+
+
+ +

If no inputfile is given or if it is ‘-’, standard input is read. +

+ + +

9.4.2 Output file location

+ +
+
-o file
+
--output-file=file
+
+ +

Write output to specified file. +

+
+
+ +

The results are written to standard output if no output file is specified +or if it is ‘-’. +

+ + +

9.4.3 The filter

+ +

The filter can be any program that reads a translation from standard +input and writes a modified translation to standard output. A frequently +used filter is ‘sed’. A few particular built-in filters are also +recognized. +

+
+
--newline
+
+

Add newline at the end of each input line and also strip the ending +newline from the output line. +

+
+
+ + +

Note: If the filter is not a built-in filter, you have to care about encodings: +It is your responsibility to ensure that the filter can cope +with input encoded in the translation catalog's encoding. If the +filter wants input in a particular encoding, you can in a first step +convert the translation catalog to that encoding using the ‘msgconv’ +program, before invoking ‘msgfilter’. If the filter wants input +in the locale's encoding, but you want to avoid the locale's encoding, then +you can first convert the translation catalog to UTF-8 using the +‘msgconv’ program and then make ‘msgfilter’ work in an UTF-8 +locale, by using the LC_ALL environment variable. +

+ +

Note: Most translations in a translation catalog don't end with a +newline character. For this reason, unless the --newline +option is used, it is important that the filter recognizes its +last input line even if it ends without a newline, and that it doesn't +add an undesired trailing newline at the end. The ‘sed’ program on +some platforms is known to ignore the last line of input if it is not +terminated with a newline. You can use GNU sed instead; it does +not have this limitation. +

+ + +

9.4.4 Useful filter-options when the filter is ‘sed

+ +
+
-e script
+
--expression=script
+
+ +

Add script to the commands to be executed. +

+
+
-f scriptfile
+
--file=scriptfile
+
+ +

Add the contents of scriptfile to the commands to be executed. +

+
+
-n
+
--quiet
+
--silent
+
+ + +

Suppress automatic printing of pattern space. +

+
+
+ + + +

9.4.5 Built-in filters

+ +

The filter ‘recode-sr-latin’ is recognized as a built-in filter. +The command ‘recode-sr-latin’ converts Serbian text, written in the +Cyrillic script, to the Latin script. +The command ‘msgfilter recode-sr-latin’ applies this conversion to the +translations of a PO file. Thus, it can be used to convert an ‘sr.po’ +file to an ‘sr@latin.po’ file. +

+ +

The filter ‘quot’ is recognized as a built-in filter. +The command ‘msgfilter quot’ converts any quotations surrounded +by a pair of ‘"’, ‘'’, and ‘`’. +

+ +

The filter ‘boldquot’ is recognized as a built-in filter. +The command ‘msgfilter boldquot’ converts any quotations +surrounded by a pair of ‘"’, ‘'’, and ‘`’, also adding the +VT100 escape sequences to the text to decorate it as bold. +

+

The use of built-in filters is not sensitive to the current locale's encoding. +Moreover, when used with a built-in filter, ‘msgfilter’ can automatically +convert the message catalog to the UTF-8 encoding when needed. +

+ + +

9.4.6 Input file syntax

+ +
+
-P
+
--properties-input
+
+ +

Assume the input file is a Java ResourceBundle in Java .properties +syntax, not in PO file syntax. +

+
+
--stringtable-input
+
+

Assume the input file is a NeXTstep/GNUstep localized resource file in +.strings syntax, not in PO file syntax. +

+
+
+ + + +

9.4.7 Output details

+ + +
+
--color
+
--color=when
+
+

Specify whether or when to use colors and other text attributes. +See The --color option for details. +

+
+
--style=style_file
+
+

Specify the CSS style rule file to use for --color. +See The --style option for details. +

+
+
--force-po
+
+

Always write an output file even if it contains no message. +

+
+
--indent
+
+

Write the .po file using indented style. +

+
+
--keep-header
+
+

Keep the header entry, i.e. the message with ‘msgid ""’, unmodified, +instead of filtering it. By default, the header entry is subject to +filtering like any other message. +

+
+
--no-location
+
+

Do not write ‘#: filename:line’ lines. +

+
+
-n
+
--add-location=type
+
+

Generate ‘#: filename:line’ lines (default). +

+

The optional type can be either ‘full’, ‘file’, or +‘never’. If it is not given or ‘full’, it generates the +lines with both file name and line number. If it is ‘file’, the +line number part is omitted. If it is ‘never’, it completely +suppresses the lines (same as --no-location). +

+
+
--strict
+
+

Write out a strict Uniforum conforming PO file. Note that this +Uniforum format should be avoided because it doesn't support the +GNU extensions. +

+
+
-p
+
--properties-output
+
+ +

Write out a Java ResourceBundle in Java .properties syntax. Note +that this file format doesn't support plural forms and silently drops +obsolete messages. +

+
+
--stringtable-output
+
+

Write out a NeXTstep/GNUstep localized resource file in .strings syntax. +Note that this file format doesn't support plural forms. +

+
+
-w number
+
--width=number
+
+ +

Set the output page width. Long strings in the output files will be +split across multiple lines in order to ensure that each line's width +(= number of screen columns) is less or equal to the given number. +

+
+
--no-wrap
+
+

Do not break long message lines. Message lines whose width exceeds the +output page width will not be split into several lines. Only file reference +lines which are wider than the output page width will be split. +

+
+
-s
+
--sort-output
+
+ +

Generate sorted output. Note that using this option makes it much harder +for the translator to understand each message's context. +

+
+
-F
+
--sort-by-file
+
+ +

Sort output by file location. +

+
+
+ + + +

9.4.8 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
+ + + +

9.4.9 Examples

+ +

To convert German translations to Swiss orthography (in an UTF-8 locale): +

+
 
msgconv -t UTF-8 de.po | msgfilter sed -e 's/ß/ss/g'
+
+ +

To convert Serbian translations in Cyrillic script to Latin script: +

+
 
msgfilter recode-sr-latin < sr.po
+
+ + + + +

9.5 Invoking the msguniq Program

+ + +
 
msguniq [option] [inputfile]
+
+ + + +

The msguniq program unifies duplicate translations in a translation +catalog. It finds duplicate translations of the same message ID. Such +duplicates are invalid input for other programs like msgfmt, +msgmerge or msgcat. By default, duplicates are merged +together. When using the ‘--repeated’ option, only duplicates are +output, and all other messages are discarded. Comments and extracted +comments will be cumulated, except that if ‘--use-first’ is +specified, they will be taken from the first translation. File positions +will be cumulated. When using the ‘--unique’ option, duplicates are +discarded. +

+ + +

9.5.1 Input file location

+ +
+
inputfile
+

Input PO file. +

+
+
-D directory
+
--directory=directory
+
+ +

Add directory to the list of directories. Source files are +searched relative to this list of directories. The resulting ‘.po’ +file will be written relative to the current directory, though. +

+
+
+ +

If no inputfile is given or if it is ‘-’, standard input is read. +

+ + +

9.5.2 Output file location

+ +
+
-o file
+
--output-file=file
+
+ +

Write output to specified file. +

+
+
+ +

The results are written to standard output if no output file is specified +or if it is ‘-’. +

+ + +

9.5.3 Message selection

+ +
+
-d
+
--repeated
+
+ +

Print only duplicates. +

+
+
-u
+
--unique
+
+ +

Print only unique messages, discard duplicates. +

+
+
+ + + +

9.5.4 Input file syntax

+ +
+
-P
+
--properties-input
+
+ +

Assume the input file is a Java ResourceBundle in Java .properties +syntax, not in PO file syntax. +

+
+
--stringtable-input
+
+

Assume the input file is a NeXTstep/GNUstep localized resource file in +.strings syntax, not in PO file syntax. +

+
+
+ + + +

9.5.5 Output details

+ + +
+
-t
+
--to-code=name
+
+ +

Specify encoding for output. +

+
+
--use-first
+
+

Use first available translation for each message. Don't merge several +translations into one. +

+
+
--color
+
--color=when
+
+

Specify whether or when to use colors and other text attributes. +See The --color option for details. +

+
+
--style=style_file
+
+

Specify the CSS style rule file to use for --color. +See The --style option for details. +

+
+
--force-po
+
+

Always write an output file even if it contains no message. +

+
+
-i
+
--indent
+
+ +

Write the .po file using indented style. +

+
+
--no-location
+
+

Do not write ‘#: filename:line’ lines. +

+
+
-n
+
--add-location=type
+
+ +

Generate ‘#: filename:line’ lines (default). +

+

The optional type can be either ‘full’, ‘file’, or +‘never’. If it is not given or ‘full’, it generates the +lines with both file name and line number. If it is ‘file’, the +line number part is omitted. If it is ‘never’, it completely +suppresses the lines (same as --no-location). +

+
+
--strict
+
+

Write out a strict Uniforum conforming PO file. Note that this +Uniforum format should be avoided because it doesn't support the +GNU extensions. +

+
+
-p
+
--properties-output
+
+ +

Write out a Java ResourceBundle in Java .properties syntax. Note +that this file format doesn't support plural forms and silently drops +obsolete messages. +

+
+
--stringtable-output
+
+

Write out a NeXTstep/GNUstep localized resource file in .strings syntax. +Note that this file format doesn't support plural forms. +

+
+
-w number
+
--width=number
+
+ +

Set the output page width. Long strings in the output files will be +split across multiple lines in order to ensure that each line's width +(= number of screen columns) is less or equal to the given number. +

+
+
--no-wrap
+
+

Do not break long message lines. Message lines whose width exceeds the +output page width will not be split into several lines. Only file reference +lines which are wider than the output page width will be split. +

+
+
-s
+
--sort-output
+
+ +

Generate sorted output. Note that using this option makes it much harder +for the translator to understand each message's context. +

+
+
-F
+
--sort-by-file
+
+ +

Sort output by file location. +

+
+
+ + + +

9.5.6 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
+ + + + +

9.6 Invoking the msgcomm Program

+ + +
 
msgcomm [option] [inputfile]...
+
+ + +

The msgcomm program finds messages which are common to two or more +of the specified PO files. +By using the --more-than option, greater commonality may be requested +before messages are printed. Conversely, the --less-than option may be +used to specify less commonality before messages are printed (i.e. +‘--less-than=2’ will only print the unique messages). Translations, +comments and extracted comments will be preserved, but only from the first +PO file to define them. File positions from all PO files will be +cumulated. +

+ + +

9.6.1 Input file location

+ +
+
inputfile
+

Input files. +

+
+
-f file
+
--files-from=file
+
+ +

Read the names of the input files from file instead of getting +them from the command line. +

+
+
-D directory
+
--directory=directory
+
+ +

Add directory to the list of directories. Source files are +searched relative to this list of directories. The resulting ‘.po’ +file will be written relative to the current directory, though. +

+
+
+ +

If inputfile is ‘-’, standard input is read. +

+ + +

9.6.2 Output file location

+ +
+
-o file
+
--output-file=file
+
+ +

Write output to specified file. +

+
+
+ +

The results are written to standard output if no output file is specified +or if it is ‘-’. +

+ + +

9.6.3 Message selection

+ +
+
-< number
+
--less-than=number
+
+ +

Print messages with less than number definitions, defaults to infinite +if not set. +

+
+
-> number
+
--more-than=number
+
+ +

Print messages with more than number definitions, defaults to 1 if not +set. +

+
+
-u
+
--unique
+
+ +

Shorthand for ‘--less-than=2’. Requests that only unique messages be +printed. +

+
+
+ + + +

9.6.4 Input file syntax

+ +
+
-P
+
--properties-input
+
+ +

Assume the input files are Java ResourceBundles in Java .properties +syntax, not in PO file syntax. +

+
+
--stringtable-input
+
+

Assume the input files are NeXTstep/GNUstep localized resource files in +.strings syntax, not in PO file syntax. +

+
+
+ + + +

9.6.5 Output details

+ + +
+
--color
+
--color=when
+
+

Specify whether or when to use colors and other text attributes. +See The --color option for details. +

+
+
--style=style_file
+
+

Specify the CSS style rule file to use for --color. +See The --style option for details. +

+
+
--force-po
+
+

Always write an output file even if it contains no message. +

+
+
-i
+
--indent
+
+ +

Write the .po file using indented style. +

+
+
--no-location
+
+

Do not write ‘#: filename:line’ lines. +

+
+
-n
+
--add-location=type
+
+ +

Generate ‘#: filename:line’ lines (default). +

+

The optional type can be either ‘full’, ‘file’, or +‘never’. If it is not given or ‘full’, it generates the +lines with both file name and line number. If it is ‘file’, the +line number part is omitted. If it is ‘never’, it completely +suppresses the lines (same as --no-location). +

+
+
--strict
+
+

Write out a strict Uniforum conforming PO file. Note that this +Uniforum format should be avoided because it doesn't support the +GNU extensions. +

+
+
-p
+
--properties-output
+
+ +

Write out a Java ResourceBundle in Java .properties syntax. Note +that this file format doesn't support plural forms and silently drops +obsolete messages. +

+
+
--stringtable-output
+
+

Write out a NeXTstep/GNUstep localized resource file in .strings syntax. +Note that this file format doesn't support plural forms. +

+
+
-w number
+
--width=number
+
+ +

Set the output page width. Long strings in the output files will be +split across multiple lines in order to ensure that each line's width +(= number of screen columns) is less or equal to the given number. +

+
+
--no-wrap
+
+

Do not break long message lines. Message lines whose width exceeds the +output page width will not be split into several lines. Only file reference +lines which are wider than the output page width will be split. +

+
+
-s
+
--sort-output
+
+ +

Generate sorted output. Note that using this option makes it much harder +for the translator to understand each message's context. +

+
+
-F
+
--sort-by-file
+
+ +

Sort output by file location. +

+
+
--omit-header
+
+

Don't write header with ‘msgid ""’ entry. +

+
+
+ + + +

9.6.6 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
+ + + + +

9.7 Invoking the msgcmp Program

+ + +
 
msgcmp [option] def.po ref.pot
+
+ + +

The msgcmp program compares two Uniforum style .po files to check that +both contain the same set of msgid strings. The def.po file is an +existing PO file with the translations. The ref.pot file is the last +created PO file, or a PO Template file (generally created by xgettext). +This is useful for checking that you have translated each and every message +in your program. Where an exact match cannot be found, fuzzy matching is +used to produce better diagnostics. +

+ + +

9.7.1 Input file location

+ +
+
def.po
+

Translations. +

+
+
ref.pot
+

References to the sources. +

+
+
-D directory
+
--directory=directory
+
+ +

Add directory to the list of directories. Source files are +searched relative to this list of directories. +

+
+
+ + + +

9.7.2 Operation modifiers

+ +
+
-m
+
--multi-domain
+
+ +

Apply ref.pot to each of the domains in def.po. +

+
+
-N
+
--no-fuzzy-matching
+
+ +

Do not use fuzzy matching when an exact match is not found. This may speed +up the operation considerably. +

+
+
--use-fuzzy
+
+

Consider fuzzy messages in the def.po file like translated messages. +Note that using this option is usually wrong, because fuzzy messages are +exactly those which have not been validated by a human translator. +

+
+
--use-untranslated
+
+

Consider untranslated messages in the def.po file like translated +messages. Note that using this option is usually wrong. +

+
+
+ + + +

9.7.3 Input file syntax

+ +
+
-P
+
--properties-input
+
+ +

Assume the input files are Java ResourceBundles in Java .properties +syntax, not in PO file syntax. +

+
+
--stringtable-input
+
+

Assume the input files are NeXTstep/GNUstep localized resource files in +.strings syntax, not in PO file syntax. +

+
+
+ + + +

9.7.4 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
+ + + + +

9.8 Invoking the msgattrib Program

+ + +
 
msgattrib [option] [inputfile]
+
+ + + +

The msgattrib program filters the messages of a translation catalog +according to their attributes, and manipulates the attributes. +

+ + +

9.8.1 Input file location

+ +
+
inputfile
+

Input PO file. +

+
+
-D directory
+
--directory=directory
+
+ +

Add directory to the list of directories. Source files are +searched relative to this list of directories. The resulting ‘.po’ +file will be written relative to the current directory, though. +

+
+
+ +

If no inputfile is given or if it is ‘-’, standard input is read. +

+ + +

9.8.2 Output file location

+ +
+
-o file
+
--output-file=file
+
+ +

Write output to specified file. +

+
+
+ +

The results are written to standard output if no output file is specified +or if it is ‘-’. +

+ + +

9.8.3 Message selection

+ +
+
--translated
+
+

Keep translated messages, remove untranslated messages. +

+
+
--untranslated
+
+

Keep untranslated messages, remove translated messages. +

+
+
--no-fuzzy
+
+

Remove +‘fuzzy’ +marked messages. +

+
+
--only-fuzzy
+
+

Keep +‘fuzzy’ +marked messages, remove all other messages. +

+
+
--no-obsolete
+
+

Remove obsolete #~ messages. +

+
+
--only-obsolete
+
+

Keep obsolete #~ messages, remove all other messages. +

+
+
+ + + +

9.8.4 Attribute manipulation

+ +

Attributes are modified after the message selection/removal has been +performed. If the ‘--only-file’ or ‘--ignore-file’ option is +specified, the attribute modification is applied only to those messages +that are listed in the only-file and not listed in the +ignore-file. +

+
+
--set-fuzzy
+
+

Set all messages +‘fuzzy’. +

+
+
--clear-fuzzy
+
+

Set all messages +non-‘fuzzy’. +

+
+
--set-obsolete
+
+

Set all messages obsolete. +

+
+
--clear-obsolete
+
+

Set all messages non-obsolete. +

+
+
--previous
+
+

When setting +‘fuzzy’ +mark, keep “previous msgid” of translated messages. +

+
+
--clear-previous
+
+

Remove the “previous msgid” (‘#|’) comments from all messages. +

+
+
--empty
+
+

When removing +‘fuzzy’ +mark, also set msgstr empty. +

+
+
--only-file=file
+
+

Limit the attribute changes to entries that are listed in file. +file should be a PO or POT file. +

+
+
--ignore-file=file
+
+

Limit the attribute changes to entries that are not listed in file. +file should be a PO or POT file. +

+
+
--fuzzy
+
+

Synonym for ‘--only-fuzzy --clear-fuzzy’: It keeps only the fuzzy +messages and removes their +‘fuzzy’ +mark. +

+
+
--obsolete
+
+

Synonym for ‘--only-obsolete --clear-obsolete’: It keeps only the +obsolete messages and makes them non-obsolete. +

+
+
+ + + +

9.8.5 Input file syntax

+ +
+
-P
+
--properties-input
+
+ +

Assume the input file is a Java ResourceBundle in Java .properties +syntax, not in PO file syntax. +

+
+
--stringtable-input
+
+

Assume the input file is a NeXTstep/GNUstep localized resource file in +.strings syntax, not in PO file syntax. +

+
+
+ + + +

9.8.6 Output details

+ + +
+
--color
+
--color=when
+
+

Specify whether or when to use colors and other text attributes. +See The --color option for details. +

+
+
--style=style_file
+
+

Specify the CSS style rule file to use for --color. +See The --style option for details. +

+
+
--force-po
+
+

Always write an output file even if it contains no message. +

+
+
-i
+
--indent
+
+ +

Write the .po file using indented style. +

+
+
--no-location
+
+

Do not write ‘#: filename:line’ lines. +

+
+
-n
+
--add-location=type
+
+ +

Generate ‘#: filename:line’ lines (default). +

+

The optional type can be either ‘full’, ‘file’, or +‘never’. If it is not given or ‘full’, it generates the +lines with both file name and line number. If it is ‘file’, the +line number part is omitted. If it is ‘never’, it completely +suppresses the lines (same as --no-location). +

+
+
--strict
+
+

Write out a strict Uniforum conforming PO file. Note that this +Uniforum format should be avoided because it doesn't support the +GNU extensions. +

+
+
-p
+
--properties-output
+
+ +

Write out a Java ResourceBundle in Java .properties syntax. Note +that this file format doesn't support plural forms and silently drops +obsolete messages. +

+
+
--stringtable-output
+
+

Write out a NeXTstep/GNUstep localized resource file in .strings syntax. +Note that this file format doesn't support plural forms. +

+
+
-w number
+
--width=number
+
+ +

Set the output page width. Long strings in the output files will be +split across multiple lines in order to ensure that each line's width +(= number of screen columns) is less or equal to the given number. +

+
+
--no-wrap
+
+

Do not break long message lines. Message lines whose width exceeds the +output page width will not be split into several lines. Only file reference +lines which are wider than the output page width will be split. +

+
+
-s
+
--sort-output
+
+ +

Generate sorted output. Note that using this option makes it much harder +for the translator to understand each message's context. +

+
+
-F
+
--sort-by-file
+
+ +

Sort output by file location. +

+
+
+ + + +

9.8.7 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
+ + + + +

9.9 Invoking the msgen Program

+ + +
 
msgen [option] inputfile
+
+ + +

The msgen program creates an English translation catalog. The +input file is the last created English PO file, or a PO Template file +(generally created by xgettext). Untranslated entries are assigned a +translation that is identical to the msgid. +

+

Note: ‘msginit --no-translator --locale=en’ performs a very similar +task. The main difference is that msginit cares specially about +the header entry, whereas msgen doesn't. +

+ + +

9.9.1 Input file location

+ +
+
inputfile
+

Input PO or POT file. +

+
+
-D directory
+
--directory=directory
+
+ +

Add directory to the list of directories. Source files are +searched relative to this list of directories. The resulting ‘.po’ +file will be written relative to the current directory, though. +

+
+
+ +

If inputfile is ‘-’, standard input is read. +

+ + +

9.9.2 Output file location

+ +
+
-o file
+
--output-file=file
+
+ +

Write output to specified file. +

+
+
+ +

The results are written to standard output if no output file is specified +or if it is ‘-’. +

+ + +

9.9.3 Input file syntax

+ +
+
-P
+
--properties-input
+
+ +

Assume the input file is a Java ResourceBundle in Java .properties +syntax, not in PO file syntax. +

+
+
--stringtable-input
+
+

Assume the input file is a NeXTstep/GNUstep localized resource file in +.strings syntax, not in PO file syntax. +

+
+
+ + + +

9.9.4 Output details

+ + +
+
--lang=catalogname
+
+

Specify the ‘Language’ field to be used in the header entry. See +Filling in the Header Entry for the meaning of this field. Note: The +‘Language-Team’ and ‘Plural-Forms’ fields are not set by this +option. +

+
+
--color
+
--color=when
+
+

Specify whether or when to use colors and other text attributes. +See The --color option for details. +

+
+
--style=style_file
+
+

Specify the CSS style rule file to use for --color. +See The --style option for details. +

+
+
--force-po
+
+

Always write an output file even if it contains no message. +

+
+
-i
+
--indent
+
+ +

Write the .po file using indented style. +

+
+
--no-location
+
+

Do not write ‘#: filename:line’ lines. +

+
+
-n
+
--add-location=type
+
+

Generate ‘#: filename:line’ lines (default). +

+

The optional type can be either ‘full’, ‘file’, or +‘never’. If it is not given or ‘full’, it generates the +lines with both file name and line number. If it is ‘file’, the +line number part is omitted. If it is ‘never’, it completely +suppresses the lines (same as --no-location). +

+
+
--strict
+
+

Write out a strict Uniforum conforming PO file. Note that this +Uniforum format should be avoided because it doesn't support the +GNU extensions. +

+
+
-p
+
--properties-output
+
+ +

Write out a Java ResourceBundle in Java .properties syntax. Note +that this file format doesn't support plural forms and silently drops +obsolete messages. +

+
+
--stringtable-output
+
+

Write out a NeXTstep/GNUstep localized resource file in .strings syntax. +Note that this file format doesn't support plural forms. +

+
+
-w number
+
--width=number
+
+ +

Set the output page width. Long strings in the output files will be +split across multiple lines in order to ensure that each line's width +(= number of screen columns) is less or equal to the given number. +

+
+
--no-wrap
+
+

Do not break long message lines. Message lines whose width exceeds the +output page width will not be split into several lines. Only file reference +lines which are wider than the output page width will be split. +

+
+
-s
+
--sort-output
+
+ +

Generate sorted output. Note that using this option makes it much harder +for the translator to understand each message's context. +

+
+
-F
+
--sort-by-file
+
+ +

Sort output by file location. +

+
+
+ + + +

9.9.5 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
+ + + + +

9.10 Invoking the msgexec Program

+ + +
 
msgexec [option] command [command-option]
+
+ + +

The msgexec program applies a command to all translations of a +translation catalog. +The command can be any program that reads a translation from standard +input. It is invoked once for each translation. Its output becomes +msgexec's output. msgexec's return code is the maximum return code +across all invocations. +

+ +

A special builtin command called ‘0’ outputs the translation, followed +by a null byte. The output of ‘msgexec 0’ is suitable as input for +‘xargs -0’. +

+
+
--newline
+
+

Add newline at the end of each input line. +

+
+
+ + + + + + + + + +

During each command invocation, the environment variable +MSGEXEC_MSGID is bound to the message's msgid, and the environment +variable MSGEXEC_LOCATION is bound to the location in the PO file +of the message. If the message has a context, the environment variable +MSGEXEC_MSGCTXT is bound to the message's msgctxt, otherwise it is +unbound. If the message has a plural form, environment variable +MSGEXEC_MSGID_PLURAL is bound to the message's msgid_plural and +MSGEXEC_PLURAL_FORM is bound to the order number of the plural +actually processed (starting with 0), otherwise both are unbound. +If the message has a previous msgid (added by msgmerge), +environment variable MSGEXEC_PREV_MSGCTXT is bound to the +message's previous msgctxt, MSGEXEC_PREV_MSGID is bound to +the previous msgid, and MSGEXEC_PREV_MSGID_PLURAL is bound to +the previous msgid_plural. +

+ +

Note: It is your responsibility to ensure that the command can cope +with input encoded in the translation catalog's encoding. If the +command wants input in a particular encoding, you can in a first step +convert the translation catalog to that encoding using the ‘msgconv’ +program, before invoking ‘msgexec’. If the command wants input +in the locale's encoding, but you want to avoid the locale's encoding, then +you can first convert the translation catalog to UTF-8 using the +‘msgconv’ program and then make ‘msgexec’ work in an UTF-8 +locale, by using the LC_ALL environment variable. +

+ + +

9.10.1 Input file location

+ +
+
-i inputfile
+
--input=inputfile
+
+ +

Input PO file. +

+
+
-D directory
+
--directory=directory
+
+ +

Add directory to the list of directories. Source files are +searched relative to this list of directories. The resulting ‘.po’ +file will be written relative to the current directory, though. +

+
+
+ +

If no inputfile is given or if it is ‘-’, standard input is read. +

+ + +

9.10.2 Input file syntax

+ +
+
-P
+
--properties-input
+
+ +

Assume the input file is a Java ResourceBundle in Java .properties +syntax, not in PO file syntax. +

+
+
--stringtable-input
+
+

Assume the input file is a NeXTstep/GNUstep localized resource file in +.strings syntax, not in PO file syntax. +

+
+
+ + + +

9.10.3 Informative output

+ +
+
-h
+
--help
+
+ +

Display this help and exit. +

+
+
-V
+
--version
+
+ +

Output version information and exit. +

+
+
+ + + + +

9.11 Highlighting parts of PO files

+ +

Translators are usually only interested in seeing the untranslated and +fuzzy messages of a PO file. Also, when a message is set fuzzy because +the msgid changed, they want to see the differences between the previous +msgid and the current one (especially if the msgid is long and only few +words in it have changed). Finally, it's always welcome to highlight the +different sections of a message in a PO file (comments, msgid, msgstr, etc.). +

+

Such highlighting is possible through the options ‘--color’ and +‘--style’. They are supported by all the programs that produce +a PO file on standard output, such as msgcat, msgmerge, +and msgunfmt. +

+ + + + +

9.11.1 The --color option

+ +

The ‘--color=when’ option specifies under which conditions +colorized output should be generated. The when part can be one of +the following: +

+
+
always
+
yes
+

The output will be colorized. +

+
+
never
+
no
+

The output will not be colorized. +

+
+
auto
+
tty
+

The output will be colorized if the output device is a tty, i.e. when the +output goes directly to a text screen or terminal emulator window. +

+
+
html
+

The output will be colorized and be in HTML format. +

+
+
test
+

This is a special value, understood only by the msgcat program. It +is explained in the next section (The environment variable TERM). +

+
+ +

--color’ is equivalent to ‘--color=yes’. The default is +‘--color=auto’. +

+

Thus, a command like ‘msgcat vi.po’ will produce colorized output +when called by itself in a command window. Whereas in a pipe, such as +‘msgcat vi.po | less -R’, it will not produce colorized output. To +get colorized output in this situation nevertheless, use the command +‘msgcat --color vi.po | less -R’. +

+

The ‘--color=html’ option will produce output that can be viewed in +a browser. This can be useful, for example, for Indic languages, +because the renderic of Indic scripts in browsers is usually better than +in terminal emulators. +

+

Note that the output produced with the --color option is not +a valid PO file in itself. It contains additional terminal-specific escape +sequences or HTML tags. A PO file reader will give a syntax error when +confronted with such content. Except for the ‘--color=html’ case, +you therefore normally don't need to save output produced with the +--color option in a file. +

+ + + +

9.11.2 The environment variable TERM

+ +

The environment variable TERM contains a identifier for the text +window's capabilities. You can get a detailed list of these cababilities +by using the ‘infocmp’ command, using ‘man 5 terminfo’ as a +reference. +

+

When producing text with embedded color directives, msgcat looks +at the TERM variable. Text windows today typically support at least +8 colors. Often, however, the text window supports 16 or more colors, +even though the TERM variable is set to a identifier denoting only +8 supported colors. It can be worth setting the TERM variable to +a different value in these cases: +

+
+
xterm
+

xterm is in most cases built with support for 16 colors. It can also +be built with support for 88 or 256 colors (but not both). You can try to +set TERM to either xterm-16color, xterm-88color, or +xterm-256color. +

+
+
rxvt
+

rxvt is often built with support for 16 colors. You can try to set +TERM to rxvt-16color. +

+
+
konsole
+

konsole too is often built with support for 16 colors. You can try to +set TERM to konsole-16color or xterm-16color. +

+
+ +

After setting TERM, you can verify it by invoking +‘msgcat --color=test’ and seeing whether the output looks like a +reasonable color map. +

+ + + +

9.11.3 The --style option

+ +

The ‘--style=style_file’ option specifies the style file to use +when colorizing. It has an effect only when the --color option is +effective. +

+ +

If the --style option is not specified, the environment variable +PO_STYLE is considered. It is meant to point to the user's +preferred style for PO files. +

+

The default style file is ‘$prefix/share/gettext/styles/po-default.css’, +where $prefix is the installation location. +

+

A few style files are predefined: +

+
po-vim.css
+

This style imitates the look used by vim 7. +

+
+
po-emacs-x.css
+

This style imitates the look used by GNU Emacs 21 and 22 in an X11 window. +

+
+
po-emacs-xterm.css
+
po-emacs-xterm16.css
+
po-emacs-xterm256.css
+

This style imitates the look used by GNU Emacs 22 in a terminal of type +‘xterm’ (8 colors) or ‘xterm-16color’ (16 colors) or +‘xterm-256color’ (256 colors), respectively. +

+
+ +

You can use these styles without specifying a directory. They are actually +located in ‘$prefix/share/gettext/styles/’, where $prefix is the +installation location. +

+

You can also design your own styles. This is described in the next section. +

+ + + + +

9.11.4 Style rules for PO files

+ +

The same style file can be used for styling of a PO file, for terminal +output and for HTML output. It is written in CSS (Cascading Style Sheet) +syntax. See https://www.w3.org/TR/css2/cover.html for a formal +definition of CSS. Many HTML authoring tutorials also contain explanations +of CSS. +

+

In the case of HTML output, the style file is embedded in the HTML output. +In the case of text output, the style file is interpreted by the +msgcat program. This means, in particular, that when +@import is used with relative file names, the file names are +

+
    +
  • - +relative to the resulting HTML file, in the case of HTML output, + +
  • - +relative to the style sheet containing the @import, in the case of +text output. (Actually, @imports are not yet supported in this case, +due to a limitation in libcroco.) +
+ +

CSS rules are built up from selectors and declarations. The declarations +specify graphical properties; the selectors specify when they apply. +

+

In PO files, the following simple selectors (based on "CSS classes", see +the CSS2 spec, section 5.8.3) are supported. +

+
    +
  • +Selectors that apply to entire messages: + +
    +
    .header
    +

    This matches the header entry of a PO file. +

    +
    +
    .translated
    +

    This matches a translated message. +

    +
    +
    .untranslated
    +

    This matches an untranslated message (i.e. a message with empty translation). +

    +
    +
    .fuzzy
    +

    This matches a fuzzy message (i.e. a message which has a translation that +needs review by the translator). +

    +
    +
    .obsolete
    +

    This matches an obsolete message (i.e. a message that was translated but is +not needed by the current POT file any more). +

    +
    + +
  • +Selectors that apply to parts of a message in PO syntax. Recall the general +structure of a message in PO syntax: + +
     
    white-space
    +#  translator-comments
    +#. extracted-comments
    +#: reference…
    +#, flag…
    +#| msgid previous-untranslated-string
    +msgid untranslated-string
    +msgstr translated-string
    +
    + +
    +
    .comment
    +

    This matches all comments (translator comments, extracted comments, +source file reference comments, flag comments, previous message comments, +as well as the entire obsolete messages). +

    +
    +
    .translator-comment
    +

    This matches the translator comments. +

    +
    +
    .extracted-comment
    +

    This matches the extracted comments, i.e. the comments placed by the +programmer at the attention of the translator. +

    +
    +
    .reference-comment
    +

    This matches the source file reference comments (entire lines). +

    +
    +
    .reference
    +

    This matches the individual source file references inside the source file +reference comment lines. +

    +
    +
    .flag-comment
    +

    This matches the flag comment lines (entire lines). +

    +
    +
    .flag
    +

    This matches the individual flags inside flag comment lines. +

    +
    +
    .fuzzy-flag
    +

    This matches the `fuzzy' flag inside flag comment lines. +

    +
    +
    .previous-comment
    +

    This matches the comments containing the previous untranslated string (entire +lines). +

    +
    +
    .previous
    +

    This matches the previous untranslated string including the string delimiters, +the associated keywords (msgid etc.) and the spaces between them. +

    +
    +
    .msgid
    +

    This matches the untranslated string including the string delimiters, +the associated keywords (msgid etc.) and the spaces between them. +

    +
    +
    .msgstr
    +

    This matches the translated string including the string delimiters, +the associated keywords (msgstr etc.) and the spaces between them. +

    +
    +
    .keyword
    +

    This matches the keywords (msgid, msgstr, etc.). +

    +
    +
    .string
    +

    This matches strings, including the string delimiters (double quotes). +

    +
    + +
  • +Selectors that apply to parts of strings: + +
    +
    .text
    +

    This matches the entire contents of a string (excluding the string delimiters, +i.e. the double quotes). +

    +
    +
    .escape-sequence
    +

    This matches an escape sequence (starting with a backslash). +

    +
    +
    .format-directive
    +

    This matches a format string directive (starting with a ‘%’ sign in the +case of most programming languages, with a ‘{’ in the case of +java-format and csharp-format, with a ‘~’ in the case of +lisp-format and scheme-format, or with ‘$’ in the case of +sh-format). +

    +
    +
    .invalid-format-directive
    +

    This matches an invalid format string directive. +

    +
    +
    .added
    +

    In an untranslated string, this matches a part of the string that was not +present in the previous untranslated string. (Not yet implemented in this +release.) +

    +
    +
    .changed
    +

    In an untranslated string or in a previous untranslated string, this matches +a part of the string that is changed or replaced. (Not yet implemented in +this release.) +

    +
    +
    .removed
    +

    In a previous untranslated string, this matches a part of the string that +is not present in the current untranslated string. (Not yet implemented in +this release.) +

    +
    +
+ +

These selectors can be combined to hierarchical selectors. For example, +

+
 
.msgstr .invalid-format-directive { color: red; }
+
+ +

will highlight the invalid format directives in the translated strings. +

+

In text mode, pseudo-classes (CSS2 spec, section 5.11) and pseudo-elements +(CSS2 spec, section 5.12) are not supported. +

+

The declarations in HTML mode are not limited; any graphical attribute +supported by the browsers can be used. +

+

The declarations in text mode are limited to the following properties. Other +properties will be silently ignored. +

+
+
color (CSS2 spec, section 14.1)
+
background-color (CSS2 spec, section 14.2.1)
+

These properties is supported. Colors will be adjusted to match the terminal's +capabilities. Note that many terminals support only 8 colors. +

+
+
font-weight (CSS2 spec, section 15.2.3)
+

This property is supported, but most terminals can only render two different +weights: normal and bold. Values >= 600 are rendered as +bold. +

+
+
font-style (CSS2 spec, section 15.2.3)
+

This property is supported. The values italic and oblique are +rendered the same way. +

+
+
text-decoration (CSS2 spec, section 16.3.1)
+

This property is supported, limited to the values none and +underline. +

+
+ + + + +

9.11.5 Customizing less for viewing PO files

+ +

The ‘less’ program is a popular text file browser for use in a text +screen or terminal emulator. It also supports text with embedded escape +sequences for colors and text decorations. +

+

You can use less to view a PO file like this (assuming an UTF-8 +environment): +

+
 
msgcat --to-code=UTF-8 --color xyz.po | less -R
+
+ +

You can simplify this to this simple command: +

+
 
less xyz.po
+
+ +

after these three preparations: +

+
    +
  1. +Add the options ‘-R’ and ‘-f’ to the LESS environment +variable. In sh shells: +
     
    $ LESS="$LESS -R -f"
    +$ export LESS
    +
    + +
  2. +If your system does not already have the ‘lessopen.sh’ and +‘lessclose.sh’ scripts, create them and set the LESSOPEN and +LESSCLOSE environment variables, as indicated in the manual page +(‘man less’). + +
  3. +Add to ‘lessopen.sh’ a piece of script that recognizes PO files +through their file extension and invokes msgcat on them, producing +a temporary file. Like this: + +
     
    case "$1" in
    +  *.po)
    +    tmpfile=`mktemp "${TMPDIR-/tmp}/less.XXXXXX"`
    +    msgcat --to-code=UTF-8 --color "$1" > "$tmpfile"
    +    echo "$tmpfile"
    +    exit 0
    +    ;;
    +esac
    +
    +
+ + + + +

9.12 Other tools for manipulating PO files

+ +

The “Pology” package is a Free Software package for manipulating PO files. +It features, in particular: +

+
    +
  • +Examination and in-place modification of collections of PO files. +
  • +Format-aware diffing and patching of PO files. +
  • +Handling of version-control branches. +
  • +Fine-grained asynchronous review workflow. +
  • +Custom translation validation. +
  • +Language and project specific support. +
+ +

Its home page is at http://pology.nedohodnik.net/. +

+ + + +

9.13 Writing your own programs that process PO files

+ +

For the tasks for which a combination of ‘msgattrib’, ‘msgcat’ etc. +is not sufficient, a set of C functions is provided in a library, to make it +possible to process PO files in your own programs. When you use this library, +you don't need to write routines to parse the PO file; instead, you retrieve +a pointer in memory to each of messages contained in the PO file. Functions +for writing those memory structures to a file after working with them are +provided too. +

+

The functions are declared in the header file ‘<gettext-po.h>’, and are +defined in a library called ‘libgettextpo’. +

+ +

The following example shows code how these functions can be used. Error +handling code is omitted, as its implementation is delegated to the user +provided functions. +

+
 
struct po_xerror_handler handler =
+  {
+    .xerror = …,
+    .xerror2 = …
+  };
+const char *filename = …;
+/* Read the file into memory.  */
+po_file_t file = po_file_read (filename, &handler);
+
+{
+  const char * const *domains = po_file_domains (file);
+  const char * const *domainp;
+
+  /* Iterate the domains contained in the file.  */
+  for (domainp = domains; *domainp; domainp++)
+    {
+      po_message_t *message;
+      const char *domain = *domainp;
+      po_message_iterator_t iterator = po_message_iterator (file, domain);
+
+      /* Iterate each message inside the domain.  */
+      while ((message = po_next_message (iterator)) != NULL)
+        {
+          /* Read data from the message …  */
+          const char *msgid = po_message_msgid (message);
+          const char *msgstr = po_message_msgstr (message);
+
+          …
+
+          /* Modify its contents …  */
+          if (perform_some_tests (msgid, msgstr))
+            po_message_set_fuzzy (message, 1);
+
+          …
+        }
+      /* Always release returned po_message_iterator_t.  */
+      po_message_iterator_free (iterator);
+    }
+
+  /* Write back the result.  */
+  po_file_t result = po_file_write (file, filename, &handler);
+}
+
+/* Always release the returned po_file_t.  */
+po_file_free (file);
+
+ + + + +

9.13.1 Error Handling

+ +

Error management is performed through callbacks provided by the user of +the library. They are provided through a parameter with the following +type: +

+
+
Data Type: struct po_xerror_handler + +
+

Its pointer is defined as po_xerror_handler_t. Contains +two fields, xerror and xerror2, with the following function +signatures. +

+ +
+
Function: void xerror (int severity, po_message_t message, const char *filename, size_t lineno, size_t column, int multiline_p, const char *message_text) + +
+

This function is called to signal a problem of the given severity. +It must not return if severity is +PO_SEVERITY_FATAL_ERROR. +

+

message_text is the problem description. When multiline_p +is true, it can contain multiple lines of text, each terminated with a +newline, otherwise a single line. +

+

message and/or filename and lineno indicate where the +problem occurred: +

+
    +
  • +If filename is NULL, filename and lineno and +column should be ignored. + +
  • +If lineno is (size_t)(-1), lineno and column +should be ignored. + +
  • +If column is (size_t)(-1), it should be ignored. +
+
+ +
+
Function: void xerror2 (int severity, po_message_t message1, const char *filename1, size_t lineno1, size_t column1, int multiline_p1, const char *message_text1, po_message_t message2, const char *filename2, size_t lineno2, size_t column2, int multiline_p2, const char *message_text2) + +
+

This function is called to signal a problem of the given severity +that refers to two messages. It must not return if +severity is PO_SEVERITY_FATAL_ERROR. +

+

It is similar to two calls to xerror. If possible, an ellipsis can be +appended to message_text1 and prepended to message_text2. +

+ + + + +

9.13.2 po_file_t API

+ +
+
Data Type: po_file_t + +
+

This is a pointer type that refers to the contents of a PO file, after it has +been read into memory. +

+ +
+
Function: po_file_t po_file_create () + +
+

The po_file_create function creates an empty PO file representation in +memory. +

+ +
+
Function: po_file_t po_file_read (const char *filename, struct po_xerror_handler *handler) + +
+

The po_file_read function reads a PO file into memory. The file name +is given as argument. The return value is a handle to the PO file's contents, +valid until po_file_free is called on it. In case of error, the +functions from handler are called to signal it. +

+

This function is exported as ‘po_file_read_v3’ at ABI level, but is +defined as po_file_read in C code after the inclusion of +‘<gettext-po.h>’. +

+ +
+
Function: po_file_t po_file_write (po_file_t file, const char *filename, struct po_xerror_handler *handler) + +
+

The po_file_write function writes the contents of the memory +structure file the filename given. The return value is +file after a successful operation. In case of error, the +functions from handler are called to signal it. +

+

This function is exported as ‘po_file_write_v2’ at ABI level, but +is defined as po_file_write in C code after the inclusion of +‘<gettext-po.h>’. +

+ +
+
Function: void po_file_free (po_file_t file) + +
+

The po_file_free function frees a PO file's contents from memory, +including all messages that are only implicitly accessible through iterators. +

+ +
+
Function: const char * const * po_file_domains (po_file_t file) + +
+

The po_file_domains function returns the domains for which the given +PO file has messages. The return value is a NULL terminated array +which is valid as long as the file handle is valid. For PO files which +contain no ‘domain’ directive, the return value contains only one domain, +namely the default domain "messages". +

+ + + + +

9.13.3 po_message_iterator_t API

+ +
+
Data Type: po_message_iterator_t + +
+

This is a pointer type that refers to an iterator that produces a sequence of +messages. +

+ +
+
Function: po_message_iterator_t po_message_iterator (po_file_t file, const char *domain) + +
+

The po_message_iterator returns an iterator that will produce the +messages of file that belong to the given domain. If domain +is NULL, the default domain is used instead. To list the messages, +use the function po_next_message repeatedly. +

+ +
+
Function: void po_message_iterator_free (po_message_iterator_t iterator) + +
+

The po_message_iterator_free function frees an iterator previously +allocated through the po_message_iterator function. +

+ +
+
Function: po_message_t po_next_message (po_message_iterator_t iterator) + +
+

The po_next_message function returns the next message from +iterator and advances the iterator. It returns NULL when the +iterator has reached the end of its message list. +

+ + + + +

9.13.4 po_message_t API

+ +
+
Data Type: po_message_t + +
+

This is a pointer type that refers to a message of a PO file, including its +translation. +

+ +
+
Function: po_message_t po_message_create (void) + +
+

Returns a freshly constructed message. To finish initializing the +message, you must set the msgid and msgstr. It must be +inserted into a file to manage its memory, as there is no +po_message_free available to the user of the library. +

+ +

The following functions access details of a po_message_t. Recall +that the results are valid as long as the file handle is valid. +

+
+
Function: const char * po_message_msgctxt (po_message_t message) + +
+

The po_message_msgctxt function returns the msgctxt, the +context of message. Returns NULL for a message not restricted +to a context. +

+ +
+
Function: void po_message_set_msgctxt (po_message_t message, const char *msgctxt) + +
+

The po_message_set_msgctxt function changes the msgctxt, +the context of the message, to the value provided through +msgctxt. The value NULL removes the restriction. +

+ +
+
Function: const char * po_message_msgid (po_message_t message) + +
+

The po_message_msgid function returns the msgid (untranslated +English string) of message. This is guaranteed to be non-NULL. +

+ +
+
Function: void po_message_set_msgid (po_message_t message, const char *msgid) + +
+

The po_message_set_msgid function changes the msgid +(untranslated English string) of message to the value provided through +msgid, a non-NULL string. +

+ +
+
Function: const char * po_message_msgid_plural (po_message_t message) + +
+

The po_message_msgid_plural function returns the msgid_plural +(untranslated English plural string) of message, a message with plurals, +or NULL for a message without plural. +

+ +
+
Function: void po_message_set_msgid_plural (po_message_t message, const char *msgid_plural) + +
+

The po_message_set_msgid_plural function changes the +msgid_plural (untranslated English plural string) of a message to +the value provided through msgid_plural, or removes the plurals if +NULL is provided as msgid_plural. +

+ +
+
Function: const char * po_message_msgstr (po_message_t message) + +
+

The po_message_msgstr function returns the msgstr (translation) +of message. For an untranslated message, the return value is an empty +string. +

+ +
+
Function: void po_message_set_msgstr (po_message_t message, const char *msgstr) + +
+

The po_message_set_msgstr function changes the msgstr +(translation) of message to the value provided through msgstr, a +non-NULL string. +

+ +
+
Function: const char * po_message_msgstr_plural (po_message_t message, int index) + +
+

The po_message_msgstr_plural function returns the +msgstr[index] of message, a message with plurals, or +NULL when the index is out of range or for a message without +plural. +

+ +
+
Function: void po_message_set_msgstr_plural (po_message_t message, int index, const char *msgstr_plural) + +
+

The po_message_set_msgstr_plural function changes the +msgstr[index] of message, a message with plurals, to +the value provided through msgstr_plural. message must be a +message with plurals. +Use NULL as the value of msgstr_plural with +index pointing to the last element to reduce the number of plural +forms. +

+ +
+
Function: const char * po_message_comments (po_message_t message) + +
+

The po_message_comments function returns the comments of message, +a multiline string, ending in a newline, or a non-NULL empty string. +

+ +
+
Function: void po_message_set_comments (po_message_t message, const char *comments) + +
+

The po_message_set_comments function changes the comments of +message to the value comments, a multiline string, ending in a +newline, or a non-NULL empty string. +

+ +
+
Function: const char * po_message_extracted_comments (po_message_t message) + +
+

The po_message_extracted_comments function returns the extracted +comments of message, a multiline string, ending in a newline, or a +non-NULL empty string. +

+ +
+
Function: void po_message_set_extracted_comments (po_message_t message, const char *extracted_comments) + +
+

The po_message_set_extracted_comments function changes the +comments of message to the value extracted_comments, a multiline +string, ending in a newline, or a non-NULL empty string. +

+ +
+
Function: const char * po_message_prev_msgctxt (po_message_t message) + +
+

The po_message_prev_msgctxt function returns the previous +msgctxt, the previous context of message. Return +NULL for a message that does not have a previous context. +

+ +
+
Function: void po_message_set_prev_msgctxt (po_message_t message, const char *prev_msgctxt) + +
+

The po_message_set_prev_msgctxt function changes the previous +msgctxt, the context of the message, to the value provided +through prev_msgctxt. The value NULL removes the stored +previous msgctxt. +

+ +
+
Function: const char * po_message_prev_msgid (po_message_t message) + +
+

The po_message_prev_msgid function returns the previous +msgid (untranslated English string) of message, or +NULL if there is no previous msgid stored. +

+ +
+
Function: void po_message_set_prev_msgid (po_message_t message, const char *prev_msgid) + +
+

The po_message_set_prev_msgid function changes the previous +msgid (untranslated English string) of message to the value +provided through prev_msgid, or removes the message when it is +NULL. +

+ +
+
Function: const char * po_message_prev_msgid_plural (po_message_t message) + +
+

The po_message_prev_msgid_plural function returns the previous +msgid_plural (untranslated English plural string) of +message, a message with plurals, or NULL for a message +without plural without any stored previous msgid_plural. +

+ +
+
Function: void po_message_set_prev_msgid_plural (po_message_t message, const char *prev_msgid_plural) + +
+

The po_message_set_prev_msgid_plural function changes the +previous msgid_plural (untranslated English plural string) of a +message to the value provided through prev_msgid_plural, or +removes the stored previous msgid_plural if NULL is +provided as prev_msgid_plural. +

+ +
+
Function: int po_message_is_obsolete (po_message_t message) + +
+

The po_message_is_obsolete function returns true when message +is marked as obsolete. +

+ +
+
Function: void po_message_set_obsolete (po_message_t message, int obsolete) + +
+

The po_message_set_obsolete function changes the obsolete mark of +message. +

+ +
+
Function: int po_message_is_fuzzy (po_message_t message) + +
+

The po_message_is_fuzzy function returns true when message +is marked as fuzzy. +

+ +
+
Function: void po_message_set_fuzzy (po_message_t message, int fuzzy) + +
+

The po_message_set_fuzzy function changes the fuzzy mark of +message. +

+ +
+
Function: int po_message_is_format (po_message_t message, const char *format_type) + +
+

The po_message_is_format function returns true when the message +is marked as being a format string of format_type. +

+ +
+
Function: void po_message_set_format (po_message_t message, const char *format_type, int value) + +
+

The po_message_set_fuzzy function changes the format mark of +the message for the format_type provided. +

+ +
+
Function: int po_message_is_range (po_message_t message, int *minp, int *maxp) + +
+

The po_message_is_range function returns true when the message +has a numeric range set, and stores the minimum and maximum value in the +locations pointed by minp and maxp respectively. +

+ +
+
Function: void po_message_set_range (po_message_t message, int min, int max) + +
+

The po_message_set_range function changes the numeric range of +the message. min and max must be non-negative, with +min < max. Use min and max with value -1 +to remove the numeric range of message. +

+ + + + +

9.13.5 PO Header Entry API

+ +

The following functions provide an interface to extract and manipulate +the header entry (see section Filling in the Header Entry) from a file loaded in memory. +The meta information must be written back into the domain message with +the empty string as msgid. +

+
+
Function: const char * po_file_domain_header (po_file_t file, const char *domain) + +
+

Returns the header entry of a domain from file, a PO file loaded in +memory. The value NULL provided as domain denotes the +default domain. Returns NULL if there is no header entry. +

+ +
+
Function: char * po_header_field (const char *header, const char *field) + +
+

Returns the value of field in the header entry. The return +value is either a freshly allocated string, to be freed by the caller, +or NULL. +

+ +
+
Function: char * po_header_set_field (const char *header, const char *field, const char *value) + +
+

Returns a freshly allocated string which contains the entry from +header with field set to value. The field is added if +necessary. +

+ + + + +

9.13.6 po_filepos_t API

+ +
+
Data Type: po_filepos_t + +
+

This is a pointer type that refers to a string's position within a +source file. +

+ +

The following functions provide an interface to extract and manipulate +these references. +

+
+
Function: po_filepos_t po_message_filepos (po_message_t message, int index) + +
+

Returns the file reference in position index from the message. If +index is out of range, returns NULL. +

+ +
+
Function: void po_message_remove_filepos (po_message_t message, int index) + +
+

Removes the file reference in position index from the message. It +moves all references following index one position backwards. +

+ +
+
Function: void po_message_add_filepos (po_message_t message, const char *file, size_t start_line) + +
+

Adds a reference to the string from file starting at +start_line, if it is not already present for the message. The +value (size_t)(-1) for start_line denotes that the line +number is not available. +

+ + + + +

9.13.7 Format Type API

+ +
+
Function: const char * const * po_format_list (void) + +
+

Returns a NULL terminated array of the supported format types. +

+ +
+
Function: const char * po_format_pretty_name (const char *format_type) + +
+

Returns the pretty name associated with format_type. For example, +it returns “C#” when format_type is “csharp_format”. +Return NULL if format_type is not a supported format type. +

+ + + + +

9.13.8 Checking API

+ +
+
Function: void po_file_check_all (po_file_t file, po_xerror_handler_t handler) + +
+

Tests whether the entire file is valid, like msgfmt does it. If it +is invalid, passes the reasons to handler. +

+ +
+
Function: void po_message_check_all (po_message_t message, po_message_iterator_t iterator, po_xerror_handler_t handler) + +
+

Tests message, to be inserted at iterator in a PO file in memory, +like msgfmt does it. If it is invalid, passes the reasons to +handler. iterator is not modified by this call; it only +specifies the file and the domain. +

+ +
+
Function: void po_message_check_format (po_message_t message, po_xerror_handler_t handler) + +
+

Tests whether the message translation from message is a valid +format string if the message is marked as being a format string. If it +is invalid, passes the reasons to handler. +

+

This function is exported as ‘po_message_check_format_v2’ at ABI +level, but is defined as po_message_check_format in C code after +the inclusion of ‘<gettext-po.h>’. +

+ + + + + + + + + + + + + + +
[ << ][ >> ]           [Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_abt.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_abt.html new file mode 100644 index 000000000..bab39d8c0 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_abt.html @@ -0,0 +1,167 @@ + + + + + +GNU gettext utilities: About This Document + + + + + + + + + + + + + + + + + + + + +
[Top][Contents][Index][ ? ]
+

About This Document

+

+ This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. +

+

+ The buttons in the navigation panels have the following meaning: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Button Name Go to From 1.2.3 go to
[ < ] BackPrevious section in reading order1.2.2
[ > ] ForwardNext section in reading order1.2.4
[ << ] FastBackBeginning of this chapter or previous chapter1
[ Up ] UpUp section1.2
[ >> ] FastForwardNext chapter2
[Top] TopCover (top) of document  
[Contents] ContentsTable of contents  
[Index] IndexIndex  
[ ? ] AboutAbout (help)  
+ +

+ where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure: +

+ +
    +
  • 1. Section One +
      +
    • 1.1 Subsection One-One +
        +
      • ...
      • +
      +
    • +
    • 1.2 Subsection One-Two +
        +
      • 1.2.1 Subsubsection One-Two-One
      • +
      • 1.2.2 Subsubsection One-Two-Two
      • +
      • 1.2.3 Subsubsection One-Two-Three     + <== Current Position
      • +
      • 1.2.4 Subsubsection One-Two-Four
      • +
      +
    • +
    • 1.3 Subsection One-Three +
        +
      • ...
      • +
      +
    • +
    • 1.4 Subsection One-Four
    • +
    +
  • +
+ +
+ + + + + +
[Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_fot.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_fot.html new file mode 100644 index 000000000..a91dda2a2 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_fot.html @@ -0,0 +1,101 @@ + + + + + +GNU gettext utilities: Footnotes + + + + + + + + + + + + + + + + + + + + +
[Top][Contents][Index][ ? ]
+

Footnotes

+

(1)

+

In this manual, all mentions of Emacs +refers to either GNU Emacs or to XEmacs, which people sometimes call FSF +Emacs and Lucid Emacs, respectively. +

(2)

+

This +limitation is not imposed by GNU gettext, but is for compatibility +with the msgfmt implementation on Solaris. +

(3)

+

Some +system, e.g. mingw, don't have LC_MESSAGES. Here we use a more or +less arbitrary value for it, namely 1729, the smallest positive integer +which can be represented in two different ways as the sum of two cubes. +

(4)

+

When the system does not support setlocale its behavior +in setting the locale values is simulated by looking at the environment +variables. +

(5)

+

Additions are welcome. Send appropriate information to +bug-gettext@gnu.org and bug-glibc-manual@gnu.org. +The Unicode CLDR Project (http://cldr.unicode.org) provides a +comprehensive set of plural forms in a different format. The +msginit program has preliminary support for the format so you can +use it as a baseline (see section Invoking the msginit Program). +

(6)

+

you can also use it through the +‘MSGMERGE_OPTIONS’ option from ‘Makevars’ +

(7)

+

Note that the file name matching is done after +removing any .in suffix from the input file name. Thus the +pattern attribute must not include a pattern matching .in. +For example, if the input file name is ‘foo.msg.in’, the pattern +should be either *.msg or just *, rather than +*.in. +


+ + + + + +
[Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_toc.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_toc.html new file mode 100644 index 000000000..c67788862 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettext_toc.html @@ -0,0 +1,589 @@ + + + + + +GNU gettext utilities: GNU gettext utilities + + + + + + + + + + + + + + + + + + + +
[Top][Contents][Index][ ? ]
+

GNU gettext utilities

+ +

Table of Contents

+
+ + +
+ + + + +

This manual documents the GNU gettext tools and the GNU libintl library, +version 0.22. +

+ + +
+ + + + + +
[Top][Contents][Index][ ? ]
+

+ + This document was generated by Bruno Haible on June, 17 2023 using texi2html 1.78a. + +
+ +

+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/gettextize.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettextize.1.html new file mode 100644 index 000000000..8ba33b627 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/gettextize.1.html @@ -0,0 +1,166 @@ + + + + + + + + +GETTEXTIZE + + + + +

GETTEXTIZE

+ +NAME
+SYNOPSIS
+DESCRIPTION
+OPTIONS
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

gettextize +- install or upgrade gettext infrastructure

+ +

SYNOPSIS + +

+ + + +

gettextize +[OPTION]... [package-dir]

+ +

DESCRIPTION + +

+ + +

Prepares a +source package to use gettext.

+ +

OPTIONS + +

+ + + + + + + + + +
+ + +

--help

+ + +

print this help and exit

+
+ + +

--version

+ +

print version information and +exit

+ +

-f, +--force

+ +

force writing of new files even +if old exist

+ + +

--po-dir=DIR

+ +

specify directory with PO +files

+ + +

--no-changelog

+ +

don’t update or create +ChangeLog files

+ + +

--symlink

+ +

make symbolic links instead of +copying files

+ +

-n, +--dry-run

+ +

print modifications but +don’t perform them

+ +

AUTHOR + +

+ + +

Written by +Ulrich Drepper

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 1995-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for gettextize is maintained as a +Texinfo manual. If the info and gettextize +programs are properly installed at your site, the +command

+ +

info +gettextize

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/allclasses-frame.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/allclasses-frame.html new file mode 100644 index 000000000..a788935a8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/allclasses-frame.html @@ -0,0 +1,25 @@ + + + + + + +All Classes + + + + + +All Classes +
+ + + + + +
GettextResource +
+
+ + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/deprecated-list.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/deprecated-list.html new file mode 100644 index 000000000..57a2b7378 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/deprecated-list.html @@ -0,0 +1,87 @@ + + + + + + +: Deprecated List + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

+Deprecated API

+
+
+ + + + + + + + + + + + + +
+ +
+ + +
+ + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/gnu/gettext/GettextResource.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/gnu/gettext/GettextResource.html new file mode 100644 index 000000000..c1daa903a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/gnu/gettext/GettextResource.html @@ -0,0 +1,321 @@ + + + + + + +: Class GettextResource + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+ +

+ +gnu.gettext +
+Class GettextResource

+
+java.lang.Object
+  |
+  +--java.util.ResourceBundle
+        |
+        +--gnu.gettext.GettextResource
+
+
+
+
public abstract class GettextResource
extends java.util.ResourceBundle
+ +

+This class implements the main GNU libintl functions in Java. +

+ Using the GNU gettext approach, compiled message catalogs are normal + Java ResourceBundle classes and are thus interoperable with standard + ResourceBundle based code. +

+ The main differences between the Sun ResourceBundle approach and the + GNU gettext approach are: +

    +
  • In the Sun approach, the keys are abstract textual shortcuts. + In the GNU gettext approach, the keys are the English/ASCII version + of the messages. +
  • In the Sun approach, the translation files are called + "Resource_locale.properties" and have non-ASCII + characters encoded in the Java + \unnnn syntax. Very few editors + can natively display international characters in this format. In the + GNU gettext approach, the translation files are called + "Resource.locale.po" + and are in the encoding the translator has chosen. Many editors + can be used. There are at least three GUI translating tools + (Emacs PO mode, KDE KBabel, GNOME gtranslator). +
  • In the Sun approach, the function + ResourceBundle.getString throws a + MissingResourceException when no translation is found. + In the GNU gettext approach, the gettext function + returns the (English) message key in that case. +
  • In the Sun approach, there is no support for plural handling. + Even the most elaborate MessageFormat strings cannot provide decent + plural handling. In the GNU gettext approach, we have the + ngettext function. +
+

+ To compile GNU gettext message catalogs into Java ResourceBundle classes, + the msgfmt program can be used. +

+


+ +

+ + + + + + + + + + + + + + +
+Field Summary
+static booleanverbose + +
+           
+ + + + + + + +
Fields inherited from class java.util.ResourceBundle
parent
+  + + + + + + + + + + +
+Constructor Summary
GettextResource() + +
+           
+  + + + + + + + + + + + + + + + +
+Method Summary
+static java.lang.Stringgettext(java.util.ResourceBundle catalog, + java.lang.String msgid) + +
+          Returns the translation of msgid.
+static java.lang.Stringngettext(java.util.ResourceBundle catalog, + java.lang.String msgid, + java.lang.String msgid_plural, + long n) + +
+          Returns the plural form for n of the translation of + msgid.
+ + + + + + + +
Methods inherited from class java.util.ResourceBundle
getBundle, getBundle, getBundle, getKeys, getLocale, getObject, getString, getStringArray, handleGetObject, setParent
+ + + + + + + +
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
+  +

+ + + + + + + + +
+Field Detail
+ +

+verbose

+
+public static boolean verbose
+
+
+ + + + + + + + +
+Constructor Detail
+ +

+GettextResource

+
+public GettextResource()
+
+
+ + + + + + + + +
+Method Detail
+ +

+gettext

+
+public static java.lang.String gettext(java.util.ResourceBundle catalog,
+                                       java.lang.String msgid)
+
+
Returns the translation of msgid.
+
Parameters:
catalog - a ResourceBundle
msgid - the key string to be translated, an ASCII string
Returns:
the translation of msgid, or msgid if + none is found
+
+
+
+ +

+ngettext

+
+public static java.lang.String ngettext(java.util.ResourceBundle catalog,
+                                        java.lang.String msgid,
+                                        java.lang.String msgid_plural,
+                                        long n)
+
+
Returns the plural form for n of the translation of + msgid.
+
Parameters:
catalog - a ResourceBundle
msgid - the key string to be translated, an ASCII string
msgid_plural - its English plural form
Returns:
the translation of msgid depending on n, + or msgid or msgid_plural if none is found
+
+
+ +
+ + + + + + + + + + + + + + + + + +
+ +
+ + +
+ + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/gnu/gettext/package-frame.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/gnu/gettext/package-frame.html new file mode 100644 index 000000000..6e2f332a3 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/gnu/gettext/package-frame.html @@ -0,0 +1,26 @@ + + + + + + +: Package gnu.gettext + + + + + +gnu.gettext + + + + +
+Classes  + +
+GettextResource
+ + + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/gnu/gettext/package-summary.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/gnu/gettext/package-summary.html new file mode 100644 index 000000000..d4909fa9b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/gnu/gettext/package-summary.html @@ -0,0 +1,103 @@ + + + + + + +: Package gnu.gettext + + + + + + + + + + + + + + + + + +
+ +
+ + +
+

+Package gnu.gettext +

+ + + + + + + + + +
+Class Summary
GettextResourceThis class implements the main GNU libintl functions in Java. +
+  + +

+


+ + + + + + + + + + + + + +
+ +
+ + +
+ + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/gnu/gettext/package-tree.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/gnu/gettext/package-tree.html new file mode 100644 index 000000000..75a500368 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/gnu/gettext/package-tree.html @@ -0,0 +1,99 @@ + + + + + + +: gnu.gettext Class Hierarchy + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

+Hierarchy For Package gnu.gettext +

+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object +
+
+ + + + + + + + + + + + + +
+ +
+ + +
+ + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/help-doc.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/help-doc.html new file mode 100644 index 000000000..8f09871e4 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/help-doc.html @@ -0,0 +1,136 @@ + + + + + + +: API Help + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

+How This API Document Is Organized

+
+This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.

+Package

+
+ +

+Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:

    +
  • Interfaces (italic)
  • Classes
  • Exceptions
  • Errors
+
+

+Class/Interface

+
+ +

+Each class, interface, inner class and inner interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    +
  • Class inheritance diagram
  • Direct Subclasses
  • All Known Subinterfaces
  • All Known Implementing Classes
  • Class/interface declaration
  • Class/interface description +

    +

  • Inner Class Summary
  • Field Summary
  • Constructor Summary
  • Method Summary +

    +

  • Field Detail
  • Constructor Detail
  • Method Detail
+Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
+

+Tree (Class Hierarchy)

+
+There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
    +
  • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
  • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
+
+

+Deprecated API

+
+The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
+

+Index

+
+The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
+

+Prev/Next

+These links take you to the next or previous class, interface, package, or related page.

+Frames/No Frames

+These links show and hide the HTML frames. All pages are available with or without frames. +

+

+Serialized Form

+Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description. +

+ + +This help file applies to API documentation generated using the standard doclet. + +
+


+ + + + + + + + + + + + + +
+ +
+ + +
+ + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/index-all.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/index-all.html new file mode 100644 index 000000000..48ebc2e47 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/index-all.html @@ -0,0 +1,111 @@ + + + + + + +: Index + + + + + + + + + + + + + + + + + +
+ +
+ + +G N V
+

+G

+
+
gettext(ResourceBundle, String) - +Static method in class gnu.gettext.GettextResource +
Returns the translation of msgid. +
GettextResource - class gnu.gettext.GettextResource.
This class implements the main GNU libintl functions in Java. +
GettextResource() - +Constructor for class gnu.gettext.GettextResource +
  +
+
+

+N

+
+
ngettext(ResourceBundle, String, String, long) - +Static method in class gnu.gettext.GettextResource +
Returns the plural form for n of the translation of + msgid. +
+
+

+V

+
+
verbose - +Static variable in class gnu.gettext.GettextResource +
  +
+
+G N V + + + + + + + + + + + + +
+ +
+ + +
+ + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/index.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/index.html new file mode 100644 index 000000000..e3601570f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/index.html @@ -0,0 +1,22 @@ + + + + + + +Generated Documentation (Untitled) + + + + + + + +<H2> +Frame Alert</H2> + +<P> +This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. +<BR> +Link to <A HREF="gnu/gettext/GettextResource.html">Non-frame version.</A> + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/overview-tree.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/overview-tree.html new file mode 100644 index 000000000..310db687c --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/overview-tree.html @@ -0,0 +1,96 @@ + + + + + + +: Class Hierarchy + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

+Hierarchy For All Packages

+
+

+Class Hierarchy +

+
    +
  • class java.lang.Object +
+
+ + + + + + + + + + + + + +
+ +
+ + +
+ + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/package-list b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/package-list new file mode 100644 index 000000000..4820a252b --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/package-list @@ -0,0 +1 @@ +gnu.gettext diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/packages.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/packages.html new file mode 100644 index 000000000..4807ba261 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/packages.html @@ -0,0 +1,26 @@ + + + + + + + + + + + + +
+ +
+ +
+
+The front page has been relocated.Please see: +
+          Frame version +
+          Non-frame version.
+ + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/serialized-form.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/serialized-form.html new file mode 100644 index 000000000..6ce40bc5a --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/serialized-form.html @@ -0,0 +1,87 @@ + + + + + + +Serialized Form + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+

+Serialized Form

+
+
+ + + + + + + + + + + + + +
+ +
+ + +
+ + + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/stylesheet.css b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/stylesheet.css new file mode 100644 index 000000000..95f576498 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/javadoc2/stylesheet.css @@ -0,0 +1,29 @@ +/* Javadoc style sheet */ + +/* Define colors, fonts and other style attributes here to override the defaults */ + +/* Page background color */ +body { background-color: #FFFFFF } + +/* Table colors */ +.TableHeadingColor { background: #CCCCFF } /* Dark mauve */ +.TableSubHeadingColor { background: #EEEEFF } /* Light mauve */ +.TableRowColor { background: #FFFFFF } /* White */ + +/* Font used in left-hand frame lists */ +.FrameTitleFont { font-size: normal; font-family: normal } +.FrameHeadingFont { font-size: normal; font-family: normal } +.FrameItemFont { font-size: normal; font-family: normal } + +/* Example of smaller, sans-serif font in frames */ +/* .FrameItemFont { font-size: 10pt; font-family: Helvetica, Arial, sans-serif } */ + +/* Navigation bar fonts and colors */ +.NavBarCell1 { background-color:#EEEEFF;}/* Light mauve */ +.NavBarCell1Rev { background-color:#00008B;}/* Dark Blue */ +.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;} +.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;} + +.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;} +.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;} + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msgattrib.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgattrib.1.html new file mode 100644 index 000000000..a57946fb8 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgattrib.1.html @@ -0,0 +1,366 @@ + + + + + + + + +MSGATTRIB + + + + +

MSGATTRIB

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msgattrib +- attribute matching and manipulation on message +catalog

+ +

SYNOPSIS + +

+ + + +

msgattrib +[OPTION] [INPUTFILE]

+ +

DESCRIPTION + +

+ + +

Filters the +messages of a translation catalog according to their +attributes, and manipulates the attributes.

+ +

Mandatory +arguments to long options are mandatory for short options +too.

+ +

Input file +location:
+INPUTFILE

+ +

input PO file

+ +

-D, +--directory=DIRECTORY

+ +

add DIRECTORY to list for input +files search

+ +

If no input +file is given or if it is -, standard input is +read.

+ +

Output file +location:
+-o
, +--output-file=FILE

+ +

write output to specified +file

+ +

The results are +written to standard output if no output file is specified or +if it is -.

+ +

Message +selection:
+--translated

+ +

keep translated, remove +untranslated messages

+ + +

--untranslated

+ +

keep untranslated, remove +translated messages

+ + +

--no-fuzzy

+ +

remove ’fuzzy’ +marked messages

+ + +

--only-fuzzy

+ +

keep ’fuzzy’ marked +messages

+ + +

--no-obsolete

+ +

remove obsolete #~ messages

+ + +

--only-obsolete

+ +

keep obsolete #~ messages

+ +

Attribute +manipulation:
+--set-fuzzy

+ +

set all messages +’fuzzy’

+ + +

--clear-fuzzy

+ +

set all messages +non-’fuzzy’

+ + +

--set-obsolete

+ +

set all messages obsolete

+ + +

--clear-obsolete

+ +

set all messages +non-obsolete

+ + +

--previous

+ +

when setting +’fuzzy’, keep previous msgids of translated +messages.

+ + +

--clear-previous

+ +

remove the "previous +msgid" from all messages

+ +

--empty

+ +

when removing +’fuzzy’, also set msgstr empty

+ + +

--only-file=FILE.po

+ +

manipulate only entries listed +in FILE.po

+ + +

--ignore-file=FILE.po

+ +

manipulate only entries not +listed in FILE.po

+ +

--fuzzy

+ +

synonym for +--only-fuzzy +--clear-fuzzy

+ + +

--obsolete

+ +

synonym for +--only-obsolete +--clear-obsolete

+ +

Input file +syntax:
+-P
, +--properties-input

+ +

input file is in Java +.properties syntax

+ + +

--stringtable-input

+ +

input file is in +NeXTstep/GNUstep .strings syntax

+ +

Output +details:
+--color

+ +

use colors and other text +attributes always

+ + +

--color=WHEN

+ +

use colors and other text +attributes if WHEN. WHEN may be ’always’, +’never’, ’auto’, or +’html’.

+ + +

--style=STYLEFILE

+ +

specify CSS style rule file for +--color

+ +

-e, +--no-escape

+ +

do not use C escapes in output +(default)

+ +

-E, +--escape

+ +

use C escapes in output, no +extended chars

+ + +

--force-po

+ +

write PO file even if empty

+ +

-i, +--indent

+ +

write the .po file using +indented style

+ + +

--no-location

+ +

do not write ’#: +filename:line’ lines

+ +

-n, +--add-location

+ +

generate ’#: +filename:line’ lines (default)

+ + +

--strict

+ +

write out strict Uniforum +conforming .po file

+ +

-p, +--properties-output

+ +

write out a Java .properties +file

+ + +

--stringtable-output

+ +

write out a NeXTstep/GNUstep +.strings file

+ +

-w, +--width=NUMBER

+ +

set output page width

+ + +

--no-wrap

+ +

do not break long message +lines, longer than the output page width, into several +lines

+ +

-s, +--sort-output

+ +

generate sorted output

+ +

-F, +--sort-by-file

+ +

sort output by file +location

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

AUTHOR + +

+ + +

Written by +Bruno Haible.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 2001-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msgattrib is maintained as a +Texinfo manual. If the info and msgattrib +programs are properly installed at your site, the +command

+ +

info +msgattrib

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msgcat.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgcat.1.html new file mode 100644 index 000000000..0eb2fd543 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgcat.1.html @@ -0,0 +1,314 @@ + + + + + + + + +MSGCAT + + + + +

MSGCAT

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msgcat - +combines several message catalogs

+ +

SYNOPSIS + +

+ + +

msgcat +[OPTION] [INPUTFILE]...

+ +

DESCRIPTION + +

+ + +

Concatenates +and merges the specified PO files. Find messages which are +common to two or more of the specified PO files. By using +the --more-than option, greater +commonality may be requested before messages are printed. +Conversely, the --less-than option +may be used to specify less commonality before messages are +printed (i.e. --less-than=2 +will only print the unique messages). Translations, +comments, extracted comments, and file positions will be +cumulated, except that if +--use-first is specified, they will +be taken from the first PO file to define them.

+ +

Mandatory +arguments to long options are mandatory for short options +too.

+ +

Input file +location:
+INPUTFILE ...

+ +

input files

+ +

-f, +--files-from=FILE

+ +

get list of input files from +FILE

+ +

-D, +--directory=DIRECTORY

+ +

add DIRECTORY to list for input +files search

+ +

If input file +is -, standard input is read.

+ +

Output file +location:
+-o
, +--output-file=FILE

+ +

write output to specified +file

+ +

The results are +written to standard output if no output file is specified or +if it is -.

+ +

Message +selection:
+-<, +--less-than=NUMBER

+ +

print messages with less than +this many definitions, defaults to infinite if not set

+ +

->, +--more-than=NUMBER

+ +

print messages with more than +this many definitions, defaults to 0 if not set

+ +

-u, +--unique

+ +

shorthand for +--less-than=2, requests that +only unique messages be printed

+ +

Input file +syntax:
+-P
, +--properties-input

+ +

input files are in Java +.properties syntax

+ + +

--stringtable-input

+ +

input files are in +NeXTstep/GNUstep .strings syntax

+ +

Output +details:
+-t
, +--to-code=NAME

+ +

encoding for output

+ + +

--use-first

+ +

use first available translation +for each message, don’t merge several translations

+ + +

--lang=CATALOGNAME

+ +

set ’Language’ +field in the header entry

+ +

--color

+ +

use colors and other text +attributes always

+ + +

--color=WHEN

+ +

use colors and other text +attributes if WHEN. WHEN may be ’always’, +’never’, ’auto’, or +’html’.

+ + +

--style=STYLEFILE

+ +

specify CSS style rule file for +--color

+ +

-e, +--no-escape

+ +

do not use C escapes in output +(default)

+ +

-E, +--escape

+ +

use C escapes in output, no +extended chars

+ + +

--force-po

+ +

write PO file even if empty

+ +

-i, +--indent

+ +

write the .po file using +indented style

+ + +

--no-location

+ +

do not write ’#: +filename:line’ lines

+ +

-n, +--add-location

+ +

generate ’#: +filename:line’ lines (default)

+ + +

--strict

+ +

write out strict Uniforum +conforming .po file

+ +

-p, +--properties-output

+ +

write out a Java .properties +file

+ + +

--stringtable-output

+ +

write out a NeXTstep/GNUstep +.strings file

+ +

-w, +--width=NUMBER

+ +

set output page width

+ + +

--no-wrap

+ +

do not break long message +lines, longer than the output page width, into several +lines

+ +

-s, +--sort-output

+ +

generate sorted output

+ +

-F, +--sort-by-file

+ +

sort output by file +location

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

AUTHOR + +

+ + +

Written by +Bruno Haible.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 2001-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msgcat is maintained as a Texinfo +manual. If the info and msgcat programs are +properly installed at your site, the command

+ +

info +msgcat

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msgcmp.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgcmp.1.html new file mode 100644 index 000000000..6b8f138c5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgcmp.1.html @@ -0,0 +1,195 @@ + + + + + + + + +MSGCMP + + + + +

MSGCMP

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msgcmp - +compare message catalog and template

+ +

SYNOPSIS + +

+ + +

msgcmp +[OPTION] def.po ref.pot

+ +

DESCRIPTION + +

+ + +

Compare two +Uniforum style .po files to check that both contain the same +set of msgid strings. The def.po file is an existing PO file +with the translations. The ref.pot file is the last created +PO file, or a PO Template file (generally created by +xgettext). This is useful for checking that you have +translated each and every message in your program. Where an +exact match cannot be found, fuzzy matching is used to +produce better diagnostics.

+ +

Mandatory +arguments to long options are mandatory for short options +too.

+ +

Input file +location:

+ + + + + + + + +
+ + +

def.po

+ + +

translations

+
+ +

ref.pot

+ +

references to the sources

+ +

-D, +--directory=DIRECTORY

+ +

add DIRECTORY to list for input +files search

+ +

Operation +modifiers:
+-m
, --multi-domain

+ +

apply ref.pot to each of the +domains in def.po

+ +

-N, +--no-fuzzy-matching

+ +

do not use fuzzy matching

+ + +

--use-fuzzy

+ +

consider fuzzy entries

+ + +

--use-untranslated

+ +

consider untranslated +entries

+ +

Input file +syntax:
+-P
, +--properties-input

+ +

input files are in Java +.properties syntax

+ + +

--stringtable-input

+ +

input files are in +NeXTstep/GNUstep .strings syntax

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

AUTHOR + +

+ + +

Written by +Peter Miller.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 1995-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msgcmp is maintained as a Texinfo +manual. If the info and msgcmp programs are +properly installed at your site, the command

+ +

info +msgcmp

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msgcomm.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgcomm.1.html new file mode 100644 index 000000000..c4ec9b9ac --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgcomm.1.html @@ -0,0 +1,302 @@ + + + + + + + + +MSGCOMM + + + + +

MSGCOMM

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msgcomm - +match two message catalogs

+ +

SYNOPSIS + +

+ + +

msgcomm +[OPTION] [INPUTFILE]...

+ +

DESCRIPTION + +

+ + +

Find messages +which are common to two or more of the specified PO files. +By using the --more-than option, +greater commonality may be requested before messages are +printed. Conversely, the +--less-than option may be used to +specify less commonality before messages are printed (i.e. +--less-than=2 will only +print the unique messages). Translations, comments and +extracted comments will be preserved, but only from the +first PO file to define them. File positions from all PO +files will be cumulated.

+ +

Mandatory +arguments to long options are mandatory for short options +too.

+ +

Input file +location:
+INPUTFILE ...

+ +

input files

+ +

-f, +--files-from=FILE

+ +

get list of input files from +FILE

+ +

-D, +--directory=DIRECTORY

+ +

add DIRECTORY to list for input +files search

+ +

If input file +is -, standard input is read.

+ +

Output file +location:
+-o
, +--output-file=FILE

+ +

write output to specified +file

+ +

The results are +written to standard output if no output file is specified or +if it is -.

+ +

Message +selection:
+-<, +--less-than=NUMBER

+ +

print messages with less than +this many definitions, defaults to infinite if not set

+ +

->, +--more-than=NUMBER

+ +

print messages with more than +this many definitions, defaults to 1 if not set

+ +

-u, +--unique

+ +

shorthand for +--less-than=2, requests that +only unique messages be printed

+ +

Input file +syntax:
+-P
, +--properties-input

+ +

input files are in Java +.properties syntax

+ + +

--stringtable-input

+ +

input files are in +NeXTstep/GNUstep .strings syntax

+ +

Output +details:
+--color

+ +

use colors and other text +attributes always

+ + +

--color=WHEN

+ +

use colors and other text +attributes if WHEN. WHEN may be ’always’, +’never’, ’auto’, or +’html’.

+ + +

--style=STYLEFILE

+ +

specify CSS style rule file for +--color

+ +

-e, +--no-escape

+ +

do not use C escapes in output +(default)

+ +

-E, +--escape

+ +

use C escapes in output, no +extended chars

+ + +

--force-po

+ +

write PO file even if empty

+ +

-i, +--indent

+ +

write the .po file using +indented style

+ + +

--no-location

+ +

do not write ’#: +filename:line’ lines

+ +

-n, +--add-location

+ +

generate ’#: +filename:line’ lines (default)

+ + +

--strict

+ +

write out strict Uniforum +conforming .po file

+ +

-p, +--properties-output

+ +

write out a Java .properties +file

+ + +

--stringtable-output

+ +

write out a NeXTstep/GNUstep +.strings file

+ +

-w, +--width=NUMBER

+ +

set output page width

+ + +

--no-wrap

+ +

do not break long message +lines, longer than the output page width, into several +lines

+ +

-s, +--sort-output

+ +

generate sorted output

+ +

-F, +--sort-by-file

+ +

sort output by file +location

+ + +

--omit-header

+ +

don’t write header with +’msgid ""’ entry

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

AUTHOR + +

+ + +

Written by +Peter Miller.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 1995-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msgcomm is maintained as a Texinfo +manual. If the info and msgcomm programs are +properly installed at your site, the command

+ +

info +msgcomm

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msgconv.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgconv.1.html new file mode 100644 index 000000000..02459de6f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgconv.1.html @@ -0,0 +1,269 @@ + + + + + + + + +MSGCONV + + + + +

MSGCONV

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msgconv - +character set conversion for message catalog

+ +

SYNOPSIS + +

+ + +

msgconv +[OPTION] [INPUTFILE]

+ +

DESCRIPTION + +

+ + +

Converts a +translation catalog to a different character encoding.

+ +

Mandatory +arguments to long options are mandatory for short options +too.

+ +

Input file +location:
+INPUTFILE

+ +

input PO file

+ +

-D, +--directory=DIRECTORY

+ +

add DIRECTORY to list for input +files search

+ +

If no input +file is given or if it is -, standard input is +read.

+ +

Output file +location:
+-o
, +--output-file=FILE

+ +

write output to specified +file

+ +

The results are +written to standard output if no output file is specified or +if it is -.

+ +

Conversion +target:
+-t
, +--to-code=NAME

+ +

encoding for output

+ +

The default +encoding is the current locale’s encoding.

+ +

Input file +syntax:
+-P
, +--properties-input

+ +

input file is in Java +.properties syntax

+ + +

--stringtable-input

+ +

input file is in +NeXTstep/GNUstep .strings syntax

+ +

Output +details:
+--color

+ +

use colors and other text +attributes always

+ + +

--color=WHEN

+ +

use colors and other text +attributes if WHEN. WHEN may be ’always’, +’never’, ’auto’, or +’html’.

+ + +

--style=STYLEFILE

+ +

specify CSS style rule file for +--color

+ +

-e, +--no-escape

+ +

do not use C escapes in output +(default)

+ +

-E, +--escape

+ +

use C escapes in output, no +extended chars

+ + +

--force-po

+ +

write PO file even if empty

+ +

-i, +--indent

+ +

indented output style

+ + +

--no-location

+ +

suppress ’#: +filename:line’ lines

+ +

-n, +--add-location

+ +

preserve ’#: +filename:line’ lines (default)

+ + +

--strict

+ +

strict Uniforum output +style

+ +

-p, +--properties-output

+ +

write out a Java .properties +file

+ + +

--stringtable-output

+ +

write out a NeXTstep/GNUstep +.strings file

+ +

-w, +--width=NUMBER

+ +

set output page width

+ + +

--no-wrap

+ +

do not break long message +lines, longer than the output page width, into several +lines

+ +

-s, +--sort-output

+ +

generate sorted output

+ +

-F, +--sort-by-file

+ +

sort output by file +location

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

AUTHOR + +

+ + +

Written by +Bruno Haible.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 2001-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msgconv is maintained as a Texinfo +manual. If the info and msgconv programs are +properly installed at your site, the command

+ +

info +msgconv

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msgen.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgen.1.html new file mode 100644 index 000000000..2cef6ff6d --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgen.1.html @@ -0,0 +1,266 @@ + + + + + + + + +MSGEN + + + + +

MSGEN

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msgen - +create English message catalog

+ +

SYNOPSIS + +

+ + +

msgen +[OPTION] INPUTFILE

+ +

DESCRIPTION + +

+ + +

Creates an +English translation catalog. The input file is the last +created English PO file, or a PO Template file (generally +created by xgettext). Untranslated entries are assigned a +translation that is identical to the msgid.

+ +

Mandatory +arguments to long options are mandatory for short options +too.

+ +

Input file +location:
+INPUTFILE

+ +

input PO or POT file

+ +

-D, +--directory=DIRECTORY

+ +

add DIRECTORY to list for input +files search

+ +

If input file +is -, standard input is read.

+ +

Output file +location:
+-o
, +--output-file=FILE

+ +

write output to specified +file

+ +

The results are +written to standard output if no output file is specified or +if it is -.

+ +

Input file +syntax:
+-P
, +--properties-input

+ +

input file is in Java +.properties syntax

+ + +

--stringtable-input

+ +

input file is in +NeXTstep/GNUstep .strings syntax

+ +

Output +details:
+--lang
=CATALOGNAME

+ +

set ’Language’ +field in the header entry

+ +

--color

+ +

use colors and other text +attributes always

+ + +

--color=WHEN

+ +

use colors and other text +attributes if WHEN. WHEN may be ’always’, +’never’, ’auto’, or +’html’.

+ + +

--style=STYLEFILE

+ +

specify CSS style rule file for +--color

+ +

-e, +--no-escape

+ +

do not use C escapes in output +(default)

+ +

-E, +--escape

+ +

use C escapes in output, no +extended chars

+ + +

--force-po

+ +

write PO file even if empty

+ +

-i, +--indent

+ +

indented output style

+ + +

--no-location

+ +

suppress ’#: +filename:line’ lines

+ +

-n, +--add-location

+ +

preserve ’#: +filename:line’ lines (default)

+ + +

--strict

+ +

strict Uniforum output +style

+ +

-p, +--properties-output

+ +

write out a Java .properties +file

+ + +

--stringtable-output

+ +

write out a NeXTstep/GNUstep +.strings file

+ +

-w, +--width=NUMBER

+ +

set output page width

+ + +

--no-wrap

+ +

do not break long message +lines, longer than the output page width, into several +lines

+ +

-s, +--sort-output

+ +

generate sorted output

+ +

-F, +--sort-by-file

+ +

sort output by file +location

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

AUTHOR + +

+ + +

Written by +Bruno Haible.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 2001-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msgen is maintained as a Texinfo +manual. If the info and msgen programs are +properly installed at your site, the command

+ +

info +msgen

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msgexec.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgexec.1.html new file mode 100644 index 000000000..a837f4434 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgexec.1.html @@ -0,0 +1,170 @@ + + + + + + + + +MSGEXEC + + + + +

MSGEXEC

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msgexec - +process translations of message catalog

+ +

SYNOPSIS + +

+ + +

msgexec +[OPTION] COMMAND [COMMAND-OPTION]

+ +

DESCRIPTION + +

+ + +

Applies a +command to all translations of a translation catalog. The +COMMAND can be any program that reads a translation from +standard input. It is invoked once for each translation. Its +output becomes msgexec’s output. msgexec’s +return code is the maximum return code across all +invocations.

+ +

A special +builtin command called ’0’ outputs the +translation, followed by a null byte. The output of +"msgexec 0" is suitable as input for "xargs +-0".

+ +

Command +input:
+--newline

+ +

add newline at the end of +input

+ +

Mandatory +arguments to long options are mandatory for short options +too.

+ +

Input file +location:
+-i
, +--input=INPUTFILE

+ +

input PO file

+ +

-D, +--directory=DIRECTORY

+ +

add DIRECTORY to list for input +files search

+ +

If no input +file is given or if it is -, standard input is +read.

+ +

Input file +syntax:
+-P
, +--properties-input

+ +

input file is in Java +.properties syntax

+ + +

--stringtable-input

+ +

input file is in +NeXTstep/GNUstep .strings syntax

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

AUTHOR + +

+ + +

Written by +Bruno Haible.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 2001-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msgexec is maintained as a Texinfo +manual. If the info and msgexec programs are +properly installed at your site, the command

+ +

info +msgexec

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msgfilter.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgfilter.1.html new file mode 100644 index 000000000..99b9a34f1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgfilter.1.html @@ -0,0 +1,299 @@ + + + + + + + + +MSGFILTER + + + + +

MSGFILTER

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msgfilter +- edit translations of message catalog

+ +

SYNOPSIS + +

+ + + +

msgfilter +[OPTION] FILTER [FILTER-OPTION]

+ +

DESCRIPTION + +

+ + +

Applies a +filter to all translations of a translation catalog.

+ +

Mandatory +arguments to long options are mandatory for short options +too.

+ +

Input file +location:
+-i
, +--input=INPUTFILE

+ +

input PO file

+ +

-D, +--directory=DIRECTORY

+ +

add DIRECTORY to list for input +files search

+ +

If no input +file is given or if it is -, standard input is +read.

+ +

Output file +location:
+-o
, +--output-file=FILE

+ +

write output to specified +file

+ +

The results are +written to standard output if no output file is specified or +if it is -.

+ +

The FILTER can +be any program that reads a translation from standard input +and writes a modified translation to standard output.

+ +

Filter input +and output:
+--newline

+ +

add a newline at the end of +input and remove a newline from the end of output

+ +

Useful +FILTER-OPTIONs when the FILTER is ’sed’:
+-e
, +--expression=SCRIPT

+ +

add SCRIPT to the commands to +be executed

+ +

-f, +--file=SCRIPTFILE

+ +

add the contents of SCRIPTFILE +to the commands to be executed

+ +

-n, +--quiet, --silent

+ +

suppress automatic printing of +pattern space

+ +

Input file +syntax:
+-P
, +--properties-input

+ +

input file is in Java +.properties syntax

+ + +

--stringtable-input

+ +

input file is in +NeXTstep/GNUstep .strings syntax

+ +

Output +details:
+--color

+ +

use colors and other text +attributes always

+ + +

--color=WHEN

+ +

use colors and other text +attributes if WHEN. WHEN may be ’always’, +’never’, ’auto’, or +’html’.

+ + +

--style=STYLEFILE

+ +

specify CSS style rule file for +--color

+ + +

--no-escape

+ +

do not use C escapes in output +(default)

+ +

-E, +--escape

+ +

use C escapes in output, no +extended chars

+ + +

--force-po

+ +

write PO file even if empty

+ + +

--indent

+ +

indented output style

+ + +

--keep-header

+ +

keep header entry unmodified, +don’t filter it

+ + +

--no-location

+ +

suppress ’#: +filename:line’ lines

+ +

-n, +--add-location

+ +

preserve ’#: +filename:line’ lines (default)

+ + +

--strict

+ +

strict Uniforum output +style

+ +

-p, +--properties-output

+ +

write out a Java .properties +file

+ + +

--stringtable-output

+ +

write out a NeXTstep/GNUstep +.strings file

+ +

-w, +--width=NUMBER

+ +

set output page width

+ + +

--no-wrap

+ +

do not break long message +lines, longer than the output page width, into several +lines

+ +

-s, +--sort-output

+ +

generate sorted output

+ +

-F, +--sort-by-file

+ +

sort output by file +location

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

AUTHOR + +

+ + +

Written by +Bruno Haible.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 2001-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msgfilter is maintained as a +Texinfo manual. If the info and msgfilter +programs are properly installed at your site, the +command

+ +

info +msgfilter

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msgfmt.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgfmt.1.html new file mode 100644 index 000000000..b59728ada --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgfmt.1.html @@ -0,0 +1,477 @@ + + + + + + + + +MSGFMT + + + + +

MSGFMT

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msgfmt - +compile message catalog to binary format

+ +

SYNOPSIS + +

+ + +

msgfmt +[OPTION] filename.po ...

+ +

DESCRIPTION + +

+ + +

Generate binary +message catalog from textual translation description.

+ +

Mandatory +arguments to long options are mandatory for short options +too. Similarly for optional arguments.

+ +

Input file +location:
+filename.po ...

+ +

input files

+ +

-D, +--directory=DIRECTORY

+ +

add DIRECTORY to list for input +files search

+ +

If input file +is -, standard input is read.

+ +

Operation +mode:
+-j
, --java

+ +

Java mode: generate a Java +ResourceBundle class

+ +

--java2

+ +

like --java, +and assume Java2 (JDK 1.2 or higher)

+ + +

--csharp

+ +

C# mode: generate a .NET .dll +file

+ + +

--csharp-resources

+ +

C# resources mode: generate a +.NET .resources file

+ + + + + + + + + + + + + + +
+ + +

--tcl

+ + +

Tcl mode: generate a tcl/msgcat .msg file

+
+ + +

--qt

+ + +

Qt mode: generate a Qt .qm file

+
+ + +

--desktop

+ +

Desktop Entry mode: generate a +.desktop file

+ + + + + + + + +
+ + +

--xml

+ + +

XML mode: generate XML file

+
+ +

Output file +location:
+-o
, +--output-file=FILE

+ +

write output to specified +file

+ + +

--strict

+ +

enable strict Uniforum mode

+ +

If output file +is -, output is written to standard output.

+ +

Output file +location in Java mode:
+-r
, +--resource=RESOURCE

+ +

resource name

+ +

-l, +--locale=LOCALE

+ +

locale name, either language or +language_COUNTRY

+ + +

--source

+ +

produce a .java file, instead +of a .class file

+ +

-d DIRECTORY

+ +

base directory of classes +directory hierarchy

+ +

The class name +is determined by appending the locale name to the resource +name, separated with an underscore. The -d +option is mandatory. The class is written under the +specified directory.

+ +

Output file +location in C# mode:
+-r
, +--resource=RESOURCE

+ +

resource name

+ +

-l, +--locale=LOCALE

+ +

locale name, either language or +language_COUNTRY

+ +

-d DIRECTORY

+ +

base directory for locale +dependent .dll files

+ +

The +-l and -d options are mandatory. +The .dll file is written in a subdirectory of the specified +directory whose name depends on the locale.

+ +

Output file +location in Tcl mode:
+-l
, --locale=LOCALE

+ +

locale name, either language or +language_COUNTRY

+ +

-d DIRECTORY

+ +

base directory of .msg message +catalogs

+ +

The +-l and -d options are mandatory. +The .msg file is written in the specified directory.

+ +

Desktop +Entry mode options:
+-l
, --locale=LOCALE

+ +

locale name, either language or +language_COUNTRY

+ +

-o, +--output-file=FILE

+ +

write output to specified +file

+ + +

--template=TEMPLATE

+ +

a .desktop file used as a +template

+ +

-d DIRECTORY

+ +

base directory of .po files

+ +

-kWORD, +--keyword=WORD

+ +

look for WORD as an additional +keyword

+ +

-k, +--keyword

+ +

do not to use default +keywords

+ +

The +-l, -o, and +--template options are mandatory. If +-D is specified, input files are read from the +directory instead of the command line arguments.

+ +

XML mode +options:
+-l
, --locale=LOCALE

+ +

locale name, either language or +language_COUNTRY

+ +

-L, +--language=NAME

+ +

recognise the specified XML +language

+ +

-o, +--output-file=FILE

+ +

write output to specified +file

+ + +

--template=TEMPLATE

+ +

an XML file used as a +template

+ +

-d DIRECTORY

+ +

base directory of .po files

+ +

The +-l, -o, and +--template options are mandatory. If +-D is specified, input files are read from the +directory instead of the command line arguments.

+ +

Input file +syntax:
+-P
, +--properties-input

+ +

input files are in Java +.properties syntax

+ + +

--stringtable-input

+ +

input files are in +NeXTstep/GNUstep .strings syntax

+ +

Input file +interpretation:
+-c
, --check

+ +

perform all the checks implied +by --check-format, +--check-header, +--check-domain

+ + +

--check-format

+ +

check language dependent format +strings

+ + +

--check-header

+ +

verify presence and contents of +the header entry

+ + +

--check-domain

+ +

check for conflicts between +domain directives and the +--output-file option

+ +

-C, +--check-compatibility

+ +

check that GNU msgfmt behaves +like X/Open msgfmt

+ + +

--check-accelerators[=CHAR]

+ +

check presence of keyboard +accelerators for menu items

+ +

-f, +--use-fuzzy

+ +

use fuzzy entries in output

+ +

Output +details:
+--no-convert

+ +

don’t convert the +messages to UTF-8 encoding

+ + +

--no-redundancy

+ +

don’t pre-expand +ISO C 99 <inttypes.h> format string directive +macros

+ +

-a, +--alignment=NUMBER

+ +

align strings to NUMBER bytes +(default: 1)

+ + +

--endianness=BYTEORDER

+ +

write out 32-bit numbers +in the given byte order (big or little, default depends on +platform)

+ + +

--no-hash

+ +

binary file will not include +the hash table

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ + +

--statistics

+ +

print statistics about +translations

+ +

-v, +--verbose

+ +

increase verbosity level

+ +

AUTHOR + +

+ + +

Written by +Ulrich Drepper.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 1995-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msgfmt is maintained as a Texinfo +manual. If the info and msgfmt programs are +properly installed at your site, the command

+ +

info +msgfmt

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msggrep.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msggrep.1.html new file mode 100644 index 000000000..e7ea8e9cc --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msggrep.1.html @@ -0,0 +1,377 @@ + + + + + + + + +MSGGREP + + + + +

MSGGREP

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msggrep - +pattern matching on message catalog

+ +

SYNOPSIS + +

+ + +

msggrep +[OPTION] [INPUTFILE]

+ +

DESCRIPTION + +

+ + +

Extracts all +messages of a translation catalog that match a given pattern +or belong to some given source files.

+ +

Mandatory +arguments to long options are mandatory for short options +too.

+ +

Input file +location:
+INPUTFILE

+ +

input PO file

+ +

-D, +--directory=DIRECTORY

+ +

add DIRECTORY to list for input +files search

+ +

If no input +file is given or if it is -, standard input is +read.

+ +

Output file +location:
+-o
, +--output-file=FILE

+ +

write output to specified +file

+ +

The results are +written to standard output if no output file is specified or +if it is -.

+ +

Message +selection:

+ +

[-N SOURCEFILE]... +[-M DOMAINNAME]... [-J MSGCTXT-PATTERN] +[-K MSGID-PATTERN] [-T +MSGSTR-PATTERN] [-C COMMENT-PATTERN] +[-X EXTRACTED-COMMENT-PATTERN]

+ +

A message is +selected if it comes from one of the specified source files, +or if it comes from one of the specified domains, or if +-J is given and its context (msgctxt) matches +MSGCTXT-PATTERN, or if -K is given and +its key (msgid or msgid_plural) matches MSGID-PATTERN, +or if -T is given and its translation (msgstr) +matches MSGSTR-PATTERN, or if -C is given +and the translator’s comment matches +COMMENT-PATTERN, or if -X is given and +the extracted comment matches +EXTRACTED-COMMENT-PATTERN.

+ +

When more than +one selection criterion is specified, the set of selected +messages is the union of the selected messages of each +criterion.

+ + +

MSGCTXT-PATTERN +or MSGID-PATTERN or MSGSTR-PATTERN or +COMMENT-PATTERN or +EXTRACTED-COMMENT-PATTERN syntax:

+ +

[-E | +-F] [-e PATTERN | -f +FILE]...

+ +

PATTERNs are +basic regular expressions by default, or extended regular +expressions if -E is given, or fixed strings if +-F is given.
+-N
, +--location=SOURCEFILE

+ +

select messages extracted from +SOURCEFILE

+ +

-M, +--domain=DOMAINNAME

+ +

select messages belonging to +domain DOMAINNAME

+ +

-J, +--msgctxt

+ +

start of patterns for the +msgctxt

+ +

-K, +--msgid

+ +

start of patterns for the +msgid

+ +

-T, +--msgstr

+ +

start of patterns for the +msgstr

+ +

-C, +--comment

+ +

start of patterns for the +translator’s comment

+ +

-X, +--extracted-comment

+ +

start of patterns for the +extracted comment

+ +

-E, +--extended-regexp

+ +

PATTERN is an extended regular +expression

+ +

-F, +--fixed-strings

+ +

PATTERN is a set of +newline-separated strings

+ +

-e, +--regexp=PATTERN

+ +

use PATTERN as a regular +expression

+ +

-f, +--file=FILE

+ +

obtain PATTERN from FILE

+ +

-i, +--ignore-case

+ +

ignore case distinctions

+ +

-v, +--invert-match

+ +

output only the messages that +do not match any selection criterion

+ +

Input file +syntax:
+-P
, +--properties-input

+ +

input file is in Java +.properties syntax

+ + +

--stringtable-input

+ +

input file is in +NeXTstep/GNUstep .strings syntax

+ +

Output +details:
+--color

+ +

use colors and other text +attributes always

+ + +

--color=WHEN

+ +

use colors and other text +attributes if WHEN. WHEN may be ’always’, +’never’, ’auto’, or +’html’.

+ + +

--style=STYLEFILE

+ +

specify CSS style rule file for +--color

+ + +

--no-escape

+ +

do not use C escapes in output +(default)

+ + +

--escape

+ +

use C escapes in output, no +extended chars

+ + +

--force-po

+ +

write PO file even if empty

+ + +

--indent

+ +

indented output style

+ + +

--no-location

+ +

suppress ’#: +filename:line’ lines

+ +

-n, +--add-location

+ +

preserve ’#: +filename:line’ lines (default)

+ + +

--strict

+ +

strict Uniforum output +style

+ +

-p, +--properties-output

+ +

write out a Java .properties +file

+ + +

--stringtable-output

+ +

write out a NeXTstep/GNUstep +.strings file

+ +

-w, +--width=NUMBER

+ +

set output page width

+ + +

--no-wrap

+ +

do not break long message +lines, longer than the output page width, into several +lines

+ + +

--sort-output

+ +

generate sorted output

+ + +

--sort-by-file

+ +

sort output by file +location

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

AUTHOR + +

+ + +

Written by +Bruno Haible.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 2001-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msggrep is maintained as a Texinfo +manual. If the info and msggrep programs are +properly installed at your site, the command

+ +

info +msggrep

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msginit.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msginit.1.html new file mode 100644 index 000000000..39672b5a1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msginit.1.html @@ -0,0 +1,216 @@ + + + + + + + + +MSGINIT + + + + +

MSGINIT

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msginit - +initialize a message catalog

+ +

SYNOPSIS + +

+ + +

msginit +[OPTION]

+ +

DESCRIPTION + +

+ + +

Creates a new +PO file, initializing the meta information with values from +the user’s environment.

+ +

Mandatory +arguments to long options are mandatory for short options +too.

+ +

Input file +location:
+-i
, +--input=INPUTFILE

+ +

input POT file

+ +

If no input +file is given, the current directory is searched for the POT +file. If it is -, standard input is read.

+ +

Output file +location:
+-o
, +--output-file=FILE

+ +

write output to specified PO +file

+ +

If no output +file is given, it depends on the --locale +option or the user’s locale setting. If it is -, +the results are written to standard output.

+ +

Input file +syntax:
+-P
, +--properties-input

+ +

input file is in Java +.properties syntax

+ + +

--stringtable-input

+ +

input file is in +NeXTstep/GNUstep .strings syntax

+ +

Output +details:
+-l
, +--locale=LL_CC[.ENCODING]

+ +

set target locale

+ + +

--no-translator

+ +

assume the PO file is +automatically generated

+ +

--color

+ +

use colors and other text +attributes always

+ + +

--color=WHEN

+ +

use colors and other text +attributes if WHEN. WHEN may be ’always’, +’never’, ’auto’, or +’html’.

+ + +

--style=STYLEFILE

+ +

specify CSS style rule file for +--color

+ +

-p, +--properties-output

+ +

write out a Java .properties +file

+ + +

--stringtable-output

+ +

write out a NeXTstep/GNUstep +.strings file

+ +

-w, +--width=NUMBER

+ +

set output page width

+ + +

--no-wrap

+ +

do not break long message +lines, longer than the output page width, into several +lines

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

AUTHOR + +

+ + +

Written by +Bruno Haible.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 2001-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msginit is maintained as a Texinfo +manual. If the info and msginit programs are +properly installed at your site, the command

+ +

info +msginit

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msgmerge.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgmerge.1.html new file mode 100644 index 000000000..4b90a4935 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgmerge.1.html @@ -0,0 +1,379 @@ + + + + + + + + +MSGMERGE + + + + +

MSGMERGE

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msgmerge +- merge message catalog and template

+ +

SYNOPSIS + +

+ + + +

msgmerge +[OPTION] def.po ref.pot

+ +

DESCRIPTION + +

+ + +

Merges two +Uniforum style .po files together. The def.po file is an +existing PO file with translations which will be taken over +to the newly created file as long as they still match; +comments will be preserved, but extracted comments and file +positions will be discarded. The ref.pot file is the last +created PO file with up-to-date source +references but old translations, or a PO Template file +(generally created by xgettext); any translations or +comments in the file will be discarded, however dot comments +and file positions will be preserved. Where an exact match +cannot be found, fuzzy matching is used to produce better +results.

+ +

Mandatory +arguments to long options are mandatory for short options +too.

+ +

Input file +location:

+ + + + + + + + +
+ + +

def.po

+ + +

translations referring to old sources

+
+ +

ref.pot

+ +

references to new sources

+ +

-D, +--directory=DIRECTORY

+ +

add DIRECTORY to list for input +files search

+ +

-C, +--compendium=FILE

+ +

additional library of message +translations, may be specified more than once

+ +

Operation +mode:
+-U
, --update

+ +

update def.po, do nothing if +def.po already up to date

+ +

Output file +location:
+-o
, +--output-file=FILE

+ +

write output to specified +file

+ +

The results are +written to standard output if no output file is specified or +if it is -.

+ +

Output file +location in update mode: The result is written back to +def.po.
+--backup
=CONTROL

+ +

make a backup of def.po

+ + +

--suffix=SUFFIX

+ +

override the usual backup +suffix

+ +

The version +control method may be selected via the +--backup option or through the +VERSION_CONTROL environment variable. Here are the values: +
+none, off

+ +

never make backups (even if +--backup is given)

+ +

numbered, t

+ +

make numbered backups

+ +

existing, nil

+ +

numbered if numbered backups +exist, simple otherwise

+ +

simple, never

+ +

always make simple backups

+ +

The backup +suffix is ’~’, unless set with +--suffix or the SIMPLE_BACKUP_SUFFIX +environment variable.

+ +

Operation +modifiers:
+-m
, --multi-domain

+ +

apply ref.pot to each of the +domains in def.po

+ + +

--for-msgfmt

+ +

produce output for +’msgfmt’, not for a translator

+ +

-N, +--no-fuzzy-matching

+ +

do not use fuzzy matching

+ + +

--previous

+ +

keep previous msgids of +translated messages

+ +

Input file +syntax:
+-P
, +--properties-input

+ +

input files are in Java +.properties syntax

+ + +

--stringtable-input

+ +

input files are in +NeXTstep/GNUstep .strings syntax

+ +

Output +details:
+--lang
=CATALOGNAME

+ +

set ’Language’ +field in the header entry

+ +

--color

+ +

use colors and other text +attributes always

+ + +

--color=WHEN

+ +

use colors and other text +attributes if WHEN. WHEN may be ’always’, +’never’, ’auto’, or +’html’.

+ + +

--style=STYLEFILE

+ +

specify CSS style rule file for +--color

+ +

-e, +--no-escape

+ +

do not use C escapes in output +(default)

+ +

-E, +--escape

+ +

use C escapes in output, no +extended chars

+ + +

--force-po

+ +

write PO file even if empty

+ +

-i, +--indent

+ +

indented output style

+ + +

--no-location

+ +

suppress ’#: +filename:line’ lines

+ +

-n, +--add-location

+ +

preserve ’#: +filename:line’ lines (default)

+ + +

--strict

+ +

strict Uniforum output +style

+ +

-p, +--properties-output

+ +

write out a Java .properties +file

+ + +

--stringtable-output

+ +

write out a NeXTstep/GNUstep +.strings file

+ +

-w, +--width=NUMBER

+ +

set output page width

+ + +

--no-wrap

+ +

do not break long message +lines, longer than the output page width, into several +lines

+ +

-s, +--sort-output

+ +

generate sorted output

+ +

-F, +--sort-by-file

+ +

sort output by file +location

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

-v, +--verbose

+ +

increase verbosity level

+ +

-q, +--quiet, --silent

+ +

suppress progress +indicators

+ +

AUTHOR + +

+ + +

Written by +Peter Miller.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 1995-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msgmerge is maintained as a Texinfo +manual. If the info and msgmerge programs are +properly installed at your site, the command

+ +

info +msgmerge

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msgunfmt.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgunfmt.1.html new file mode 100644 index 000000000..379da5991 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msgunfmt.1.html @@ -0,0 +1,319 @@ + + + + + + + + +MSGUNFMT + + + + +

MSGUNFMT

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msgunfmt +- uncompile message catalog from binary format

+ +

SYNOPSIS + +

+ + + +

msgunfmt +[OPTION] [FILE]...

+ +

DESCRIPTION + +

+ + +

Convert binary +message catalog to Uniforum style .po file.

+ +

Mandatory +arguments to long options are mandatory for short options +too.

+ +

Operation +mode:
+-j
, --java

+ +

Java mode: input is a Java +ResourceBundle class

+ + +

--csharp

+ +

C# mode: input is a .NET .dll +file

+ + +

--csharp-resources

+ +

C# resources mode: input is a +.NET .resources file

+ + + + + + + + +
+ + +

--tcl

+ + +

Tcl mode: input is a tcl/msgcat .msg file

+
+ +

Input file +location:
+FILE ...

+ +

input .mo files

+ +

If no input +file is given or if it is -, standard input is +read.

+ +

Input file +location in Java mode:
+-r
, +--resource=RESOURCE

+ +

resource name

+ +

-l, +--locale=LOCALE

+ +

locale name, either language or +language_COUNTRY

+ +

The class name +is determined by appending the locale name to the resource +name, separated with an underscore. The class is located +using the CLASSPATH.

+ +

Input file +location in C# mode:
+-r
, +--resource=RESOURCE

+ +

resource name

+ +

-l, +--locale=LOCALE

+ +

locale name, either language or +language_COUNTRY

+ +

-d DIRECTORY

+ +

base directory for locale +dependent .dll files

+ +

The +-l and -d options are mandatory. +The .dll file is located in a subdirectory of the specified +directory whose name depends on the locale.

+ +

Input file +location in Tcl mode:
+-l
, --locale=LOCALE

+ +

locale name, either language or +language_COUNTRY

+ +

-d DIRECTORY

+ +

base directory of .msg message +catalogs

+ +

The +-l and -d options are mandatory. +The .msg file is located in the specified directory.

+ +

Output file +location:
+-o
, +--output-file=FILE

+ +

write output to specified +file

+ +

The results are +written to standard output if no output file is specified or +if it is -.

+ +

Output +details:
+--color

+ +

use colors and other text +attributes always

+ + +

--color=WHEN

+ +

use colors and other text +attributes if WHEN. WHEN may be ’always’, +’never’, ’auto’, or +’html’.

+ + +

--style=STYLEFILE

+ +

specify CSS style rule file for +--color

+ +

-e, +--no-escape

+ +

do not use C escapes in output +(default)

+ +

-E, +--escape

+ +

use C escapes in output, no +extended chars

+ + +

--force-po

+ +

write PO file even if empty

+ +

-i, +--indent

+ +

write indented output style

+ + +

--strict

+ +

write strict uniforum style

+ +

-p, +--properties-output

+ +

write out a Java .properties +file

+ + +

--stringtable-output

+ +

write out a NeXTstep/GNUstep +.strings file

+ +

-w, +--width=NUMBER

+ +

set output page width

+ + +

--no-wrap

+ +

do not break long message +lines, longer than the output page width, into several +lines

+ +

-s, +--sort-output

+ +

generate sorted output

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

-v, +--verbose

+ +

increase verbosity level

+ +

AUTHOR + +

+ + +

Written by +Ulrich Drepper.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 1995-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msgunfmt is maintained as a Texinfo +manual. If the info and msgunfmt programs are +properly installed at your site, the command

+ +

info +msgunfmt

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/msguniq.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/msguniq.1.html new file mode 100644 index 000000000..5227a49b5 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/msguniq.1.html @@ -0,0 +1,294 @@ + + + + + + + + +MSGUNIQ + + + + +

MSGUNIQ

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

msguniq - +unify duplicate translations in message catalog

+ +

SYNOPSIS + +

+ + +

msguniq +[OPTION] [INPUTFILE]

+ +

DESCRIPTION + +

+ + +

Unifies +duplicate translations in a translation catalog. Finds +duplicate translations of the same message ID. Such +duplicates are invalid input for other programs like msgfmt, +msgmerge or msgcat. By default, duplicates are merged +together. When using the --repeated +option, only duplicates are output, and all other messages +are discarded. Comments and extracted comments will be +cumulated, except that if +--use-first is specified, they will +be taken from the first translation. File positions will be +cumulated. When using the --unique +option, duplicates are discarded.

+ +

Mandatory +arguments to long options are mandatory for short options +too.

+ +

Input file +location:
+INPUTFILE

+ +

input PO file

+ +

-D, +--directory=DIRECTORY

+ +

add DIRECTORY to list for input +files search

+ +

If no input +file is given or if it is -, standard input is +read.

+ +

Output file +location:
+-o
, +--output-file=FILE

+ +

write output to specified +file

+ +

The results are +written to standard output if no output file is specified or +if it is -.

+ +

Message +selection:
+-d
, --repeated

+ +

print only duplicates

+ +

-u, +--unique

+ +

print only unique messages, +discard duplicates

+ +

Input file +syntax:
+-P
, +--properties-input

+ +

input file is in Java +.properties syntax

+ + +

--stringtable-input

+ +

input file is in +NeXTstep/GNUstep .strings syntax

+ +

Output +details:
+-t
, +--to-code=NAME

+ +

encoding for output

+ + +

--use-first

+ +

use first available translation +for each message, don’t merge several translations

+ +

--color

+ +

use colors and other text +attributes always

+ + +

--color=WHEN

+ +

use colors and other text +attributes if WHEN. WHEN may be ’always’, +’never’, ’auto’, or +’html’.

+ + +

--style=STYLEFILE

+ +

specify CSS style rule file for +--color

+ +

-e, +--no-escape

+ +

do not use C escapes in output +(default)

+ +

-E, +--escape

+ +

use C escapes in output, no +extended chars

+ + +

--force-po

+ +

write PO file even if empty

+ +

-i, +--indent

+ +

write the .po file using +indented style

+ + +

--no-location

+ +

do not write ’#: +filename:line’ lines

+ +

-n, +--add-location

+ +

generate ’#: +filename:line’ lines (default)

+ + +

--strict

+ +

write out strict Uniforum +conforming .po file

+ +

-p, +--properties-output

+ +

write out a Java .properties +file

+ + +

--stringtable-output

+ +

write out a NeXTstep/GNUstep +.strings file

+ +

-w, +--width=NUMBER

+ +

set output page width

+ + +

--no-wrap

+ +

do not break long message +lines, longer than the output page width, into several +lines

+ +

-s, +--sort-output

+ +

generate sorted output

+ +

-F, +--sort-by-file

+ +

sort output by file +location

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

AUTHOR + +

+ + +

Written by +Bruno Haible.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 2001-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for msguniq is maintained as a Texinfo +manual. If the info and msguniq programs are +properly installed at your site, the command

+ +

info +msguniq

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/ngettext.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/ngettext.1.html new file mode 100644 index 000000000..3dda07a04 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/ngettext.1.html @@ -0,0 +1,202 @@ + + + + + + + + +NGETTEXT + + + + +

NGETTEXT

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

ngettext +- translate message and choose plural form

+ +

SYNOPSIS + +

+ + + +

ngettext +[OPTION] [TEXTDOMAIN] MSGID MSGID-PLURAL +COUNT

+ +

DESCRIPTION + +

+ + +

The +ngettext program translates a natural language +message into the user’s language, by looking up the +translation in a message catalog, and chooses the +appropriate plural form, which depends on the number +COUNT and the language of the message catalog where +the translation was found.

+ +

Display native +language translation of a textual message whose grammatical +form depends on a number.
+-d
, +--domain=TEXTDOMAIN

+ +

retrieve translated message +from TEXTDOMAIN

+ +

-c, +--context=CONTEXT

+ +

specify context for MSGID

+ + + + + + + + + + + + + + +
+ + +

-e

+ + +

enable expansion of some escape sequences

+
+ + +

-E

+ + +

(ignored for compatibility)

+
+ +

[TEXTDOMAIN]

+ +

retrieve translated message +from TEXTDOMAIN

+ +

MSGID MSGID-PLURAL

+ +

translate MSGID (singular) / +MSGID-PLURAL (plural)

+ + + + + + + + +
+ + +

COUNT

+ + +

choose singular/plural form based on this value

+
+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

display version information and +exit

+ +

If the +TEXTDOMAIN parameter is not given, the domain is determined +from the environment variable TEXTDOMAIN. If the message +catalog is not found in the regular directory, another +location can be specified with the environment variable +TEXTDOMAINDIR. Standard search directory: /home/payton/blue/share/locale

+ +

AUTHOR + +

+ + +

Written by +Ulrich Drepper.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 1995-1997, 2000-2023 Free Software +Foundation, Inc. License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for ngettext is maintained as a Texinfo +manual. If the info and ngettext programs are +properly installed at your site, the command

+ +

info +ngettext

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/ngettext.3.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/ngettext.3.html new file mode 100644 index 000000000..1e42951d1 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/ngettext.3.html @@ -0,0 +1,138 @@ + + + + + + + + +NGETTEXT + + + + +

NGETTEXT

+ +NAME
+SYNOPSIS
+DESCRIPTION
+RETURN VALUE
+ERRORS
+BUGS
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

ngettext, +dngettext, dcngettext - translate message and choose +plural form

+ +

SYNOPSIS + +

+ + +

#include +<libintl.h>

+ +

char * +ngettext (const char * msgid, const char * +msgid_plural,
+unsigned long int
n);
+char * dngettext (const char *
domainname, +
+const char *
msgid, const char * +msgid_plural,
+unsigned long int
n);
+char * dcngettext (const char *
domainname, +
+const char *
msgid, const char * +msgid_plural,
+unsigned long int
n, int +category);

+ +

DESCRIPTION + +

+ + +

The +ngettext, dngettext and dcngettext +functions attempt to translate a text string into the +user’s native language, by looking up the appropriate +plural form of the translation in a message catalog.

+ +

Plural forms +are grammatical variants depending on the a number. Some +languages have two forms, called singular and plural. Other +languages have three forms, called singular, dual and +plural. There are also languages with four forms.

+ +

The +ngettext, dngettext and dcngettext +functions work like the gettext, dgettext and +dcgettext functions, respectively. Additionally, they +choose the appropriate plural form, which depends on the +number n and the language of the message catalog +where the translation was found.

+ +

In the +"C" locale, or if none of the used catalogs +contain a translation for msgid, the ngettext, +dngettext and dcngettext functions return +msgid if n == 1, or msgid_plural if +n != 1.

+ +

RETURN VALUE + +

+ + +

If a +translation was found in one of the specified catalogs, the +appropriate plural form is converted to the locale’s +codeset and returned. The resulting string is statically +allocated and must not be modified or freed. Otherwise +msgid or msgid_plural is returned, as +described above.

+ +

ERRORS + +

+ + +

errno is +not modified.

+ +

BUGS + +

+ + +

The return type +ought to be const char *, but is char * to +avoid warnings in C code predating ANSI C.

+ +

SEE ALSO + +

+ + + +

gettext(3), +dgettext(3), dcgettext(3)

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/recode-sr-latin.1.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/recode-sr-latin.1.html new file mode 100644 index 000000000..c5d7979fd --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/recode-sr-latin.1.html @@ -0,0 +1,123 @@ + + + + + + + + +RECODE-SR-LATIN + + + + +

RECODE-SR-LATIN

+ +NAME
+SYNOPSIS
+DESCRIPTION
+AUTHOR
+REPORTING BUGS
+COPYRIGHT
+SEE ALSO
+ +
+ + +

NAME + +

+ + + +

recode-sr-latin +- convert Serbian text from Cyrillic to Latin +script

+ +

SYNOPSIS + +

+ + + +

recode-sr-latin +[OPTION]

+ +

DESCRIPTION + +

+ + +

Recode Serbian +text from Cyrillic to Latin script. The input text is read +from standard input. The converted text is output to +standard output.

+ +

Informative +output:
+-h
, --help

+ +

display this help and exit

+ +

-V, +--version

+ +

output version information and +exit

+ +

AUTHOR + +

+ + +

Written by +Danilo Segan and Bruno Haible.

+ +

REPORTING BUGS + +

+ + +

Report bugs in +the bug tracker at +<https://savannah.gnu.org/projects/gettext> or by +email to <bug-gettext@gnu.org>.

+ +

COPYRIGHT + +

+ + +

Copyright +© 2006-2023 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later +<https://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and +redistribute it. There is NO WARRANTY, to the extent +permitted by law.

+ +

SEE ALSO + +

+ + +

The full +documentation for recode-sr-latin is maintained as a +Texinfo manual. If the info and +recode-sr-latin programs are properly installed at +your site, the command

+ +

info +recode-sr-latin

+ +

should give you +access to the complete manual.

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/textdomain.3.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/textdomain.3.html new file mode 100644 index 000000000..64beae645 --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/textdomain.3.html @@ -0,0 +1,140 @@ + + + + + + + + +TEXTDOMAIN + + + + +

TEXTDOMAIN

+ +NAME
+SYNOPSIS
+DESCRIPTION
+RETURN VALUE
+ERRORS
+BUGS
+SEE ALSO
+ +
+ + +

NAME + +

+ + +

textdomain +- set domain for future gettext() calls

+ +

SYNOPSIS + +

+ + +

#include +<libintl.h>

+ +

char * +textdomain (const char * domainname);

+ +

DESCRIPTION + +

+ + +

The +textdomain function sets or retrieves the current +message domain.

+ +

A message +domain is a set of translatable msgid messages. +Usually, every software package has its own message domain. +The domain name is used to determine the message catalog +where a translation is looked up; it must be a non-empty +string.

+ +

The current +message domain is used by the gettext, +ngettext functions, and by the dgettext, +dcgettext, dngettext and dcngettext +functions when called with a NULL domainname argument.

+ +

If +domainname is not NULL, the current message domain is +set to domainname. The string the function stores +internally is a copy of the domainname argument.

+ +

If +domainname is NULL, the function returns the current +message domain.

+ +

RETURN VALUE + +

+ + +

If successful, +the textdomain function returns the current message +domain, after possibly changing it. The resulting string is +valid until the next textdomain call and must not be +modified or freed. If a memory allocation failure occurs, it +sets errno to ENOMEM and returns NULL.

+ +

ERRORS + +

+ + +

The following +error can occur, among others:

+ + + + + + + + +
+ + +

ENOMEM

+ + +

Not enough memory available.

+
+ +

BUGS + +

+ + +

The return type +ought to be const char *, but is char * to +avoid warnings in C code predating ANSI C.

+ +

SEE ALSO + +

+ + + +

gettext(3), +ngettext(3), bindtextdomain(3), +bind_textdomain_codeset(3)

+
+ + diff --git a/code/application/source/sf_app/tools/blue/share/doc/gettext/tutorial.html b/code/application/source/sf_app/tools/blue/share/doc/gettext/tutorial.html new file mode 100644 index 000000000..c5685355f --- /dev/null +++ b/code/application/source/sf_app/tools/blue/share/doc/gettext/tutorial.html @@ -0,0 +1,745 @@ + + + + + + +A tutorial on Native Language Support using GNU gettext + + + + + + + + + + + + + + + + + +

A tutorial on Native Language Support using GNU gettext

+ +

G. Mohanty

+

Revision 0.3: 24 July 2004

+
+ +

Abstract:

+
+ The use of the GNU gettext utilities to implement support for native +languages is described here. Though, the language to be supported is +considered to be Oriya, the method is generally applicable. Likewise, while +Linux was used as the platform here, any system using GNU gettext should work +in a similar fashion. + +

+We go through a step-by-step description of how to make on-screen messages +from a toy program to appear in Oriya instead of English; starting from the +programming and ending with the user's viewpoint. Some discussion is also made +of how to go about the task of translation. +

+

+

+Introduction +

+Currently, both commercial and free computer software is typically written and +documented in English. Till recently, little effort was expended towards +allowing them to interact with the user in languages other than English, thus +leaving the non-English speaking world at a disadvantage. However, that +changed with the release of the GNU gettext utilities, and nowadays most GNU +programs are written within a framework that allows easy translation of the +program message to languages other than English. Provided that translations +are available, the language used by the program to interact with the user can +be set at the time of running it. gettext manages to achieve this seemingly +miraculous task in a manner that simplifies the work of both the programmer +and the translator, and, more importantly, allows them to work independently +of each other. + +

+This article describes how to support native languages under a system using +the GNU gettext utilities. While it should be applicable to other versions of +gettext, the one actually used for the examples here is version +0.12.1. Another system, called catgets, described in the X/Open +Portability Guide, is also in use, but we shall not discuss that here. + +

+ +

+A simple example +

+Our first example of using gettext will be the good old Hello World program, +whose sole function is to print the phrase “Hello, world!†to the terminal. +The internationalized version of this program might be saved in hello.c as: +
+1    #include <libintl.h>
+2    #include <locale.h>
+3    #include <stdio.h>
+4    #include <stdlib.h>
+5    int main(void)
+6    {
+7      setlocale( LC_ALL, "" );
+8      bindtextdomain( "hello", "/usr/share/locale" );
+9      textdomain( "hello" );
+10      printf( gettext( "Hello, world!\n" ) );
+11      exit(0);
+12    }
+
+Of course, a real program would check the return values of the functions and +try to deal with any errors, but we have omitted that part of the code for +clarity. Compile as usual with gcc -o hello hello.c. The program should +be linked to the GNU libintl library, but as this is part of the GNU C +library, this is done automatically for you under Linux, and other systems +using glibc. + +

+The programmer's viewpoint +

+ As expected, when the hello executable is run under the default locale +(usually the C locale) it prints “Hello, world!†in the terminal. Besides +some initial setup work, the only additional burden faced by the programmer is +to replace any string to be printed with gettext(string), i.e., to +instead pass the string as an argument to the gettext function. For lazy +people like myself, the amount of extra typing can be reduced even further by +a CPP macro, e.g., put this at the beginning of the source code file, +
+  #define _(STRING)    gettext(STRING)
+
+and then use _(string) instead of gettext(string). + +

+Let us dissect the program line-by-line. + +

    +
  1. locale.h defines C data structures used to hold locale + information, and is needed by the setlocale function. libintl.h + prototypes the GNU text utilities functions, and is needed here by + bindtextdomain, gettext, and textdomain. +
  2. +
  3. The call to setlocale () on line 7, with LC_ALL as the first argument + and an empty string as the second one, initializes the entire current locale + of the program as per environment variables set by the user. In other words, + the program locale is initialized to match that of the user. For details see + “man setlocale.†+
  4. +
  5. The bindtextdomain function on line 8 sets the base directory for the + message catalogs for a given message domain. A message domain is a set of + translatable messages, with every software package typically having its own + domain. Here, we have used “hello†as the name of the message domain for + our toy program. As the second argument, /usr/share/locale, is the default + system location for message catalogs, what we are saying here is that we are + going to place the message catalog in the default system directory. Thus, we + could have dispensed with the call to bindtextdomain here, and this + function is useful only if the message catalogs are installed in a + non-standard place, e.g., a packaged software distribution might have + the catalogs under a po/ directory under its own main directory. See “man + bindtextdomain†for details. +
  6. +
  7. The textdomain call on line 9 sets the message domain of the current + program to “hello,†i.e., the name that we are using for our example + program. “man textdomain†will give usage details for the function. +
  8. +
  9. Finally, on line 10, we have replaced what would normally have been, +
    +  printf( "Hello, world!\n" );
    +
    +with, +
    +  printf( gettext( "Hello, world!\n" ) );
    +
    +(If you are unfamiliar with C, the +\n at the end of the string +produces a newline at the end of the output.) This simple modification to all +translatable strings allows the translator to work independently from the +programmer. gettextize eases the task of the programmer in adapting a +package to use GNU gettext for the first time, or to upgrade to a newer +version of gettext. +
  10. +
+ +

+Extracting translatable strings +

+ Now, it is time to extract the strings to be translated from the program +source code. This is achieved with xgettext, which can be invoked as follows: +

+  xgettext -d hello -o hello.pot hello.c
+
+This processes the source code in hello.c, saving the output in hello.pot (the +argument to the -o option). +The message domain for the program should be specified as the argument +to the -d option, and should match the domain specified in the call to +textdomain (on line 9 of the program source). Other details on how to use +gettext can be found from “man gettext.†+ +

+A .pot (portable object template) file is used as the basis for translating +program messages into any language. To start translation, one can simply copy +hello.pot to oriya.po (this preserves the template file for later translation +into a different language). However, the preferred way to do this is by +use of the msginit program, which takes care of correctly setting up some +default values, +


+  msginit -l or_IN -o oriya.po -i hello.pot
+
+Here, the -l option defines the locale (an Oriya locale should have been +installed on your system), and the -i and -o options define the input and +output files, respectively. If there is only a single .pot file in the +directory, it will be used as the input file, and the -i option can be +omitted. For me, the oriya.po file produced by msginit would look like: +
+  # Oriya translations for PACKAGE package.
+  # Copyright (C) 2004 THE PACKAGE'S COPYRIGHT HOLDER
+  # This file is distributed under the same license as the PACKAGE package.
+  # Gora Mohanty <gora_mohanty@yahoo.co.in>, 2004.
+  #
+  msgid ""
+  msgstr ""
+  "Project-Id-Version: PACKAGE VERSION\n"
+  "Report-Msgid-Bugs-To: \n"
+  "POT-Creation-Date: 2004-06-22 02:22+0530\n"
+  "PO-Revision-Date: 2004-06-22 02:38+0530\n"
+  "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
+  "Language-Team: Oriya\n"
+  "MIME-Version: 1.0\n"
+  "Content-Type: text/plain; charset=UTF-8\n"
+  "Content-Transfer-Encoding: 8bit\n"
+ 
+  #: hello.c:10
+  msgid "Hello, world!\n"
+  msgstr ""
+
+msginit prompted for my email address, and probably obtained my real name +from the system password file. It also filled in values such as the revision +date, language, character set, presumably using information from the or_IN +locale. + +

+It is important to respect the format of the entries in the .po (portable +object) file. Each entry has the following structure: +

+  WHITE-SPACE
+  #  TRANSLATOR-COMMENTS
+  #. AUTOMATIC-COMMENTS
+  #: REFERENCE...
+  #, FLAG...
+  msgid UNTRANSLATED-STRING
+  msgstr TRANSLATED-STRING
+
+where, the initial white-space (spaces, tabs, newlines,...), and all +comments might or might not exist for a particular entry. Comment lines start +with a '#' as the first character, and there are two kinds: (i) manually +added translator comments, that have some white-space immediately following the +'#,' and (ii) automatic comments added and maintained by the gettext tools, +with a non-white-space character after the '#.' The msgid line contains +the untranslated (English) string, if there is one for that PO file entry, and +the msgstr line is where the translated string is to be entered. More on +this later. For details on the format of PO files see gettext::Basics::PO +Files:: in the Emacs info-browser (see Appdx. A for an +introduction to using the info-browser in Emacs). + +

+Making translations +

+ The oriya.po file can then be edited to add the translated Oriya +strings. While the editing can be carried out in any editor if one is careful +to follow the PO file format, there are several editors that ease the task of +editing PO files, among them being po-mode in Emacs, kbabel, gtranslator, +poedit, etc. Appdx. B describes features of some of +these editors. + +

+The first thing to do is fill in the comments at the beginning and the header +entry, parts of which have already been filled in by msginit. The lines in +the header entry are pretty much self-explanatory, and details can be found in +the gettext::Creating::Header Entry:: info node. After that, the remaining +work consists of typing the Oriya text that is to serve as translations for +the corresponding English string. For the msgstr line in each of the +remaining entries, add the translated Oriya text between the double quotes; +the translation corresponding to the English phrase in the msgid string +for the entry. For example, for the phrase “Hello world! +\n†in +oriya.po, we could enter “ନମସ୍କାର +\nâ€. The final +oriya.po file might look like: +

+  # Oriya translations for hello example package.
+  # Copyright (C) 2004 Gora Mohanty
+  # This file is distributed under the same license as the hello example package.
+  # Gora Mohanty <gora_mohanty@yahoo.co.in>, 2004.
+  #
+  msgid ""
+  msgstr ""
+  "Project-Id-Version: oriya\n"
+  "Report-Msgid-Bugs-To: \n"
+  "POT-Creation-Date: 2004-06-22 02:22+0530\n"
+  "PO-Revision-Date: 2004-06-22 10:54+0530\n"
+  "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
+  "Language-Team: Oriya\n"
+  "MIME-Version: 1.0\n"
+  "Content-Type: text/plain; charset=UTF-8\n"
+  "Content-Transfer-Encoding: 8bit\n"
+  "X-Generator: KBabel 1.3\n"
+
+  #: hello.c:10
+  msgid "Hello, world!\n"
+  msgstr "ନମସ୍କାର\n"
+
+ +

+For editing PO files, I have found the kbabel editor suits me the best. The +only problem is that while Oriya text can be entered directly into kbabel +using the xkb Oriya keyboard layouts [1] and the entries +are saved properly, the text is not displayed correctly in the kbabel window +if it includes conjuncts. Emacs po-mode is a little restrictive, but strictly +enforces conformance with the PO file format. The main problem with it is that +it does not seem currently possible to edit Oriya text in Emacs. yudit +is the best at editing Oriya text, but does not ensure that the PO file format +is followed. You can play around a bit with these editors to find one that +suits your personal preferences. One possibility might be to first edit the +header entry with kbabel or Emacs po-mode, and then use yudit to enter +the Oriya text on the msgstr lines. + +

+Message catalogs +

+ After completing the translations in the oriya.po file, it must be compiled to +a binary format that can be quickly loaded by the gettext tools. To do that, +use: +

+  msgfmt -c -v -o hello.mo oriya.po
+
+The -c option does detailed checking of the PO file format, -v makes the +program verbose, and the output filename is given by the argument to the -o +option. Note that the base of the output filename should match the message +domain given in the first arguments to bindtextdomain and textdomain on +lines 8 and 9 of the example program in Sec. 2. The .mo +(machine object) file should be stored in the location whose base directory is +given by the second argument to bindtextdomain. The final location of the +file will be in the sub-directory LL/LC_MESSAGES or LL_CC/LC_MESSAGES under +the base directory, where LL stands for a language, and CC for a country. For +example, as we have chosen the standard location, /usr/share/locale, for our +base directory, and for us the language and country strings are “or†and +“IN,†respectively, we will place hello.mo in /usr/share/locale/or_IN. Note +that you will need super-user privilege to copy hello.mo to this system +directory. Thus, +

+  mkdir -p /usr/share/locale/or_IN/LC_MESSAGES
+  cp hello.mo /usr/share/locale/or_IN/LC_MESSAGES
+
+ +

+The user's viewpoint +

+ Once the message catalogs have been properly installed, any user on the system +can use the Oriya version of the Hello World program, provided an Oriya locale +is available. First, change your locale with, +

+  echo $LANG
+  export LANG=or_IN
+
+The first statement shows you the current setting of your locale (this is +usually en_US, and you will need it to reset the default locale at the end), +while the second one sets it to an Oriya locale. + +

+A Unicode-capable terminal emulator is needed to view Oriya output +directly. The new versions of both gnome-terminal and konsole (the KDE +terminal emulator) are Unicode-aware. I will focus on gnome-terminal as it +seems to have better support for internationalization. gnome-terminal needs to +be told that the bytes arriving are UTF-8 encoded multibyte sequences. This +can be done by (a) choosing Terminal -> Character Coding -> +Unicode (UTF-8), or (b) typing “/bin/echo -n -e +' +\033% +\G'†in the terminal, or (c) by running +/bin/unicode_start. Likewise, you can revert to the default locale by (a) +choosing Terminal -> Character Coding -> Current Locale +(ISO-8859-1), or (b) “/bin/echo -n -e ' +\033% +\@',†or +(c) by running /bin/unicode_stop. Now, running the example program (after +compiling with gcc as described in Sec. 2) with, +


+  ./hello
+
+should give you output in Oriya. Please note that conjuncts will most likely +be displayed with a “halant†as the terminal probably does not render Indian +language fonts correctly. Also, as most terminal emulators assume fixed-width +fonts, the results are hardly likely to be aesthetically appealing. + +

+An alternative is to save the program output in a file, and view it with +yudit which will render the glyphs correctly. Thus, +


+  ./hello > junk
+  yudit junk
+
+Do not forget to reset the locale before resuming usual work in the +terminal. Else, your English characters might look funny. + +

+While all this should give the average user some pleasure in being able to see +Oriya output from a program without a whole lot of work, it should be kept in +mind that we are still far from our desired goal. Hopefully, one day the +situation will be such that rather than deriving special pleasure from it, +users take it for granted that Oriya should be available and are upset +otherwise. + +

+ +

+Adding complications: program upgrade +

+The previous section presented a simple example of how Oriya language support +could be added to a C program. Like all programs, we might now wish to further +enhance it. For example, we could include a greeting to the user by adding +another printf statement after the first one. Our new hello.c source +code might look like this: +
+1    #include <libintl.h>
+2    #include <locale.h>
+3    #include <stdio.h>
+4    #include <stdlib.h>
+5    int main(void)
+6    {
+7      setlocale( LC_ALL, "" );
+8      bindtextdomain( "hello", "/usr/share/locale" );
+9      textdomain( "hello" );
+10      printf( gettext( "Hello, world!\n" ) );
+11      printf( gettext( "How are you\n" ) );
+12      exit(0);
+13    }
+
+For such a small change, it would be simple enough to just repeat the above +cycle of extracting the relevant English text, translating it to Oriya, and +preparing a new message catalog. We can even simplify the work by cutting and +pasting most of the old oriya.po file into the new one. However, real programs +will have thousands of such strings, and we would like to be able to translate +only the changed strings, and have the gettext utilities handle the drudgery +of combining the new translations with the old ones. This is indeed possible. + +

+Merging old and new translations +

+ As before, extract the translatable strings from hello.c to a new portable +object template file, hello-new.pot, using xgettext, +

+  xgettext -d hello -o hello-new.pot hello.c
+
+Now, we use a new program, msgmerge, to merge the existing .po file with +translations into the new template file, viz., +

+  msgmerge -U oriya.po hello-new.pot
+
+The -U option updates the existing +.po file, oriya.po. We could have chosen to instead create a new .po file by +using “-o <filename>†instead of -U. The updated .po file will still +have the old translations embedded in it, and new entries with untranslated +msgid lines. For us, the new lines in oriya.po will look like, +
+  #: hello.c:11
+  msgid "How are you?\n"
+  msgstr ""
+
+For the new translation, we could use, “ଆପଣ +କିପରି ଅଛନ୍ତି?†in +place of the English phrase “How are you?†The updated oriya.po file, +including the translation might look like: +
+  # Oriya translations for hello example package.
+  # Copyright (C) 2004 Gora Mohanty
+  # This file is distributed under the same license as the hello examplepackage.
+  # Gora Mohanty <gora_mohanty@yahoo.co.in>, 2004.
+  #
+  msgid ""
+  msgstr ""
+  "Project-Id-Version: oriya\n"
+  "Report-Msgid-Bugs-To: \n"
+  "POT-Creation-Date: 2004-06-23 14:30+0530\n"
+  "PO-Revision-Date: 2004-06-22 10:54+0530\n"
+  "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
+  "Language-Team: Oriya\n"
+  "MIME-Version: 1.0\n"
+  "Content-Type: text/plain; charset=UTF-8\n"
+  "Content-Transfer-Encoding: 8bit\n"
+  "X-Generator: KBabel 1.3\n"
+  
+  #: hello.c:10
+  msgid "Hello, world!\n"
+  msgstr "ନମସ୍କାର\n"
+
+  #: hello.c:11
+  msgid "How are you?\n"
+  msgstr "ଆପଣ କିପରି ଅଛନ୍ତି?\n"
+
+ +

+Compile oriya.po to a machine object file, and install in the appropriate +place as in Sec. 2.4. Thus, +


+  msgfmt -c -v -o hello.mo oriya.po
+  mkdir -p /usr/share/locale/or_IN/LC_MESSAGES
+  cp hello.mo /usr/share/locale/or_IN/LC_MESSAGES
+
+You can test the Oriya output as above, after recompiling hello.c and running +it in an Oriya locale. + +

+ +

+More about gettext +

+The GNU gettext info pages provide a well-organized and complete description +of the gettext utilities and their usage for enabling Native Language +Support. One should, at the very least, read the introductory material at +gettext::Introduction::, and the suggested references in +gettext::Conclusion::References::. Besides the gettext utilities described in +this document, various other programs to manipulate .po files are discussed in +gettext:Manipulating::. Finally, support for programming languages other than +C/C++ is discussed in gettext::Programming Languages::. + +

+ +

+The work of translation +

+ Besides the obvious program message strings that have been the sole focus of +our discussion here, there are many other things that require translation, +including GUI messages, command-line option strings, configuration files, +program documentation, etc. Besides these obvious aspects, there are a +significant number of programs and/or scripts that are automatically generated +by other programs. These generated programs might also themselves require +translation. So, in any effort to provide support for a given native language, +carrying out the translation and keeping up with program updates becomes a +major part of the undertaking, requiring a continuing commitment from the +language team. A plan has been outlined for the Oriya localization +project [2]. + +

+ +

+Acknowledgments +

+Extensive use has obviously been made of the GNU gettext manual in preparing +this document. I have also been helped by an article in the Linux +Journal [3]. + +

+This work is part of the project for enabling the use of Oriya under Linux. I +thank my uncle, N. M. Pattnaik, for conceiving of the project. We have all +benefited from the discussions amidst the group of people working on this +project. On the particular issue of translation, the help of H. R. Pansari, +A. Nayak, and M. Chand is much appreciated. + +

+The Emacs info browser +

+You can start up Emacs from the command-line by typing “emacs,†or “emacs +<filename>.†It can be started from the menu in some desktops, e.g., on +my GNOME desktop, it is under Main Menu -> Programming -> +Emacs. If you are unfamiliar with Emacs, a tutorial can be started by typing +“C-h t†in an Emacs window, or from the Help item in the menubar at the +top. Emacs makes extensive use of the Control (sometimes labelled as “CTRL†+or “CTLâ€) and Meta (sometimes labelled as “Edit†or “Altâ€) keys. In +Emacs parlance, a hyphenated sequence, such as “C-h†means to press the +Control and ‘h’ key simultaneously, while “C-h t†would mean to press the +Control and ‘h’ key together, release them, and press the ‘t’ key. Similarly, +“M-x†is used to indicate that the Meta and ‘x’ keys should be pressed at +the same time. + +

+The info browser can be started by typing “C-h i†in Emacs. The first time +you do this, it will briefly list some commands available inside the info +browser, and present you with a menu of major topics. Each menu item, or +cross-reference is hyperlinked to the appropriate node, and you can visit that +node either by moving the cursor to the item and pressing Enter, or by +clicking on it with the middle mouse button. To get to the gettext menu items, +you can either scroll down to the line, +

+  * gettext: (gettext).                          GNU gettext utilities.
+
+and visit that node. Or, as it is several pages down, you can locate it using +“I-search.†Type “C-s†to enter “I-search†which will then prompt you +for a string in the mini-buffer at the bottom of the window. This is an +incremental search, so that Emacs will keep moving you forward through the +buffer as you are entering your search string. If you have reached the last +occurrence of the search string in the current buffer, you will get a message +saying “Failing I-search: ...†on pressing “C-s.†At that point, press +“C-s†again to resume the search at the beginning of the buffer. Likewise, +“C-r†incrementally searches backwards from the present location. + +

+Info nodes are listed in this document with a “::†separator, so +that one can go to the gettext::Creating::Header Entry:: by visiting the +“gettext†node from the main info menu, navigating to the “Creating†+node, and following that to the “Header Entry†node. + +

+A stand-alone info browser, independent of Emacs, is also available on many +systems. Thus, the gettext info page can also be accessed by typing +“info gettext†in a terminal. xinfo is an X application serving as an +info browser, so that if it is installed, typing “xinfo gettext†from the +command line will open a new browser window with the gettext info page. + +

+ +

+PO file editors +

+While the yudit editor is adequate for our present purposes, and we are +planning on using that as it is platform-independent, and currently the best +at rendering Oriya. This section describes some features of some editors that +are specialized for editing PO files under Linux. This is still work in +progress, as I am in the process of trying out different editors before +settling on one. The ones considered here are: Emacs in po-mode, poedit, +kbabel, and gtranslator. + +

+Emacs PO mode +

+ Emacs should automatically enter po-mode when you load a .po file, as +indicated by “PO†in the modeline at the bottom. The window is made +read-only, so that you can edit the .po file only through special commands. A +description of Emacs po-mode can be found under the gettext::Basics info node, +or type ‘h’ or ‘?’ in a po-mode window for a list of available commands. While +I find Emacs po-mode quite restrictive, this is probably due to unfamiliarity +with it. Its main advantage is that it imposes rigid conformance to the PO +file format, and checks the file format when closing the .po file +buffer. Emacs po-mode is not useful for Oriya translation, as I know of no way +to directly enter Oriya text under Emacs. + +

+poedit +

+ XXX: in preparation. + +

+KDE: the kbabel editor +

+ kbabel [4] is a more user-friendly and configurable editor than +either of Emacs po-mode or poedit. It is integrated into KDE, and offers +extensive contextual help. Besides support for various PO file features, it +has a plugin framework for dictionaries, that allows consistency checks and +translation suggestions. + +

+GNOME: the gtranslator editor +

+ XXX: in preparation. + +

+Bibliography +

1 +
+G. Mohanty, +
A practical primer for using Oriya under Linux, v0.3, +
http://oriya.sarovar.org/docs/getting_started/index.html, 2004, +
Sec. 6.2 describes the xkb layouts for Oriya. + +

2 +
+G. Mohanty, +
A plan for Oriya localization, v0.1, +
http://oriya.sarovar.org/docs/translation_plan/index.html, + 2004. + +

3 +
+Linux Journal article on internationalization, +
https://www.linuxjournal.com/article/3023. + +

4 +
+Features of the kbabel editor, +
http://i18n.kde.org/tools/kbabel/features.html. +
+ +

+About this document ... +

+ A tutorial on Native Language Support using GNU gettext

+This document was generated using the +LaTeX2HTML translator Version 2002-2-1 (1.70) +

+Copyright © 1993, 1994, 1995, 1996, +Nikos Drakos, +Computer Based Learning Unit, University of Leeds. +
Copyright © 1997, 1998, 1999, +Ross Moore, +Mathematics Department, Macquarie University, Sydney. +

+The command line arguments were:
+ latex2html -no_math -html_version 4.0,math,unicode,i18n,tables -split 0 memo +

+The translation was initiated by Gora Mohanty on 2004-07-24 +